📄 fengshan.lst
字号:
293 1 delay();
294 1 P0=0xff;
295 1 P2_6=1;
296 1
297 1
298 1 P2_7=0;
299 1 P0=tempt[sdate%10];
300 1 delay();
301 1 P0=0xff;
302 1 P2_7=1;
303 1
C51 COMPILER V7.06 FENGSHAN 09/21/2008 16:50:11 PAGE 6
304 1 }
305 /*************************************************************
306 **函数名:time()
307 **输 入:
308 **输 出:
309 **************************************************************/
310 void time()
311 {
312 1 if(TF1==1)
313 1 {
314 2 TH1=(65535-1000)/256;
315 2 TL1=(65535-1000)%256;
316 2 us1000++;
317 2 if(us1000==500)
318 2 {
319 3 us1000=0;
320 3 inc_sec();
321 3 }
322 2 }
323 1 }
324 /*************************************************************
325 **函数名:主函数
326 **输 入:
327 **输 出:
328 **************************************************************/
329 void main()
330 {
331 1 uint num;
332 1 int Bcho;
333 1 P3_1=0;
334 1 TMOD=0x10; //设置定时器
335 1 TH1=(65535-1000)/256;
336 1 TL1=(65535-1000)%256;
337 1 TR1=1;
338 1 EA=1; //开总中断
339 1 IT0=1; //外部中断0触发方式控制位,下降沿触发
340 1 EX0=1; //外部中断0(INT0)中断允许位
341 1 ReadNByte(0xa0,0x00,ucSendBuffer,1);
342 1 t=ucSendBuffer[0];
343 1 ReadNByte(0xa0,0x01,ucSendBuffer,1);
344 1 Bcho=ucSendBuffer[0];
345 1 hour=t;
346 1 min=59;
347 1 sec=0;
348 1 us1000=0;
349 1 if(Bcho!=3) aa[0]=0x41;
350 1 if(P1_0==0) aa[0]=0x41;
351 1 while(aa[0]==0x41)
352 1 {
353 2 if(P1_0==0)
354 2 {
355 3 Bcho++;
356 3 if(Bcho>2) Bcho=0;
357 3 ucSendBuffer[0]=Bcho;//保存数据
358 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
359 3 beep();
360 3 aa[2]=0x00;
361 3 }
362 2 if(P1_1==0)
363 2 {
364 3 Bcho=4;
365 3 ucSendBuffer[0]=Bcho;//保存数据
C51 COMPILER V7.06 FENGSHAN 09/21/2008 16:50:11 PAGE 7
366 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
367 3 }
368 2 if(aa[2]==0x1e)
369 2 {
370 3 Bcho--;
371 3 if(Bcho<0) Bcho=2;
372 3 ucSendBuffer[0]=Bcho;//保存数据
373 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
374 3 beep();
375 3 aa[2]=0x00;
376 3 }
377 2 if(aa[2]==0x1a)
378 2 {
379 3 Bcho++;
380 3 if(Bcho>2) Bcho=0;
381 3 ucSendBuffer[0]=Bcho;//保存数据
382 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
383 3 beep();
384 3 aa[2]=0x00;
385 3 }
386 2 if(aa[2]==0x12)
387 2 {
388 3 Bcho=3;
389 3 ucSendBuffer[0]=Bcho;//保存数据
390 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
391 3 beep();
392 3 aa[2]=0x00;
393 3 }
394 2 if(aa[2]==0x16)
395 2 {
396 3 Bcho=4;
397 3 ucSendBuffer[0]=Bcho;//保存数据
398 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
399 3 beep();
400 3 aa[2]=0x00;
401 3 }
402 2 if(aa[2]==0x10)
403 2 {
404 3 P2_0=0;
405 3 Bcho=6;
406 3 ucSendBuffer[0]=Bcho;//保存数据
407 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
408 3 beep();
409 3 aa[2]=0x00;
410 3 }
411 2 if(aa[2]==0x5a)
412 2 {
413 3 Bcho=5;
414 3 ucSendBuffer[0]=Bcho;//保存数据
415 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
416 3 beep();
417 3 aa[2]=0x00;
418 3 }
419 2 if(aa[2]==0x45)
420 2 {
421 3 Bcho=1;
422 3 ucSendBuffer[0]=Bcho;//保存数据
423 3 WriteNByte(0xa0,0x01,ucSendBuffer,1);
424 3 beep();
425 3 aa[2]=0x00;
426 3 }
427 2 switch(Bcho)
C51 COMPILER V7.06 FENGSHAN 09/21/2008 16:50:11 PAGE 8
428 2 {
429 3 case 0:
430 3 P3_1=0;
431 3 P2=0xc6;
432 3 break;
433 3 case 1:
434 3 P2_4=1;
435 3 P2_5=1;
436 3 P3_1=0;
437 3 num=hour;
438 3 if(num==0)
439 3 {
440 4 P2_0=1;
441 4 P0=0xff;
442 4 P2_6=1;
443 4 P2_7=1;
444 4 }
445 3 else if(num==1)
446 3 {
447 4 time();
448 4 P2_0=0;
449 4 led(min);
450 4 }
451 3 else
452 3 {
453 4 time();
454 4 P2_0=0;
455 4 led(hour);
456 4 }
457 3 break;
458 3 case 2 :
459 3 P3_1=0;
460 3 led(hour);
461 3 hour=t;
462 3 min=59;
463 3 sec=0;
464 3 us1000=0;
465 3 P2_0=1;//关风扇
466 3 P2_4=1;
467 3 P2_5=0;
468 3 P2_3=1;
469 3 P3_1=0;
470 3 if(aa[2]==0x1b)
471 3 {
472 4 t++;
473 4 if(t>10) t=1;
474 4 ucSendBuffer[0]=t;//保存数据
475 4 WriteNByte(0xa0,0x00,ucSendBuffer,1);
476 4
477 4 ReadNByte(0xa0,0x00,ucSendBuffer,1);
478 4 t=ucSendBuffer[0];
479 4 beep();
480 4 aa[2]=0x00;
481 4 }
482 3 if(aa[2]==0x1f)
483 3 {
484 4 t--;
485 4 if(t<1) t=10;
486 4 ucSendBuffer[0]=t;//保存数据
487 4 WriteNByte(0xa0,0x00,ucSendBuffer,1);
488 4
489 4 ReadNByte(0xa0,0x00,ucSendBuffer,1);
C51 COMPILER V7.06 FENGSHAN 09/21/2008 16:50:11 PAGE 9
490 4 t=ucSendBuffer[0];
491 4 beep();
492 4 aa[2]=0x00;
493 4 }
494 3 if(P1_2==0)
495 3 {
496 4 t++;
497 4 if(t>10) t=1;
498 4 ucSendBuffer[0]=t;//保存数据
499 4 WriteNByte(0xa0,0x00,ucSendBuffer,1);
500 4
501 4 ReadNByte(0xa0,0x00,ucSendBuffer,1);
502 4 t=ucSendBuffer[0];
503 4 beep();
504 4 aa[2]=0x00;
505 4 }
506 3 break;
507 3 case 3:
508 3 P2=0xff;
509 3 P3_1=0;
510 3 break;
511 3 case 4:
512 3 ReadTemperature();
513 3 led(sdata);
514 3 P2_4=0;
515 3 P2_5=1;
516 3 P2_3=1;
517 3 P3_1=0;
518 3 break;
519 3 case 5:
520 3 P2_0=0;
521 3 delay1(1000);
522 3 P2_0=1;
523 3 delay1(2000);
524 3 P2_0=0;
525 3 delay1(3000);
526 3 P2_0=1;
527 3 delay1(1000);
528 3 break;
529 3 default : break;
530 3 }
531 2 }
532 1 }
533 /****************************************************
534 **函数名:inc_sec()
535 **输 入:
536 **输 出:
537 *****************************************************/
538 void inc_sec()
539 {
540 1 sec++;
541 1 P2_3=!P2_3;
542 1 if(sec>59)
543 1 {
544 2 sec=0;
545 2 inc_min();
546 2 }
547 1 }
548 /****************************************************
549 **函数名:inc_min()
550 **输 入:
551 **输 出:
C51 COMPILER V7.06 FENGSHAN 09/21/2008 16:50:11 PAGE 10
552 *****************************************************/
553 void inc_min()
554 {
555 1 min--;
556 1 if(min<0)
557 1 {
558 2 min=59;
559 2 inc_hour();
560 2 }
561 1 }
562 /****************************************************
563 **函数名:inc_hour()
564 **输 入:
565 **输 出:
566 *****************************************************/
567 void inc_hour()
568 {
569 1 hour--;
570 1 if(hour<0) hour=t;
571 1 }
572
573
574
575
576
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1973 ----
CONSTANT SIZE = 11 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 32 28
IDATA SIZE = 4 ----
BIT SIZE = 2 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -