|
布置的任務一部分是按下矩陣鍵盤S6讓led亮一個燈,我自己寫的程序按下S6并沒有任何反應,請幫我看一下怎么回事
單片機源程序如下:
- #include <reg52.h>
- #include <intrins.h>
- sbit LED1 = P1^0;
- unsigned char key_number=1;
- void delay(unsigned int x)
- {
- unsigned char i, j;
- while(x>0){
- _nop_();
- i = 2;
- j = 199;
- do
- {
- while (--j);
- } while (--i);
- x--;
- }
- }
- unsigned char KeyScan()
- {
- P3=0xf0;
- if(P3!=0xf0)
- {
- delay(10);
- if(P3!=0xf0)
- {
- switch(P3)
- {
- case 0xe0:key_number=0;
- case 0xd0:key_number=1;
- case 0xb0:key_number=2;
- case 0x70:key_number=3;
- }
- P3=0x0f;
- switch(P3)
- {
- case 0x0e:key_number=key_number;
- case 0x0d:key_number=key_number+4;
- case 0x0b:key_number=key_number+8;
- case 0x07:key_number=key_number+12;
- }
- }
- }
- return key_number;
- }
- void main()
- {
- key_number=KeyScan();
- if(key_number==0)
- {
- LED1 = 0;
- }
- }
復制代碼 |
-
矩陣鍵盤.png
(76 KB, 下載次數: 25)
下載附件
2022-2-12 18:25 上傳
矩陣鍵盤原理圖
-
LED.png
(60.14 KB, 下載次數: 30)
下載附件
2022-2-12 18:26 上傳
LED燈原理圖
|