📄 temp.lst
字号:
002A C4 900 SWAP A
002B 540F 901 ANL A,#0FH
002D 48 902 ORL A,R0
002E F7 903 MOV @R1,A
904 ; TempDelay(1);
905 ; SOURCE LINE # 176
002F 7F01 906 MOV R7,#01H
0031 120000 F 907 LCALL _TempDelay
908 ; }
909 ; SOURCE LINE # 177
910 ; }
A51 MACRO ASSEMBLER TEMP 09/16/2009 23:33:52 PAGE 15
911 ; SOURCE LINE # 178
0034 912 ?C0025:
0034 22 913 RET
914 ; END OF GemTemp
915
916 ;
917 ; /************************************************************
918 ; *Function:内部配置
919 ; *parameter:
920 ; *Return:
921 ; *Modify:
922 ; *************************************************************/
923 ; void Config18b20 (void) //重新配置报警限定值和分辨率
924
---- 925 RSEG ?PR?Config18b20?TEMP
0000 926 Config18b20:
927 USING 0
928 ; SOURCE LINE # 186
929 ; {
930 ; SOURCE LINE # 187
931 ; Init18b20();
932 ; SOURCE LINE # 188
933 ; WriteByte(0xcc); //skip rom
934 ; SOURCE LINE # 189
0000 120000 F 935 LCALL L?0032
936 ; WriteByte(0x4e); //write scratchpad
937 ; SOURCE LINE # 190
0003 7F4E 938 MOV R7,#04EH
0005 120000 F 939 LCALL _WriteByte
940 ; WriteByte(0x19); //上限
941 ; SOURCE LINE # 191
0008 7F19 942 MOV R7,#019H
000A 120000 F 943 LCALL _WriteByte
944 ; WriteByte(0x1a); //下限
945 ; SOURCE LINE # 192
000D 7F1A 946 MOV R7,#01AH
000F 120000 F 947 LCALL _WriteByte
948 ; WriteByte(0x7f); //set 11 bit (0.125)
949 ; SOURCE LINE # 193
0012 7F7F 950 MOV R7,#07FH
0014 120000 F 951 LCALL _WriteByte
952 ; Init18b20();
953 ; SOURCE LINE # 194
954 ; WriteByte(0xcc); //skip rom
955 ; SOURCE LINE # 195
0017 120000 F 956 LCALL L?0032
957 ; WriteByte(0x48); //保存设定值
958 ; SOURCE LINE # 196
001A 7F48 959 MOV R7,#048H
001C 120000 F 960 LCALL _WriteByte
961 ; Init18b20();
962 ; SOURCE LINE # 197
963 ; WriteByte(0xcc); //skip rom
964 ; SOURCE LINE # 198
001F 120000 F 965 LCALL L?0033
966 ; WriteByte(0xb8); //回调设定值
967 ; SOURCE LINE # 199
0022 7FB8 968 MOV R7,#0B8H
0024 020000 F 969 LJMP _WriteByte
970 ; END OF Config18b20
971
972 ; }
973 ;
974 ; /************************************************************
975 ; *Function:读18B20ID
976 ; *parameter:
A51 MACRO ASSEMBLER TEMP 09/16/2009 23:33:52 PAGE 16
977 ; *Return:
978 ; *Modify:
979 ; *************************************************************/
980 ; void ReadID (void)//读取器件 id
981
---- 982 RSEG ?PR?ReadID?TEMP
0000 983 ReadID:
984 USING 0
985 ; SOURCE LINE # 208
986 ; {
987 ; SOURCE LINE # 209
988 ; Init18b20();
989 ; SOURCE LINE # 210
0000 120000 F 990 LCALL Init18b20
991 ; WriteByte(0x33); //read rom
992 ; SOURCE LINE # 211
0003 7F33 993 MOV R7,#033H
0005 120000 F 994 LCALL _WriteByte
995 ; read_bytes(8);
996 ; SOURCE LINE # 212
0008 7F08 997 MOV R7,#08H
000A 020000 F 998 LJMP _read_bytes
999 ; END OF ReadID
1000
1001 ; }
1002 ;
1003 ; /************************************************************
1004 ; *Function:18B20ID全处理
1005 ; *parameter:
1006 ; *Return:
1007 ; *Modify:
1008 ; *************************************************************/
1009 ; void TemperatuerResult(void)
1010
---- 1011 RSEG ?PR?TemperatuerResult?TEMP
0000 1012 TemperatuerResult:
1013 USING 0
1014 ; SOURCE LINE # 221
1015 ; {
1016 ; SOURCE LINE # 222
1017 ; p = id_buff;
1018 ; SOURCE LINE # 223
0000 750000 F 1019 MOV p,#LOW (id_buff)
*** _________________________________________^
*** ERROR #A48 IN 1019 (Temp.SRC, LINE 1019): DATA-ADDRESS EXPECTED
1020 ; ReadID();
1021 ; SOURCE LINE # 224
0003 120000 F 1022 LCALL ReadID
1023 ; Config18b20();
1024 ; SOURCE LINE # 225
0006 120000 F 1025 LCALL Config18b20
1026 ; Init18b20 ();
1027 ; SOURCE LINE # 226
1028 ; WriteByte(0xcc); //skip rom
1029 ; SOURCE LINE # 227
0009 120000 F 1030 LCALL L?0033
1031 ; WriteByte(0x44); //Temperature convert
1032 ; SOURCE LINE # 228
000C 7F44 1033 MOV R7,#044H
000E 120000 F 1034 LCALL _WriteByte
1035 ;
1036 ; Init18b20 ();
1037 ; SOURCE LINE # 230
1038 ; WriteByte(0xcc); //skip rom
1039 ; SOURCE LINE # 231
0011 120000 F 1040 LCALL L?0033
A51 MACRO ASSEMBLER TEMP 09/16/2009 23:33:52 PAGE 17
1041 ; WriteByte(0xbe); //read Temperature
1042 ; SOURCE LINE # 232
0014 7FBE 1043 MOV R7,#0BEH
0016 120000 F 1044 LCALL _WriteByte
1045 ; p = temp_buff;
1046 ; SOURCE LINE # 233
0019 750000 F 1047 MOV p,#LOW (temp_buff)
*** _________________________________________^
*** ERROR #A48 IN 1047 (Temp.SRC, LINE 1047): DATA-ADDRESS EXPECTED
1048 ; GemTemp();
1049 ; SOURCE LINE # 234
001C 020000 F 1050 LJMP GemTemp
1051 ; END OF TemperatuerResult
1052
1053 ; }
1054 ;
1055 ; unsigned int TempTick=0;
1056 ; void GetTemp()
1057
---- 1058 RSEG ?PR?GetTemp?TEMP
0000 1059 GetTemp:
1060 USING 0
1061 ; SOURCE LINE # 238
1062 ; {
1063 ; SOURCE LINE # 239
1064 ; if(TIM==1)
1065 ; SOURCE LINE # 240
0000 E500 F 1066 MOV A,TIM
0002 B40114 1067 CJNE A,#01H,?C0030
1068 ; { TIM=0;
1069 ; SOURCE LINE # 241
0005 E4 1070 CLR A
0006 F500 F 1071 MOV TIM,A
1072 ; TemperatuerResult();
1073 ; SOURCE LINE # 242
0008 120000 F 1074 LCALL TemperatuerResult
1075 ; D[5]=Temperature;
1076 ; SOURCE LINE # 243
000B 7800 F 1077 MOV R0,#LOW (Temperature)
000D E6 1078 MOV A,@R0
000E FE 1079 MOV R6,A
000F 08 1080 INC R0
0010 E6 1081 MOV A,@R0
0011 FF 1082 MOV R7,A
0012 7800 F 1083 MOV R0,#LOW (D+0AH)
0014 A606 1084 MOV @R0,AR6
0016 08 1085 INC R0
0017 A607 1086 MOV @R0,AR7
1087 ; }
1088 ; SOURCE LINE # 244
1089 ;
1090 ; }
1091 ; SOURCE LINE # 246
0019 1092 ?C0030:
0019 22 1093 RET
1094 ; END OF GetTemp
1095
---- 1096 CSEG AT 0001BH
001B 020000 F 1097 LJMP T1zd
1098
1099 ;
1100 ; /*************************************
1101 ; [ t1 (0.5ms)中断] 中断中做 PWM 输出
1102 ; ------------1000/(0.02ms*250)=200Hz
1103 ; *************************************/
1104 ; void T1zd(void) interrupt 3
A51 MACRO ASSEMBLER TEMP 09/16/2009 23:33:52 PAGE 18
1105
---- 1106 RSEG ?PR?T1zd?TEMP
1107 USING 0
0000 1108 T1zd:
1109 ; SOURCE LINE # 252
1110 ; {
1111 ; TH1 = 0xfe; //11.0592
1112 ; SOURCE LINE # 254
0000 758DFE 1113 MOV TH1,#0FEH
1114 ; TL1 = 0x33;
1115 ; SOURCE LINE # 255
0003 758B33 1116 MOV TL1,#033H
1117 ; TIM++;
1118 ; SOURCE LINE # 256
0006 0500 F 1119 INC TIM
1120 ;
1121 ; }
1122
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -