- #include <reg52.h>
- sbit P20=P2^0;
- sbit P21=P2^1;
- sbit P22=P2^2;
- sbit K4=P2^3;
- sbit ENLED=P1^1;
- unsigned char code LedChar[]={
- 0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,
- 0x80,0x90,0x88,0x83,0xC6,0xA1,0x86,0x8E
- };
- bit KeySta = 1;
- void main()
- {
- bit backup=1;
- unsigned char cnt =0;
-
- EA=1;
- ENLED=0;
- TMOD=0x01;
- TH0=0x2A;
- TL0=0xAB;
- ET0=1;
- TR0=1;
- P2=~0x82;
- P0=LedChar[cnt];
-
- while(1)
- {
-
- if(KeySta!=backup)
- {
- if(backup==0)
- {
- cnt++;
- if(cnt>=16)
- {
- cnt = 0;
-
- }
- P0 = LedChar[cnt];
-
- }
- backup = KeySta;
- }
- }
- }
- void InterrupTimer0() interrupt 1
- {
- static unsigned char keybuf = 0xFF;
- TH0=0x2A;
- TL0=0xAB;
- keybuf=(keybuf<<1) | K4; //xxxx xxx0 | 0000 000k4 = xxxx xxxk4
- if(keybuf==0x00)
- {
- KeySta=0;
- }
- else if(keybuf==0xFF)
- {
- KeySta=1;
- }
- else{}
- }
复制代码
|