51单片机按键调试
单片机源程序如下:
- #include <reg51.h>
- #define uint unsigned int
- unsigned char hanshu();
- unsigned char jz = 0;
- unsigned char val[17]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90,0x88,0x83,0xc6,0xa1,0x86,0x8e,0xc0};
- void delay(uint);
- void main()
- {
- unsigned char key = 0;
- while(1)
- {
- key = hanshu();
- P2 = 0xf0;
-
- if(key != 0)
- { WR = 0;
- P0 = val[jz];
- WR=1;
- }
- }
- }
- unsigned char hanshu()
- {
- unsigned char hang = 0,lie = 0;
- P1 = 0x0f;
- if(P1 != 0x0f)
- delay(10);
- if(P1 != 0x0f)
- {
- switch(P1)
- {
- case 0x0e: hang = 1; break;
- case 0x0d: hang = 2; break;
- case 0x0b: hang = 3; break;
- case 0x07: hang = 4; break;
- default: break;
- }
-
- P1 = 0xf0;
- delay(10);
- if(P1 != 0xf0)
- {
- switch(P1)
- {
- case 0xe0: lie = 1; break;
- case 0xd0: lie = 2; break;
- case 0xb0: lie = 3; break;
- case 0x70: lie = 4; break;
- default: break;
- }
- jz = (lie - 1) * 4 + hang;
- return jz;
- }
- }
- return 0;
- }
- void delay(uint z)
- {
- uint x,y;
- for(x=100;x>0;x--)
- for(y=z;y>0;y--);
- }
复制代码
所有资料51hei提供下载:
新建文件夹.zip
(28.39 KB, 下载次数: 5)
|