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

📄 main.lis

📁 一个正在应用的步进电机控制程序,包括电机的调速,正反,细分,通讯控制
💻 LIS
📖 第 1 页 / 共 5 页
字号:
 0380           ; g=g*6/10;
 0380 06E0              ldi R16,6
 0382 10E0              ldi R17,0
 0384 9A01              movw R18,R20
 0386 0E940000          xcall empy16s
 038A 2AE0              ldi R18,10
 038C 30E0              ldi R19,0
 038E 0E940000          xcall div16u
 0392 A801              movw R20,R16
 0394                   .dbline 411
 0394           ; if (g<=6)
 0394 86E0              ldi R24,6
 0396 90E0              ldi R25,0
 0398 8017              cp R24,R16
 039A 9107              cpc R25,R17
 039C 18F0              brlo L75
 039E                   .dbline 412
 039E           ;   {g=1;}
 039E                   .dbline 412
 039E 41E0              ldi R20,1
 03A0 50E0              ldi R21,0
 03A2                   .dbline 412
 03A2 02C0              xjmp L76
 03A4           L75:
 03A4                   .dbline 414
 03A4           ; else
 03A4           ;   {g=g-6;}
 03A4                   .dbline 414
 03A4 4650              subi R20,6
 03A6 5040              sbci R21,0
 03A8                   .dbline 414
 03A8           L76:
 03A8                   .dbline 415
 03A8           ; if (g>=600)
 03A8 4835              cpi R20,88
 03AA E2E0              ldi R30,2
 03AC 5E07              cpc R21,R30
 03AE 10F0              brlo L77
 03B0                   .dbline 416
 03B0           ;    {g=600;}
 03B0                   .dbline 416
 03B0 48E5              ldi R20,600
 03B2 52E0              ldi R21,2
 03B4                   .dbline 416
 03B4           L77:
 03B4                   .dbline 417
 03B4           ; if (g<=1)
 03B4 81E0              ldi R24,1
 03B6 90E0              ldi R25,0
 03B8 8417              cp R24,R20
 03BA 9507              cpc R25,R21
 03BC 10F0              brlo L79
 03BE                   .dbline 418
 03BE           ;    {g=1;}
 03BE                   .dbline 418
 03BE 41E0              ldi R20,1
 03C0 50E0              ldi R21,0
 03C2                   .dbline 418
 03C2           L79:
 03C2                   .dbline 419
 03C2           ; out_ctr=g;
 03C2 50932000          sts _out_ctr+1,R21
 03C6 40931F00          sts _out_ctr,R20
 03CA                   .dbline -2
 03CA           L58:
 03CA 6496              adiw R28,20
 03CC 0E940000          xcall pop_gset5
 03D0                   .dbline 0 ; func end
 03D0 0895              ret
 03D2                   .dbsym r l 22 c
 03D2                   .dbsym r g 20 i
 03D2                   .dbsym l s 0 A[20:10]i
 03D2                   .dbsym r j 12 i
 03D2                   .dbsym r k 10 c
 03D2                   .dbsym r i 14 c
 03D2                   .dbend
 03D2                   .dbfunc e ins _ins fV
 03D2           ;              a -> R20
 03D2           ;              t -> R22,R23
 03D2           ;              b -> R10
 03D2           ;          count -> R18
 03D2           ;           item -> R16,R17
                        .even
 03D2           _ins::
 03D2 0E940000          xcall push_gset3
 03D6                   .dbline -1
 03D6                   .dbline 423
 03D6           ; }
 03D6           ; 
 03D6           ; void ins(unsigned int *item,unsigned char count)
 03D6           ; {
 03D6                   .dbline 427
 03D6           ; unsigned char a;
 03D6           ; unsigned char b;
 03D6           ; unsigned int t;
 03D6           ; for (a=1;a<count;a++)
 03D6 41E0              ldi R20,1
 03D8 2BC0              xjmp L85
 03DA           L82:
 03DA                   .dbline 428
 03DA           ;    {
 03DA                   .dbline 429
 03DA           ;    t=item[a];
 03DA 82E0              ldi R24,2
 03DC 849F              mul R24,R20
 03DE F001              movw R30,R0
 03E0 E00F              add R30,R16
 03E2 F11F              adc R31,R17
 03E4 6081              ldd R22,z+0
 03E6 7181              ldd R23,z+1
 03E8                   .dbline 430
 03E8           ;    b=a-1;
 03E8 842F              mov R24,R20
 03EA 8150              subi R24,1
 03EC A82E              mov R10,R24
 03EE 0BC0              xjmp L87
 03F0           L86:
 03F0                   .dbline 432
 03F0                   .dbline 433
 03F0 82E0              ldi R24,2
 03F2 8A9D              mul R24,R10
 03F4 1001              movw R2,R0
 03F6 200E              add R2,R16
 03F8 311E              adc R3,R17
 03FA F101              movw R30,R2
 03FC 4080              ldd R4,z+0
 03FE 5180              ldd R5,z+1
 0400 5382              std z+3,R5
 0402 4282              std z+2,R4
 0404                   .dbline 434
 0404 AA94              dec R10
 0406                   .dbline 435
 0406           L87:
 0406                   .dbline 431
 0406           ;    while(b>=1&&t<item[b])
 0406 8A2D              mov R24,R10
 0408 8130              cpi R24,1
 040A 50F0              brlo L89
 040C 82E0              ldi R24,2
 040E 8A9D              mul R24,R10
 0410 F001              movw R30,R0
 0412 E00F              add R30,R16
 0414 F11F              adc R31,R17
 0416 2080              ldd R2,z+0
 0418 3180              ldd R3,z+1
 041A 6215              cp R22,R2
 041C 7305              cpc R23,R3
 041E 40F3              brlo L86
 0420           L89:
 0420                   .dbline 436
 0420 82E0              ldi R24,2
 0422 8A9D              mul R24,R10
 0424 F001              movw R30,R0
 0426 E00F              add R30,R16
 0428 F11F              adc R31,R17
 042A 7383              std z+3,R23
 042C 6283              std z+2,R22
 042E                   .dbline 437
 042E           L83:
 042E                   .dbline 427
 042E 4395              inc R20
 0430           L85:
 0430                   .dbline 427
 0430 4217              cp R20,R18
 0432 08F4              brsh X1
 0434 D2CF              xjmp L82
 0436           X1:
 0436                   .dbline -2
 0436           L81:
 0436 0E940000          xcall pop_gset3
 043A                   .dbline 0 ; func end
 043A 0895              ret
 043C                   .dbsym r a 20 c
 043C                   .dbsym r t 22 i
 043C                   .dbsym r b 10 c
 043C                   .dbsym r count 18 c
 043C                   .dbsym r item 16 pi
 043C                   .dbend
 043C                   .dbfunc e i_en _i_en fV
                        .even
 043C           _i_en::
 043C                   .dbline -1
 043C                   .dbline 444
 043C           ;       {
 043C           ;         item[b+1]=item[b];
 043C           ;         b--;
 043C           ;         }
 043C           ;    item[b+1]=t;
 043C           ;    }
 043C           ; }
 043C           ; 
 043C           ; /*
 043C           ; *电流输出允许函数
 043C           ; */
 043C           ; void i_en(void)
 043C           ; {
 043C                   .dbline 445
 043C           ; TIMSK |= (1<<OCIE1A);
 043C 89B7              in R24,0x39
 043E 8061              ori R24,16
 0440 89BF              out 0x39,R24
 0442                   .dbline 446
 0442           ; PORTC|=(1<<INT);
 0442 A99A              sbi 0x15,1
 0444                   .dbline 447
 0444           ; DDRC |=(1<<INT);
 0444 A19A              sbi 0x14,1
 0446                   .dbline -2
 0446           L90:
 0446                   .dbline 0 ; func end
 0446 0895              ret
 0448                   .dbend
 0448                   .dbfunc e i_disen _i_disen fV
                        .even
 0448           _i_disen::
 0448                   .dbline -1
 0448                   .dbline 454
 0448           ; }
 0448           ; 
 0448           ; /*
 0448           ; *电流输出禁止函数
 0448           ; */
 0448           ; void i_disen(void)
 0448           ; {
 0448                   .dbline 455
 0448           ; TIMSK &=~(1<<OCIE1A);
 0448 89B7              in R24,0x39
 044A 8F7E              andi R24,239
 044C 89BF              out 0x39,R24
 044E                   .dbline 456
 044E           ; delay_ms(100);
 044E 04E6              ldi R16,100
 0450 10E0              ldi R17,0
 0452 0E940000          xcall _delay_ms
 0456                   .dbline 457
 0456           ; PORTC&=~(1<<INT);
 0456 A998              cbi 0x15,1
 0458                   .dbline 458
 0458           ; DDRC |=(1<<INT);
 0458 A19A              sbi 0x14,1
 045A                   .dbline -2
 045A           L91:
 045A                   .dbline 0 ; func end
 045A 0895              ret
 045C                   .dbend
 045C                   .dbfunc e sp_mic _sp_mic fc
 045C           ;              i -> R20
 045C           ;           sudu -> R16,R17
                        .even
 045C           _sp_mic::
 045C 0E940000          xcall push_gset1
 0460                   .dbline -1
 0460                   .dbline 465
 0460           ; }
 0460           ;   
 0460           ; /*
 0460           ; *根据速度判断细分数函数
 0460           ; */
 0460           ; unsigned char sp_mic(unsigned int sudu)
 0460           ; {
 0460                   .dbline 467
 0460           ; unsigned char i;
 0460           ;    if (sudu<=410)
 0460 8AE9              ldi R24,410
 0462 91E0              ldi R25,1
 0464 8017              cp R24,R16
 0466 9107              cpc R25,R17
 0468 A8F0              brlo L93
 046A                   .dbline 468
 046A           ;         {
 046A                   .dbline 469
 046A           ;         if (sudu<=290)
 046A 82E2              ldi R24,34
 046C 8017              cp R24,R16
 046E 9107              cpc R25,R17
 0470 78F0              brlo L95
 0472                   .dbline 470
 0472           ;                {
 0472                   .dbline 471
 0472           ;                if(sudu<=210)
 0472 82ED              ldi R24,210
 0474 90E0              ldi R25,0
 0476 8017              cp R24,R16
 0478 9107              cpc R25,R17
 047A 40F0              brlo L97
 047C                   .dbline 472
 047C           ;                   {
 047C                   .dbline 473
 047C           ;                       if (sudu<=140)
 047C 8CE8              ldi R24,140
 047E 8017              cp R24,R16
 0480 9107              cpc R25,R17
 0482 10F0              brlo L99
 0484                   .dbline 474
 0484           ;                          {i=16;}
 0484                   .dbline 474
 0484 40E1              ldi R20,16
 0486                   .dbline 474
 0486 07C0              xjmp L94
 0488           L99:
 0488                   .dbline 476
 0488           ;                       else
 0488           ;                          {i=8;}
 0488                   .dbline 476
 0488 48E0              ldi R20,8
 048A                   .dbline 476
 048A                   .dbline 477
 048A           ;                       }
 048A 05C0              xjmp L94
 048C           L97:
 048C                   .dbline 479
 048C           ;                else
 048C           ;                   {i=4;}
 048C                   .dbline 479
 048C 44E0              ldi R20,4
 048E                   .dbline 479
 048E                   .dbline 480
 048E           ;                }
 048E 03C0              xjmp L94
 0490           L95:
 0490                   .dbline 482
 0490           ;         else
 0490           ;                {i=2;}
 0490                   .dbline 482
 0490

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -