📄 keyscan.lst
字号:
C51 COMPILER V6.02 KEYSCAN 08/30/2007 10:42:12 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE KEYSCAN
OBJECT MODULE PLACED IN D:\原D\DOCUME~1\桌面\新建文~1\KEYSCAN.OBJ
COMPILER INVOKED BY: C:\COMP51\C51.EXE D:\原D\DOCUME~1\桌面\新建文~1\KEYSCAN.C DB SB OE
stmt level source
1 #include "keyScan.h"
2
3 #include <reg51.h>
4 #define KEY_BOARD P1
5 #define DELAY_VALUE 500
6 /*****************
7 延时子程序
8 *****************/
9 void delay()
10 {
11 1 unsigned short data i;
12 1 for(i = DELAY_VALUE;i != 0;i--);
13 1 }
14 /**********************
15 取得当前按键码
16 **********************/
17 unsigned char getKey()
18 {
19 1 unsigned char data keyState,scan,count,keyCode;
20 1 keyCode = 0xff;
21 1 /*是否有键按下*/
22 1 KEY_BOARD = 0xf0;
23 1 keyState = KEY_BOARD | 0x0f;
24 1 keyState = ~keyState;
25 1 if(!keyState) return keyCode;
26 1 delay();
27 1 KEY_BOARD = 0xf0;
28 1 keyState = KEY_BOARD | 0x0f;
29 1 keyState = ~keyState;
30 1 if(!keyState) return keyCode;
31 1 /*键盘扫描*/
32 1 scan = 0xfe;
33 1 for(count = 0;count < 4;count++){
34 2 KEY_BOARD = scan;
35 2 scan <<= 1;
36 2 scan ++;
37 2 keyState = KEY_BOARD & 0xf0;
38 2 if(keyState){
39 3 switch(keyState){
40 4 case 0xe0:
41 4 keyCode = count;
42 4 break;
43 4 case 0xd0:
44 4 keyCode = count + 4;
45 4 break;
46 4 case 0xb0:
47 4 keyCode = count + 8;
48 4 break;
49 4 case 0x70:
50 4 keyCode = count + 12;
51 4 break;
52 4 }
53 3 }
54 2 if(keyCode != 0xff) break;
55 2 }
C51 COMPILER V6.02 KEYSCAN 08/30/2007 10:42:12 PAGE 2
56 1 //等到按键松开
57 1 do{
58 2 KEY_BOARD = 0xf0;
59 2 keyState = KEY_BOARD | 0x0f;
60 2 keyState = ~keyState;
61 2 }while(keyState);
62 1 return keyCode;
63 1 }
C51 COMPILER V6.02 KEYSCAN 08/30/2007 10:42:12 PAGE 3
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
delay. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_INT 0006H 2
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
getKey . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
keyState . . . . . . . . . . . . . . * REG * DATA U_CHAR 0004H 1
scan . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
count. . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0006H 1
keyCode. . . . . . . . . . . . . . . * REG * DATA U_CHAR 0005H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 131 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
C51 COMPILER V6.02 KEYSCAN 08/30/2007 10:42:12 PAGE 4
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -