📄 getkey.lst
字号:
C51 COMPILER V7.06 GETKEY 07/30/2007 16:03:54 PAGE 1
C51 COMPILER V7.06, COMPILATION OF MODULE GETKEY
OBJECT MODULE PLACED IN getkey.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE getkey.c DEBUG OBJECTEXTEND
stmt level source
1 #include<_REG51_.H>
*** WARNING C318 IN LINE 1 OF getkey.c: can't open file '_REG51_.H'
2 #include<_ExF(x)_.h>
*** ERROR C141 IN LINE 4 OF _EXF(X)_.H: syntax error near '*', expected ')'
*** ERROR C129 IN LINE 5 OF _EXF(X)_.H: missing ';' before 'GetKey'
3 //-----------------------------
4 uchar Tab1[]={0xf7,0xfb,0xfd,0xfe};
5 sfr KeyPort=0x90;
6 //-----------------------------
7 uchar ReadKey(void)
8 {
9 uchar i=0,keybyte=0;
10 bit keyflag=0;
11 KeyPort =0xF0;
12 _nop_();
13 if(KeyPort!=0xF0)
14 {
15 while((keyflag==0)&&(i<4))
16 {
17 KeyPort=Tab1[i];
18 Delay(2); //delay for 11+2*6=23uS.
19 if(KeyPort!=Tab1[i])
20 {
21 keybyte=KeyPort; //save the key.
22 keyflag=1; //get key ok.
23 while(KeyPort!=Tab1[i]){;} //waiting for key released.
24 }
25 i++;
26 }
27 return keybyte;
28 }
29 else
30 {
31 // KeyPort =0xFF;
32 return 0;
33 }
34 }
35 //-----------------------------
36 uchar Getkey(void)
37 {
38 uchar keydat;
39 keydat=ReadKey();
40 switch(keydat)
41 {
42 case 0xEE: return 1; break;
43 case 0xED: return 2; break;
44 case 0xEB: return 3; break;
45 case 0xE7: return 4; break;
46 case 0xDE: return 5; break;
47 case 0xDD: return 6; break;
48 case 0xDB: return 7; break;
49 case 0xD7: return 8; break;
50 case 0xBE: return 9; break;
51 case 0xBD: return 10; break;
52 case 0xBB: return 11; break;
C51 COMPILER V7.06 GETKEY 07/30/2007 16:03:54 PAGE 2
53 case 0xB7: return 12; break;
54 case 0x7E: return 13; break;
55 case 0x7D: return 14; break;
56 case 0x7B: return 15; break;
57 case 0x77: return 16; break;
58 default: return 0; break;
59 }
60 }
C51 COMPILATION COMPLETE. 1 WARNING(S), 2 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -