📄 ac18-1.lst
字号:
0308 E401 LDI R16,0x41
0309 E011 LDI R17,1
030A 940E0AD9 CALL lpm32
030C 933A ST R19,-Y
030D 932A ST R18,-Y
030E 931A ST R17,-Y
030F 930A ST R16,-Y
0310 940E0C4D CALL cmp32f
0312 F42C BGE 0x0318
0313 91800061 LDS R24,OutFlag
0315 5F8F SUBI R24,0xFF
0316 93800061 STS OutFlag,R24
(0265) current=(uint)f;
0318 01FE MOVW R30,R28
0319 8022 LDD R2,Z+2
031A 8033 LDD R3,Z+3
031B 8044 LDD R4,Z+4
031C 8055 LDD R5,Z+5
031D 925A ST R5,-Y
031E 924A ST R4,-Y
031F 923A ST R3,-Y
0320 922A ST R2,-Y
0321 E30D LDI R16,0x3D
0322 E011 LDI R17,1
0323 940E0AD9 CALL lpm32
0325 933A ST R19,-Y
0326 932A ST R18,-Y
0327 931A ST R17,-Y
0328 930A ST R16,-Y
0329 940E0C4D CALL cmp32f
032B F0CC BLT 0x0345
032C 01FE MOVW R30,R28
032D 8022 LDD R2,Z+2
032E 8033 LDD R3,Z+3
032F 8044 LDD R4,Z+4
0330 8055 LDD R5,Z+5
0331 925A ST R5,-Y
0332 924A ST R4,-Y
0333 923A ST R3,-Y
0334 922A ST R2,-Y
0335 E30D LDI R16,0x3D
0336 E011 LDI R17,1
0337 940E0AD9 CALL lpm32
0339 933A ST R19,-Y
033A 932A ST R18,-Y
033B 931A ST R17,-Y
033C 930A ST R16,-Y
033D 940E0B9A CALL sub32f
033F 940E0AED CALL fp2int
0341 01A8 MOVW R20,R16
0342 5040 SUBI R20,0
0343 4850 SBCI R21,0x80
0344 C008 RJMP 0x034D
0345 01FE MOVW R30,R28
0346 8102 LDD R16,Z+2
0347 8113 LDD R17,Z+3
0348 8124 LDD R18,Z+4
0349 8135 LDD R19,Z+5
034A 940E0AED CALL fp2int
034C 01A8 MOVW R20,R16
034D 93500067 STS current+1,R21
034F 93400066 STS current,R20
(0266)
(0267) temp=current;temp=temp/1000;LC[3]=(uchar)temp;
0351 015A MOVW R10,R20
0352 EE28 LDI R18,0xE8
0353 E033 LDI R19,3
0354 0185 MOVW R16,R10
0355 940E0A7E CALL div16u
0357 0158 MOVW R10,R16
0358 92A0007F STS LC+3,R10
(0268) temp=current;temp=(temp/100)%10;LC[2]=(uchar)temp;
035A 90A00066 LDS R10,current
035C 90B00067 LDS R11,current+1
035E E624 LDI R18,0x64
035F E030 LDI R19,0
0360 0185 MOVW R16,R10
0361 940E0A7E CALL div16u
0363 E02A LDI R18,0xA
0364 E030 LDI R19,0
0365 940E0A7C CALL mod16u
0367 0158 MOVW R10,R16
0368 92A0007E STS LC+2,R10
(0269) temp=current;temp=(temp/10)%10;LC[1]=(uchar)temp;
036A 90A00066 LDS R10,current
036C 90B00067 LDS R11,current+1
036E E02A LDI R18,0xA
036F E030 LDI R19,0
0370 0185 MOVW R16,R10
0371 940E0A7E CALL div16u
0373 E02A LDI R18,0xA
0374 E030 LDI R19,0
0375 940E0A7C CALL mod16u
0377 0158 MOVW R10,R16
0378 92A0007D STS LC+1,R10
(0270) temp=current;temp=temp%10;LC[0]=(uchar)temp;
037A 90A00066 LDS R10,current
037C 90B00067 LDS R11,current+1
037E E02A LDI R18,0xA
037F E030 LDI R19,0
0380 0185 MOVW R16,R10
0381 940E0A7C CALL mod16u
0383 0158 MOVW R10,R16
0384 92A0007C STS LC,R10
(0271) DisplayOneChar(3,3,LC[3]+0x30);
0386 9180007F LDS R24,LC+3
0388 5D80 SUBI R24,0xD0
0389 8388 STD Y+0,R24
038A E023 LDI R18,3
038B E003 LDI R16,3
038C 940E09F6 CALL _DisplayOneChar
(0272) DisplayOneChar(4,3,0x2e);
038E E28E LDI R24,0x2E
038F 8388 STD Y+0,R24
0390 E023 LDI R18,3
0391 E004 LDI R16,4
0392 940E09F6 CALL _DisplayOneChar
(0273) DisplayOneChar(5,3,LC[2]+0x30);
0394 9180007E LDS R24,LC+2
0396 5D80 SUBI R24,0xD0
0397 8388 STD Y+0,R24
0398 E023 LDI R18,3
0399 E005 LDI R16,5
039A 940E09F6 CALL _DisplayOneChar
(0274) DisplayOneChar(6,3,LC[1]+0x30);
039C 9180007D LDS R24,LC+1
039E 5D80 SUBI R24,0xD0
039F 8388 STD Y+0,R24
03A0 E023 LDI R18,3
03A1 E006 LDI R16,6
03A2 940E09F6 CALL _DisplayOneChar
(0275) break;
03A4 C5D2 RJMP 0x0977
(0276)
(0277) case 7:POW_OFF;Delay_nms(100);//关闭电源
03A5 9A91 SBI 0x12,1
03A6 E604 LDI R16,0x64
03A7 E010 LDI R17,0
03A8 D5E6 RCALL _Delay_nms
(0278) AIR_OFF;Delay_nms(500);status=8;cnt=0;//关闭气缸
03A9 9A93 SBI 0x12,3
03AA EF04 LDI R16,0xF4
03AB E011 LDI R17,1
03AC D5E2 RCALL _Delay_nms
03AD E088 LDI R24,0x8
03AE 93800060 STS status,R24
03B0 2422 CLR R2
03B1 2433 CLR R3
03B2 92300063 STS cnt+1,R3
03B4 92200062 STS cnt,R2
(0279) break;
03B6 C5C0 RJMP 0x0977
(0280)
(0281) case 8:SPEED_5V;//黄线接5V
03B7 9890 CBI 0x12,0
(0282) POW_14V;Delay_nms(100);POW_ON;//启动测试14V低压
03B8 9A92 SBI 0x12,2
03B9 E604 LDI R16,0x64
03BA E010 LDI R17,0
03BB D5D3 RCALL _Delay_nms
03BC 9891 CBI 0x12,1
(0283)
(0284) Wait10S_Start_Flag=1;cnt=0;clr_T1();//启动10S并开始T1计数
03BD E081 LDI R24,1
03BE 93800068 STS Wait10S_Start_Flag,R24
03C0 2422 CLR R2
03C1 2433 CLR R3
03C2 92300063 STS cnt+1,R3
03C4 92200062 STS cnt,R2
03C6 DD1C RCALL _clr_T1
(0285) display_val=0;status=9;TCCR1B = 0x06;
03C7 2422 CLR R2
03C8 2433 CLR R3
03C9 92300065 STS display_val+1,R3
03CB 92200064 STS display_val,R2
03CD E089 LDI R24,0x9
03CE 93800060 STS status,R24
03D0 E086 LDI R24,6
03D1 BD8E OUT 0x2E,R24
(0286) break;
03D2 C5A4 RJMP 0x0977
(0287)
(0288) case 9:while(Wait10S_End_Flag==0)Delay_nms(10);Wait10S_End_Flag=0;status=10;//等待10S定时结束
03D3 E00A LDI R16,0xA
03D4 E010 LDI R17,0
03D5 D5B9 RCALL _Delay_nms
03D6 90200069 LDS R2,Wait10S_End_Flag
03D8 2022 TST R2
03D9 F3C9 BEQ 0x03D3
03DA 2422 CLR R2
03DB 92200069 STS Wait10S_End_Flag,R2
03DD E08A LDI R24,0xA
03DE 93800060 STS status,R24
(0289) break;
03E0 C596 RJMP 0x0977
(0290)
(0291) case 10:TCCR1B = 0x00;display_val=read_T1();status=11;//读取T1的计数(14V低压LVS)
03E1 2422 CLR R2
03E2 BC2E OUT 0x2E,R2
03E3 DCF4 RCALL _read_T1
03E4 93100065 STS display_val+1,R17
03E6 93000064 STS display_val,R16
03E8 E08B LDI R24,0xB
03E9 93800060 STS status,R24
(0292) f=(float)display_val;f=f*4.985;display_val=(uint)f;//修正
03EB E501 LDI R16,0x51
03EC E011 LDI R17,1
03ED 940E0AD9 CALL lpm32
03EF 933A ST R19,-Y
03F0 932A ST R18,-Y
03F1 931A ST R17,-Y
03F2 930A ST R16,-Y
03F3 91000064 LDS R16,display_val
03F5 91100065 LDS R17,display_val+1
03F7 9516 LSR R17
03F8 9507 ROR R16
03F9 940E0B35 CALL int2fp
03FB 933A ST R19,-Y
03FC 932A ST R18,-Y
03FD 931A ST R17,-Y
03FE 930A ST R16,-Y
03FF 940E0C7E CALL empy32fs
0401 91000064 LDS R16,display_val
0403 91100065 LDS R17,display_val+1
0405 7001 ANDI R16,1
0406 7010 ANDI R17,0
0407 940E0B35 CALL int2fp
0409 933A ST R19,-Y
040A 932A ST R18,-Y
040B 931A ST R17,-Y
040C 930A ST R16,-Y
040D 940E0B92 CALL add32f
040F 01FE MOVW R30,R28
0410 8302 STD Z+2,R16
0411 8313 STD Z+3,R17
0412 8324 STD Z+4,R18
0413 8335 STD Z+5,R19
0414 E309 LDI R16,0x39
0415 E011 LDI R17,1
0416 940E0AD9 CALL lpm32
0418 933A ST R19,-Y
0419 932A ST R18,-Y
041A 931A ST R17,-Y
041B 930A ST R16,-Y
041C 01FE MOVW R30,R28
041D 8026 LDD R2,Z+6
041E 8037 LDD R3,Z+7
041F 8440 LDD R4,Z+8
0420 8451 LDD R5,Z+9
0421 925A ST R5,-Y
0422 924A ST R4,-Y
0423 923A ST R3,-Y
0424 922A ST R2,-Y
0425 940E0C81 CALL empy32f
0427 01FE MOVW R30,R28
0428 8302 STD Z+2,R16
0429 8313 STD Z+3,R17
042A 8324 STD Z+4,R18
042B 8335 STD Z+5,R19
042C 01FE MOVW R30,R28
042D 8022 LDD R2,Z+2
042E 8033 LDD R3,Z+3
042F 8044 LDD R4,Z+4
0430 8055 LDD R5,Z+5
0431 925A ST R5,-Y
0432 924A ST R4,-Y
0433 923A ST R3,-Y
0434 922A ST R2,-Y
0435 E30D LDI R16,0x3D
0436 E011 LDI R17,1
0437 940E0AD9 CALL lpm32
0439 933A ST R19,-Y
043A 932A ST R18,-Y
043B 931A ST R17,-Y
043C 930A ST R16,-Y
043D 940E0C4D CALL cmp32f
043F F0CC BLT 0x0459
0440 01FE MOVW R30,R28
0441 8022 LDD R2,Z+2
0442 8033 LDD R3,Z+3
0443 8044 LDD R4,Z+4
0444 8055 LDD R5,Z+5
0445 925A ST R5,-Y
0446 924A ST R4,-Y
0447 923A ST R3,-Y
0448 922A ST R2,-Y
0449 E30D LDI R16,0x3D
044A E011 LDI R17,1
044B 940E0AD9 CALL lpm32
044D 933A ST R19,-Y
044E 932A ST R18,-Y
044F 931A ST R17,-Y
0450 930A ST R16,-Y
0451 940E0B9A CALL sub32f
0453 940E0AED CALL fp2int
0455 01A8 MOVW R20,R16
0456 5040 SUBI R20,0
0457 4850 SBCI R21,0x80
0458 C008 RJMP 0x0461
0459 01FE MOVW R30,R28
045A 8102 LDD R16,Z+2
045B 8113 LDD R17,Z+3
045C 8124 LDD R18,Z+4
045D 8135 LDD R19,Z+5
045E 940E0AED CALL fp2int
0460 01A8 MOVW R20,R16
0461 93500065 STS display_val+1,R21
0463 93400064 STS display_val,R20
(0293) LLVS=display_val;//暂存LVS
0465 011A MOVW R2,R20
0466 9230007B STS LLVS+1,R3
0468 9220007A STS LLVS,R2
(0294) if(LLVS>200)OutFlag++;//判断14V低压能否启动
046A EC88 LDI R24,0xC8
046B E090 LDI R25,0
046C 9020007A LDS R2,LLVS
046E 9030007B LDS R3,LLVS+1
0470 1582 CP R24,R2
0471 0593 CPC R25,R3
0472 F428 BCC 0x0478
0473 91800061 LDS R24,OutFlag
0475 5F8F SUBI R24,0xFF
0476 93800061 STS OutFlag,R24
(0295) temp=display_val;temp=temp/1000;LVS[3]=(uchar)temp;
0478 90A00064 LDS R10,display_val
047A 90B00065 LDS R11,display_val+1
047C EE28 LDI R18,0xE8
047D E033 LDI R19,3
047E 0185 MOVW R16,R10
047F 940E0A7E CALL div16u
0481 0158 MOVW R10,R16
0482 92A0008F STS LVS+3,R10
(0296) temp=display_val;temp=(temp/100)%10;LVS[2]=(uchar)temp;
0484 90A00064 LDS R10,display_val
0486 90B00065 LDS R11,display_val+1
0488 E624 LDI R18,0x64
0489 E030 LDI R19,0
048A 0185 MOVW R16,R10
048B 940E0A7E CALL div16u
048D E02A LDI R18,0xA
048E E030 LDI R19,0
048F 940E0A7C CALL mod16u
0491 0158 MOVW R10,R16
0492 92A0008E STS LVS+2,R10
(0297) temp=display_val;temp=(temp/10)%10;LVS[1]=(uchar)temp;
0494 90A00064 LDS R10,display_val
0496 90B00065 LDS R11,display_val+1
0498 E02A LDI R18,0xA
0499 E030 LDI R19,0
049A 0185 MOVW R16,R10
049B 940E0A7E CALL div16u
049D E02A LDI R18,0xA
049E E030 LDI R19,0
049F 940E0A7C CALL mod16u
04A1 0158 MOVW R10,R16
04A2 92A0008D STS LVS+1,R10
(0298) temp=display_val;temp=temp%10;LVS[0]=(uchar)temp;
04A4 90A00064 LDS R10,display_val
04A6 90B00065 LDS R11,display_val+1
04A8 E02A LDI R18,0xA
04A9 E030 LDI R19,0
04AA 0185 MOVW R16,R10
04AB 940E0A7C CALL mod16u
04AD 0158 MOVW R10,R16
04AE 92A0008C STS LVS,R10
(0299) DisplayOneChar(4,1,LVS[3]+0x30);
04B0 9180008F LDS R24,LVS+3
04B2 5D80 SUBI R24,0xD0
04B3 8388 STD Y+0,R24
04B4 E021 LDI R18,1
04B5 E004 LDI R16,4
04B6 940E09F6 CALL _DisplayOneChar
(0300) DisplayOneChar(5,1,LVS[2]+0x30);
04B8 9180008E LDS R24,LVS+2
04BA 5D80 SUBI R24,0xD0
04BB 8388 STD Y+0,R24
04BC E021 LDI R18,1
04BD E005 LDI R16,5
04BE 940E09F6 CALL _DisplayOneChar
(0301) DisplayOneChar(6,1,LVS[1]+0x30);
04C0 9180008D LDS R24,LVS+1
04C2 5D80 SUBI R24,0xD0
04C3 8388 STD Y+0,R24
04C4 E021 LDI R18,1
04C5 E006 LDI R16,6
04C6 940E09F6 CALL _DisplayOneChar
(0302) DisplayOneChar(7,1,LVS[0]+0x30);
04C8 9180008C LDS R24,LVS
04CA 5D80 SUBI R24,0xD0
04CB 8388 STD Y+0,R24
04CC E021 LDI R18,1
04CD E007 LDI R16,7
04CE 940E09F6 CALL _DisplayOneChar
(0303) break;
04D0 C4A6 RJMP 0x0977
(0304)
(0305) case 11:POW_OFF;Delay_nms(100);POW_27V;SPEED_0V;//转换成27V,TPV
04D1 9A91 SBI 0x12,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -