📄 key.lst
字号:
C51 COMPILER V8.05a KEY 03/25/2009 14:01:50 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE KEY
OBJECT MODULE PLACED IN key.OBJ
COMPILER INVOKED BY: D:\学习\Keil 3\C51\BIN\C51.EXE key.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include<reg52.h>
2 #include<key.h>
3
4 static void delay(void);
5 void delay(void) //延时子程序
6 {
7 1 unsigned char n, m;
8 1 for (n = 100; n > 0; n--)
9 1 for (m = 300; m > 0; m--);
10 1 }
11 uchar KeyScan(void) //按键扫描程序 P1.0--P1.3为行线 P1.4--P1.7为列线
12 {
13 1 uchar rcode, ccode;
14 1 PX = 0xF0; // 发全0行扫描码,列线输入
15 1 if((PX&0xF0) != 0xF0) // 若有键按下
16 1 {
17 2 delay(); // 延时去抖动
18 2 if((PX&0xF0) != 0xF0)
19 2 { rcode = 0xFE; // 逐行扫描初值
20 3 while((rcode&0x10) != 0)
21 3 {
22 4 PX = rcode; // 输出行扫描码
23 4 if((PX&0xF0) != 0xF0) // 本行有键按下
24 4 {
25 5 ccode = (PX&0xF0)|0x0F;
26 5 do{;}while((PX&0xF0) != 0xF0); //等待键释放
27 5 return ((~rcode) + (~ccode)); // 返回键编码
28 5 }
29 4 else
30 4 rcode = (rcode<<1)|0x01; // 行扫描码左移一位
31 4 }
32 3 }
33 2 }
34 1 return 0; // 无键按下,返回值为0
35 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 81 ----
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 + -