📄 keyboard.lst
字号:
C51 COMPILER V7.50 KEYBOARD 09/08/2007 21:53:12 PAGE 1
C51 COMPILER V7.50, COMPILATION OF MODULE KEYBOARD
OBJECT MODULE PLACED IN KEYBOARD.OBJ
COMPILER INVOKED BY: F:\LC\software\Keil\UV2\C51\BIN\C51.EXE KEYBOARD.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <at89x51.h>
2 #include <absacc.h>
3
4 #define PA XBYTE[0XE000] // 8255 port A
5 #define PB XBYTE[0XE001] // 8255 port B
6 #define PC XBYTE[0XE002] // 8255 port C
7 #define CMD XBYTE[0XE003] // 8255 configuration word
8
9 #define byte unsigned char
10 #define word unsigned int
11
12 byte key_row;
13 byte key_column;
14
15 void delay20ms(void);
16 void display(void);
17 void calc_key(void);
18
19 void display(void)
20 {
21 1 // display
22 1 }
23
24 void delay20ms(void)
25 {
26 1 byte i,j,k;
27 1 for(i=10; i>0; i--)
28 1 for(j=4; j>0; j--)
29 1 for(k=248; k>0; k--);
30 1 }
31
32 void calc_key(void)
33 {
34 1 byte tdata,i,j;
35 1
36 1 PA = 0x8F;
37 1 tdata = PB;
38 1 if (0xFF != tdata){
39 2 delay20ms();
40 2 tdata = PB;
41 2 if (0xFF != tdata){
42 3 for (i=0; i<8; i++){
43 4 if (tdata == ~(1<<i)){
44 5 key_column = i+1;
45 5 for (j=4; j<7; j++){
46 6 PA = 0x8F | (1<<j);
47 6 tdata = PB;
48 6 if (0xFF != tdata){
49 7 key_row = j-3;
50 7 display();
51 7 return;
52 7 }
53 6 }
54 5 key_column = 0;
55 5 return;
C51 COMPILER V7.50 KEYBOARD 09/08/2007 21:53:12 PAGE 2
56 5 }
57 4 }
58 3 }
59 2 }
60 1 }
61
62 void main(void)
63 {
64 1 CMD = 0x82;
65 1 for (;;){
66 2 calc_key();
67 2 }
68 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 125 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 2 ----
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 + -