📄 inductioncooker050413ver1.lst
字号:
1129 0001B5 sub a,#1
1130 0001B5 mov hexh,a
1131 0001B5 b0bts1 fc
1132 0001B5 jmp getmidnibble00
1133 0001B5 jmp highnibbleinc
1134 0001B5 ;----
1135 0001B5 getmidnibble00:
1136 0001B5 mov a,#100
1137 0001B5 add hexl,a
1138 0001B5 getmidnibble:
1139 0001B5 mov a,hexl
1140 0001B5 sub a,#10
1141 0001B5 mov hexl,a
1142 0001B5 b0bts1 fc
1143 0001B5 jmp getlownibble00
1144 0001B5 incms bcdl
1145 0001B5 nop
1146 0001B5 jmp getmidnibble
1147 0001B5 ;----
1148 0001B5 getlownibble00:
1149 0001B5 add a,#10
1150 0001B5 swapm bcdl
1151 0001B5 or bcdl,a
1152 0001B5 ret
1153 0001B5 ;********************************************
1154 0001B5 ;name:conv_bcd_hex
1155 0001B5 ;function:小于10000的BCD码转换为十六进制
1156 0001B5 ;input: bcdl,bcdh
1157 0001B5 ;output:hexl,hexh
1158 0001B5 ;register:var3,var4,var5,var6,var7,var8
1159 0001B5 ;********************************************
1160 0001B5 conv_bcd_hex:
1161 0001B5 clr var3
1162 0001B5 clr var4
1163 0001B5 clr var5
1164 0001B5 clr var6
1165 0001B5 ;----
1166 0001B5 ;x1000
1167 0001B5 swap bcdh
1168 0001B5 and a,#0fh
1169 0001B5 mov var7,a
1170 0001B5 mov_ var8,#8
1171 0001B5 mov_ var3,#0e8h
1172 0001B5 mov_ var4,#03h
1173 0001B5 call mulsub ;two byte multiply
1174 0001B5 mov_ hexl,var5
1175 0001B5 mov_ hexh,var6
1176 0001B5 ;----
1177 0001B5 ;x100
1178 0001B5 clr var3
1179 0001B5 clr var4
1180 0001B5 clr var5
1181 0001B5 clr var6
1182 0001B5 mov a,bcdh
1183 0001B5 and a,#0fh
1184 0001B5 mov var7,a
1185 0001B5 mov_ var8,#8
1186 0001B5 mov a,#100
1187 0001B5 mov var3,a
1188 0001B5 call mulsub ;two byte multiply
1189 0001B5 mov a,var5
1190 0001B5 add hexl,a
1191 0001B5 mov a,var6
1192 0001B5 adc hexh,a
1193 0001B5 ;----
1194 0001B5 ;x10
1195 0001B5 clr var3
1196 0001B5 clr var4
1197 0001B5 clr var5
1198 0001B5 clr var6
1199 0001B5 swap bcdl
1200 0001B5 and a,#0fh
1201 0001B5 mov var7,a
1202 0001B5 mov_ var8,#8
1203 0001B5 mov a,#10
1204 0001B5 mov var3,a
1205 0001B5 call mulsub ;two byte multiply
1206 0001B5 mov a,var5
1207 0001B5 add hexl,a
1208 0001B5 mov a,var6
1209 0001B5 adc hexh,a
1210 0001B5 ;----
1211 0001B5 ;x1
1212 0001B5 mov a,bcdl
1213 0001B5 and a,#0fh
1214 0001B5 add hexl,a
1215 0001B5 mov a,#0
1216 0001B5 adc hexh,a
1217 0001B5 ret
1218 0001B5 ;**********************************************
1219 0001B5 ;两个BYTE的数相乘
1220 0001B5 mulsub:
1221 0001B5 bclr fc
1222 0001B5 rrcm var7
1223 0001B5 b0bts1 fc
1224 0001B5 jmp deccount
1225 0001B5 mov a,var3
1226 0001B5 add var5,a
1227 0001B5 mov a,var4
1228 0001B5 adc var6,a
1229 0001B5 ;----
1230 0001B5 deccount:
1231 0001B5 decms var8
1232 0001B5 jmp adjustposition
1233 0001B5 ret
1234 0001B5 ;----
1235 0001B5 adjustposition:
1236 0001B5 bclr fc
1237 0001B5 rlcm var3
1238 0001B5 rlcm var4
1239 0001B5 jmp mulsub
1240 0001B5 */
1241 0001B5 include detect.asm
1242 0001B5 ;******************************************************
1243 0001B5 ;name:mndetect
1244 0001B5 ;function:用于各种A/D检测的切换
1245 0001B5 ;input:
1246 0001B5 ;output:
1247 0001B5 ;influece:
1248 0001B5 ;*******************************************************
1249 0001B5 mndetect:
1250 0001B5 jb0 operateflag,mndetect90
1251 0001B5 5D17 bts1 operateflag
1252 0001B6 81BF jmp mndetect90
1253 0001B7 jb1 volADCflag,voltagedetect ;电压检测
1254 0001B7 5017 bts0 volADCflag
1255 0001B8 81C0 jmp voltagedetect
1256 0001B9 jb1 curADCflag,currentdetect ;电流检测
1257 0001B9 5117 bts0 curADCflag
1258 0001BA 81CA jmp currentdetect
1259 0001BB jb1 IgbtADCflag,Igbttempdetect ;IGBT温度检测
1260 0001BB 5217 bts0 IgbtADCflag
1261 0001BC 81D4 jmp Igbttempdetect
1262 0001BD jb1 cookerADCflag,cookertempdetect ;锅底温度检测
1263 0001BD 5317 bts0 cookerADCflag
1264 0001BE 81DE jmp cookertempdetect
1265 0001BF ;-----
1266 0001BF mndetect90:
1267 0001BF 0E00 ret
1268 0001C0
1269 0001C0 ;******************************************************
1270 0001C0 ;name:voltagedetect
1271 0001C0 ;function:用于市电电压过压、欠压检测
1272 0001C0 ;input:
1273 0001C0 ;output:
1274 0001C0 ;influece:
1275 0001C0 ;*******************************************************
1276 0001C0 voltagedetect:
1277 0001C0 ;// b0bts0 ADCendflag
1278 0001C0 ;// jmp voltagedetect80
1279 0001C0 ;-----
1280 0001C0 2D01 mov a,#01h
1281 0001C1 1FAE mov p4con,a ;isolate an0
1282 0001C2 2D00 mov a,#00h
1283 0001C3 1FB1 mov adm,a ;enable an0
1284 0001C4 C1E9 call mnADconvert
1285 0001C5 ;-----
1286 0001C5 ;取出AD值,进行比较
1287 0001C5
1288 0001C5 ;-----
1289 0001C5 voltagedetect80:
1290 0001C5 4017 bclr volADCflag
1291 0001C6 4917 bset curADCflag
1292 0001C7 4217 bclr IgbtADCflag
1293 0001C8 4317 bclr cookerADCflag
1294 0001C9
1295 0001C9
1296 0001C9 ;-----
1297 0001C9 voltagedetect90:
1298 0001C9 0E00 ret
1299 0001CA
1300 0001CA ;******************************************************
1301 0001CA ;name:currentdetect
1302 0001CA ;function:用于检测负载电流
1303 0001CA ;input:
1304 0001CA ;output:
1305 0001CA ;influece:
1306 0001CA ;*******************************************************
1307 0001CA currentdetect:
1308 0001CA ;// b0bts0 ADCendflag
1309 0001CA ;// jmp currentdetect80
1310 0001CA ;-----
1311 0001CA 2D02 mov a,#02h
1312 0001CB 1FAE mov p4con,a ;isolate an1
1313 0001CC 2D01 mov a,#01h
1314 0001CD 1FB1 mov adm,a ;enable an1
1315 0001CE C1E9 call mnADconvert
1316 0001CF ;-----
1317 0001CF ;取出AD值,进行比较
1318 0001CF
1319 0001CF ;-----
1320 0001CF currentdetect80:
1321 0001CF 4017 bclr volADCflag
1322 0001D0 4117 bclr curADCflag
1323 0001D1 4A17 bset IgbtADCflag
1324 0001D2 4317 bclr cookerADCflag
1325 0001D3
1326 0001D3 ;-----
1327 0001D3 currentdetect90:
1328 0001D3 0E00 ret
1329 0001D4
1330 0001D4 ;******************************************************
1331 0001D4 ;name:Igbttempdetect
1332 0001D4 ;function:用于检测IGBT温度
1333 0001D4 ;input:
1334 0001D4 ;output:
1335 0001D4 ;influece:
1336 0001D4 ;*******************************************************
1337 0001D4 Igbttempdetect:
1338 0001D4 ;// b0bts0 ADCendflag
1339 0001D4 ;// jmp Igbttempdetect80
1340 0001D4 ;-----
1341 0001D4 2D04 mov a,#04h
1342 0001D5 1FAE mov p4con,a ;isolate an2
1343 0001D6 2D02 mov a,#02h
1344 0001D7 1FB1 mov adm,a ;enable an2
1345 0001D8 C1E9 call mnADconvert
1346 0001D9 ;-----
1347 0001D9 ;取出AD值,进行比较
1348 0001D9
1349 0001D9 ;-----
1350 0001D9 Igbttempdetect80:
1351 0001D9 4017 bclr volADCflag
1352 0001DA 4117 bclr curADCflag
1353 0001DB 4217 bclr IgbtADCflag
1354 0001DC 4B17 bset cookerADCflag
1355 0001DD ;-----
1356 0001DD Igbttempdetect90:
1357 0001DD 0E00 ret
1358 0001DE
1359 0001DE ;******************************************************
1360 0001DE ;name:cookertempdetect
1361 0001DE ;function:用于检测锅底的温度
1362 0001DE ;input:
1363 0001DE ;output:
1364 0001DE ;influece:
1365 0001DE ;*******************************************************
1366 0001DE cookertempdetect:
1367 0001DE ;// b0bts0 ADCendflag
1368 0001DE ;// jmp cookertempdetect80
1369 0001DE ;-----
1370 0001DE 2D08 mov a,#8h
1371 0001DF 1FAE mov p4con,a ;isolate an3
1372 0001E0 2D03 mov a,#03h
1373 0001E1 1FB1 mov adm,a ;enable an3
1374 0001E2 C1E9 call mnADconvert
1375 0001E3 ;-----
1376 0001E3 ;取出AD值,进行比较
1377 0001E3
1378 0001E3 ;-----
1379 0001E3 cookertempdetect80:
1380 0001E3 4817 bset volADCflag
1381 0001E4 4117 bclr curADCflag
1382 0001E5 4217 bclr IgbtADCflag
1383 0001E6 4317 bclr cookerADCflag
1384 0001E7
1385 0001E7 ;-----
1386 0001E7 cookertempdetect90:
1387 0001E7 0E00 ret
1388 0001E8
1389 0001E8 ;**********************************************
1390 0001E8 ;Name :cookercheck
1391 0001E8 ;Function:无锅具、锅具材料不合、小物件检测
1392 0001E8 ;Input :
1393 0001E8 ;Output :
1394 0001E8 ;Register Used:
1395 0001E8 ;***********************************************
1396 0001E8 cookercheck:
1397 0001E8
1398 0001E8 ;-----
1399 0001E8 cookercheck90:
1400 0001E8 0E00 ret
1401 0001E9
1402 0001E9 ;**********************************************
1403 0001E9 ;Name :mnADconvert
1404 0001E9 ;Function:A/D转换四次,然求四次的平均值
1405 0001E9 ;Input :
1406 0001E9 ;Output :
1407 0001E9 ;Register Used:var1
1408 0001E9 ;***********************************************
1409
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -