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

📄 moto.lis

📁 步进电机 驱动三星 步进电机 avr程序
💻 LIS
字号:
                        .module moto.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\avr\moto\moto.c
 0000                   .dbfunc e delay_us _delay_us fV
 0000           ;           time -> R16,R17
                        .even
 0000           _delay_us::
 0000                   .dbline -1
 0000                   .dbline 3
 0000           ; #include<iom8v.h>
 0000           ; void delay_us(int time)
 0000           ;        {     
 0000           L2:
 0000                   .dbline 5
 0000           ;         do
 0000           ;               {
 0000                   .dbline 6
 0000           ;                time--;
 0000 0150              subi R16,1
 0002 1040              sbci R17,0
 0004                   .dbline 7
 0004           ;               }       
 0004           L3:
 0004                   .dbline 8
 0004           ;         while (time>1);
 0004 81E0              ldi R24,1
 0006 90E0              ldi R25,0
 0008 8017              cp R24,R16
 000A 9107              cpc R25,R17
 000C CCF3              brlt L2
 000E                   .dbline -2
 000E           L1:
 000E                   .dbline 0 ; func end
 000E 0895              ret
 0010                   .dbsym r time 16 I
 0010                   .dbend
 0010                   .dbfunc e delay_ms _delay_ms fV
 0010           ;           time -> R20,R21
                        .even
 0010           _delay_ms::
 0010 00D0              rcall push_gset1
 0012 A801              movw R20,R16
 0014                   .dbline -1
 0014                   .dbline 12
 0014           ;        }        
 0014           ; /*                        毫秒级延时程序                      */       
 0014           ; void delay_ms(unsigned int time)
 0014           ;        {
 0014 05C0              rjmp L7
 0016           L6:
 0016                   .dbline 14
 0016                   .dbline 15
 0016 02EE              ldi R16,1250
 0018 14E0              ldi R17,4
 001A F2DF              rcall _delay_us
 001C                   .dbline 16
 001C 4150              subi R20,1
 001E 5040              sbci R21,0
 0020                   .dbline 17
 0020           L7:
 0020                   .dbline 13
 0020           ;         while(time!=0)
 0020 4030              cpi R20,0
 0022 4507              cpc R20,R21
 0024 C1F7              brne L6
 0026           X0:
 0026                   .dbline -2
 0026           L5:
 0026 00D0              rcall pop_gset1
 0028                   .dbline 0 ; func end
 0028 0895              ret
 002A                   .dbsym r time 20 i
 002A                   .dbend
 002A                   .dbfunc e delay _delay fV
 002A           ;              x -> R16
 002A           ;              y -> R18
                        .even
 002A           _delay::
 002A                   .dbline -1
 002A                   .dbline 20
 002A           ;                 {             
 002A           ;                  delay_us(1250);
 002A           ;                  time--;
 002A           ;                 }
 002A           ;        }                                      
 002A           ; void delay(void)
 002A           ; {
 002A                   .dbline 22
 002A           ;   char x,y;
 002A           ;   for(x=1;x>0;x--)
 002A 01E0              ldi R16,1
 002C 07C0              rjmp L13
 002E           L10:
 002E                   .dbline 23
 002E 21E0              ldi R18,1
 0030 01C0              rjmp L17
 0032           L14:
 0032                   .dbline 23
 0032           L15:
 0032                   .dbline 23
 0032 2A95              dec R18
 0034           L17:
 0034                   .dbline 23
 0034 2224              clr R2
 0036 2216              cp R2,R18
 0038 E0F3              brlo L14
 003A           L11:
 003A                   .dbline 22
 003A 0A95              dec R16
 003C           L13:
 003C                   .dbline 22
 003C 2224              clr R2
 003E 2016              cp R2,R16
 0040 B0F3              brlo L10
 0042                   .dbline -2
 0042           L9:
 0042                   .dbline 0 ; func end
 0042 0895              ret
 0044                   .dbsym r x 16 c
 0044                   .dbsym r y 18 c
 0044                   .dbend
 0044                   .dbfunc e main _main fV
 0044           ;              a -> <dead>
                        .even
 0044           _main::
 0044                   .dbline -1
 0044                   .dbline 27
 0044           ;   for(y=1;y>0;y--);
 0044           ; 
 0044           ; }
 0044           ; void main(void)
 0044           ;        {
 0044                   .dbline 29
 0044           ;        int a;
 0044           ;        DDRB=0xff;
 0044 8FEF              ldi R24,255
 0046 87BB              out 0x17,R24
 0048                   .dbline 30
 0048           ;        PORTB=0;
 0048 2224              clr R2
 004A 28BA              out 0x18,R2
 004C                   .dbline 31
 004C           ;        DDRD=0xf0;
 004C 80EF              ldi R24,240
 004E 81BB              out 0x11,R24
 0050                   .dbline 32
 0050           ;        PORTD=0xff;
 0050 8FEF              ldi R24,255
 0052 82BB              out 0x12,R24
 0054                   .dbline 33
 0054           ;        delay_ms(3);
 0054 03E0              ldi R16,3
 0056 10E0              ldi R17,0
 0058 DBDF              rcall _delay_ms
 005A                   .dbline 34
 005A           ;        PORTB=0b00011010;
 005A 8AE1              ldi R24,26
 005C 88BB              out 0x18,R24
 005E                   .dbline 35
 005E           ;         delay_ms(3);
 005E 03E0              ldi R16,3
 0060 10E0              ldi R17,0
 0062 D6DF              rcall _delay_ms
 0064 2CC0              rjmp L20
 0066           L19:
 0066                   .dbline 37
 0066           ;         while(1)
 0066           ;                  {
 0066                   .dbline 38
 0066           ;                  if((PIND&0x01)==1)
 0066 80B3              in R24,0x10
 0068 8170              andi R24,1
 006A 8130              cpi R24,1
 006C 41F5              brne L22
 006E                   .dbline 39
 006E           ;                  {
 006E                   .dbline 40
 006E           ;                  delay_ms(1); 
 006E 01E0              ldi R16,1
 0070 10E0              ldi R17,0
 0072 CEDF              rcall _delay_ms
 0074                   .dbline 41
 0074           ;                  PORTB=0b00011000;
 0074 88E1              ldi R24,24
 0076 88BB              out 0x18,R24
 0078                   .dbline 42
 0078           ;                  delay_ms(1); 
 0078 01E0              ldi R16,1
 007A 10E0              ldi R17,0
 007C C9DF              rcall _delay_ms
 007E                   .dbline 43
 007E           ;                  PORTB=0b11100001;
 007E 81EE              ldi R24,225
 0080 88BB              out 0x18,R24
 0082                   .dbline 44
 0082           ;                  delay_ms(1);
 0082 01E0              ldi R16,1
 0084 10E0              ldi R17,0
 0086 C4DF              rcall _delay_ms
 0088                   .dbline 45
 0088           ;                  PORTB=0b00011100;
 0088 8CE1              ldi R24,28
 008A 88BB              out 0x18,R24
 008C                   .dbline 46
 008C           ;                  delay_ms(1); 
 008C 01E0              ldi R16,1
 008E 10E0              ldi R17,0
 0090 BFDF              rcall _delay_ms
 0092                   .dbline 47
 0092           ;                  PORTB=0b11100001;
 0092 81EE              ldi R24,225
 0094 88BB              out 0x18,R24
 0096                   .dbline 48
 0096           ;                  delay_ms(1);
 0096 01E0              ldi R16,1
 0098 10E0              ldi R17,0
 009A BADF              rcall _delay_ms
 009C                   .dbline 49
 009C           ;                  PORTB=0b00011110;
 009C 8EE1              ldi R24,30
 009E 88BB              out 0x18,R24
 00A0                   .dbline 50
 00A0           ;                  delay_ms(1); 
 00A0 01E0              ldi R16,1
 00A2 10E0              ldi R17,0
 00A4 B5DF              rcall _delay_ms
 00A6                   .dbline 51
 00A6           ;                  PORTB=0b11100001;
 00A6 81EE              ldi R24,225
 00A8 88BB              out 0x18,R24
 00AA                   .dbline 52
 00AA           ;                  delay_ms(1);
 00AA 01E0              ldi R16,1
 00AC 10E0              ldi R17,0
 00AE B0DF              rcall _delay_ms
 00B0                   .dbline 53
 00B0           ;                  PORTB=0b00011010;
 00B0 8AE1              ldi R24,26
 00B2 88BB              out 0x18,R24
 00B4                   .dbline 54
 00B4           ;                  delay_ms(1); 
 00B4 01E0              ldi R16,1
 00B6 10E0              ldi R17,0
 00B8 ABDF              rcall _delay_ms
 00BA                   .dbline 55
 00BA           ;                  PORTB=0b11100001;
 00BA 81EE              ldi R24,225
 00BC 88BB              out 0x18,R24
 00BE                   .dbline 56
 00BE           ;                 }
 00BE           L22:
 00BE                   .dbline 57
 00BE           L20:
 00BE                   .dbline 36
 00BE D3CF              rjmp L19
 00C0           X1:
 00C0                   .dbline -2
 00C0           L18:
 00C0                   .dbline 0 ; func end
 00C0 0895              ret
 00C2                   .dbsym l a 1 I
 00C2                   .dbend

⌨️ 快捷键说明

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