📄 key.lst
字号:
C51 COMPILER V7.00 KEY 11/12/2003 16:40:25 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN KEY.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE KEY.C BROWSE DEBUG OBJECTEXTEND TABS(2)
stmt level source
1
2 #include <e:\key\reg52.h>
3 #include <e:\key\absacc.h>
4
5
6
7 /********************************************/
8 /* 外部端口硬件地址 */
9 /********************************************/
10 #define COLUMN1 P14
11 #define COLUMN2 P13
12 #define COLUMN3 P12
13 #define COLUMN4 P11
14 #define COLUMN5 P10
15 #define BELL P15
16 #define ARRAY1 P00
17 #define ARRAY2 P01
18 #define ARRAY4 P02
19 #define ARRAY3 P03
20 /*
21 以上宏定义描述了矩阵键盘行列线的硬件地址,键盘位置与行列线对应关系如下:
22 COLUMN1 COLUMN2 COLUMN3 COLUMN4 COLUMN5
23 ARRAY1 KEY1 KEY2 KEY3 KEY4 KEY5
24 ARRAY2 KEY6 KEY7 KEY8 KEY9 KEY10
25 ARRAY3 KEY11 KEY12 KEY13 KEY14 KEY15
26 ARRAY4 KEY16 KEY17 KEY18 KEY19 KEY20
27 */
28
29 #define KEYINST0 P04
30 #define KEYINST1 P05
31 #define KEYINST2 P06
32 #define KEYINST3 P07
33 /* 以上宏定义描述了主CPU给键盘单片机的命令线的硬件地址 */
34
35 #define KEYCODE P2
36 #define KEYCODE0 P20
37 #define KEYCODE1 P21
38 #define KEYCODE2 P22
39 #define KEYCODE3 P23
40 #define KEYCODE4 P24
41 #define KEYCODE5 P25
42 #define KEYCODE6 P26
43 #define KEYCODE7 P27
44 /*以上宏定义描述了键盘单片机给主CPU的键码线的硬件地址*/
45
46 #define KEYSTB P17/*外设数据准备好信号线硬件地址,键盘单片机给主CPU*/
47 #define KEYIBF P35/*输入数据满信号,主CPU给键盘单片机*/
48
49
50
51 /********************************************/
52 /* 常量定义 */
53 /********************************************/
54 /* 计时器常量 */
55
C51 COMPILER V7.00 KEY 11/12/2003 16:40:25 PAGE 2
56 //#define TL0_DATA 0x78
57 //#define TH0_DATA 0xec/*0xec78: 0.01秒中断一次*/
58 //#define TL1_DATA 0xb0
59 //#define TH1_DATA 0x3c/*0x3cb0: 0.1秒中断一次*/
60
61 #define TL0_DATA 0x00
62 #define TH0_DATA 0xdc/*0xdc00: 0.01秒中断一次 11.0592M*/
63 #define TL1_DATA 0x00
64 #define TH1_DATA 0x00/*0x00: 0.07秒中断一次 11.0592M*/
65 #define DELAYTIME 3/*按键复用时两次按键按下之间时间间隔的最大值*/
66
67
68 /********************************************/
69 /* 全局变量 */
70 /********************************************/
71 bit bArray1;/*bArray1标志键盘行线1状态*/
72 bit bArray2;/*bArray2标志键盘行线2状态*/
73 bit bArray3;/*bArray3标志键盘行线3状态*/
74 bit bArray4;/*bArray4标志键盘行线4状态*/
75 unsigned char idata ucKeyMultiUse;/*ucKeyMultiUse标志键盘是否复用,0否,1是*/
76 unsigned char idata ucKeyDown;/*ucKeyDown标志是否有键按下,0否,1是*/
77 unsigned char idata ucKeyUp;/*ucKeyUp标志按键是否曾松开,0否,1是*/
78 unsigned char idata ucKeyDelay;/*ucKeyDelay标志是否已延迟10毫秒,0否,1是*/
79 unsigned char idata ucKeyCode;/*ucKeyCode标志键码*/
80 unsigned char idata ucKeyDownTime;/*ucKeyDownTime标志按键按下次数*/
81 unsigned char idata ucDelayTime;/*ucDelayTime标志两次按键按下之间的时间间隔*/
82 unsigned char idata ucCountDelayTime;
83 /*ucCountDelayTime标志是否对ucDelayTime计时,0否,1是*/
84 unsigned char idata ucKeyNo;
85 /*ucKeyNo在键盘不复用时标志何键被按下,复用时标志上次何键被按下*/
86 unsigned char idata ucKeyNoNew;/*ucKeyNoNew标志在键盘复用时最近一次何键被按下*/
87 unsigned char idata ucBell;/*ucBell标志蜂鸣器状态,0不响,1要响,2在响*/
88
89 /********************************************/
90 /* 子函数 */
91 /********************************************/
92 /************* whether_key_down() 检查是否有键按下
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -