📄 keymatrix.lst
字号:
C51 COMPILER V7.00 KEYMATRIX 05/16/2007 10:42:12 PAGE 1
C51 COMPILER V7.00, COMPILATION OF MODULE KEYMATRIX
OBJECT MODULE PLACED IN keymatrix.OBJ
COMPILER INVOKED BY: D:\Program Files\keil中文版\Keil\C51\BIN\C51.EXE keymatrix.c BROWSE DEBUG OBJECTEXTEND
stmt level source
1 /* ***********************************************
2 键盘扫描程序
3 完成日期:
4 修改日期:
5 修改人员:
6 修改日期:
7 修改人员:
8 ***********************************************
9 */
10 #include <reg52.h>
11 #include "type.h"
12
13 // ===============================================
14 // 键盘延迟程序
15 // 输入参数:d数据范围[0,255],该参数决定延迟时间
16 // 输出参数:无
17 void KeyDelay(UCHAR d)
18 {
19 1 UCHAR i;
20 1 while(d--)
21 1 {
22 2 for ( i = 0; i < 220 ;i ++);
23 2 }
24 1 }
25 // ===============================================
26 // 键盘扫描码获取程序
27 // 功能简述:当按键按下后以第一次按下的键为有效键
28 // 输入参数:无
29 // 输出参数:扫描码
30 UCHAR getKey(void)
31 {
32 1 UCHAR idx=0,rt;
33 1 while(TRUE)
34 1 {
35 2 idx ++;
36 2 idx &= 3;
37 2 P1 = ~(1<<idx);
38 2 if ( (P1 & 0XF0) != 0XF0)
39 2 {
40 3 //some key pressed
41 3 KeyDelay(20);
42 3 if ( (P1 & 0XF0) != 0XF0)
43 3 {
44 4 rt = (P1&0xf0)+idx;
45 4 while(TRUE)
46 4 {
47 5 if ((P1 & 0XF0) == 0XF0)
48 5 {
49 6 KeyDelay(20);
50 6 if((P1 & 0XF0) == 0XF0)
51 6 {
52 7 break;
53 7 }
54 6 }
55 5 }
C51 COMPILER V7.00 KEYMATRIX 05/16/2007 10:42:12 PAGE 2
56 4 return rt;
57 4 }
58 3 }
59 2 }
60 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 89 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
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 + -