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

📄 bujin.lis

📁 步进电机的控制程序
💻 LIS
字号:
                        .module bujin.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\张应红单片机资料\ICCAVR编程学习\步进电机驱动\bujin.c
 0000                   .dbfunc e delay_1ms _delay_1ms fV
 0000           ;              i -> R16,R17
                        .even
 0000           _delay_1ms::
 0000                   .dbline -1
 0000                   .dbline 7
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; #include <stdio.h>
 0000           ; 
 0000           ; void delay_1ms(void)
 0000           ; {
 0000                   .dbline 9
 0000           ;  unsigned int i;
 0000           ;  for(i=0;i<8*143-2;i++)
 0000 0027              clr R16
 0002 1127              clr R17
 0004 02C0              rjmp L5
 0006           L2:
 0006                   .dbline 10
 0006           L3:
 0006                   .dbline 9
 0006 0F5F              subi R16,255  ; offset = 1
 0008 1F4F              sbci R17,255
 000A           L5:
 000A                   .dbline 9
 000A 0637              cpi R16,118
 000C E4E0              ldi R30,4
 000E 1E07              cpc R17,R30
 0010 D0F3              brlo L2
 0012                   .dbline -2
 0012           L1:
 0012                   .dbline 0 ; func end
 0012 0895              ret
 0014                   .dbsym r i 16 i
 0014                   .dbend
 0014                   .dbfunc e delay_ms _delay_ms fV
 0014           ;              i -> R20,R21
 0014           ;              n -> R22,R23
                        .even
 0014           _delay_ms::
 0014 00D0              rcall push_gset2
 0016 B801              movw R22,R16
 0018                   .dbline -1
 0018                   .dbline 14
 0018           ;  ;
 0018           ;  }
 0018           ;  
 0018           ; void delay_ms(unsigned int n)
 0018           ; {
 0018                   .dbline 15
 0018           ;  unsigned int i=0;
 0018 4427              clr R20
 001A 5527              clr R21
 001C                   .dbline 16
 001C           ;  for(i=0;i<n;i++)
 001C 03C0              rjmp L10
 001E           L7:
 001E                   .dbline 17
 001E                   .dbline 18
 001E F0DF              rcall _delay_1ms
 0020                   .dbline 19
 0020           L8:
 0020                   .dbline 16
 0020 4F5F              subi R20,255  ; offset = 1
 0022 5F4F              sbci R21,255
 0024           L10:
 0024                   .dbline 16
 0024 4617              cp R20,R22
 0026 5707              cpc R21,R23
 0028 D0F3              brlo L7
 002A                   .dbline -2
 002A           L6:
 002A 00D0              rcall pop_gset2
 002C                   .dbline 0 ; func end
 002C 0895              ret
 002E                   .dbsym r i 20 i
 002E                   .dbsym r n 22 i
 002E                   .dbend
 002E                   .dbfunc e delay_1us _delay_1us fV
                        .even
 002E           _delay_1us::
 002E                   .dbline -1
 002E                   .dbline 23
 002E           ;  {
 002E           ;   delay_1ms();
 002E           ;   }
 002E           ;  }
 002E           ; 
 002E           ; void delay_1us(void)
 002E           ; {
 002E                   .dbline 24
 002E           ;  asm("nop");
 002E 0000              nop
 0030                   .dbline -2
 0030           L11:
 0030                   .dbline 0 ; func end
 0030 0895              ret
 0032                   .dbend
 0032                   .dbfunc e delay_us _delay_us fV
 0032           ;              i -> R20,R21
 0032           ;              n -> R22,R23
                        .even
 0032           _delay_us::
 0032 00D0              rcall push_gset2
 0034 B801              movw R22,R16
 0036                   .dbline -1
 0036                   .dbline 28
 0036           ;  }
 0036           ;  
 0036           ; void delay_us(unsigned int n)
 0036           ; {
 0036                   .dbline 29
 0036           ;  unsigned int i=0;
 0036 4427              clr R20
 0038 5527              clr R21
 003A                   .dbline 30
 003A           ;  for(i=0;i<n;i++)
 003A 03C0              rjmp L16
 003C           L13:
 003C                   .dbline 31
 003C F8DF              rcall _delay_1us
 003E           L14:
 003E                   .dbline 30
 003E 4F5F              subi R20,255  ; offset = 1
 0040 5F4F              sbci R21,255
 0042           L16:
 0042                   .dbline 30
 0042 4617              cp R20,R22
 0044 5707              cpc R21,R23
 0046 D0F3              brlo L13
 0048                   .dbline -2
 0048           L12:
 0048 00D0              rcall pop_gset2
 004A                   .dbline 0 ; func end
 004A 0895              ret
 004C                   .dbsym r i 20 i
 004C                   .dbsym r n 22 i
 004C                   .dbend
 004C                   .dbfunc e port_init _port_init fV
                        .even
 004C           _port_init::
 004C                   .dbline -1
 004C                   .dbline 36
 004C           ;  delay_1us();
 004C           ;  }
 004C           ;  
 004C           ; 
 004C           ; void port_init(void)
 004C           ; {
 004C                   .dbline 37
 004C           ;  PORTB = 0xff;
 004C 8FEF              ldi R24,255
 004E 88BB              out 0x18,R24
 0050                   .dbline 38
 0050           ;  DDRB  = 0xff;
 0050 87BB              out 0x17,R24
 0052                   .dbline 39
 0052           ;  PORTC = 0x00; //m103 output only
 0052 2224              clr R2
 0054 25BA              out 0x15,R2
 0056                   .dbline 40
 0056           ;  DDRC  = 0x00;
 0056 24BA              out 0x14,R2
 0058                   .dbline 41
 0058           ;  PORTD = 0xff;
 0058 82BB              out 0x12,R24
 005A                   .dbline 42
 005A           ;  DDRD  = 0xff;
 005A 81BB              out 0x11,R24
 005C                   .dbline -2
 005C           L17:
 005C                   .dbline 0 ; func end
 005C 0895              ret
 005E                   .dbend
 005E                   .dbfunc e step _step fV
 005E           ;              i -> R20,R21
                        .even
 005E           _step::
 005E 00D0              rcall push_gset1
 0060                   .dbline -1
 0060                   .dbline 46
 0060           ; }
 0060           ; 
 0060           ; void step(void)
 0060           ; {
 0060                   .dbline 48
 0060           ;   unsigned i;
 0060           ;   for(i=4;i<8;i++)
 0060 44E0              ldi R20,4
 0062 50E0              ldi R21,0
 0064 0DC0              rjmp L22
 0066           L19:
 0066                   .dbline 49
 0066                   .dbline 50
 0066 01E0              ldi R16,1
 0068 10E0              ldi R17,0
 006A 9A01              movw R18,R20
 006C 00D0              rcall lsl16
 006E 1801              movw R2,R16
 0070 2094              com R2
 0072 3094              com R3
 0074 22BA              out 0x12,R2
 0076                   .dbline 51
 0076 03E0              ldi R16,3
 0078 10E0              ldi R17,0
 007A CCDF              rcall _delay_ms
 007C                   .dbline 52
 007C           L20:
 007C                   .dbline 48
 007C 4F5F              subi R20,255  ; offset = 1
 007E 5F4F              sbci R21,255
 0080           L22:
 0080                   .dbline 48
 0080 4830              cpi R20,8
 0082 E0E0              ldi R30,0
 0084 5E07              cpc R21,R30
 0086 78F3              brlo L19
 0088                   .dbline -2
 0088           L18:
 0088 00D0              rcall pop_gset1
 008A                   .dbline 0 ; func end
 008A 0895              ret
 008C                   .dbsym r i 20 i
 008C                   .dbend
 008C                   .dbfunc e main _main fV
                        .even
 008C           _main::
 008C                   .dbline -1
 008C                   .dbline 56
 008C           ;     {
 008C           ;      PORTD=~(1<<i);
 008C           ;        delay_ms(3);
 008C           ;        }
 008C           ;   }
 008C           ; 
 008C           ; void main(void)
 008C           ; {
 008C                   .dbline 57
 008C           ;  port_init();
 008C DFDF              rcall _port_init
 008E 01C0              rjmp L25
 0090           L24:
 0090                   .dbline 59
 0090                   .dbline 60
 0090 E6DF              rcall _step
 0092                   .dbline 61
 0092           L25:
 0092                   .dbline 58
 0092 FECF              rjmp L24
 0094           X0:
 0094                   .dbline -2
 0094           L23:
 0094                   .dbline 0 ; func end
 0094 0895              ret
 0096                   .dbend

⌨️ 快捷键说明

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