1、#include #include #include int main(void) PORTB = 0X00; /输出低,LED 不亮DDRB = 0Xfe; /PB0 设置为输入,定时器/计数器的外部计数引脚 T0TIMSK |= (1 #include #include /中断函数头文件volatile unsigned char Counter; /1S 计时变量,如果在中断中调用全局变量,必须加/volatile 来定义,否则变量不会变化int main(void) PORTB = 0X00; /DDRB = 0Xff; / /T/C0 定时中断设置TIMSK |= (1 = 4) /
2、定时时间到 1S 吗?定时中断溢出 4 次为 1SPORTB = (1 PB0); /放光二极管亮灭变化Counter = 0; /1S 计时变量清零/本例中中断寄存器的设置如下:MCUCR |= (1 ISC11) | (1 ISC01) | (1 ISC00); /INT0 设置为上升沿中断,INT1 为下降沿中断请求GICR |= (1 INT0) | (1 INT1); /允许 INT0、INT1 中断GIFR |= (1 INTF1) | (1 INTF0); /清除 INT0、INT1 中断标志位sei(); /使能全局中断 /#define SET_WEI1 PORTA|=BIT
3、(0) #define SET_WEI2 PORTA|=BIT(1)#define SET_WEI3 PORTA|=BIT(2)#define SET_WEI4 PORTA|=BIT(3)#define SET_WEI5 PORTA|=BIT(4)#define SET_WEI6 PORTA|=BIT(5)BIT0 等价于 0x01#define CLR_WEI1 PORTA&=BIT(0)#define CLR_WEI2 PORTA&=BIT(1)#define CLR_WEI3 PORTA&=BIT(2)#define CLR_WEI4 PORTA&=BIT(3)#define CLR_WEI5 PORTA&=BIT(4)#define CLR_WEI6 PORTA&=BIT(5)#define CLR_ALL PORTA&=0XE0/