这是我写的键盘扫描
单片机源程序如下:
- #include<reg51.h>
- #include<intrins.h>
- #define uchar unsigned char
- #define ulong unsigned long
- #define uint unsigned int
- uchar code DSY_CODE[]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90 };
- uchar Digits[]={0x01,0x02,0x04,0x08,0x10,0x20,0x40,0x80};
- #define uchar unsigned char
- void main()
- {uchar i;
- uchar firstnum,nextnum,keynum;
- while(1)
- { for(i=0;i<8;i++)
- { P0=DSY_CODE[i];
- P2=Digits[i]; } }
-
-
- while(1)
- {
- P1=0x0f;
- firstnum=P1;
- P1=0xf0;
- nextnum=P1;
- keynum=nextnum|firstnum;
- switch(keynum)
- {case 0x11:P0=0x3f ;break;
- case 0x12: P0=0x06; break;
- case 0x14: P0=0x5b; break;
- case 0x18:P0=0x4f ; break;
- case 0x21: P0=0x66; break;
- case 0x22:P0=0x6d ; break;
- case 0x24:P0=0x7d ; break;
- case 0x28:P0=0x07 ; break;
- case 0x41:P0=0x7f ; break;
- case 0x42:P0=0x67; break;
- case 0x44:P0=0x77 ; break;
- case 0x48:P0=0x7c ; break;
- case 0x81:P0=0x39; break;
- case 0x82:P0=0x5c ; break;
- case 0x84:P0=0x79 ; break;
- case 0x88:P0=0x71 ; break;
- }
- }
-
- }
复制代码 但是,在keil上验证时没反应,看看是啥问题?
|