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

📄 step.lis

📁 这是关于AVR单片机学习的初步开发
💻 LIS
📖 第 1 页 / 共 2 页
字号:
                        .module step.c
                        .area data(ram, con, rel)
 0000           _Pnum::
 0000                   .blkb 2
                        .area idata
 0000 4010              .word 4160
                        .area data(ram, con, rel)
 0002                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 0002                   .dbsym e Pnum _Pnum i
 0002           _Freq::
 0002                   .blkb 1
                        .area idata
 0002 32                .byte 50
                        .area data(ram, con, rel)
 0003                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 0003                   .dbsym e Freq _Freq c
 0003           _pcont::
 0003                   .blkb 2
                        .area idata
 0003 0000              .word 0
                        .area data(ram, con, rel)
 0005                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 0005                   .dbsym e pcont _pcont i
 0005           _step::
 0005                   .blkb 1
                        .area idata
 0005 00                .byte 0
                        .area data(ram, con, rel)
 0006                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 0006                   .dbsym e step _step c
 0006           _dirc::
 0006                   .blkb 1
                        .area idata
 0006 00                .byte 0
                        .area data(ram, con, rel)
 0007                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 0007                   .dbsym e dirc _dirc c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 32
 0000           ; //Designed by Buaa Alf
 0000           ; //通过定时器实现了步进电机的运转,仅仅是一演示程序;
 0000           ; //烧写程序后,断开电源开关,闭合SW9的1、2、3、4和7、8管角,然后闭合电源开关即可看到电机的运转一周。
 0000           ; //按复位可以重起单片机,使电机再旋转一周;
 0000           ; //可参考设计自己的电机控制程序。
 0000           ; 
 0000           ; //ICC-AVR application builder : 2005-3-31 上午 11:35:43
 0000           ; // Target : M8
 0000           ; // Crystal: 11.059Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; #define aon PORTB =0x01
 0000           ; #define bon PORTB =0x02
 0000           ; #define con PORTB =0x04
 0000           ; #define don PORTB =0x08
 0000           ; 
 0000           ; #define abon PORTB =0x03
 0000           ; #define bcon PORTB =0x06
 0000           ; #define cdon PORTB =0x0C
 0000           ; #define daon PORTB =0x09
 0000           ; 
 0000           ; unsigned int Pnum=4160;//总脉冲个数,包含减速比
 0000           ; char Freq=50;//脉冲频率
 0000           ; 
 0000           ; unsigned int pcont=0;
 0000           ; char step =0;
 0000           ; char dirc=0;
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 33
 0000           ;  PORTB = 0xFF;
 0000 8FEF              ldi R24,255
 0002 88BB              out 0x18,R24
 0004                   .dbline 34
 0004           ;  DDRB  = 0x0F;
 0004 8FE0              ldi R24,15
 0006 87BB              out 0x17,R24
 0008                   .dbline 35
 0008           ;  PORTC = 0x7F; //m103 output only
 0008 8FE7              ldi R24,127
 000A 85BB              out 0x15,R24
 000C                   .dbline 36
 000C           ;  DDRC  = 0x00;
 000C 2224              clr R2
 000E 24BA              out 0x14,R2
 0010                   .dbline 37
 0010           ;  PORTD = 0xFF;
 0010 8FEF              ldi R24,255
 0012 82BB              out 0x12,R24
 0014                   .dbline 38
 0014           ;  DDRD  = 0x00;
 0014 21BA              out 0x11,R2
 0016                   .dbline -2
 0016                   .dbline 39
 0016           ; }
 0016           L1:
 0016                   .dbline 0 ; func end
 0016 0895              ret
 0018                   .dbend
 0018                   .dbfunc e timer1_init _timer1_init fV
                        .even
 0018           _timer1_init::
 0018                   .dbline -1
 0018                   .dbline 46
 0018           ; 
 0018           ; //TIMER1 initialisation - prescale:8
 0018           ; // WGM: 0) Normal, TOP=0xFFFF
 0018           ; // desired value: 50Hz
 0018           ; // actual value: 50.001Hz (0.0%)
 0018           ; void timer1_init(void)
 0018           ; {
 0018                   .dbline 47
 0018           ;  TCCR1B = 0x00; //stop
 0018 2224              clr R2
 001A 2EBC              out 0x2e,R2
 001C                   .dbline 48
 001C           ;  TCNT1H = 0x90; //setup
 001C 80E9              ldi R24,144
 001E 8DBD              out 0x2d,R24
 0020                   .dbline 49
 0020           ;  TCNT1L = 0xF0;
 0020 80EF              ldi R24,240
 0022 8CBD              out 0x2c,R24
 0024                   .dbline 50
 0024           ;  OCR1AH = 0x6B;
 0024 8BE6              ldi R24,107
 0026 8BBD              out 0x2b,R24
 0028                   .dbline 51
 0028           ;  OCR1AL = 0xFF;
 0028 8FEF              ldi R24,255
 002A 8ABD              out 0x2a,R24
 002C                   .dbline 52
 002C           ;  OCR1BH = 0x6B;
 002C 8BE6              ldi R24,107
 002E 89BD              out 0x29,R24
 0030                   .dbline 53
 0030           ;  OCR1BL = 0xFF;
 0030 8FEF              ldi R24,255
 0032 88BD              out 0x28,R24
 0034                   .dbline 54
 0034           ;  ICR1H  = 0x6B;
 0034 8BE6              ldi R24,107
 0036 87BD              out 0x27,R24
 0038                   .dbline 55
 0038           ;  ICR1L  = 0xFF;
 0038 8FEF              ldi R24,255
 003A 86BD              out 0x26,R24
 003C                   .dbline 56
 003C           ;  TCCR1A = 0x00;
 003C 2FBC              out 0x2f,R2
 003E                   .dbline 57
 003E           ;  TCCR1B = 0x02; //start Timer
 003E 82E0              ldi R24,2
 0040 8EBD              out 0x2e,R24
 0042                   .dbline -2
 0042                   .dbline 58
 0042           ; }
 0042           L2:
 0042                   .dbline 0 ; func end
 0042 0895              ret
 0044                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 22C0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0044                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 0044                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0044           _timer1_ovf_isr::
 0044 2A92              st -y,R2
 0046 3A92              st -y,R3
 0048 4A92              st -y,R4
 004A 5A92              st -y,R5
 004C 8A93              st -y,R24
 004E 9A93              st -y,R25
 0050 2FB6              in R2,0x3f
 0052 2A92              st -y,R2
 0054                   .dbline -1
 0054                   .dbline 62
 0054           ; 
 0054           ; #pragma interrupt_handler timer1_ovf_isr:9
 0054           ; void timer1_ovf_isr(void)
 0054           ; {
 0054                   .dbline 64
 0054           ;  //TIMER1 has overflowed
 0054           ;  if(pcont <=Pnum)
 0054 20900000          lds R2,_Pnum
 0058 30900100          lds R3,_Pnum+1
 005C 40900300          lds R4,_pcont
 0060 50900400          lds R5,_pcont+1
 0064 2414              cp R2,R4
 0066 3504              cpc R3,R5
 0068 08F4              brsh X0
 006A 87C0              rjmp L4
 006C           X0:
 006C                   .dbline 65
 006C           ;  { 
 006C                   .dbline 66
 006C           ;    if(dirc == 0)
 006C 20900600          lds R2,_dirc
 0070 2220              tst R2
 0072 A1F5              brne L6
 0074                   .dbline 67
 0074           ;    { if(step == 0)
 0074                   .dbline 67
 0074 20900500          lds R2,_step
 0078 2220              tst R2
 007A 19F4              brne L8
 007C                   .dbline 68
 007C           ;               aon;
 007C 81E0              ldi R24,1
 007E 88BB              out 0x18,R24
 0080 60C0              rjmp L7
 0082           L8:
 0082                   .dbline 69
 0082           ;        else if(step == 1)
 0082 80910500          lds R24,_step
 0086 8130              cpi R24,1
 0088 19F4              brne L10
 008A                   .dbline 70
 008A           ;               abon;
 008A 83E0              ldi R24,3
 008C 88BB              out 0x18,R24
 008E 59C0              rjmp L7
 0090           L10:
 0090                   .dbline 71
 0090           ;        else if(step == 2)
 0090 80910500          lds R24,_step
 0094 8230              cpi R24,2
 0096 19F4              brne L12
 0098                   .dbline 72
 0098           ;               bon;
 0098 82E0              ldi R24,2
 009A 88BB              out 0x18,R24
 009C 52C0              rjmp L7
 009E           L12:
 009E                   .dbline 73
 009E           ;      else if(step == 3)
 009E 80910500          lds R24,_step
 00A2 8330              cpi R24,3
 00A4 19F4              brne L14
 00A6                   .dbline 74
 00A6           ;               bcon;
 00A6 86E0              ldi R24,6
 00A8 88BB              out 0x18,R24
 00AA 4BC0              rjmp L7
 00AC           L14:
 00AC                   .dbline 75
 00AC           ;      else if(step == 4)
 00AC 80910500          lds R24,_step
 00B0 8430              cpi R24,4
 00B2 19F4              brne L16
 00B4                   .dbline 76
 00B4           ;               con;
 00B4 84E0              ldi R24,4
 00B6 88BB              out 0x18,R24
 00B8 44C0              rjmp L7
 00BA           L16:
 00BA                   .dbline 77
 00BA           ;      else if(step == 5)
 00BA 80910500          lds R24,_step
 00BE 8530              cpi R24,5
 00C0 19F4              brne L18
 00C2                   .dbline 78
 00C2           ;               cdon;
 00C2 8CE0              ldi R24,12
 00C4 88BB              out 0x18,R24
 00C6 3DC0              rjmp L7
 00C8           L18:
 00C8                   .dbline 79
 00C8           ;        else if(step == 6)
 00C8 80910500          lds R24,_step
 00CC 8630              cpi R24,6
 00CE 19F4              brne L20
 00D0                   .dbline 80
 00D0           ;               don;
 00D0 88E0              ldi R24,8
 00D2 88BB              out 0x18,R24
 00D4 36C0              rjmp L7
 00D6           L20:
 00D6                   .dbline 82
 00D6           ;      else 
 00D6           ;               daon;
 00D6 89E0              ldi R24,9
 00D8 88BB              out 0x18,R24
 00DA                   .dbline 83
 00DA           ;    }
 00DA 33C0              rjmp L7
 00DC           L6:

⌨️ 快捷键说明

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