📄 key.lst
字号:
C51 COMPILER V6.02 KEY 12/14/2007 08:26:03 PAGE 1
C51 COMPILER V6.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN G:\C51\KEY.OBJ
COMPILER INVOKED BY: C:\comp51\C51.EXE G:\C51\KEY.C DB SB OE OT(0)
stmt level source
1 #include <key.h>
2 #include <reg51.h>
3
4 unsigned char key_code;
5
6 //实时扫描函数
7 void key_scan()
8 {
9 1 static unsigned char CL=0xff,n=0;
10 1 unsigned char cc,c;
11 1
12 1 while(1){
13 2 P1=0xef;
14 2 c=P1;
15 2 if(c!=0xef)break;
16 2
17 2 P1=0xdf;
18 2 c=P1;
19 2 if(c!=0xdf)break;
20 2
21 2 P1=0xbf;
22 2 c=P1;
23 2 if(c!=0xbf)break;
24 2
25 2 P1=0x7f;
26 2 c=P1;
27 2 if(c!=0x7f)break;
28 2
29 2 c=0xff;
30 2 break;
31 2 }
32 1
33 1 if (c==CL)
34 1 n=n+1;
35 1 else {n=0;
36 2 CL=c;
37 2 }
38 1 if (n==KEY_N)
39 1 cc=c;
40 1 else cc=0xff;
41 1 if (n>=KEY_R)
42 1 n=0;
43 1
44 1 switch(cc){
45 2 case 0x77: key_code=0; break;
46 2 case 0xb7: key_code=1; break;
47 2 case 0xbb: key_code=2; break;
48 2 case 0xbd: key_code=3; break;
49 2 case 0xd7: key_code=4; break;
50 2 case 0xdb: key_code=5; break;
51 2 case 0xdd: key_code=6; break;
52 2 case 0xe7: key_code=7; break;
53 2 case 0xeb: key_code=8; break;
54 2 case 0xed: key_code=9; break;
55 2 case 0x7b: key_code=10; break;
C51 COMPILER V6.02 KEY 12/14/2007 08:26:03 PAGE 2
56 2 case 0xee: key_code=11; break;
57 2 case 0xde: key_code=12; break;
58 2 case 0xbe: key_code=13; break;
59 2 case 0x7d: key_code=14; break;
60 2 case 0x7e: key_code=15; break;
61 2 default: key_code=0xff; break;
62 2 }
63 1 }
64
65 // 返回当前的键码
66 unsigned char inkey()
67 {
68 1 return(key_code); //仅表明当前键盘的状态
69 1 }
70
71 //用于数据的输入
72 unsigned char getkey()
73 {
74 1 unsigned char a;
75 1 while(key_code==0xff); //无键按下时等待;
76 1 a=key_code;
77 1 key_code=0xff;
78 1 return(a);
79 1 }
C51 COMPILER V6.02 KEY 12/14/2007 08:26:03 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
getkey . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
a. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
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
inkey. . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
key_code . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 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
key_scan . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
CL . . . . . . . . . . . . . . . . . STATIC DATA U_CHAR 0000H 1
n. . . . . . . . . . . . . . . . . . STATIC DATA U_CHAR 0001H 1
cc . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0000H 1
c. . . . . . . . . . . . . . . . . . AUTO DATA U_CHAR 0001H 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
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 233 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
C51 COMPILER V6.02 KEY 12/14/2007 08:26:03 PAGE 4
PDATA SIZE = ---- ----
DATA SIZE = 6 ----
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 + -