?? 鍵盤檢測.lst
字號:
C51 COMPILER V6.12 _黖__觳_ 12/02/2006 20:21:57 PAGE 1
C51 COMPILER V6.12, COMPILATION OF MODULE _黖__觳_
OBJECT MODULE PLACED IN C:\DOCUME~1\LD9149~1.XC-\桌面\51\手冊程序\四AEA3~1.矩\鍵盤檢測.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\DOCUME~1\LD9149~1.XC-\桌面\51\手冊程序\四AEA3~1.矩\鍵盤檢測.C DB SB OE
stmt level source
1 //4*4鍵盤檢測程序,按下鍵后相應(yīng)的代碼顯示在數(shù)碼管上
2 #include<reg51.h>
3 sbit beep=P2^3;
4 sbit dula=P2^6;
5 sbit wela=P2^7;
6 unsigned char i=100;
7 unsigned char j,k,temp,key;
8 void delay(unsigned char i)
9 {
10 1 for(j=i;j>0;j--)
11 1 for(k=125;k>0;k--);
12 1 }
13 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
14 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71};
15 display(unsigned char num)
16 {
17 1 P0=table[num];
18 1 // P0=0xff;
19 1 dula=1;
20 1 dula=0;
21 1 P0=0xc0;
22 1 wela=1;
23 1 wela=0;
24 1 }
25 void main()
26 {
27 1 dula=0;
28 1 wela=0;
29 1 while(1)
30 1 {
31 2 P3=0xfe;
32 2 temp=P3;
33 2 temp=temp&0xf0;
34 2 if(temp!=0xf0)
35 2 {
36 3 delay(10);
37 3 if(temp!=0xf0)
38 3 {
39 4 temp=P3;
40 4 switch(temp)
41 4 {
42 5 case 0xee:
43 5 key=0;
44 5 break;
45 5
46 5 case 0xde:
47 5 key=1;
48 5 break;
49 5
50 5 case 0xbe:
51 5 key=2;
52 5 break;
53 5
54 5 case 0x7e:
55 5 key=3;
C51 COMPILER V6.12 _黖__觳_ 12/02/2006 20:21:57 PAGE 2
56 5 break;
57 5 }
58 4 while(temp!=0xf0)
59 4 {
60 5 temp=P3;
61 5 temp=temp&0xf0;
62 5 beep=0;
63 5 }
64 4 beep=1;
65 4 display(key);
66 4 // P0=table[key];
67 4 /* P0=0xff;
68 4 dula=1;
69 4
70 4 while(i--);
71 4 dula=0;
72 4 P0=0xc0;
73 4 wela=1;
74 4 wela=0;
75 4 dula=0;
76 4 wela=0;
77 4 P0=0xff;
78 4 dula=1;
79 4 dula=0;
80 4 P0=0xc5;
81 4 wela=1;
82 4 wela=0; */
83 4 P1=0xfe;
84 4 }
85 3 }
86 2 P3=0xfd;
87 2 temp=P3;
88 2 temp=temp&0xf0;
89 2 if(temp!=0xf0)
90 2 {
91 3 delay(10);
92 3 if(temp!=0xf0)
93 3 {
94 4 temp=P3;
95 4 switch(temp)
96 4 {
97 5 case 0xed:
98 5 key=4;
99 5 break;
100 5
101 5 case 0xdd:
102 5 key=5;
103 5 break;
104 5
105 5 case 0xbd:
106 5 key=6;
107 5 break;
108 5
109 5 case 0x7d:
110 5 key=7;
111 5 break;
112 5 }
113 4 while(temp!=0xf0)
114 4 {
115 5 temp=P3;
116 5 temp=temp&0xf0;
117 5 beep=0;
C51 COMPILER V6.12 _黖__觳_ 12/02/2006 20:21:57 PAGE 3
118 5 }
119 4 beep=1;
120 4 display(key);
121 4 /* P0=table[key];
122 4 dula=1;
123 4 // while(100--);
124 4 dula=0;
125 4 P0=0xc0;
126 4 wela=1;
127 4 wela=0;
128 4 */ P1=0xfc;
129 4 }
130 3 }
131 2 P3=0xfb;
132 2 temp=P3;
133 2 temp=temp&0xf0;
134 2 if(temp!=0xf0)
135 2 {
136 3 delay(10);
137 3 if(temp!=0xf0)
138 3 {
139 4 temp=P3;
140 4 switch(temp)
141 4 {
142 5 case 0xeb:
143 5 key=8;
144 5 break;
145 5
146 5 case 0xdb:
147 5 key=9;
148 5 break;
149 5
150 5 case 0xbb:
151 5 key=10;
152 5 break;
153 5
154 5 case 0x7b:
155 5 key=11;
156 5 break;
157 5 }
158 4 while(temp!=0xf0)
159 4 {
160 5 temp=P3;
161 5 temp=temp&0xf0;
162 5 beep=0;
163 5 }
164 4 beep=1;
165 4 display(key);
166 4 /* P0=table[key];
167 4 dula=1;
168 4 // while(100--);
169 4 dula=0;
170 4 P0=0xc0;
171 4 wela=1;
172 4 wela=0;
173 4 */ P1=0xf8;
174 4 }
175 3 }
176 2 P3=0xf7;
177 2 temp=P3;
178 2 temp=temp&0xf0;
179 2 if(temp!=0xf0)
C51 COMPILER V6.12 _黖__觳_ 12/02/2006 20:21:57 PAGE 4
180 2 {
181 3 delay(10);
182 3 if(temp!=0xf0)
183 3 {
184 4 temp=P3;
185 4 switch(temp)
186 4 {
187 5 case 0xe7:
188 5 key=12;
189 5 break;
190 5
191 5 case 0xd7:
192 5 key=13;
193 5 break;
194 5
195 5 case 0xb7:
196 5 key=14;
197 5 break;
198 5
199 5 case 0x77:
200 5 key=15;
201 5 break;
202 5 }
203 4 while(temp!=0xf0)
204 4 {
205 5 temp=P3;
206 5 temp=temp&0xf0;
207 5 beep=0;
208 5 }
209 4 beep=1;
210 4 display(key);
211 4 /* P0=table[key];
212 4 dula=1;
213 4 // while(100--);
214 4 dula=0;
215 4 P0=0xc0;
216 4 wela=1;
217 4 wela=0;
218 4 */ P1=0xf0;
219 4 }
220 3 }
221 2 }
222 1 }
C51 COMPILER V6.12 _黖__觳_ 12/02/2006 20:21:57 PAGE 5
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
P0 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0080H 1
P1 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 0090H 1
P2 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00A0H 1
P3 . . . . . . . . . . . . . . . . . . SFR DATA U_CHAR 00B0H 1
T0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B4H 1
AC . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D6H 1
T1 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B5H 1
EA . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AFH 1
table. . . . . . . . . . . . . . . . . PUBLIC CODE ARRAY 0000H 16
RD . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B7H 1
ES . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ACH 1
RI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0098H 1
INT0 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B2H 1
CY . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D7H 1
TI . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0099H 1
INT1 . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B3H 1
beep . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A3H 1
PS . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BCH 1
OV . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D2H 1
main . . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
dula . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A6H 1
WR . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B6H 1
wela . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A7H 1
temp . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0000H 1
IE0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0089H 1
IE1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008BH 1
ET0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A9H 1
key. . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0001H 1
ET1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00ABH 1
TF0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008DH 1
TF1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008FH 1
RB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009AH 1
EX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00A8H 1
IT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 0088H 1
TB8. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009BH 1
EX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00AAH 1
IT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008AH 1
P. . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D0H 1
SM0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009FH 1
SM1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009EH 1
SM2. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009DH 1
PT0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B9H 1
PT1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BBH 1
RS0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D3H 1
TR0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008CH 1
RS1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D4H 1
TR1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 008EH 1
PX0. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B8H 1
PX1. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00BAH 1
_display . . . . . . . . . . . . . . . PUBLIC CODE PROC 0004H -----
num. . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
REN. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 009CH 1
i. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0002H 1
j. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0003H 1
k. . . . . . . . . . . . . . . . . . . PUBLIC DATA U_CHAR 0004H 1
RXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B0H 1
TXD. . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00B1H 1
C51 COMPILER V6.12 _黖__觳_ 12/02/2006 20:21:57 PAGE 6
NAME CLASS MSPACE TYPE OFFSET SIZE
==== ===== ====== ==== ====== ====
_delay . . . . . . . . . . . . . . . . PUBLIC CODE PROC 0000H -----
i. . . . . . . . . . . . . . . . . . * REG * DATA U_CHAR 0007H 1
F0 . . . . . . . . . . . . . . . . . . ABSBIT ----- BIT 00D5H 1
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 404 ----
CONSTANT SIZE = 16 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 5 ----
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
?? 快捷鍵說明
復(fù)制代碼
Ctrl + C
搜索代碼
Ctrl + F
全屏模式
F11
切換主題
Ctrl + Shift + D
顯示快捷鍵
?
增大字號
Ctrl + =
減小字號
Ctrl + -