📄 hailai.lst
字号:
C51 COMPILER V8.02 HAILAI 08/12/2008 11:21:20 PAGE 1
C51 COMPILER V8.02, COMPILATION OF MODULE HAILAI
OBJECT MODULE PLACED IN hailai.OBJ
COMPILER INVOKED BY: E:\design tools\keilc\C51\BIN\C51.EXE hailai.c BROWSE DEBUG OBJECTEXTEND
line level source
1 #include <reg51.h>
2 #include <stdio.h>
3 #define uchar unsigned char
4 #define uint unsigned int
5 sbit key1=P3^2;
6 sbit key2=P3^3;
7 sbit key3=P3^4;
8 sbit wei=P3^7;
9 sbit duan=P3^6;
10 uchar h,count,num,dat,flag,dat1,num1,key1num,temp,keyc,keyz;
11 uint r=0;
12 uint s;
13 uchar code dis[]={
14
15 0Xc0,/*0*/
16 0Xf9,/*1*/
17 0Xa4,/*2*/
18 0Xb0,/*3*/
19 0X99,/*4*/
20 0X92,/*5*/
21 0X82,/*6*/
22 0Xf8,/*7*/
23 0X80,/*8*/
24 0X90,/*9*/
25 0Xff,/*NULL*/
26 };
27
28
29 void delay(uint c)
30 {
31 1 uint i,j;
32 1 for(i=0;i<c;i++)
33 1 for(j=0;j<100;j++);
34 1
35 1 }
36
37 void init()
38 {
39 1 TMOD=0x11;//设置定时器0为工作方式1
40 1 TH0=(65536-10000)/256;
41 1 TL0=(65536-10000)%256;
42 1 TH1=(65536-20000)/256;
43 1 TL1=(65536-20000)%256;
44 1 EA=1;//开总中断
45 1 ET0=1;//开定时器0中断
46 1 ET1=1;
47 1 TR0=1;//启动定时器0
48 1 TR1=1;
49 1 num=56;
50 1 num1=56;
51 1 // P0=0xeb;
52 1 }
53 void display(uchar dat_z,uchar dat_c) //送显示
54 {
55 1 if(dat_z>=23&&dat_z<=56)
C51 COMPILER V8.02 HAILAI 08/12/2008 11:21:20 PAGE 2
56 1 {
57 2 if(dat_z>26&&dat_z<=56)
58 2 {
59 3 P0=0xeb;
60 3 /* wei=1;
61 3 P2=0x04;
62 3 wei=0;
63 3 delay(5);
64 3
65 3 wei=1;
66 3 P2=0x00;
67 3 wei=0;
68 3
69 3 duan=1;
70 3
71 3 P2=dis[(dat_z-23)/10];
72 3 duan=0;
73 3 delay(1);
74 3 wei=1;
75 3 P2=0x00;
76 3 wei=0; */
77 3
78 3 /* wei=1;
79 3 P2=0x08;
80 3 wei=0;
81 3
82 3 duan=1;
83 3 P2=dis[(dat_z-23)%10];
84 3 duan=0;
85 3 delay(1);
86 3 wei=1;
87 3 P2=0x00;
88 3 wei=0; */
89 3 wei=1;
90 3 P2=0x4;
91 3 wei=0;
92 3
93 3 P3=0x00;
94 3 P2=0xff;
95 3 P3=0x10;
96 3 P2=dis[(dat_c-26)/10];
97 3 delay(1);
98 3
99 3 /*
100 3 P3=0x00;
101 3 P2=0xff;
102 3 P3=0x20;
103 3 P2=dis[(dat_c-26)%10];
104 3 delay(1); */
105 3 }
106 2 /* if(dat_z>=23&&dat_z<=26)
107 2 {
108 2
109 2 P0=0xe2;
110 2
111 2 P3=0x00;
112 2 P1=0xff;
113 2 P3=0x80;
114 2 P1=dis[(dat_z-23)%10];
115 2 delay(1);
116 2
117 2 P3=0x00;
C51 COMPILER V8.02 HAILAI 08/12/2008 11:21:20 PAGE 3
118 2 P2=0xff;
119 2 P3=0x20;
120 2 P2=dis[(dat_c-23)%10];
121 2 delay(1);
122 2 }
123 2 }
124 2 if(dat_z<23)
125 2 {
126 2 if(dat_z>3&&dat_z<23)
127 2 {
128 2 P0=0xdd;//红灯
129 2 P3=0x00;
130 2 P1=0xff;
131 2 P3=0x40;
132 2 P1=dis[(dat_z)/10];
133 2 delay(1);
134 2 P3=0x00;
135 2 P1=0xff;
136 2 P3=0x80;
137 2 P1=dis[(dat_z)%10];
138 2 delay(1);
139 2 P3=0x00;
140 2 P2=0xff;
141 2 P3=0x10;
142 2 P2=dis[(dat_c-3)/10];
143 2 delay(1);
144 2
145 2
146 2 P3=0x00;
147 2 P2=0xff;
148 2 P3=0x20;
149 2 P2=dis[(dat_c-3)%10];
150 2 delay(1);
151 2 }
152 2 if(dat_z<=3)
153 2 {
154 2
155 2 P0=0xd4;
156 2 P3=0x00;
157 2 P1=0xff;
158 2 P3=0x80;
159 2 P1=dis[(dat_z)%10];
160 2 delay(1);
161 2
162 2 P3=0x00;
163 2 P2=0xff;
164 2 P3=0x20;
165 2 P2=dis[(dat_c)%10];
166 2 delay(1);
167 2
168 2 } */
169 2 }
170 1
171 1
172 1 }
173 void keyscan() //键盘检测
174 {
175 1 if(key1==0)
176 1 {
177 2 delay(5);
178 2 if(key1==0)
179 2 {
C51 COMPILER V8.02 HAILAI 08/12/2008 11:21:20 PAGE 4
180 3 key1num++;
181 3 while(!key1)
182 3 {
183 4 display(num,num1);
184 4 }
185 3 if(key1num==1)
186 3 {
187 4 TR0=0;
188 4 TR1=0;
189 4 }
190 3 if(key1num==2)
191 3 {
192 4 TR0=1;
193 4 TR1=1;
194 4 P1=temp;
195 4 key1num=0;
196 4
197 4 }
198 3 }
199 2
200 2 }
201 1 if(key1num!=0)
202 1 {
203 2 if(key2==0)
204 2 {
205 3 delay(5);
206 3 if(key2==0)
207 3 {
208 4 while(!key2)
209 4 {
210 5 display(num,num1);
211 5 }
212 4 if(key1num==1)
213 4 {
214 5 num++;
215 5 display(num,num1);
216 5
217 5 }
218 4 if(key1num==2)
219 4 {
220 5 num++;
221 5 display(num,num1);
222 5 }
223 4 }
224 3 }
225 2 if(key3==0)
226 2 {
227 3 delay(5);
228 3 if(key3==0)
229 3 {
230 4 while(!key3)
231 4 {
232 5 display(num,num1);
233 5 }
234 4
235 4 if(key1num==1)
236 4 {
237 5 if(num==0)
238 5 num=32;
239 5 num--;
240 5 }
241 4
C51 COMPILER V8.02 HAILAI 08/12/2008 11:21:20 PAGE 5
242 4
243 4 }
244 3 }
245 2 }
246 1 }
247 void main() //主函数
248 {
249 1 init();
250 1 while(1)
251 1 {
252 2 keyscan();
253 2 if(count==8)
254 2 {
255 3 count=0;
256 3 num--;
257 3 num1--;
258 3
259 3 if(num==-1)
260 3 {
261 4 num=56;
262 4 }
263 3 if(num1==-1)
264 3 {
265 4 num1=56;
266 4 }
267 3 }
268 2 display(num,num1);
269 2 }
270 1 }
271 void t0(void ) interrupt 1 //定时器T0
272 {
273 1 TH0=(65535-50000)/256;
274 1 TL0=(65535-50000)%256;
275 1 count++;
276 1 // num1++;
277 1
278 1
279 1 }
280 void time1() interrupt 3 //定时器T1
281 {
282 1 TH1=(65536-20000)/256;
283 1 TL1=(65536-20000)%256;
284 1
285 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 304 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 15 ----
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 + -