📄 temp.lst
字号:
675 ; SOURCE LINE # 117
676 ; unsigned char idata i,u=0;
677 ; SOURCE LINE # 118
0000 E4 678 CLR A
0001 7800 F 679 MOV R0,#LOW (u?344)
0003 F6 680 MOV @R0,A
681 ; for(i=0;i<8;i++)
682 ; SOURCE LINE # 119
0004 18 683 DEC R0
0005 F6 684 MOV @R0,A
0006 685 ?C0011:
686 ; {
687 ; SOURCE LINE # 120
688 ; D18B20 = 0;
689 ; SOURCE LINE # 121
0006 C2B3 690 CLR D18B20
691 ; u >>= 1;
692 ; SOURCE LINE # 122
0008 7800 F 693 MOV R0,#LOW (u?344)
000A E6 694 MOV A,@R0
000B C3 695 CLR C
000C 13 696 RRC A
000D F6 697 MOV @R0,A
698 ; D18B20 = 1;
699 ; SOURCE LINE # 123
000E D2B3 700 SETB D18B20
701 ; if(D18B20==1)
702 ; SOURCE LINE # 124
0010 30B304 703 JNB D18B20,?C0014
704 ; u |= 0x80;
705 ; SOURCE LINE # 125
0013 E6 706 MOV A,@R0
0014 4480 707 ORL A,#080H
0016 F6 708 MOV @R0,A
0017 709 ?C0014:
710 ; TempDelay (2);
711 ; SOURCE LINE # 126
0017 7F02 712 MOV R7,#02H
0019 120000 F 713 LCALL _TempDelay
714 ; _nop_();
715 ; SOURCE LINE # 127
001C 00 716 NOP
A51 MACRO ASSEMBLER TEMP 09/16/2009 23:33:52 PAGE 12
717 ; }
718 ; SOURCE LINE # 128
001D 7800 F 719 MOV R0,#LOW (i?343)
001F 06 720 INC @R0
0020 E6 721 MOV A,@R0
0021 C3 722 CLR C
0022 9408 723 SUBB A,#08H
0024 40E0 724 JC ?C0011
0026 725 ?C0012:
726 ; return(u);
727 ; SOURCE LINE # 129
0026 7800 F 728 MOV R0,#LOW (u?344)
0028 E6 729 MOV A,@R0
0029 FF 730 MOV R7,A
731 ; }
732 ; SOURCE LINE # 130
002A 733 ?C0015:
002A 22 734 RET
735 ; END OF ReadByte
736
737 ;
738 ; /************************************************************
739 ; *Function:读18B20
740 ; *parameter:
741 ; *Return:
742 ; *Modify:
743 ; *************************************************************/
744 ; void read_bytes (unsigned char idata j)
745
---- 746 RSEG ?PR?_read_bytes?TEMP
0000 747 _read_bytes:
748 USING 0
749 ; SOURCE LINE # 138
750 ;---- Variable 'j?445' assigned to Register 'R5' ----
0000 AD07 751 MOV R5,AR7
752 ; {
753 ; SOURCE LINE # 139
754 ; unsigned char idata i;
755 ; for(i=0;i<j;i++)
756 ; SOURCE LINE # 141
0002 E4 757 CLR A
0003 7800 F 758 MOV R0,#LOW (i?446)
0005 F6 759 MOV @R0,A
0006 760 ?C0016:
0006 7800 F 761 MOV R0,#LOW (i?446)
0008 E6 762 MOV A,@R0
0009 C3 763 CLR C
000A 9D 764 SUBB A,R5
000B 500E 765 JNC ?C0019
766 ; {
767 ; SOURCE LINE # 142
768 ; *p = ReadByte();
769 ; SOURCE LINE # 143
000D 120000 F 770 LCALL ReadByte
0010 A800 771 MOV R0,p
*** ____________________________________________^
*** ERROR #A48 IN 771 (Temp.SRC, LINE 771): DATA-ADDRESS EXPECTED
0012 A607 772 MOV @R0,AR7
773 ; p++;
774 ; SOURCE LINE # 144
0014 0500 775 INC p
*** _________________________________________^
*** ERROR #A48 IN 775 (Temp.SRC, LINE 775): DATA-ADDRESS EXPECTED
776 ; }
777 ; SOURCE LINE # 145
0016 7800 F 778 MOV R0,#LOW (i?446)
A51 MACRO ASSEMBLER TEMP 09/16/2009 23:33:52 PAGE 13
0018 06 779 INC @R0
0019 80EB 780 SJMP ?C0016
781 ; }
782 ; SOURCE LINE # 146
001B 783 ?C0019:
001B 22 784 RET
785 ; END OF _read_bytes
786
787 ;
788 ; /************************************************************
789 ; *Function:CRC校验
790 ; *parameter:
791 ; *Return:
792 ; *Modify:
793 ; *************************************************************/
794 ; unsigned char CRC (unsigned char j)
795
---- 796 RSEG ?PR?_CRC?TEMP
0000 797 _CRC:
798 USING 0
799 ; SOURCE LINE # 154
800 ;---- Variable 'j?547' assigned to Register 'R7' ----
801 ; {
802 ; SOURCE LINE # 155
803 ; unsigned char idata i,crc_data=0;
804 ; SOURCE LINE # 156
0000 E4 805 CLR A
0001 7800 F 806 MOV R0,#LOW (crc_data?549)
0003 F6 807 MOV @R0,A
808 ; for(i=0;i<j;i++) //查表校验
809 ; SOURCE LINE # 157
0004 18 810 DEC R0
0005 F6 811 MOV @R0,A
0006 812 ?C0020:
0006 7800 F 813 MOV R0,#LOW (i?548)
0008 E6 814 MOV A,@R0
0009 FE 815 MOV R6,A
000A C3 816 CLR C
000B 9F 817 SUBB A,R7
000C 5010 818 JNC ?C0021
819 ; crc_data = CrcTable[crc_data^temp_buff[i]];
820 ; SOURCE LINE # 158
000E 7400 F 821 MOV A,#LOW (temp_buff)
0010 2E 822 ADD A,R6
0011 F9 823 MOV R1,A
0012 08 824 INC R0
0013 E6 825 MOV A,@R0
0014 67 826 XRL A,@R1
0015 900000 F 827 MOV DPTR,#CrcTable
0018 93 828 MOVC A,@A+DPTR
0019 F6 829 MOV @R0,A
001A 18 830 DEC R0
001B 06 831 INC @R0
001C 80E8 832 SJMP ?C0020
001E 833 ?C0021:
834 ; return (crc_data);
835 ; SOURCE LINE # 159
001E 7800 F 836 MOV R0,#LOW (crc_data?549)
0020 E6 837 MOV A,@R0
0021 FF 838 MOV R7,A
839 ; }
840 ; SOURCE LINE # 160
0022 841 ?C0023:
0022 22 842 RET
843 ; END OF _CRC
844
A51 MACRO ASSEMBLER TEMP 09/16/2009 23:33:52 PAGE 14
845 ;
846 ; /************************************************************
847 ; *Function:读取温度
848 ; *parameter:
849 ; *Return:
850 ; *Modify:
851 ; *************************************************************/
852 ; void GemTemp (void)
853
---- 854 RSEG ?PR?GemTemp?TEMP
0000 855 GemTemp:
856 USING 0
857 ; SOURCE LINE # 168
858 ; {
859 ; SOURCE LINE # 169
860 ; read_bytes (9);
861 ; SOURCE LINE # 170
0000 7F09 862 MOV R7,#09H
0002 120000 F 863 LCALL _read_bytes
864 ; if (CRC(9)==0) //校验正确
865 ; SOURCE LINE # 171
0005 7F09 866 MOV R7,#09H
0007 120000 F 867 LCALL _CRC
000A EF 868 MOV A,R7
000B 7027 869 JNZ ?C0025
870 ; {
871 ; SOURCE LINE # 172
872 ; Temperature = temp_buff[1]*0x100 + temp_buff[0];
873 ; SOURCE LINE # 173
000D 7800 F 874 MOV R0,#LOW (temp_buff+01H)
000F E6 875 MOV A,@R0
0010 FE 876 MOV R6,A
0011 18 877 DEC R0
0012 E6 878 MOV A,@R0
0013 7C00 879 MOV R4,#00H
0015 2400 880 ADD A,#00H
0017 7800 F 881 MOV R0,#LOW (Temperature+01H)
0019 F6 882 MOV @R0,A
001A EC 883 MOV A,R4
001B 3E 884 ADDC A,R6
001C 18 885 DEC R0
001D F6 886 MOV @R0,A
887 ; // Temperature *= 0.625;
888 ; Temperature /= 16;
889 ; SOURCE LINE # 175
001E 7900 F 890 MOV R1,#LOW (Temperature)
0020 E7 891 MOV A,@R1
0021 C4 892 SWAP A
0022 F8 893 MOV R0,A
0023 54F0 894 ANL A,#0F0H
0025 C8 895 XCH A,R0
0026 68 896 XRL A,R0
0027 F7 897 MOV @R1,A
0028 09 898 INC R1
0029 E7 899 MOV A,@R1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -