⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 main.lis

📁 AVR单片机ATmega16(L)应用实例1——风机测试仪
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 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 + -