AVR单片机设计中断程序主程序是流水灯,中断程序是单灯闪烁。仿真不对,中断回不到主程序,中断也不对。
#include<iom16v.h>#include<macros.h>#defineucharunsignedchar#defineuintunsignedintuin...
#include <iom16v.h>#include <macros.h>#define uchar unsigned char#define uint unsigned intuint count;/**延时函数**/void Delay_ms(xms){ uchar i,j; for(i=0;i<xms;i++) { for(j=0;j<1140;j++); }}/**端口初始化**/void port_int(){ DDRA=0xff;//PA output PORTA=0xff;//PA ouput value 1 DDRD&=(0<<PD3);//PA3 input PORTD|=(1<<PD3);//PD3 DDRD=(1<<PD7);//PD7 output }/**流水灯显示函数**/void LED_disp(){ uchar i; for(i=0;i<8;i++) { PORTA=~(1<<i); Delay_ms(200); }}/**中断初始化**/void INT1_int(){ SREG=0x80; MCUCR=(1<<ISC11)|(0<<ISC10); GICR=(1<<INT1);}/**主函数**/void main(void){ port_int(); INT1_int(); while(1) { LED_disp(); }}/**外中断换1函数***/#pragma interrupt_handler Extint1:3Extint1(){ DDRD=(1<<PD7); for(count=0;count<5;count++) {PORTD=(1<<7);Delay_ms(300);PORTD=(0<<7);Delay_ms(300); }}
展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询