功能說明: 利用中斷按鍵,每按1次亮1個LED燈,8次后全亮,第9次全滅,第10次又從第1個LED燈開始亮,周而復始循環(huán)點亮。
單片機源程序: - #include<reg51.h>
- #include<intrins.h>
- #define ledP1
- sbit key =P3^2;
- int i,a=0;
- chartable[]={0xff,0xfe,0xfc,0xf8,0xf0,0xe0,0xc0,0x80,0x00};
- voiddelay_ms(unsigned int xms) //延時函數(shù)
- {
- unsigned int i,j;
- for(i=xms;i>0;i--)
- {
- for(j=124;j>0;j--);
- }
- }
- voidmain() //主函數(shù)
- {
- EA = 1;
- EX0 = 1;
- TCON = 0x01;
- while(1)
- {
- if(i<=8)
- {
- i=a;
- led=table;
- delay_ms(500); //延時0.5s
- }
- }
- }
- voidExternal_Interrupt_0() interrupt 0
- {
- if(key==0)
- {
- delay_ms(50); //延時50ms,消抖
- if(key==0) //再判斷是否按下
- {
- while(!key); //松手檢測
- a++;
- if(a==9)
- { a=0; }
- }
- }
- }
復制代碼
|