📄 lcd_main.lst
字号:
C51 COMPILER V6.12 LCD_MAIN 08/01/2005 20:10:26 PAGE 11
612 2 TempCycB=7269;
613 2 while(TempCycB--);
614 2 };
615 1 }
616
617
618 void InitDS1820(void) //初始化DS1820
619 {
620 1 TMPort = 1; //拉高TMPort
621 1 _nop_(); //保持一个周期
622 1 TMPort = 0; //拉低TMPort
623 1 Delay_510(); //延时 DS1820复位时间要500us的低电平
624 1 TMPort = 1; //拉高TMPort
625 1 _nop_(); //保持
626 1 _nop_();
627 1 _nop_();
628 1
629 1 Delay_110(); //延时110us 等待DS1820回应
630 1 if (!TMPort) //回应信号为低电平
631 1 DS1820ON = 1;
632 1 else
633 1 DS1820ON = 0;
634 1 Delay_110(); //延时
635 1 Delay_110();
636 1 TMPort = 1; //拉高TMPort
637 1 }
638
639 void ROMDS1820(void) //跳过ROM匹配
640 {
641 1 #pragma asm
*** ERROR C272 IN LINE 641 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
642 1 MOV A,#0CCH
643 1 MOV R2,#8
644 1 CLR C
645 1 WR1:
646 1 CLR TMPort
647 1 MOV R3,#6
648 1 DJNZ R3,$
649 1 RRC A
650 1 MOV TMPort,C
651 1 MOV R3,#23
652 1 DJNZ R3,$
653 1 SETB TMPort
654 1 NOP
655 1 DJNZ R2,WR1
656 1 SETB TMPort
657 1 #pragma endasm
*** ERROR C272 IN LINE 657 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
658 1 }
659
660 void TMVDS1820(void) //温度转换指令
661 {
662 1 #pragma asm
*** ERROR C272 IN LINE 662 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
663 1 MOV A,#44H
664 1 MOV R2,#8
665 1 CLR C
666 1 WR2:
667 1 CLR TMPort
C51 COMPILER V6.12 LCD_MAIN 08/01/2005 20:10:26 PAGE 12
668 1 MOV R3,#6
669 1 DJNZ R3,$
670 1 RRC A
671 1 MOV TMPort,C
672 1 MOV R3,#23
673 1 DJNZ R3,$
674 1 SETB TMPort
675 1 NOP
676 1 DJNZ R2,WR2
677 1 SETB TMPort
678 1 #pragma endasm
*** ERROR C272 IN LINE 678 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
679 1 }
680
681 void TMRDS1820(void) //读出温度指令
682 {
683 1 #pragma asm
*** ERROR C272 IN LINE 683 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
684 1 MOV A,#0BEH
685 1 MOV R2,#8
686 1 CLR C
687 1 WR3:
688 1 CLR TMPort
689 1 MOV R3,#6
690 1 DJNZ R3,$
691 1 RRC A
692 1 MOV TMPort,C
693 1 MOV R3,#23
694 1 DJNZ R3,$
695 1 SETB TMPort
696 1 NOP
697 1 DJNZ R2,WR3
698 1 SETB TMPort
699 1 #pragma endasm
*** ERROR C272 IN LINE 699 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
700 1 }
701
702 void TMWDS1820(void) //写入温度限制指令
703 {
704 1 #pragma asm
*** ERROR C272 IN LINE 704 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
705 1 MOV A,#04EH
706 1 MOV R2,#8
707 1 CLR C
708 1 WR13:
709 1 CLR TMPort
710 1 MOV R3,#6
711 1 DJNZ R3,$
712 1 RRC A
713 1 MOV TMPort,C
714 1 MOV R3,#23
715 1 DJNZ R3,$
716 1 SETB TMPort
717 1 NOP
718 1 DJNZ R2,WR13
719 1 SETB TMPort
720 1 #pragma endasm
*** ERROR C272 IN LINE 720 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
C51 COMPILER V6.12 LCD_MAIN 08/01/2005 20:10:26 PAGE 13
-tive
721 1 }
722
723 void TMREDS1820(void) //COPY RAM to E2PRAM
724 {
725 1 #pragma asm
*** ERROR C272 IN LINE 725 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
726 1 MOV A,#48H
727 1 MOV R2,#8
728 1 CLR C
729 1 WR33:
730 1 CLR TMPort
731 1 MOV R3,#6
732 1 DJNZ R3,$
733 1 RRC A
734 1 MOV TMPort,C
735 1 MOV R3,#23
736 1 DJNZ R3,$
737 1 SETB TMPort
738 1 NOP
739 1 DJNZ R2,WR33
740 1 SETB TMPort
741 1 #pragma endasm
*** ERROR C272 IN LINE 741 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
742 1 }
743
744 void TMERDS1820(void) //COPY E2PRAM to RAM
745 {
746 1 #pragma asm
*** ERROR C272 IN LINE 746 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
747 1 MOV A,#0B8H
748 1 MOV R2,#8
749 1 CLR C
750 1 WR43:
751 1 CLR TMPort
752 1 MOV R3,#6
753 1 DJNZ R3,$
754 1 RRC A
755 1 MOV TMPort,C
756 1 MOV R3,#23
757 1 DJNZ R3,$
758 1 SETB TMPort
759 1 NOP
760 1 DJNZ R2,WR43
761 1 SETB TMPort
762 1 #pragma endasm
*** ERROR C272 IN LINE 762 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
763 1 }
764
765 void WriteDS1820(void) //写入温度限制值
766 {
767 1 #pragma asm
*** ERROR C272 IN LINE 767 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
768 1 MOV A,26H //发出4EH写ROM指令后连发两个字节分别为上下限
769 1 MOV R2,#8
770 1 CLR C
771 1 WR23:
C51 COMPILER V6.12 LCD_MAIN 08/01/2005 20:10:26 PAGE 14
772 1 CLR TMPort
773 1 MOV R3,#6
774 1 DJNZ R3,$
775 1 RRC A
776 1 MOV TMPort,C
777 1 MOV R3,#23
778 1 DJNZ R3,$
779 1 SETB TMPort
780 1 NOP
781 1 DJNZ R2,WR23
782 1 SETB TMPort
783 1 #pragma endasm
*** ERROR C272 IN LINE 783 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
784 1 }
785
786 void ReadDS1820(void) //读出温度值
787 {
788 1 #pragma asm
*** ERROR C272 IN LINE 788 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
789 1 MOV R4,#3 ; 将温度高位和低位,高温限制位从DS18B20中读出
790 1 MOV R1,#29H ; 低位存入29H(TEMPER_L),高位存入28H(TEMPER_H),高温限制位存入27H(TMRomV)
791 1 RE00:
792 1 MOV R2,#8
793 1 RE01:
794 1 CLR C
795 1 SETB TMPort
796 1 NOP
797 1 NOP
798 1 CLR TMPort
799 1 NOP
800 1 NOP
801 1 NOP
802 1 SETB TMPort
803 1 MOV R3,#09
804 1 RE10:
805 1 DJNZ R3,RE10
806 1 MOV C,TMPort
807 1 MOV R3,#23
808 1 RE20:
809 1 DJNZ R3,RE20
810 1 RRC A
811 1 DJNZ R2,RE01
812 1 MOV @R1,A
813 1 DEC R1
814 1 DJNZ R4,RE00
815 1 #pragma endasm
*** ERROR C272 IN LINE 815 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
816 1 }
817
818 void Delay_510(void) //延时510微秒
819 {
820 1 #pragma asm
*** ERROR C272 IN LINE 820 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
821 1 MOV R0,#74H
822 1 MOV R1,#02H
823 1 TSR1:
824 1 DJNZ R0,TSR1
825 1 MOV R0,#74H
C51 COMPILER V6.12 LCD_MAIN 08/01/2005 20:10:26 PAGE 15
826 1 DJNZ R1,TSR1
827 1 #pragma endasm
*** ERROR C272 IN LINE 827 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
828 1 }
829
830 void Delay_110(void) //延时110微秒
831 {
832 1 #pragma asm
*** ERROR C272 IN LINE 832 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
833 1 MOV R0,#18H
834 1 MOV R1,#02H
835 1 TSR2:
836 1 DJNZ R0,TSR2
837 1 MOV R0,#18H
838 1 DJNZ R1,TSR2
839 1 #pragma endasm
*** ERROR C272 IN LINE 839 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
840 1 }
841
842 void Delay_10ms(void) //延时10ms
843 {
844 1 #pragma asm
*** ERROR C272 IN LINE 844 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
845 1 MOV R0,#18H
846 1 MOV R1,#0C8H
847 1 TSR3:
848 1 DJNZ R0,TSR3
849 1 MOV R0,#18H
850 1 DJNZ R1,TSR3
851 1 #pragma endasm
*** ERROR C272 IN LINE 851 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
852 1 }
853
854 void Delay_4s(void) //延时4s
855 {
856 1 #pragma asm
*** ERROR C272 IN LINE 856 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
857 1 MOV R2,#28H
858 1 TSR5:
859 1 MOV R0,#0FAH
860 1 MOV R1,#0C8H
861 1 TSR4:
862 1 DJNZ R0,TSR4
863 1 MOV R0,#0FAH
864 1 DJNZ R1,TSR4
865 1 DJNZ R2,TSR5
866 1 #pragma endasm
*** ERROR C272 IN LINE 866 OF C:\DOCUME~1\ADMINI~1\MYDOCU~1\89C51\LCD_MAIN.C: 'asm/endasm' requires src-control to be ac
-tive
867 1 }
868
C51 COMPILATION COMPLETE. 0 WARNING(S), 24 ERROR(S)
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -