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