📄 zdbwnl.lst
字号:
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 9
451 1 WriteOneChar(0xCC); //跳过读序号列号的操作
452 1 WriteOneChar(0xBE); //读取温度寄存器
453 1 a=ReadOneChar(); //读低8位
454 1 b=ReadOneChar(); //读高8位
455 1 t=b;
456 1 t<<=8;
457 1 t=t|a;
458 1 tt=t*0.0625;
459 1 t= tt*10+0.5; //放大10倍输出并四舍五入
460 1 return(t);
461 1 }
462
463 /******************************************************************************/
464 //1302驱动程序
465 void clock_out(unsigned char dd)
466 {
467 1 ACC=dd;
468 1 clock_dat=a0; clock_clk=1; clock_clk=0;
469 1 clock_dat=a1; clock_clk=1; clock_clk=0;
470 1 clock_dat=a2; clock_clk=1; clock_clk=0;
471 1 clock_dat=a3; clock_clk=1; clock_clk=0;
472 1 clock_dat=a4; clock_clk=1; clock_clk=0;
473 1 clock_dat=a5; clock_clk=1; clock_clk=0;
474 1 clock_dat=a6; clock_clk=1; clock_clk=0;
475 1 clock_dat=a7; clock_clk=1; clock_clk=0;
476 1 }
477
478 /******************************************************************************/
479 unsigned char clock_in(void)
480 {
481 1 clock_dat=1;
482 1 a0=clock_dat;
483 1 clock_clk=1; clock_clk=0; a1=clock_dat;
484 1 clock_clk=1; clock_clk=0; a2=clock_dat;
485 1 clock_clk=1; clock_clk=0; a3=clock_dat;
486 1 clock_clk=1; clock_clk=0; a4=clock_dat;
487 1 clock_clk=1; clock_clk=0; a5=clock_dat;
488 1 clock_clk=1; clock_clk=0; a6=clock_dat;
489 1 clock_clk=1; clock_clk=0; a7=clock_dat;
490 1 return(ACC);
491 1 }
492
493 /******************************************************************************/
494 unsigned char read_clock(unsigned char ord)
495 {
496 1 unsigned char dd=0;
497 1 clock_clk=0;
498 1 clock_Rst=0;
499 1 clock_Rst=1;
500 1 clock_out(ord);
501 1 dd=clock_in();
502 1 clock_Rst=0;
503 1 clock_clk=1;
504 1 return(dd);
505 1 }
506
507 /******************************************************************************/
508 void write_clock(unsigned char ord, unsigned char dd)
509 {
510 1 clock_clk=0;
511 1 clock_Rst=0;
512 1 clock_Rst=1;
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 10
513 1 clock_out(ord);
514 1 clock_out(dd);
515 1 clock_Rst=0;
516 1 clock_clk=1;
517 1 }
518
519 /******************************************************************************/
520 void Disp(void)//显示和闪烁函数!
521 {
522 1 unsigned int i=0;
523 1 unsigned char a=0,b=0,c=0,f=0;
524 1
525 1 i=ReadTemperature();//读温度并送显
526 1 a=i/100;
527 1 Mcs=1;Scs=0;
528 1 Disp_Digit(5,40,zero+a*16);
529 1 b=i/10-a*10;
530 1 Mcs=1;Scs=0;
531 1 Disp_Digit(5,48,zero+b*16);
532 1 c=i-a*100-b*10;
533 1 Mcs=0;Scs=1;
534 1 Disp_Digit(5,0,zero+c*16);
535 1
536 1 if(sec==1) //秒闪烁标志位
537 1 {
538 2 if(flag==1)
539 2 {
540 3 d=read_clock(0x81);//读秒
541 3 e=d;
542 3 d=d>>4;
543 3 e=e&0x0f;
544 3 Mcs=0;Scs=1;
545 3 Disp_Digit(3,40,zero+d*16);//送显示
546 3 Disp_Digit(3,48,zero+e*16);
547 3 }
548 2 else
549 2 {
550 3 Mcs=0;Scs=1;
551 3 Disp_Digit(3,40,space); //显示空格
552 3 Disp_Digit(3,48,space);
553 3 }
554 2 }
555 1 else
556 1 {
557 2 d=read_clock(0x81);//读秒
558 2 e=d;
559 2 d=d>>4;
560 2 e=e&0x0f;
561 2 Mcs=0;Scs=1;
562 2 /********************************************************************************/
563 2 if(d == 0 && e == 0)
564 2 {
565 3 flag_sec = 1;//秒标志位设定
566 3 }
567 2 /********************************************************************************/
568 2 Disp_Digit(3,40,zero+d*16);
569 2 Disp_Digit(3,48,zero+e*16);
570 2 }
571 1
572 1 if(min==1) //分钟闪烁标志位
573 1 {
574 2 if(flag==1)
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 11
575 2 {
576 3 d=read_clock(0x83);//读分钟
577 3 e=d;
578 3 d=d>>4;
579 3 e=e&0x0f;
580 3 Mcs=0;Scs=1;
581 3 Disp_Digit(3,16,zero+d*16);
582 3 Disp_Digit(3,24,zero+e*16);
583 3 }
584 2 else
585 2 {
586 3 Mcs=0;Scs=1;
587 3 Disp_Digit(3,16,space); //显示空格
588 3 Disp_Digit(3,24,space);
589 3 }
590 2 }
591 1 else
592 1 {
593 2 d=read_clock(0x83);//读分钟
594 2 e=d;
595 2 d=d>>4;
596 2 e=e&0x0f;
597 2 Mcs=0;Scs=1;
598 2 /******************************************************************************/
599 2 if(d == 0 && e == 0)
600 2 {
601 3 flag_min = 1;//分标志位设定
602 3 }
603 2 /******************************************************************************/
604 2 Disp_Digit(3,16,zero+d*16);
605 2 Disp_Digit(3,24,zero+e*16);
606 2 }
607 1
608 1 if(flag_sec == 1 && flag_min == 1)
609 1 {
610 2 Beep();//整点报警
611 2 flag_sec = 0;//清除标志位
612 2 flag_min = 0;
613 2 }
614 1
615 1 if(hour==1) //小时闪烁标志位
616 1 {
617 2 if(flag==1)
618 2 {
619 3 d=read_clock(0x85);//读小时
620 3 e=d;
621 3 d=d>>4;
622 3 e=e&0x0f;
623 3 Mcs=1;Scs=0;
624 3 Disp_Digit(3,56,zero+d*16);
625 3 Mcs=0;Scs=1;
626 3 Disp_Digit(3,0,zero+e*16);
627 3 }
628 2 else
629 2 {
630 3 Mcs=1;Scs=0;
631 3 Disp_Digit(3,56,space); //显示空格
632 3 Mcs=0;Scs=1;
633 3 Disp_Digit(3,0,space);
634 3 }
635 2 }
636 1 else
C51 COMPILER V7.50 ZDBWNL 12/22/2005 13:04:37 PAGE 12
637 1 {
638 2 d=read_clock(0x85);//读小时
639 2 e=d;
640 2 d=d>>4;
641 2 e=e&0x0f;
642 2 Mcs=1;Scs=0;
643 2 Disp_Digit(3,56,zero+d*16);
644 2 Mcs=0;Scs=1;
645 2 Disp_Digit(3,0,zero+e*16);
646 2 }
647 1
648 1 if(year==1) //年闪烁标志位
649 1 {
650 2 if(flag==1)
651 2 {
652 3 d=read_clock(0x8d);//读年
653 3 e=d;
654 3 d=d>>4;
655 3 e=e&0x0f;
656 3 Mcs=1;Scs=0;
657 3 Disp_Digit(1,8,two);
658 3 Disp_Digit(1,16,zero);
659 3 Disp_Digit(1,24,zero+d*16);
660 3 Disp_Digit(1,32,zero+e*16);
661 3 }
662 2 else
663 2 {
664 3 Mcs=1;Scs=0;
665 3 Disp_Digit(1,24,space); //显示空格
666 3 Disp_Digit(1,32,space);
667 3 }
668 2 }
669 1 else
670 1 {
671 2 d=read_clock(0x8d);//读年
672 2 e=d;
673 2 d=d>>4;
674 2 e=e&0x0f;
675 2 Mcs=1;Scs=0;
676 2 Disp_Digit(1,8,two);
677 2 Disp_Digit(1,16,zero);
678 2 Disp_Digit(1,24,zero+d*16);
679 2 Disp_Digit(1,32,zero+e*16);
680 2 }
681 1
682 1 if(mon==1) //月闪烁标志位
683 1 {
684 2 if(flag==1)
685 2 {
686 3 d=read_clock(0x89);//读月
687 3 e=d;
688 3 d=d>>4;
689 3 e=e&0x0f;
690 3 Mcs=1;Scs=0;
691 3 Disp_Digit(1,56,zero+d*16);
692 3 Mcs=0;Scs=1;
693 3 Disp_Digit(1,0,zero+e*16);
694 3 Disp_Chinese(1,8,yue);
695 3 }
696 2 else
697 2 {
698 3 Mcs=1;Scs=0;
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -