📄 computer2.lst
字号:
499 3 Start_Rxd = False;
500 3 }
501 2
502 2 }
503 1 else
504 1 {
505 2 if (Rece_data == Rx_start_data)
506 2 {
507 3 Start_Rxd = True;
508 3 g_cReceNum = 1;
509 3 Rs_buf[0] = Rece_data;
510 3 }
511 2
512 2 }
513 1
514 1
515 1
516 1 Rs232_end:
517 1
518 1 MCU_LED2 = True;
519 1 ES = True;
520 1 EA = True;
521 1
522 1 }
523 /****************************************/
524 /*************向计算机发数据*************/
525 /****************************************/
526 uchar TXD_pc(uchar icode)
527 {
528 1 //uchar count1; /* 接收等待时间 */
529 1 //uchar i;
530 1 //RS485 = False;
531 1 EA = 0;
532 1 ES = 0;
533 1
534 1 SBUF = icode;
535 1 while (!TI);
536 1 TI = 0; /* 发数据请求 */
537 1 //RS485 = True;
538 1 EA = True;
539 1 ES = True;
540 1 return(0);
541 1 }
542 /****************************DS1302***********************************/
543 void Close_write_bit(void)
544 {
545 1 char i;
546 1 EA = False;
547 1 Ds1302_clock = False;
548 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
549 1 Ds1302_rst = True;
550 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 10
551 1 AD = 0x8e; //write control redister
552 1 for (i=1; i<=8; i++) {
553 2 Ds1302_clock = False; Ds1302_data = AD_0;
554 2 _nop_();_nop_(); _nop_();_nop_();_nop_();Ds1302_clock = True;
555 2 AD = AD >> 1;_nop_();_nop_();_nop_();
556 2 }
557 1 AD = 0x80; //close write protect bit
558 1 Ds1302_data = False;
559 1 for (i=1; i<=8; i++) {
560 2 Ds1302_clock = False; Ds1302_data = AD_0;
561 2 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
562 2 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
563 2 }
564 1 Ds1302_rst = False;
565 1 EA = True;
566 1 }
567 void Open_write_bit(void)
568 {
569 1 char i;
570 1 EA = False;
571 1 Ds1302_clock = False;
572 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
573 1 Ds1302_rst = True;
574 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
575 1 AD = 0x8e; //write control redister
576 1 for (i=1; i<=8; i++) {
577 2 Ds1302_clock = False; Ds1302_data = AD_0;
578 2 _nop_();_nop_(); _nop_();_nop_();_nop_();Ds1302_clock = True;
579 2 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
580 2 }
581 1 AD = 0x00; //close write protect bit
582 1 Ds1302_data = False;
583 1 for (i=1; i<=8; i++) {
584 2 Ds1302_clock = False; Ds1302_data = AD_0;
585 2 _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
586 2 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
587 2 }
588 1 EA = True;
589 1 }
590 void Init_ds1302(void)
591 {
592 1 char i;
593 1 EA = False;
594 1 Ds1302_clock = False;
595 1 _nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
596 1 Ds1302_rst = True;
597 1 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();
598 1 AD = 0x8e; //write control redister
599 1 for (i=1; i<=8; i++) {
600 2 Ds1302_clock = False; Ds1302_data = AD_0;
601 2 _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
602 2 AD = AD >> 1; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
603 2 }
604 1 AD = 0x00; //OPEN control redister
605 1 Ds1302_data = False;
606 1 for (i=1; i<=8; i++) {
607 2 Ds1302_clock = False; Ds1302_data = AD_0;
608 2 _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
609 2 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
610 2 }
611 1 Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
612 1 Ds1302_clock = False;
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 11
613 1 Ds1302_clock = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
614 1 Ds1302_rst = True;
615 1 _nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
616 1 AD = 0x90; //recharge register
617 1 for (i=1; i<=8; i++) {
618 2 Ds1302_clock = False; Ds1302_data = AD_0;
619 2 _nop_();_nop_();_nop_();_nop_();_nop_(); _nop_();_nop_();_nop_();Ds1302_clock = True;
620 2 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
621 2 }
622 1 AD = 0xa5;
623 1 AD = 0xa5;
624 1 for (i=1; i<=8; i++) {
625 2 Ds1302_clock = False; Ds1302_data = AD_0;
626 2 _nop_();_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();Ds1302_clock = True;
627 2 AD = AD >> 1; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
628 2 }
629 1 Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
630 1 Ds1302_clock = False;
631 1 Ds1302_clock = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
632 1 Ds1302_rst = True; _nop_(); _nop_();
633 1 AD = 0x80; //Start Work count
634 1 for (i=1; i<=8; i++) {
635 2 Ds1302_clock = False; Ds1302_data = AD_0;
636 2 _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
637 2 AD = AD >> 1;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
638 2 }
639 1 AD = 0x00;
640 1 for (i=1; i<=8; i++) {
641 2 Ds1302_clock = False; Ds1302_data = AD_0;
642 2 _nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
643 2 AD = AD >> 1; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
644 2 }
645 1 Ds1302_rst = False;_nop_();_nop_();
646 1 Ds1302_clock = False;_nop_();
647 1 EA = True;
648 1 }
649 void Read_ds1302()
650 {
651 1 uchar i,j;
652 1 EA = False;
653 1 Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
654 1 Ds1302_clock = False;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
655 1 Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
656 1 Ds1302_rst = True; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
657 1 AD = 0xbf;
658 1 for (i=1; i<=8; i++) {
659 2 Ds1302_clock = False; Ds1302_data = AD_0;
660 2 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_(); Ds1302_clock = True;
661 2 AD = AD >> 1;_nop_(); _nop_();_nop_();_nop_();_nop_();_nop_();
662 2 }
663 1 for (j=0; j<7; j++) {
664 2 for (i=1; i<=8; i++) {
665 3 AD = AD >> 1;
666 3 Ds1302_clock = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
667 3 AD_7 = Ds1302_data; Ds1302_clock = True;
668 3 _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
669 3 }
670 2 //i = AD/16;
671 2 //k = i * 6;
672 2 //AD = AD - k;
673 2 M_D[j] = AD;
674 2 }
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 12
675 1 Ds1302_rst = False; delay_2();
676 1 Ds1302_clock = False; delay_2();
677 1 EA = True;
678 1 }
679
680 void Write_ds1302(uchar address,uchar numb)
681 {
682 1 uchar i;
683 1 EA = False;
684 1 Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
685 1 Ds1302_clock = False;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
686 1 Ds1302_rst = False; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
687 1 Ds1302_rst = True; _nop_();_nop_();_nop_();_nop_();_nop_();_nop_();
688 1 AD = 0x80 | (address<<1);
689 1 for (i=1; i<=8; i++) {
690 2 Ds1302_clock = False; Ds1302_data = AD_0;
691 2 delay_2(); Ds1302_clock = True;
692 2 AD = AD >> 1;delay_2();
693 2 }
694 1 AD = numb;
695 1 for (i=1; i<=8; i++) {
696 2 Ds1302_clock = False; Ds1302_data = AD_0;
697 2 delay_2(); Ds1302_clock = True;
698 2 AD = AD >> 1;delay_2();
699 2 }
700 1 Ds1302_rst = False;
701 1 Ds1302_clock = True;
702 1 EA = True;
703 1 delay(1);
704 1 }
705 /*******************************************************/
706 void delay(uint count0)
707 {
708 1 uchar i;
709 1 while ( (count0--) )
710 1 {
711 2 for (i=0;i<125;i++) {};
712 2 }
713 1 }
714 void delay_2()
715 {
716 1 uint i;
717 1 for (i=0; i<128; i++)
718 1 {
719 2 _nop_();
720 2 }
721 1 }
722 void delay_3(uchar count0)
723 {
724 1 uchar i;
725 1 while ( count0-- )
726 1 {
727 2 for (i=0;i<125;i++) {};
728 2 }
729 1 }
730
731
732
733
734
735
C51 COMPILER V8.05a COMPUTER2 04/25/2008 17:59:14 PAGE 13
MODULE INFORMATION: STATIC OVERLAYABLE
CODE SIZE = 1475 ----
CONSTANT SIZE = 80 ----
XDATA SIZE = ---- ----
PDATA SIZE = ---- ----
DATA SIZE = 30 3
IDATA SIZE = ---- ----
BIT SIZE = 10 ----
END OF MODULE INFORMATION.
C51 COMPILATION COMPLETE. 0 WARNING(S), 0 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -