📄 fhy.lst
字号:
218 1 {dirve();
219 2 }
220 1
221 1 }
222
223
224 /*调整闹时时间*/
225
226
227 void time1_adj()
228 {
229 1 if(P2_2==0) delay(1);
230 1 if(P2_2==0) t_hour++;
231 1 if(t_hour==24) t_hour=0;
232 1
233 1
234 1 for(m=0;m<30;m++)
235 1 {t_dirve();
236 2 }
237 1
238 1 if(P2_1==0) delay(1);
239 1 if(P2_1==0) t_min++;
240 1 if(t_min==60) t_min=0;
241 1
C51 COMPILER V8.02 FHY 03/01/2009 08:55:07 PAGE 5
242 1
243 1 for(m=0;m<30;m++)
244 1 {t_dirve();
245 2 }
246 1 }
247
248 /*调整倒计时时间*/
249
250
251 void time2_adj()
252
253
254 { if(P2_2==0) delay(1);
255 1 if(P2_2==0) d_hour++;
256 1 if(d_hour==12) d_hour=0;
257 1
258 1
259 1 if(P2_1==0) delay(1);
260 1 if(P2_1==0) d_min++;
261 1 if(d_min==60) d_min=0;
262 1
263 1
264 1 if(P2_0==0) delay(1);
265 1 if(P2_0==0) dflag=1;
266 1
267 1 for(m=0;m<30;m++)
268 1 d_dirve();
269 1 }
270
271
272
273
274 /*走时时间输出驱动子函数*/
275
276
277
278 void dirve()
279
280
281 { for(posit1=0;posit1<6;posit1++)
282 1 {
283 2 P1=DATA_7SEG[dis_buff1[posit1]];
284 2 P3=DATA_P3[posit1];
285 2 delay(1);
286 2 P1=0xff;
287 2 }
288 1
289 1 }
290
291
292 /*闹时时间输出驱动子函数*/
293
294
295
296 void t_dirve()
297
298
299 {
300 1 for(posit2=0;posit2<6;posit2++)
301 1 {P1=DATA_7SEG[dis_buff2[posit2]];
302 2 P3=DATA_P3[posit2];
303 2 delay(1);
C51 COMPILER V8.02 FHY 03/01/2009 08:55:07 PAGE 6
304 2 P1=0xff;
305 2 }
306 1 }
307
308
309 /*倒计时时间输出驱动子函数*/
310
311
312
313 void d_dirve()
314
315
316
317 {
318 1 for(posit3=0;posit3<6;posit3++)
319 1 {
320 2 P1=DATA_7SEG[dis_buff3[posit3]];
321 2 P3=DATA_P3[posit3];
322 2 delay(1);
323 2 P1=0xff;
324 2 }
325 1 }
326
327
328
329 /*判别闹钟是否到时子函数*/
330
331
332 void p_out()
333
334
335 { if(o_f==1)
336 1 {if(hour==t_hour&&min==t_min&&sec==t_sec)
337 2 {almflag2=1;}
338 2 if(P2_0==0)
339 2 almflag2=0;
340 2 }
341 1 }
342
343
344 /*走时计数值送显示缓冲区函数*/
345
346
347 void data_to_disbuffer1(void)
348
349 {dis_buff1[0]=hour/10;
350 1 dis_buff1[1]=hour%10;
351 1 dis_buff1[2]= min/10;
352 1 dis_buff1[3]= min%10;
353 1 dis_buff1[4]= sec/10;
354 1 dis_buff1[5]= sec%10;
355 1 }
356
357
358 /*闹钟计数值送显示缓冲区函数*/
359
360 void data_to_disbuffer2(void)
361
362
363 {
364 1 dis_buff2[0]=t_hour/10;
365 1 dis_buff2[1]=t_hour%10;
C51 COMPILER V8.02 FHY 03/01/2009 08:55:07 PAGE 7
366 1 dis_buff2[2]= t_min/10;
367 1 dis_buff2[3]= t_min%10;
368 1 dis_buff2[4]= t_sec/10;
369 1 dis_buff2[5]= t_sec/10;
370 1 }
371
372
373 /*倒计时计数值送显示缓冲区函数*/
374
375
376 void data_to_disbuffer3(void)
377
378
379 {
380 1 dis_buff3[0]=d_hour/10;
381 1 dis_buff3[1]=d_hour%10;
382 1 dis_buff3[2]= d_min/10;
383 1 dis_buff3[3]= d_min%10;
384 1 dis_buff3[4]= d_sec/10;
385 1 dis_buff3[5]= d_sec%10;
386 1 }
387
388
389 /*主函数*/
390
391
392 void main()
393
394
395
396 { timer_init();
397 1 EA=1;
398 1 while(1)
399 1 { conv();
400 2 if(dflag==1)
401 2 d_conv();
402 2
403 2 if(almflag1==1)
404 2 { P2_4=0;
405 3 delay(100);
406 3 P2_4=1;
407 3 almflag1=0;
408 3 }
409 2 if(P2_3==0)
410 2 scan_key();
411 2 switch(set)
412 2 {
413 3 case 0 : time(); break;
414 3 case 1 : time1_adj(); break;
415 3 case 2 : time1_of(); break;
416 3 case 3 : time2_adj(); break;
417 3 case 4 : time_adj(); break;
418 3 default : break;
419 3 }
420 2 data_to_disbuffer1();
421 2 data_to_disbuffer2();
422 2 data_to_disbuffer3();
423 2
424 2 }
425 1 }
C51 COMPILER V8.02 FHY 03/01/2009 08:55:07 PAGE 8
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 995 ----
CONSTANT SIZE = ---- ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 62 ----
IDATA SIZE = ---- ----
BIT SIZE = 1 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -