📄 main.lis
字号:
02E2 L44:
02E2 .dbline 240
02E2 ; case 1:LcdWriteCommand(0x01,1);//清屏
02E2 21E0 ldi R18,1
02E4 01E0 ldi R16,1
02E6 0E940000 xcall _LcdWriteCommand
02EA .dbline 241
02EA ; LcdWriteCommand(0x0c,1);//开显示
02EA 21E0 ldi R18,1
02EC 0CE0 ldi R16,12
02EE 0E940000 xcall _LcdWriteCommand
02F2 .dbline 242
02F2 ; test_display();//显示测试界面
02F2 68DF xcall _test_display
02F4 .dbline 243
02F4 ; status=2;
02F4 82E0 ldi R24,2
02F6 80930000 sts _status,R24
02FA .dbline 244
02FA ; break;
02FA 21C7 xjmp L41
02FC L45:
02FC .dbline 246
02FC ;
02FC ; case 2:AIR_ON;Delay_nms(2000);status=3;//启动气缸并等待2S进入刹车
02FC 9398 cbi 0x12,3
02FE .dbline 246
02FE 00ED ldi R16,2000
0300 17E0 ldi R17,7
0302 35D7 xcall _Delay_nms
0304 .dbline 246
0304 83E0 ldi R24,3
0306 80930000 sts _status,R24
030A .dbline 247
030A ; break;
030A 19C7 xjmp L41
030C L46:
030C .dbline 249
030C ;
030C ; case 3:SPEED_5V;Delay_nms(100);POW_27V;//转换成27V,RPM
030C 9098 cbi 0x12,0
030E .dbline 249
030E 04E6 ldi R16,100
0310 10E0 ldi R17,0
0312 2DD7 xcall _Delay_nms
0314 .dbline 249
0314 9298 cbi 0x12,2
0316 .dbline 250
0316 ; Delay_nms(100);POW_ON;status=4;//开电源
0316 04E6 ldi R16,100
0318 10E0 ldi R17,0
031A 29D7 xcall _Delay_nms
031C .dbline 250
031C 9198 cbi 0x12,1
031E .dbline 250
031E 84E0 ldi R24,4
0320 80930000 sts _status,R24
0324 .dbline 251
0324 ; break;
0324 0CC7 xjmp L41
0326 L47:
0326 .dbline 253
0326 ;
0326 ; case 4:Wait2S_Start_Flag=1;cnt=0;status=5;//启动2S定时
0326 81E0 ldi R24,1
0328 80930C00 sts _Wait2S_Start_Flag,R24
032C .dbline 253
032C 2224 clr R2
032E 3324 clr R3
0330 30920300 sts _cnt+1,R3
0334 20920200 sts _cnt,R2
0338 .dbline 253
0338 85E0 ldi R24,5
033A 80930000 sts _status,R24
033E .dbline 254
033E ; break;
033E FFC6 xjmp L41
0340 L49:
0340 .dbline 256
0340 0AE0 ldi R16,10
0342 10E0 ldi R17,0
0344 14D7 xcall _Delay_nms
0346 L50:
0346 .dbline 256
0346 ;
0346 ; case 5:while(Wait2S_End_Flag==0)Delay_nms(10);Wait2S_End_Flag=0;status=6;//等待2S定时结束
0346 20900D00 lds R2,_Wait2S_End_Flag
034A 2220 tst R2
034C C9F3 breq L49
034E .dbline 256
034E 2224 clr R2
0350 20920D00 sts _Wait2S_End_Flag,R2
0354 .dbline 256
0354 86E0 ldi R24,6
0356 80930000 sts _status,R24
035A .dbline 257
035A ; break;
035A F1C6 xjmp L41
035C L52:
035C .dbline 259
035C ;
035C ; case 6:current=average();status=7;//取样堵转电流
035C 66DF xcall _average
035E 10930700 sts _current+1,R17
0362 00930600 sts _current,R16
0366 .dbline 259
0366 87E0 ldi R24,7
0368 80930000 sts _status,R24
036C .dbline 260
036C ; current=current-14;
036C C801 movw R24,R16
036E 0E97 sbiw R24,14
0370 90930700 sts _current+1,R25
0374 80930600 sts _current,R24
0378 .dbline 261
0378 ; f=(float)current;f=(f*2560)/1024;
0378 00E0 ldi R16,<L53
037A 10E0 ldi R17,>L53
037C 0E940000 xcall lpm32
0380 3A93 st -y,R19
0382 2A93 st -y,R18
0384 1A93 st -y,R17
0386 0A93 st -y,R16
0388 00910600 lds R16,_current
038C 10910700 lds R17,_current+1
0390 1695 lsr R17
0392 0795 ror R16
0394 0E940000 xcall int2fp
0398 3A93 st -y,R19
039A 2A93 st -y,R18
039C 1A93 st -y,R17
039E 0A93 st -y,R16
03A0 0E940000 xcall empy32fs
03A4 00910600 lds R16,_current
03A8 10910700 lds R17,_current+1
03AC 0170 andi R16,1
03AE 1070 andi R17,0
03B0 0E940000 xcall int2fp
03B4 3A93 st -y,R19
03B6 2A93 st -y,R18
03B8 1A93 st -y,R17
03BA 0A93 st -y,R16
03BC 0E940000 xcall add32f
03C0 FE01 movw R30,R28
03C2 0283 std z+2,R16
03C4 1383 std z+3,R17
03C6 2483 std z+4,R18
03C8 3583 std z+5,R19
03CA .dbline 261
03CA 00E0 ldi R16,<L54
03CC 10E0 ldi R17,>L54
03CE 0E940000 xcall lpm32
03D2 3A93 st -y,R19
03D4 2A93 st -y,R18
03D6 1A93 st -y,R17
03D8 0A93 st -y,R16
03DA FE01 movw R30,R28
03DC ; stack offset 4
03DC 2680 ldd R2,z+6
03DE 3780 ldd R3,z+7
03E0 4084 ldd R4,z+8
03E2 5184 ldd R5,z+9
03E4 5A92 st -y,R5
03E6 4A92 st -y,R4
03E8 3A92 st -y,R3
03EA 2A92 st -y,R2
03EC 0E940000 xcall empy32fs
03F0 00E0 ldi R16,<L55
03F2 10E0 ldi R17,>L55
03F4 0E940000 xcall lpm32
03F8 3A93 st -y,R19
03FA 2A93 st -y,R18
03FC 1A93 st -y,R17
03FE 0A93 st -y,R16
0400 0E940000 xcall div32f
0404 FE01 movw R30,R28
0406 0283 std z+2,R16
0408 1383 std z+3,R17
040A 2483 std z+4,R18
040C 3583 std z+5,R19
040E .dbline 262
040E ; f=f*4.25;//修正
040E 00E0 ldi R16,<L56
0410 10E0 ldi R17,>L56
0412 0E940000 xcall lpm32
0416 3A93 st -y,R19
0418 2A93 st -y,R18
041A 1A93 st -y,R17
041C 0A93 st -y,R16
041E FE01 movw R30,R28
0420 ; stack offset 4
0420 2680 ldd R2,z+6
0422 3780 ldd R3,z+7
0424 4084 ldd R4,z+8
0426 5184 ldd R5,z+9
0428 5A92 st -y,R5
042A 4A92 st -y,R4
042C 3A92 st -y,R3
042E 2A92 st -y,R2
0430 0E940000 xcall empy32f
0434 FE01 movw R30,R28
0436 0283 std z+2,R16
0438 1383 std z+3,R17
043A 2483 std z+4,R18
043C 3583 std z+5,R19
043E .dbline 263
043E ; LLC=f;//暂存堵转电流
043E FE01 movw R30,R28
0440 2280 ldd R2,z+2
0442 3380 ldd R3,z+3
0444 4480 ldd R4,z+4
0446 5580 ldd R5,z+5
0448 30920100 sts _LLC+1,R3
044C 20920000 sts _LLC,R2
0450 50920300 sts _LLC+2+1,R5
0454 40920200 sts _LLC+2,R4
0458 .dbline 264
0458 ; if(LLC<480)OutFlag++;//判断堵转电流大小
0458 5A92 st -y,R5
045A 4A92 st -y,R4
045C 3A92 st -y,R3
045E 2A92 st -y,R2
0460 00E0 ldi R16,<L59
0462 10E0 ldi R17,>L59
0464 0E940000 xcall lpm32
0468 3A93 st -y,R19
046A 2A93 st -y,R18
046C 1A93 st -y,R17
046E 0A93 st -y,R16
0470 0E940000 xcall cmp32f
0474 2CF4 brge L57
0476 .dbline 264
0476 80910100 lds R24,_OutFlag
047A 8F5F subi R24,255 ; addi 1
047C 80930100 sts _OutFlag,R24
0480 L57:
0480 .dbline 265
0480 ; current=(uint)f;
0480 FE01 movw R30,R28
0482 2280 ldd R2,z+2
0484 3380 ldd R3,z+3
0486 4480 ldd R4,z+4
0488 5580 ldd R5,z+5
048A 5A92 st -y,R5
048C 4A92 st -y,R4
048E 3A92 st -y,R3
0490 2A92 st -y,R2
0492 00E0 ldi R16,<L62
0494 10E0 ldi R17,>L62
0496 0E940000 xcall lpm32
049A 3A93 st -y,R19
049C 2A93 st -y,R18
049E 1A93 st -y,R17
04A0 0A93 st -y,R16
04A2 0E940000 xcall cmp32f
04A6 CCF0 brlt L60
04A8 FE01 movw R30,R28
04AA 2280 ldd R2,z+2
04AC 3380 ldd R3,z+3
04AE 4480 ldd R4,z+4
04B0 5580 ldd R5,z+5
04B2 5A92 st -y,R5
04B4 4A92 st -y,R4
04B6 3A92 st -y,R3
04B8 2A92 st -y,R2
04BA 00E0 ldi R16,<L62
04BC 10E0 ldi R17,>L62
04BE 0E940000 xcall lpm32
04C2 3A93 st -y,R19
04C4 2A93 st -y,R18
04C6 1A93 st -y,R17
04C8 0A93 st -y,R16
04CA 0E940000 xcall sub32f
04CE 0E940000 xcall fp2int
04D2 A801 movw R20,R16
04D4 4050 subi R20,0 ; offset = 32768
04D6 5048 sbci R21,128
04D8 08C0 xjmp L61
04DA L60:
04DA FE01 movw R30,R28
04DC 0281 ldd R16,z+2
04DE 1381 ldd R17,z+3
04E0 2481 ldd R18,z+4
04E2 3581 ldd R19,z+5
04E4 0E940000 xcall fp2int
04E8 A801 movw R20,R16
04EA L61:
04EA 50930700 sts _current+1,R21
04EE 40930600 sts _current,R20
04F2 .dbline 267
04F2 ;
04F2 ; temp=current;temp=temp/1000;LC[3]=(uchar)temp;
04F2 5A01 movw R10,R20
04F4 .dbline 267
04F4 28EE ldi R18,1000
04F6 33E0 ldi R19,3
04F8 8501 movw R16,R10
04FA 0E940000 xcall div16u
04FE 5801 movw R10,R16
0500 .dbline 267
0500 A0921100 sts _LC+3,R10
0504 .dbline 268
0504 ; temp=current;temp=(temp/100)%10;LC[2]=(uchar)temp;
0504 A0900600 lds R10,_current
0508 B0900700 lds R11,_current+1
050C .dbline 268
050C 24E6 ldi R18,100
050E 30E0 ldi R19,0
0510 8501 movw R16,R10
0512 0E940000 xcall div16u
0516 2AE0 ldi R18,10
0518 30E0 ldi R19,0
051A 0E940000 xcall mod16u
051E 5801 movw R10,R16
0520 .dbline 268
0520 A0921000 sts _LC+2,R10
0524 .dbline 269
0524 ; temp=current;temp=(temp/10)%10;LC[1]=(uchar)temp;
0524 A0900600 lds R10,_current
0528 B0900700 lds R11,_current+1
052C .dbline 269
052C 2AE0 ldi R18,10
052E 30E0 ldi R19,0
0530 8501 movw R16,R10
0532 0E940000 xcall div16u
0536 2AE0 ldi R18,10
0538 30E0 ldi R19,0
053A 0E940000 xcall mod16u
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -