📄 key.lst
字号:
C51 COMPILER V8.02 KEY 08/05/2007 21:31:21 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN .\Out File\Key.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE Key.c LARGE BROWSE ORDER NOAREGS DEBUG OBJECTEXTEND PRINT(.\Out File\Key.ls
-t) TABS(6) OBJECT(.\Out File\Key.obj)
line level source
1 #define Key
2 #include <Key.h>
3
4 // 主程序,通过调用"读键值" 和 "译码" 程序, 将键值返回给主调函数
5 uchar Key_Word(void)
6 {
7 1 unsigned char key,m;
8 1 unsigned char key_decode = 0xff ;
9 1
10 1 P1=0xf0;
11 1 m=P1;
12 1 if(m!=0xf0) //有输入
13 1 {
14 2 key_delay(100,100); //去抖
15 2 P1=0xf0;
16 2 m=P1;
17 2 if(m!=0xf0) //确认有键
18 2 {
19 3 key=Read();
20 3 key_decode=Decode(key);
21 3
22 3 P1=0xf0;
23 3 while(P1!=0xf0);//等待键释放
24 3 }
25 2 }
26 1 return(key_decode);
27 1 }
28
29
30
31
32 //读键值 ------------------
33
34 uchar Read(void)
35 {
36 1 uchar key,H,L;
37 1 P1=0xf0;
38 1 key_delay(1,10);
39 1 H=P1&0XF0;
40 1 //---------------
41 1 key_delay(1,10);
42 1 P1=0x0f;
43 1 key_delay(1,10);
44 1 L=P1&0X0F;
45 1 //---------------
46 1 key=H|L;
47 1 key=~key;
48 1 return(key);
49 1 }
50 //译码
51
52 uchar Decode(uchar x)
53 {
54 1 uchar i,j,k;
C51 COMPILER V8.02 KEY 08/05/2007 21:31:21 PAGE 2
55 1 for(i=0;i<4;i++)
56 1 for(j=0;j<4;j++)
57 1 {
58 2 if(x==key_s[i][j])
59 2 k=key_t[i][j];
60 2 }
61 1 return(k);
62 1 }
63 //////////////////////////////////////////
64
65 void key_delay(uchar t1,t2)
66 {
67 1 uchar i,j;
68 1 for(i=0;i<t1;i++)
69 1 for(j=0;j<t2;j++);
70 1 }
71
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 207 ----
CONSTANT SIZE = 32 ----
XDATA SIZE = ---- 2
PDATA SIZE = ---- ----
DATA SIZE = ---- ----
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 + -