你把程序對比一下就知道問題在哪
無標題.jpg (288.47 KB, 下載次數: 45)
下載附件
2019-5-29 07:21 上傳
- #include <reg52.h>
- #define uchar unsigned char
- #define uint unsigned int
- uchar temp;
- uchar i,key,yand;
- uchar dispay_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07};
- uchar yand_[3]={0xfe,0xef,0xee};
- void delay(uint i)
- {
- uint m,n;
- for(m=i;m>0;m--)
- for(n=125;n>0;n--);
- }
- void keyscan()
- {
- P1=0xf0;
- if(P1!=0xf0)
- {
- delay(10);
- if(P1!=0xf0)
- {
- temp=P1;
- temp|=0x0f;
- P1=temp;
- switch(P1)
- {
- case 0xee:key=4;yand=0;break;
- case 0xde:key=5;yand=0;break;
- case 0xbe:key=6;yand=0;break;
- case 0x7e:key=7;yand=0;break;
- case 0xed:key=1;yand=1;break;
- case 0xdd:key=2;yand=1;break;
- case 0xbd:key=3;yand=1;break;
- case 0x7d:key=4;yand=1;break;
- case 0xeb:key=5;yand=1;break;
- case 0xdb:key=6;yand=1;break;
- case 0xbb:key=7;yand=1;break;
- case 0x7b:key=1;yand=2;break;
- case 0xe7:key=2;yand=2;break;
- case 0xd7:key=3;yand=2;break;
- case 0xb7:key=4;yand=2;break;
- case 0x77:key=5;yand=2;break;
- }
- }
- }
- }
- void diapay()
- {
- P2=yand_[yand];
- P0=dispay_[key];
- }
- void main()
- {
- while(1)
- {
- keyscan();
- diapay();
- }
- }
復制代碼
|