📄 08819.lst
字号:
188 delay(5);
189 if(key2==0)
190 {
191 if(key1num==1)
192 {
193 while(!key2)
194 {
195 displayz(num);
196 }
197 num++;
198 if(num==56)
199 {
200 num=0;
201 }
202 }
203 if(key1num==2)
204 {
205 while(!key2)
206 {
207 displayc(num1);
208
209 }
210 num1++;
211 if(num1==56)
212 num1=0;
213 }
214 }
215 }
216 if(key3==0) //减一键
217 {
218 delay(5);
219 if(key3==0)
220 {
221 if(key1num==1)
222 {
223 while(!key3)
224 {
225 displayz(num);
226 }
227 num--;
228 if(num==0)
229 {
230 num=56;
231 }
232 }
233 if(key1num==2)
234 {
235 while(!key3)
236 {
237 displayc(num1);
238
239 }
240 num1--;
C51 COMPILER V8.02 08819 08/20/2008 10:36:23 PAGE 5
241 if(num1==0)
242 num1=56;
243 }
244 }
245 }
246 }
247
248
249 } */
250
251 void main() //程序主函数
252 {
253 1
254 1 init(); //初始化程序
255 1 while(1)
256 1 {
257 2 keyscan();
258 2
259 2 if(count==8) //自动倒计时功能
260 2 {
261 3 count=0;
262 3 if(flag==0)
263 3 {
264 4 zg--;cr--;
265 4 if(zg==0)
266 4 {
267 5 flag=1;
268 5 zg=30; cr=33; y=4;
269 5 }
270 4
271 4 }
272 3 if(flag==1)
273 3 {
274 4
275 4 y--;
276 4 if(y==0)
277 4 {
278 5 flag=2;
279 5 }
280 4 }
281 3 if(flag==2)
282 3 {
283 4
284 4 cg--;zr--;
285 4 if(cg==0)
286 4 {
287 5 flag=3;
288 5 y=4;
289 5 cg=20;
290 5 zr=23;
291 5 }
292 4 }
293 3 if(flag==3)
294 3 {
295 4 y--;
296 4 if(y==0)
297 4 {
298 5 flag=0;
299 5 y=4;
300 5 }
301 4 }
302 3
C51 COMPILER V8.02 08819 08/20/2008 10:36:23 PAGE 6
303 3 }
304 2
305 2
306 2 if(flag==0)
307 2 {
308 3 P0=0xdd;//红灯
309 3 display(zg,cr);
310 3 }
311 2 if(flag==1)
312 2 {
313 3 P0=0xd4;
314 3 displayy(y);
315 3 }
316 2 if(flag==2)
317 2 {
318 3 P0=0xeb;
319 3 display(cg,zr);
320 3 }
321 2 if(flag==3)
322 2 {
323 3 P0=0xe2;//黄灯
324 3 displayy(y);
325 3 }
326 2
327 2
328 2 }
329 1 }
330 void t0(void ) interrupt 1 //定时器T0 中断计时用
331 {
332 1 TH0=(65535-50000)/256;
333 1 TL0=(65535-50000)%256;
334 1 count++;
335 1 }
336 ////////////////////////////////////////////
337 //串口通信////////////////
338 //发送0x00,数码管停止,发送0xff,计时起动///
339 //发送0x01,设置主通道的时间//////////
340 //发送0x02 设置次通道的时间////////
341 void ser() interrupt 4
342 {
343 1 RI=0; //软件清零
344 1 // P1=SBUF;
345 1 a=SBUF; //读SBUF的值
346 1 // SBUF=a;
347 1 if(a==0x00)
348 1 {
349 2 flag=1; //标志位
350 2 TR0=0; //停止计数器
351 2 }
352 1 if(a==0xff)
353 1 {
354 2 TR0=1; //标志位
355 2 flag=0; //启动
356 2 }
357 1 if(flag==1)
358 1 {
359 2 if(a==0x01)
360 2 {
361 3 num=SBUF; //设置主通道的通车时间
362 3 }
363 2 if(a==0x02)
364 2 {
C51 COMPILER V8.02 08819 08/20/2008 10:36:23 PAGE 7
365 3 num1=SBUF; //设置次通道的通车时间
366 3 }
367 2 }
368 1 }
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 544 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 11 2
IDATA SIZE = ---- ----
BIT SIZE = ---- ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 1 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -