📄 0.lst
字号:
C51 COMPILER V8.02 0 06/23/2010 10:45:31 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE 0
OBJECT MODULE PLACED IN 0.OBJ
COMPILER INVOKED BY: D:\处理软件\keil\C51\BIN\C51.EXE 0.c BROWSE DEBUG OBJECTEXTEND
line level source
1 /******************************************************************
2 “天祥电子” 倾情奉献
3 www.txmcu.com
4 www.txmcu.cn
5 *******************************************************************
6
7 程序功能:按下键盘矩阵后,在六个数码管上依次显示所按下的键所代表的数字。
8 按复位键可以清空显示为0
9 ******************************************************************/
10 #include<reg51.h>
11
12 #define uchar unsigned char
13
14 uchar a0=16,b0=16,c0=16,d0=16,e0=16,f0=16,wei,temp,key,i,j,k;
15 sbit dula=P2^6;
16 sbit wela=P2^7;
17 sbit beep=P2^3;
18
19 unsigned char code table[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,
20 0x07,0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71,0x00};
21
22 void delay(uchar i)
23 {
24 1 for(j=i;j>0;j--)
25 1 for(k=125;k>0;k--);
26 1 }
27 void display(uchar a,uchar b,uchar c,uchar d,uchar e,uchar f)
28 {
29 1 dula=0;
30 1 P0=table[a];
31 1 dula=1;
32 1 dula=0;
33 1
34 1 wela=0;
35 1 P0=0xfe;
36 1 wela=1;
37 1 wela=0;
38 1 delay(5);
39 1
40 1 P0=table[b];
41 1 dula=1;
42 1 dula=0;
43 1
44 1 P0=0xfd;
45 1 wela=1;
46 1 wela=0;
47 1 delay(5);
48 1
49 1 P0=table[c];
50 1 dula=1;
51 1 dula=0;
52 1
53 1 P0=0xfb;
54 1 wela=1;
55 1 wela=0;
C51 COMPILER V8.02 0 06/23/2010 10:45:31 PAGE 2
56 1 delay(5);
57 1
58 1 P0=table[d];
59 1 dula=1;
60 1 dula=0;
61 1
62 1 P0=0xf7;
63 1 wela=1;
64 1 wela=0;
65 1 delay(5);
66 1
67 1 P0=table[e];
68 1 dula=1;
69 1 dula=0;
70 1
71 1 P0=0xef;
72 1 wela=1;
73 1 wela=0;
74 1 delay(5);
75 1
76 1 P0=table[f];
77 1 dula=1;
78 1 dula=0;
79 1
80 1 P0=0xdf;
81 1 wela=1;
82 1 wela=0;
83 1 delay(5);
84 1 }
85
86 void keyscan()
87 {
88 1 {
89 2 P3=0xfe;
90 2 temp=P3;
91 2 temp=temp&0xf0;
92 2 if(temp!=0xf0)
93 2 {
94 3 delay(10);
95 3 if(temp!=0xf0)
96 3 {
97 4 temp=P3;
98 4 switch(temp)
99 4 {
100 5 case 0xee:
101 5 key=0;
102 5 wei++;
103 5 break;
104 5
105 5 case 0xde:
106 5 key=1;
107 5 wei++;
108 5 break;
109 5
110 5 case 0xbe:
111 5 key=2;
112 5 wei++;
113 5 break;
114 5
115 5 case 0x7e:
116 5 key=3;
117 5 wei++;
C51 COMPILER V8.02 0 06/23/2010 10:45:31 PAGE 3
118 5 break;
119 5 }
120 4 while(temp!=0xf0)
121 4 {
122 5 temp=P3;
123 5 temp=temp&0xf0;
124 5 beep=0;
125 5 }
126 4 beep=1;
127 4 }
128 3 }
129 2 P3=0xfd;
130 2 temp=P3;
131 2 temp=temp&0xf0;
132 2 if(temp!=0xf0)
133 2 {
134 3 delay(10);
135 3 if(temp!=0xf0)
136 3 {
137 4 temp=P3;
138 4 switch(temp)
139 4 {
140 5 case 0xed:
141 5 key=4;
142 5 wei++;
143 5 break;
144 5
145 5 case 0xdd:
146 5 key=5;
147 5 wei++;
148 5 break;
149 5
150 5 case 0xbd:
151 5 key=6;
152 5 wei++;
153 5 break;
154 5
155 5 case 0x7d:
156 5 key=7;
157 5 wei++;
158 5 break;
159 5 }
160 4 while(temp!=0xf0)
161 4 {
162 5 temp=P3;
163 5 temp=temp&0xf0;
164 5 beep=0;
165 5 }
166 4 beep=1;
167 4 }
168 3 }
169 2 P3=0xfb;
170 2 temp=P3;
171 2 temp=temp&0xf0;
172 2 if(temp!=0xf0)
173 2 {
174 3 delay(10);
175 3 if(temp!=0xf0)
176 3 {
177 4 temp=P3;
178 4 switch(temp)
179 4 {
C51 COMPILER V8.02 0 06/23/2010 10:45:31 PAGE 4
180 5 case 0xeb:
181 5 key=8;
182 5 wei++;
183 5 break;
184 5
185 5 case 0xdb:
186 5 key=9;
187 5 wei++;
188 5 break;
189 5
190 5 case 0xbb:
191 5 key=10;
192 5 wei++;
193 5 break;
194 5
195 5 case 0x7b:
196 5 key=11;
197 5 wei++;
198 5 break;
199 5 }
200 4 while(temp!=0xf0)
201 4 {
202 5 temp=P3;
203 5 temp=temp&0xf0;
204 5 beep=0;
205 5 }
206 4 beep=1;
207 4 }
208 3 }
209 2 P3=0xf7;
210 2 temp=P3;
211 2 temp=temp&0xf0;
212 2 if(temp!=0xf0)
213 2 {
214 3 delay(10);
215 3 if(temp!=0xf0)
216 3 {
217 4 temp=P3;
218 4 switch(temp)
219 4 {
220 5 case 0xe7:
221 5 key=12;
222 5 wei++;
223 5 break;
224 5
225 5 case 0xd7:
226 5 key=13;
227 5 wei++;
228 5 break;
229 5
230 5 case 0xb7:
231 5 key=14;
232 5 wei++;
233 5 break;
234 5
235 5 case 0x77:
236 5 key=15;
237 5 wei++;
238 5 break;
239 5 }
240 4 while(temp!=0xf0)
241 4 {
C51 COMPILER V8.02 0 06/23/2010 10:45:31 PAGE 5
242 5 temp=P3;
243 5 temp=temp&0xf0;
244 5 beep=0;
245 5 }
246 4 beep=1;
247 4 }
248 3 }
249 2 }
250 1 }
251 void main()
252 {
253 1 while(1)
254 1 {
255 2 keyscan();
256 2 if(key!=20)
257 2 {
258 3 switch(wei)
259 3 {
260 4 case 1: a0=key;
261 4 b0=16;
262 4 c0=16;
263 4 d0=16;
264 4 e0=16;
265 4 f0=16;
266 4 break;
267 4 case 2: b0=key;
268 4 c0=16;
269 4 d0=16;
270 4 e0=16;
271 4 f0=16;
272 4 break;
273 4 case 3: c0=key;
274 4 d0=16;
275 4 e0=16;
276 4 f0=16;
277 4 break;
278 4 case 4: d0=key;
279 4 e0=16;
280 4 f0=16;
281 4 break;
282 4 case 5: e0=key;
283 4 f0=16;
284 4 break;
285 4 case 6: f0=key;
286 4 wei=0;
287 4 break;
288 4 }
289 3 key=20;
290 3 }
291 2 display(a0,b0,c0,d0,e0,f0);
292 2 }
293 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 591 ----
CONSTANT SIZE = 17 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 12 6
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
C51 COMPILER V8.02 0 06/23/2010 10:45:31 PAGE 6
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -