📄 main.lis
字号:
053E 5801 movw R10,R16
0540 .dbline 269
0540 A0920F00 sts _LC+1,R10
0544 .dbline 270
0544 ; temp=current;temp=temp%10;LC[0]=(uchar)temp;
0544 A0900600 lds R10,_current
0548 B0900700 lds R11,_current+1
054C .dbline 270
054C 2AE0 ldi R18,10
054E 30E0 ldi R19,0
0550 8501 movw R16,R10
0552 0E940000 xcall mod16u
0556 5801 movw R10,R16
0558 .dbline 270
0558 A0920E00 sts _LC,R10
055C .dbline 271
055C ; DisplayOneChar(3,3,LC[3]+0x30);
055C 80911100 lds R24,_LC+3
0560 805D subi R24,208 ; addi 48
0562 8883 std y+0,R24
0564 23E0 ldi R18,3
0566 03E0 ldi R16,3
0568 0E940000 xcall _DisplayOneChar
056C .dbline 272
056C ; DisplayOneChar(4,3,0x2e);
056C 8EE2 ldi R24,46
056E 8883 std y+0,R24
0570 23E0 ldi R18,3
0572 04E0 ldi R16,4
0574 0E940000 xcall _DisplayOneChar
0578 .dbline 273
0578 ; DisplayOneChar(5,3,LC[2]+0x30);
0578 80911000 lds R24,_LC+2
057C 805D subi R24,208 ; addi 48
057E 8883 std y+0,R24
0580 23E0 ldi R18,3
0582 05E0 ldi R16,5
0584 0E940000 xcall _DisplayOneChar
0588 .dbline 274
0588 ; DisplayOneChar(6,3,LC[1]+0x30);
0588 80910F00 lds R24,_LC+1
058C 805D subi R24,208 ; addi 48
058E 8883 std y+0,R24
0590 23E0 ldi R18,3
0592 06E0 ldi R16,6
0594 0E940000 xcall _DisplayOneChar
0598 .dbline 275
0598 ; break;
0598 D2C5 xjmp L41
059A L69:
059A .dbline 277
059A ;
059A ; case 7:POW_OFF;Delay_nms(100);//关闭电源
059A 919A sbi 0x12,1
059C .dbline 277
059C 04E6 ldi R16,100
059E 10E0 ldi R17,0
05A0 E6D5 xcall _Delay_nms
05A2 .dbline 278
05A2 ; AIR_OFF;Delay_nms(500);status=8;cnt=0;//关闭气缸
05A2 939A sbi 0x12,3
05A4 .dbline 278
05A4 04EF ldi R16,500
05A6 11E0 ldi R17,1
05A8 E2D5 xcall _Delay_nms
05AA .dbline 278
05AA 88E0 ldi R24,8
05AC 80930000 sts _status,R24
05B0 .dbline 278
05B0 2224 clr R2
05B2 3324 clr R3
05B4 30920300 sts _cnt+1,R3
05B8 20920200 sts _cnt,R2
05BC .dbline 279
05BC ; break;
05BC C0C5 xjmp L41
05BE L70:
05BE .dbline 281
05BE ;
05BE ; case 8:SPEED_5V;//黄线接5V
05BE 9098 cbi 0x12,0
05C0 .dbline 282
05C0 ; POW_14V;Delay_nms(100);POW_ON;//启动测试14V低压
05C0 929A sbi 0x12,2
05C2 .dbline 282
05C2 04E6 ldi R16,100
05C4 10E0 ldi R17,0
05C6 D3D5 xcall _Delay_nms
05C8 .dbline 282
05C8 9198 cbi 0x12,1
05CA .dbline 284
05CA ;
05CA ; Wait10S_Start_Flag=1;cnt=0;clr_T1();//启动10S并开始T1计数
05CA 81E0 ldi R24,1
05CC 80930800 sts _Wait10S_Start_Flag,R24
05D0 .dbline 284
05D0 2224 clr R2
05D2 3324 clr R3
05D4 30920300 sts _cnt+1,R3
05D8 20920200 sts _cnt,R2
05DC .dbline 284
05DC 1CDD xcall _clr_T1
05DE .dbline 285
05DE ; display_val=0;status=9;TCCR1B = 0x06;
05DE 2224 clr R2
05E0 3324 clr R3
05E2 30920500 sts _display_val+1,R3
05E6 20920400 sts _display_val,R2
05EA .dbline 285
05EA 89E0 ldi R24,9
05EC 80930000 sts _status,R24
05F0 .dbline 285
05F0 86E0 ldi R24,6
05F2 8EBD out 0x2e,R24
05F4 .dbline 286
05F4 ; break;
05F4 A4C5 xjmp L41
05F6 L72:
05F6 .dbline 288
05F6 0AE0 ldi R16,10
05F8 10E0 ldi R17,0
05FA B9D5 xcall _Delay_nms
05FC L73:
05FC .dbline 288
05FC ;
05FC ; case 9:while(Wait10S_End_Flag==0)Delay_nms(10);Wait10S_End_Flag=0;status=10;//等待10S定时结束
05FC 20900900 lds R2,_Wait10S_End_Flag
0600 2220 tst R2
0602 C9F3 breq L72
0604 .dbline 288
0604 2224 clr R2
0606 20920900 sts _Wait10S_End_Flag,R2
060A .dbline 288
060A 8AE0 ldi R24,10
060C 80930000 sts _status,R24
0610 .dbline 289
0610 ; break;
0610 96C5 xjmp L41
0612 L75:
0612 .dbline 291
0612 ;
0612 ; case 10:TCCR1B = 0x00;display_val=read_T1();status=11;//读取T1的计数(14V低压LVS)
0612 2224 clr R2
0614 2EBC out 0x2e,R2
0616 .dbline 291
0616 F4DC xcall _read_T1
0618 10930500 sts _display_val+1,R17
061C 00930400 sts _display_val,R16
0620 .dbline 291
0620 8BE0 ldi R24,11
0622 80930000 sts _status,R24
0626 .dbline 292
0626 ; f=(float)display_val;f=f*4.985;display_val=(uint)f;//修正
0626 00E0 ldi R16,<L53
0628 10E0 ldi R17,>L53
062A 0E940000 xcall lpm32
062E 3A93 st -y,R19
0630 2A93 st -y,R18
0632 1A93 st -y,R17
0634 0A93 st -y,R16
0636 00910400 lds R16,_display_val
063A 10910500 lds R17,_display_val+1
063E 1695 lsr R17
0640 0795 ror R16
0642 0E940000 xcall int2fp
0646 3A93 st -y,R19
0648 2A93 st -y,R18
064A 1A93 st -y,R17
064C 0A93 st -y,R16
064E 0E940000 xcall empy32fs
0652 00910400 lds R16,_display_val
0656 10910500 lds R17,_display_val+1
065A 0170 andi R16,1
065C 1070 andi R17,0
065E 0E940000 xcall int2fp
0662 3A93 st -y,R19
0664 2A93 st -y,R18
0666 1A93 st -y,R17
0668 0A93 st -y,R16
066A 0E940000 xcall add32f
066E FE01 movw R30,R28
0670 0283 std z+2,R16
0672 1383 std z+3,R17
0674 2483 std z+4,R18
0676 3583 std z+5,R19
0678 .dbline 292
0678 00E0 ldi R16,<L76
067A 10E0 ldi R17,>L76
067C 0E940000 xcall lpm32
0680 3A93 st -y,R19
0682 2A93 st -y,R18
0684 1A93 st -y,R17
0686 0A93 st -y,R16
0688 FE01 movw R30,R28
068A ; stack offset 4
068A 2680 ldd R2,z+6
068C 3780 ldd R3,z+7
068E 4084 ldd R4,z+8
0690 5184 ldd R5,z+9
0692 5A92 st -y,R5
0694 4A92 st -y,R4
0696 3A92 st -y,R3
0698 2A92 st -y,R2
069A 0E940000 xcall empy32f
069E FE01 movw R30,R28
06A0 0283 std z+2,R16
06A2 1383 std z+3,R17
06A4 2483 std z+4,R18
06A6 3583 std z+5,R19
06A8 .dbline 292
06A8 FE01 movw R30,R28
06AA 2280 ldd R2,z+2
06AC 3380 ldd R3,z+3
06AE 4480 ldd R4,z+4
06B0 5580 ldd R5,z+5
06B2 5A92 st -y,R5
06B4 4A92 st -y,R4
06B6 3A92 st -y,R3
06B8 2A92 st -y,R2
06BA 00E0 ldi R16,<L62
06BC 10E0 ldi R17,>L62
06BE 0E940000 xcall lpm32
06C2 3A93 st -y,R19
06C4 2A93 st -y,R18
06C6 1A93 st -y,R17
06C8 0A93 st -y,R16
06CA 0E940000 xcall cmp32f
06CE CCF0 brlt L77
06D0 FE01 movw R30,R28
06D2 2280 ldd R2,z+2
06D4 3380 ldd R3,z+3
06D6 4480 ldd R4,z+4
06D8 5580 ldd R5,z+5
06DA 5A92 st -y,R5
06DC 4A92 st -y,R4
06DE 3A92 st -y,R3
06E0 2A92 st -y,R2
06E2 00E0 ldi R16,<L62
06E4 10E0 ldi R17,>L62
06E6 0E940000 xcall lpm32
06EA 3A93 st -y,R19
06EC 2A93 st -y,R18
06EE 1A93 st -y,R17
06F0 0A93 st -y,R16
06F2 0E940000 xcall sub32f
06F6 0E940000 xcall fp2int
06FA A801 movw R20,R16
06FC 4050 subi R20,0 ; offset = 32768
06FE 5048 sbci R21,128
0700 08C0 xjmp L78
0702 L77:
0702 FE01 movw R30,R28
0704 0281 ldd R16,z+2
0706 1381 ldd R17,z+3
0708 2481 ldd R18,z+4
070A 3581 ldd R19,z+5
070C 0E940000 xcall fp2int
0710 A801 movw R20,R16
0712 L78:
0712 50930500 sts _display_val+1,R21
0716 40930400 sts _display_val,R20
071A .dbline 293
071A ; LLVS=display_val;//暂存LVS
071A 1A01 movw R2,R20
071C 30920D00 sts _LLVS+1,R3
0720 20920C00 sts _LLVS,R2
0724 .dbline 294
0724 ; if(LLVS>200)OutFlag++;//判断14V低压能否启动
0724 88EC ldi R24,200
0726 90E0 ldi R25,0
0728 20900C00 lds R2,_LLVS
072C 30900D00 lds R3,_LLVS+1
0730 8215 cp R24,R2
0732 9305 cpc R25,R3
0734 28F4 brsh L79
0736 .dbline 294
0736 80910100 lds R24,_OutFlag
073A 8F5F subi R24,255 ; addi 1
073C 80930100 sts _OutFlag,R24
0740 L79:
0740 .dbline 295
0740 ; temp=display_val;temp=temp/1000;LVS[3]=(uchar)temp;
0740 A0900400 lds R10,_display_val
0744 B0900500 lds R11,_display_val+1
0748 .dbline 295
0748 28EE ldi R18,1000
074A 33E0 ldi R19,3
074C 8501 movw R16,R10
074E 0E940000 xcall div16u
0752 5801 movw R10,R16
0754 .dbline 295
0754 A0922100 sts _LVS+3,R10
0758 .dbline 296
0758 ; temp=display_val;temp=(temp/100)%10;LVS[2]=(uchar)temp;
0758 A0900400 lds R10,_display_val
075C B0900500 lds R11,_display_val+1
0760 .dbline 296
0760 24E6 ldi R18,100
0762 30E0 ldi R19,0
0764 8501 movw R16,R10
0766 0E940000 xcall div16u
076A 2AE0 ldi R18,10
076C 30E0 ldi R19,0
076E 0E940000 xcall mod16u
0772 5801 movw R10,R16
0774 .dbline 296
0774 A0922000 sts _LVS+2,R10
0778 .dbline 297
0778 ; temp=display_val;temp=(temp/10)%10;LVS[1]=(uchar)temp;
0778 A0900400 lds R10,_display_val
077C B0900500 lds R11,_display_val+1
0780 .dbline 297
0780 2AE0 ldi R18,10
0782 30E0 ldi R19,0
0784 8501 movw R16,R10
0786 0E940000 xcall div16u
078A 2AE0 ldi R18,10
078C 30E0 ldi R19,0
078E 0E940000 xcall mod16u
0792 5801 movw R10,R16
0794 .dbline 297
0794 A0921F00 sts _LVS+1,R10
0798 .dbline 298
0798 ; temp=display_val;temp=temp%10;LVS[0]=(uchar)temp;
0798 A0900400 lds R10,_display
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -