⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 inductioncooker050413ver1.lst

📁 应用松翰母体写的一款电磁炉
💻 LST
📖 第 1 页 / 共 5 页
字号:
  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 + -