赞
踩
- #include<reg52.h>//目的是每按下一个按键,8个数码管就动态显示对应的键值
- sbit lsa=P2^2;
- sbit lsb=P2^3;
- sbit lsc=P2^4;
- #define duanxuan P0
- #define keyboard P1
- int zxm[16]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
- int x,y;
- void delay(int i)
- {
- while(i--);
- }
- void keyproc()
- {
- int a=0;
- P1=0x0f;//检测是哪一列有按键按下;
- if(P1!=0x0f)
- {
- delay(1000);
- if(P1!=0x0f)
- {
- P1=0x0f;
- switch(P1)
- {
- case(0x07):y=1;break;
- case(0x0b):y=2;break;
- case(0x0d):y=3;break;
- case(0x0e):y=4;break;
- }
- }
- P1=0xf0;//检测是哪一行有按键按下
- switch(P1)
- {
- case(0x70):x=1;break;
- case(0xb0):x=2;break;
- case(0xd0):x=3;break;
- case(0xe0):x=4;break;
- }
- P0=zxm[(x-1)*4+y-1];
-
-
-
- }
- }
- int main()
- {
- P0=0x00;
- while(1)
- {
- lsa=0;lsb=0;lsc=0;//位选选了第1个
- lsa=1;lsb=0;lsc=0;//位选选了第2个
- lsa=0;lsb=1;lsc=0;//位选选了第3个
- lsa=1;lsb=1;lsc=0;//位选选了第4个
- lsa=0;lsb=0;lsc=1;//位选选了第5个
- lsa=1;lsb=0;lsc=1;//位选选了第6个
- lsa=0;lsb=1;lsc=1;//位选选了第7个
- lsa=1;lsb=1;lsc=1;//位选选了第8个
- keyproc();
-
-
-
-
-
-
- }
- return 0;
-
- }
![](https://csdnimg.cn/release/blogv2/dist/pc/img/newCodeMoreWhite.png)
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。