#include #include #define uchar unsigned char #define uint unsigned int
uchar count; void system_init() { HC_595_init();//数码管初始化 PORTD=0Xff;// DDRD=0XFC;//INTO INT1 设置为输入 有效形式 其他口为输出高电平 }
void interrupt_init() { EIMSK=0X03;//使能外部中断0和外部中断1 EICRA=0X0A;//int0和1下降沿触发 MCUCSR=0X00;//控制和状态寄存器初始化
}
#pragma interrupt_handler INT0_ISR:iv_INT0//INT0_ISR:中断函数名,接着是中断向量号
void INT0_ISR()//按键一 加数字 { if(++count>=16) count=0; // delay_nms(40); while(PIND!=0XFE);//松手检测 }
#pragma interrupt_handler INT1_ISR:iv_INT1//INT0_ISR:中断函数名,接着是中断向量号
void INT1_ISR()//按键二 减数字 { if(count) --count; else count=15; //delay_nms(40); while(PIND!=0XFD);//松手检测 }
void main(void) { system_init(); interrupt_init(); SREG|=0X80; while(1) { Seg7_Led_display(count); }
}
|