加上按键中断的代码进阶
- 代码
#include <LPC21xx.H> #define LED1 0x000001 //LED1=P0.0 #define LED2 0x000002 //LED2=P0.1 #define LED3 0x000004 //LED3=P0.2 #define LED4 0x000008 //LED4=P0.3 #define Btn1 0x00004000 //设置p0.14 btn1 #define Btn2 0x00008000 //设置p0.15 btn2 typedef unsigned int uint32; typedef unsigned char uint8; uint8 timer0Times = 0; //用来记录 发生定时器中断的次数 uint8 times = 0; //用来记录 btn2点击的次数 uint8 b=1; //用来记录倍数,用来控制灯亮的时间 __irq void timer0_ISR (void) //定时器中断处理函数 { timer0Times++; if(timer0Times == 1*b) //当b为1时,定时器发生第一次中断时,LED1亮 { //b控制灯亮周期 IO0CLR=LED1; } if(timer0Times == 2*b){ //b为1时,发生第二次中断(第二个时间段)灯灭 IO0SET=LED1; } if(timer0Times == 3*b){ //第三次中断,LED2亮 IO0CLR=LED2