📄 ac18-1.lst
字号:
04D2 E604 LDI R16,0x64
04D3 E010 LDI R17,0
04D4 D4BA RCALL _Delay_nms
04D5 9892 CBI 0x12,2
04D6 9A90 SBI 0x12,0
(0306) Delay_nms(100);POW_ON;status=12;
04D7 E604 LDI R16,0x64
04D8 E010 LDI R17,0
04D9 D4B5 RCALL _Delay_nms
04DA 9891 CBI 0x12,1
04DB E08C LDI R24,0xC
04DC 93800060 STS status,R24
(0307) break;
04DE C498 RJMP 0x0977
(0308)
(0309) case 12:Wait6S_Start_Flag=1;cnt=0;status=13;//启动6S
04DF E081 LDI R24,1
04E0 9380006A STS Wait6S_Start_Flag,R24
04E2 2422 CLR R2
04E3 2433 CLR R3
04E4 92300063 STS cnt+1,R3
04E6 92200062 STS cnt,R2
04E8 E08D LDI R24,0xD
04E9 93800060 STS status,R24
(0310) break;
04EB C48B RJMP 0x0977
(0311)
(0312) case 13:while(Wait6S_End_Flag==0)Delay_nms(10);Wait6S_End_Flag=0;status=14;cnt=0;//等待6S定时结束
04EC E00A LDI R16,0xA
04ED E010 LDI R17,0
04EE D4A0 RCALL _Delay_nms
04EF 9020006B LDS R2,Wait6S_End_Flag
04F1 2022 TST R2
04F2 F3C9 BEQ 0x04EC
04F3 2422 CLR R2
04F4 9220006B STS Wait6S_End_Flag,R2
04F6 E08E LDI R24,0xE
04F7 93800060 STS status,R24
04F9 2433 CLR R3
04FA 92300063 STS cnt+1,R3
04FC 92200062 STS cnt,R2
(0313) break;
04FE C478 RJMP 0x0977
(0314)
(0315) case 14:Wait10S_Start_Flag=1;cnt=0;clr_T1();
04FF E081 LDI R24,1
0500 93800068 STS Wait10S_Start_Flag,R24
0502 2422 CLR R2
0503 2433 CLR R3
0504 92300063 STS cnt+1,R3
0506 92200062 STS cnt,R2
0508 DBDA RCALL _clr_T1
(0316) TCCR1B = 0x06;display_val=0;status=15;//启动10S并开始T1计数
0509 E086 LDI R24,6
050A BD8E OUT 0x2E,R24
050B 2422 CLR R2
050C 2433 CLR R3
050D 92300065 STS display_val+1,R3
050F 92200064 STS display_val,R2
0511 E08F LDI R24,0xF
0512 93800060 STS status,R24
(0317) break;
0514 C462 RJMP 0x0977
(0318)
(0319) case 15:while(Wait10S_End_Flag==0)Delay_nms(10);Wait10S_End_Flag=0;status=16;cnt=0;//等待10S定时结束
0515 E00A LDI R16,0xA
0516 E010 LDI R17,0
0517 D477 RCALL _Delay_nms
0518 90200069 LDS R2,Wait10S_End_Flag
051A 2022 TST R2
051B F3C9 BEQ 0x0515
051C 2422 CLR R2
051D 92200069 STS Wait10S_End_Flag,R2
051F E180 LDI R24,0x10
0520 93800060 STS status,R24
0522 2433 CLR R3
0523 92300063 STS cnt+1,R3
0525 92200062 STS cnt,R2
(0320) break;
0527 C44F RJMP 0x0977
(0321)
(0322) case 16:TCCR1B = 0x00;display_val=read_T1();status=17;//读取T1的计数(TPV)
0528 2422 CLR R2
0529 BC2E OUT 0x2E,R2
052A DBAD RCALL _read_T1
052B 93100065 STS display_val+1,R17
052D 93000064 STS display_val,R16
052F E181 LDI R24,0x11
0530 93800060 STS status,R24
(0323) f=(float)display_val;f=f*3.425;display_val=(uint)f;//修正
0532 E501 LDI R16,0x51
0533 E011 LDI R17,1
0534 940E0AD9 CALL lpm32
0536 933A ST R19,-Y
0537 932A ST R18,-Y
0538 931A ST R17,-Y
0539 930A ST R16,-Y
053A 91000064 LDS R16,display_val
053C 91100065 LDS R17,display_val+1
053E 9516 LSR R17
053F 9507 ROR R16
0540 940E0B35 CALL int2fp
0542 933A ST R19,-Y
0543 932A ST R18,-Y
0544 931A ST R17,-Y
0545 930A ST R16,-Y
0546 940E0C7E CALL empy32fs
0548 91000064 LDS R16,display_val
054A 91100065 LDS R17,display_val+1
054C 7001 ANDI R16,1
054D 7010 ANDI R17,0
054E 940E0B35 CALL int2fp
0550 933A ST R19,-Y
0551 932A ST R18,-Y
0552 931A ST R17,-Y
0553 930A ST R16,-Y
0554 940E0B92 CALL add32f
0556 01FE MOVW R30,R28
0557 8302 STD Z+2,R16
0558 8313 STD Z+3,R17
0559 8324 STD Z+4,R18
055A 8335 STD Z+5,R19
055B E305 LDI R16,0x35
055C E011 LDI R17,1
055D 940E0AD9 CALL lpm32
055F 933A ST R19,-Y
0560 932A ST R18,-Y
0561 931A ST R17,-Y
0562 930A ST R16,-Y
0563 01FE MOVW R30,R28
0564 8026 LDD R2,Z+6
0565 8037 LDD R3,Z+7
0566 8440 LDD R4,Z+8
0567 8451 LDD R5,Z+9
0568 925A ST R5,-Y
0569 924A ST R4,-Y
056A 923A ST R3,-Y
056B 922A ST R2,-Y
056C 940E0C81 CALL empy32f
056E 01FE MOVW R30,R28
056F 8302 STD Z+2,R16
0570 8313 STD Z+3,R17
0571 8324 STD Z+4,R18
0572 8335 STD Z+5,R19
0573 01FE MOVW R30,R28
0574 8022 LDD R2,Z+2
0575 8033 LDD R3,Z+3
0576 8044 LDD R4,Z+4
0577 8055 LDD R5,Z+5
0578 925A ST R5,-Y
0579 924A ST R4,-Y
057A 923A ST R3,-Y
057B 922A ST R2,-Y
057C E30D LDI R16,0x3D
057D E011 LDI R17,1
057E 940E0AD9 CALL lpm32
0580 933A ST R19,-Y
0581 932A ST R18,-Y
0582 931A ST R17,-Y
0583 930A ST R16,-Y
0584 940E0C4D CALL cmp32f
0586 F0CC BLT 0x05A0
0587 01FE MOVW R30,R28
0588 8022 LDD R2,Z+2
0589 8033 LDD R3,Z+3
058A 8044 LDD R4,Z+4
058B 8055 LDD R5,Z+5
058C 925A ST R5,-Y
058D 924A ST R4,-Y
058E 923A ST R3,-Y
058F 922A ST R2,-Y
0590 E30D LDI R16,0x3D
0591 E011 LDI R17,1
0592 940E0AD9 CALL lpm32
0594 933A ST R19,-Y
0595 932A ST R18,-Y
0596 931A ST R17,-Y
0597 930A ST R16,-Y
0598 940E0B9A CALL sub32f
059A 940E0AED CALL fp2int
059C 01A8 MOVW R20,R16
059D 5040 SUBI R20,0
059E 4850 SBCI R21,0x80
059F C008 RJMP 0x05A8
05A0 01FE MOVW R30,R28
05A1 8102 LDD R16,Z+2
05A2 8113 LDD R17,Z+3
05A3 8124 LDD R18,Z+4
05A4 8135 LDD R19,Z+5
05A5 940E0AED CALL fp2int
05A7 01A8 MOVW R20,R16
05A8 93500065 STS display_val+1,R21
05AA 93400064 STS display_val,R20
(0324) TTPV=display_val;//暂存TVP
05AC 011A MOVW R2,R20
05AD 92300079 STS TTPV+1,R3
05AF 92200078 STS TTPV,R2
(0325) if((TTPV>1850)&&(TTPV<2200))OutFlag++;//判断TPV
05B1 E38A LDI R24,0x3A
05B2 E097 LDI R25,7
05B3 90200078 LDS R2,TTPV
05B5 90300079 LDS R3,TTPV+1
05B7 1582 CP R24,R2
05B8 0593 CPC R25,R3
05B9 F450 BCC 0x05C4
05BA 01C1 MOVW R24,R2
05BB 3988 CPI R24,0x98
05BC E0E8 LDI R30,0x8
05BD 079E CPC R25,R30
05BE F428 BCC 0x05C4
05BF 91800061 LDS R24,OutFlag
05C1 5F8F SUBI R24,0xFF
05C2 93800061 STS OutFlag,R24
(0326) temp=display_val;temp=temp/1000;TPV[3]=(uchar)temp;
05C4 90A00064 LDS R10,display_val
05C6 90B00065 LDS R11,display_val+1
05C8 EE28 LDI R18,0xE8
05C9 E033 LDI R19,3
05CA 0185 MOVW R16,R10
05CB 940E0A7E CALL div16u
05CD 0158 MOVW R10,R16
05CE 92A0008B STS TPV+3,R10
(0327) temp=display_val;temp=(temp/100)%10;TPV[2]=(uchar)temp;
05D0 90A00064 LDS R10,display_val
05D2 90B00065 LDS R11,display_val+1
05D4 E624 LDI R18,0x64
05D5 E030 LDI R19,0
05D6 0185 MOVW R16,R10
05D7 940E0A7E CALL div16u
05D9 E02A LDI R18,0xA
05DA E030 LDI R19,0
05DB 940E0A7C CALL mod16u
05DD 0158 MOVW R10,R16
05DE 92A0008A STS TPV+2,R10
(0328) temp=display_val;temp=(temp/10)%10;TPV[1]=(uchar)temp;
05E0 90A00064 LDS R10,display_val
05E2 90B00065 LDS R11,display_val+1
05E4 E02A LDI R18,0xA
05E5 E030 LDI R19,0
05E6 0185 MOVW R16,R10
05E7 940E0A7E CALL div16u
05E9 E02A LDI R18,0xA
05EA E030 LDI R19,0
05EB 940E0A7C CALL mod16u
05ED 0158 MOVW R10,R16
05EE 92A00089 STS TPV+1,R10
(0329) temp=display_val;temp=temp%10;TPV[0]=(uchar)temp;
05F0 90A00064 LDS R10,display_val
05F2 90B00065 LDS R11,display_val+1
05F4 E02A LDI R18,0xA
05F5 E030 LDI R19,0
05F6 0185 MOVW R16,R10
05F7 940E0A7C CALL mod16u
05F9 0158 MOVW R10,R16
05FA 92A00088 STS TPV,R10
(0330) DisplayOneChar(12,1,TPV[3]+0x30);
05FC 9180008B LDS R24,TPV+3
05FE 5D80 SUBI R24,0xD0
05FF 8388 STD Y+0,R24
0600 E021 LDI R18,1
0601 E00C LDI R16,0xC
0602 940E09F6 CALL _DisplayOneChar
(0331) DisplayOneChar(13,1,TPV[2]+0x30);
0604 9180008A LDS R24,TPV+2
0606 5D80 SUBI R24,0xD0
0607 8388 STD Y+0,R24
0608 E021 LDI R18,1
0609 E00D LDI R16,0xD
060A 940E09F6 CALL _DisplayOneChar
(0332) DisplayOneChar(14,1,TPV[1]+0x30);
060C 91800089 LDS R24,TPV+1
060E 5D80 SUBI R24,0xD0
060F 8388 STD Y+0,R24
0610 E021 LDI R18,1
0611 E00E LDI R16,0xE
0612 940E09F6 CALL _DisplayOneChar
(0333) DisplayOneChar(15,1,TPV[0]+0x30);
0614 91800088 LDS R24,TPV
0616 5D80 SUBI R24,0xD0
0617 8388 STD Y+0,R24
0618 E021 LDI R18,1
0619 E00F LDI R16,0xF
061A 940E09F6 CALL _DisplayOneChar
(0334) break;
061C C35A RJMP 0x0977
(0335)
(0336) case 17:SPEED_5V;status=18;//转换成27V,RPM
061D 9890 CBI 0x12,0
061E E182 LDI R24,0x12
061F 93800060 STS status,R24
(0337) break;
0621 C355 RJMP 0x0977
(0338)
(0339) case 18:Wait6S_Start_Flag=1;cnt=0;status=19;//启动6S
0622 E081 LDI R24,1
0623 9380006A STS Wait6S_Start_Flag,R24
0625 2422 CLR R2
0626 2433 CLR R3
0627 92300063 STS cnt+1,R3
0629 92200062 STS cnt,R2
062B E183 LDI R24,0x13
062C 93800060 STS status,R24
(0340) break;
062E C348 RJMP 0x0977
(0341)
(0342) case 19:while(Wait6S_End_Flag==0)Delay_nms(10);Wait6S_End_Flag=0;status=20;cnt=0;//等待6S定时结束
062F E00A LDI R16,0xA
0630 E010 LDI R17,0
0631 D35D RCALL _Delay_nms
0632 9020006B LDS R2,Wait6S_End_Flag
0634 2022 TST R2
0635 F3C9 BEQ 0x062F
0636 2422 CLR R2
0637 9220006B STS Wait6S_End_Flag,R2
0639 E184 LDI R24,0x14
063A 93800060 STS status,R24
063C 2433 CLR R3
063D 92300063 STS cnt+1,R3
063F 92200062 STS cnt,R2
(0343) break;
0641 C335 RJMP 0x0977
(0344)
(0345) case 20:Wait10S_Start_Flag=1;cnt=0;clr_T1();
0642 E081 LDI R24,1
0643 93800068 STS Wait10S_Start_Flag,R24
0645 2422 CLR R2
0646 2433 CLR R3
0647 92300063 STS cnt+1,R3
0649 92200062 STS cnt,R2
064B DA97 RCALL _clr_T1
(0346) TCCR1B = 0x06;status=21;//启动10S并开始计数
064C E086 LDI R24,6
064D BD8E OUT 0x2E,R24
064E E185 LDI R24,0x15
064F 93800060 STS status,R24
(0347) break;
0651 C325 RJMP 0x0977
(0348)
(0349) case 21:while(Wait10S_End_Flag==0)Delay_nms(10);Wait10S_End_Flag=0;status=22;cnt=0;//等待10S定时结束
0652 E00A LDI R16,0xA
0653 E010 LDI R17,0
0654 D33A RCALL _Delay_nms
0655 90200069 LDS R2,Wait10S_End_Flag
0657 2022 TST R2
0658 F3C9 BEQ 0x0652
0659 2422 CLR R2
065A 92200069 STS Wait10S_End_Flag,R2
065C E186 LDI R24,0x16
065D 93800060 STS status,R24
065F 2433 CLR R3
0660 92300063 STS cnt+1,R3
0662 92200062 STS cnt,R2
(0350) break;
0664 C312 RJMP 0x0977
(0351)
(0352) case 22:TCCR1B = 0x00;display_val=read_T1();status=23;//读取T1的计数(RPM)
0665 2422 CLR R2
0666 BC2E OUT 0x2E,R2
0667 DA70 RCALL _read_T1
0668 93100065 STS display_val+1,R17
066A 93000064 STS display_val,R16
066C E187 LDI R24,0x17
066D 93800060 STS status,R24
(0353) f=(float)display_val;f=f*3;display_val=(uint)f;//修正
066F E501 LDI R16,0x51
0670 E011 LDI R17,1
0671 940E0AD9 CALL lpm32
0673 933A ST R19,-Y
0674 932A ST R18,-Y
0675 931A ST R17,-Y
0676 930A ST R16,-Y
0677 91000064 LDS R16,display_val
0679 91100065 LDS R17,display_val+1
067B 9516 LSR R17
067C 9507 ROR R16
067D 940E0B35 CALL int2fp
067F 933A ST R19,-Y
0680 932A ST R18,-Y
0681 931A ST R17,-Y
0682 930A ST R16,-Y
0683 940E0C7E CALL empy32fs
0685 91000064 LDS R16,display_val
0687 91100065 LDS R17,display_val+1
0689 7001 ANDI R16,1
068A 7010 ANDI R17,0
068B 940E0B35 CALL int2fp
068D 933A ST R19,-Y
068E 932A ST R18,-Y
068F 931A ST R17,-Y
0690 930A ST R16,-Y
0691 940E0B92 CALL add32f
0693 01FE MOVW R30,R28
0694 8302 STD Z+2,R16
0695 8313 STD Z+3,R17
0696 8324 STD Z+4,R18
0697 8335 STD Z+5,R19
0698 E301 LDI R16,0x31
0699 E011 LDI R17,1
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -