📄 bujin.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 + -