📄 keyboard.lst
字号:
C51 COMPILER V8.05a KEYBOARD 07/25/2008 14:45:04 PAGE 1
C51 COMPILER V8.05a, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN Keyboard.OBJ
COMPILER INVOKED BY: C:\Program Files\Keil\C51\BIN\C51.EXE Keyboard.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include"at89x52.h"
2 #include<intrins.h>
3 #include"def.h"
4
5 //******************************************************************
6 bit scan(void) /*扫描键盘副程式*/
7 { char a1=0xef,i; /*A1=0Xef行扫描初值,I列*/
8 1 ptr=0;
9 1 for(i=0;i<4;i++) /*键盘4个扫描行*/
10 1 {
11 2 P1=a1; /*行扫描输出,读入P1存入M,以便侦测行与侦测按键是否放开*/
12 2 m=P1;
13 2 switch(m&0x0f) /*取列的低4位元,侦测哪一列被按*/
14 2 {
15 3 case 0x07: ptr=i*4; /*第一列被按否?是则扫描指标=行X4*/
16 3 return 1; /*返回1*/
17 3 case 0x0b: ptr=i*4+1; /*第二列被按否?是则扫描指标=行X4+1*/
18 3 return 1; /*返回1*/
19 3 case 0x0d: ptr=i*4+2; /*第三列被按否?是则扫描指标=行X4+2*/
20 3 return 1; /*返回1*/
21 3 case 0x0e: ptr=i*4+3; /*第四列被按否?是则扫描指标=行X4+3*/
22 3 return 1; /*返回1*/
23 3 default: break; /*跳出此循环*/
24 3 }
25 2 a1=a1<<1|0x01; /*高位补1,由于P1.7~P1.4未接+5V,而是由指令加载高电平*/
26 2 }
27 1 return 0;
28 1 } /*返回主程式*/
29 /********************************************************/
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 77 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 36 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -