📄 456.lst
字号:
206
01A9 7F20 207 DELAY1: MOV R7,#20H ;延时64us
01AB DFFE 208 DJNZ R7,$
01AD 22 209 RET
210
211
212 ;****************************************************
213 ; 显示子程序模块
214 ;****************************************************
215
01AE 1201F4 216 MON: LCALL TEMP_MON
01B1 120215 217 LCALL REV_MON
01B4 22 218 RET
219
220
221 ;------------------1602通用液晶初始化子程序
01B5 7938 222 INI_1602: MOV R1,#38H
01B7 1201D8 223 LCALL WRITE_IR
01BA 7901 224 MOV R1,#01H
01BC 1201D8 225 LCALL WRITE_IR
01BF 7906 226 MOV R1,#06H
01C1 1201D8 227 LCALL WRITE_IR
01C4 790C 228 MOV R1,#0CH
01C6 1201D8 229 LCALL WRITE_IR
01C9 22 230 RET
231
232
233 ;-------------------1602通用液晶忙态检测子程序
01CA C290 234 BF: CLR LCD_RS
01CC D291 235 SETB LCD_RW
01CE D292 236 SETB LCD_E
01D0 D287 237 SETB LCD_DB.7
01D2 2087F5 238 JB LCD_DB.7,BF
01D5 C292 239 CLR LCD_E
01D7 22 240 RET
241
242
243 ;-------------------写LCD指令寄存器子程序
01D8 1201CA 244 WRITE_IR: LCALL BF
A51 MACRO ASSEMBLER 456 23/03/08 16:07:03 PAGE 5
01DB C290 245 CLR LCD_RS
01DD C291 246 CLR LCD_RW
01DF D292 247 SETB LCD_E
01E1 8980 248 MOV LCD_DB,R1
01E3 C292 249 CLR LCD_E
01E5 22 250 RET
251
252 ;-------------------写LCD数据寄存器子程序
01E6 1201CA 253 WRITE_DR: LCALL BF
01E9 D290 254 SETB LCD_RS
01EB C291 255 CLR LCD_RW
01ED D292 256 SETB LCD_E
01EF 8A80 257 MOV LCD_DB,R2
01F1 C292 258 CLR LCD_E
01F3 22 259 RET
260
261
01F4 900271 262 TEMP_MON: MOV DPTR,#NUM_TAB
01F7 7985 263 MOV R1,#85H
01F9 1201D8 264 LCALL WRITE_IR
01FC E533 265 MOV A,TEMP_BCD
01FE 54F0 266 ANL A,#0F0H
0200 C4 267 SWAP A
0201 93 268 MOVC A,@A+DPTR
0202 FA 269 MOV R2,A
0203 1201E6 270 LCALL WRITE_DR
0206 E533 271 MOV A,TEMP_BCD
0208 540F 272 ANL A,#0FH
020A 93 273 MOVC A,@A+DPTR
020B FA 274 MOV R2,A
020C 1201E6 275 LCALL WRITE_DR
020F 7A43 276 MOV R2,#43H
0211 1201E6 277 LCALL WRITE_DR
0214 22 278 RET
279
280
0215 E536 281 REV_MON: MOV A,COUNTER
0217 75F03C 282 MOV B,#60
021A A4 283 MUL AB
021B 85F035 284 MOV COUNTER_L,B
021E F534 285 MOV COUNTER_H,A
286
0220 E4 287 CLR A
0221 C3 288 CLR C
0222 F537 289 MOV BCD_L,A
0224 F536 290 MOV BCD_H,A
0226 7F10 291 MOV R7,#10H
0228 E534 292 REV_01: MOV A,COUNTER_H
022A 33 293 RLC A
022B F534 294 MOV COUNTER_H,A
022D E535 295 MOV A,COUNTER_L
022F 33 296 RLC A
0230 F535 297 MOV COUNTER_L,A
0232 E537 298 MOV A,BCD_L
0234 3537 299 ADDC A,BCD_L
0236 D4 300 DA A
0237 F537 301 MOV BCD_L,A
0239 E536 302 MOV A,BCD_H
023B 3536 303 ADDC A,BCD_H
023D D4 304 DA A
023E F536 305 MOV BCD_H,A
0240 DFE6 306 DJNZ R7,REV_01
307
0242 900271 308 MOV DPTR,#NUM_TAB
0245 79C4 309 MOV R1,#0C4H
0247 1201D8 310 LCALL WRITE_IR
A51 MACRO ASSEMBLER 456 23/03/08 16:07:03 PAGE 6
024A E536 311 MOV A,BCD_H
024C 54F0 312 ANL A,#0F0H
024E C4 313 SWAP A
024F 93 314 MOVC A,@A+DPTR
0250 FA 315 MOV R2,A
0251 1201E6 316 LCALL WRITE_DR
0254 E536 317 MOV A,BCD_H
0256 540F 318 ANL A,#0FH
0258 93 319 MOVC A,@A+DPTR
0259 FA 320 MOV R2,A
025A 1201E6 321 LCALL WRITE_DR
025D E537 322 MOV A,BCD_L
025F 54F0 323 ANL A,#0F0H
0261 C4 324 SWAP A
0262 93 325 MOVC A,@A+DPTR
0263 FA 326 MOV R2,A
0264 1201E6 327 LCALL WRITE_DR
0267 E537 328 MOV A,BCD_L
0269 540F 329 ANL A,#0FH
026B 93 330 MOVC A,@A+DPTR
026C FA 331 MOV R2,A
026D 1201E6 332 LCALL WRITE_DR
333
334
335
0270 22 336 RET
337
0271 30313233 338 NUM_TAB:DB 30H,31H,32H,33H,34H,35H,36H,37H,38H,39H
0275 34353637
0279 3839
027B 41424344 339 DB 41H,42H,43H,44H,45H,46H
027F 4546
340
341 ;-------------------不用更新的字符显示子程序
342
0281 9002A4 343 TEXT: MOV DPTR,#TEXT_TAB
0284 7980 344 MOV R1,#80H ;第一行显示
0286 1201D8 345 LCALL WRITE_IR
0289 7B05 346 MOV R3,#5H
028B 120299 347 LCALL LOOP1
348
028E 79C0 349 MOV R1,#0C0H ;第二行显示
0290 1201D8 350 LCALL WRITE_IR
0293 7B04 351 MOV R3,#4H
0295 120299 352 LCALL LOOP1
0298 22 353 RET
354
0299 7400 355 LOOP1: MOV A,#00H
029B 93 356 MOVC A,@A+DPTR
029C FA 357 MOV R2,A
029D 1201E6 358 LCALL WRITE_DR
02A0 A3 359 INC DPTR
02A1 DBF6 360 DJNZ R3,LOOP1
02A3 22 361 RET
362
363
364
02A4 54656D70 365 TEXT_TAB:DB 54H,65H,6DH,70H,3AH,52H,65H,76H,3AH
02A8 3A526576
02AC 3A
366
367 ;********************************************************
368 ; 调速模块
369 ;********************************************************
02AD D28C 370 DP: SETB TR0 ;开计数器
02AF E532 371 MOV A,TEMP_NUM
A51 MACRO ASSEMBLER 456 23/03/08 16:07:03 PAGE 7
02B1 C3 372 CLR C
02B2 941E 373 SUBB A,#30
02B4 5011 374 JNC DP1 ;大于30度跳转
02B6 7E42 375 MOV R6,#66
02B8 7FFA 376 DELAY_1: MOV R7,#250
02BA C294 377 DELAY_2: CLR SWITCH ;小于30度时,关闭风扇
02BC 7D0E 378 MOV R5,#14
02BE DDFE 379 DJNZ R5,$
02C0 DFF8 380 DJNZ R7,DELAY_2
02C2 DEF4 381 DJNZ R6,DELAY_1
02C4 0204ED 382 LJMP DP10 ;跳转到返回
383
384
02C7 FB 385 DP1: MOV R3,A
02C8 C3 386 CLR C
02C9 9414 387 SUBB A,#20
02CB 401D 388 JC DP2 ;小于50度跳转
389
02CD C3 390 CLR C
02CE 940A 391 SUBB A,#10
02D0 4005 392 JC DP3 ;小于60度跳转
02D2 C295 393 CLR LARUM ;大于60度,发出警报
02D4 0202D9 394 LJMP DP4
02D7 D295 395 DP3: SETB LARUM ;小于60度,关警报
396
02D9 7E42 397 DP4: MOV R6,#66
02DB 7FFA 398 DELAY_3: MOV R7,#250
02DD D294 399 DELAY_4: SETB SWITCH ;大于50度时,风扇全开
02DF 7D0E 400 MOV R5,#14
02E1 DDFE 401 DJNZ R5,$
02E3 DFF8 402 DJNZ R7,DELAY_4
02E5 DEF4 403 DJNZ R6,DELAY_3
02E7 0204ED 404 LJMP DP10 ;跳转到返回
405
02EA EB 406 DP2: MOV A,R3
02EB 23 407 RL A
02EC 9002F0 408 MOV DPTR,#LEVER_TAB
02EF 73 409 JMP @A+DPTR
410
02F0 6118 411 LEVER_TAB: AJMP LEVER_01
02F2 612F 412 AJMP LEVER_02
02F4 6148 413 AJMP LEVER_03
02F6 615F 414 AJMP LEVER_04
02F8 6178 415 AJMP LEVER_05
02FA 618F 416 AJMP LEVER_06
02FC 61A8 417 AJMP LEVER_07
02FE 61BF 418 AJMP LEVER_08
0300 61D8 419 AJMP LEVER_09
0302 61EF 420 AJMP LEVER_10
0304 8108 421 AJMP LEVER_11
0306 811F 422 AJMP LEVER_12
0308 8138 423 AJMP LEVER_13
030A 814F 424 AJMP LEVER_14
030C 8168 425 AJMP LEVER_15
030E 817F 426 AJMP LEVER_16
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -