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

📄 step.lis

📁 这是关于AVR单片机学习的初步开发
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 00DC                   .dbline 85
 00DC           ;    else
 00DC           ;    {
 00DC                   .dbline 86
 00DC           ;        if(step == 0)
 00DC 20900500          lds R2,_step
 00E0 2220              tst R2
 00E2 19F4              brne L22
 00E4                   .dbline 87
 00E4           ;               aon;
 00E4 81E0              ldi R24,1
 00E6 88BB              out 0x18,R24
 00E8 2CC0              rjmp L23
 00EA           L22:
 00EA                   .dbline 88
 00EA           ;        else if(step == 1)
 00EA 80910500          lds R24,_step
 00EE 8130              cpi R24,1
 00F0 19F4              brne L24
 00F2                   .dbline 89
 00F2           ;               daon;
 00F2 89E0              ldi R24,9
 00F4 88BB              out 0x18,R24
 00F6 25C0              rjmp L25
 00F8           L24:
 00F8                   .dbline 90
 00F8           ;        else if(step == 2)
 00F8 80910500          lds R24,_step
 00FC 8230              cpi R24,2
 00FE 19F4              brne L26
 0100                   .dbline 91
 0100           ;               don;
 0100 88E0              ldi R24,8
 0102 88BB              out 0x18,R24
 0104 1EC0              rjmp L27
 0106           L26:
 0106                   .dbline 92
 0106           ;      else if(step == 3)
 0106 80910500          lds R24,_step
 010A 8330              cpi R24,3
 010C 19F4              brne L28
 010E                   .dbline 93
 010E           ;               cdon;
 010E 8CE0              ldi R24,12
 0110 88BB              out 0x18,R24
 0112 17C0              rjmp L29
 0114           L28:
 0114                   .dbline 94
 0114           ;      else if(step == 4)
 0114 80910500          lds R24,_step
 0118 8430              cpi R24,4
 011A 19F4              brne L30
 011C                   .dbline 95
 011C           ;               con;
 011C 84E0              ldi R24,4
 011E 88BB              out 0x18,R24
 0120 10C0              rjmp L31
 0122           L30:
 0122                   .dbline 96
 0122           ;      else if(step == 5)
 0122 80910500          lds R24,_step
 0126 8530              cpi R24,5
 0128 19F4              brne L32
 012A                   .dbline 97
 012A           ;               bcon;
 012A 86E0              ldi R24,6
 012C 88BB              out 0x18,R24
 012E 09C0              rjmp L33
 0130           L32:
 0130                   .dbline 98
 0130           ;        else if(step == 6)
 0130 80910500          lds R24,_step
 0134 8630              cpi R24,6
 0136 19F4              brne L34
 0138                   .dbline 99
 0138           ;               bon;
 0138 82E0              ldi R24,2
 013A 88BB              out 0x18,R24
 013C 02C0              rjmp L35
 013E           L34:
 013E                   .dbline 101
 013E           ;      else
 013E           ;               abon;
 013E 83E0              ldi R24,3
 0140 88BB              out 0x18,R24
 0142           L35:
 0142           L33:
 0142           L31:
 0142           L29:
 0142           L27:
 0142           L25:
 0142           L23:
 0142                   .dbline 102
 0142           ;    }
 0142           L7:
 0142                   .dbline 103
 0142           ;    step ++;
 0142 80910500          lds R24,_step
 0146 8F5F              subi R24,255    ; addi 1
 0148 80930500          sts _step,R24
 014C                   .dbline 104
 014C           ;    if(step>=8) step =0;
 014C 8830              cpi R24,8
 014E 18F0              brlo L36
 0150                   .dbline 104
 0150 2224              clr R2
 0152 20920500          sts _step,R2
 0156           L36:
 0156                   .dbline 106
 0156           ;    
 0156           ;    TCNT1H = 0xE0; //reload counter high value更改速度
 0156 80EE              ldi R24,224
 0158 8DBD              out 0x2d,R24
 015A                   .dbline 107
 015A           ;    TCNT1L = 0x01; //reload counter low value   
 015A 81E0              ldi R24,1
 015C 8CBD              out 0x2c,R24
 015E                   .dbline 108
 015E           ;    TCCR1A = 0x00;
 015E 2224              clr R2
 0160 2FBC              out 0x2f,R2
 0162                   .dbline 109
 0162           ;    TCCR1B = 0x02; //start Timer
 0162 82E0              ldi R24,2
 0164 8EBD              out 0x2e,R24
 0166                   .dbline 111
 0166           ;    
 0166           ;    pcont++;
 0166 80910300          lds R24,_pcont
 016A 90910400          lds R25,_pcont+1
 016E 0196              adiw R24,1
 0170 90930400          sts _pcont+1,R25
 0174 80930300          sts _pcont,R24
 0178                   .dbline 112
 0178           ;  }
 0178 02C0              rjmp L5
 017A           L4:
 017A                   .dbline 114
 017A 2224              clr R2
 017C 2EBC              out 0x2e,R2
 017E           L5:
 017E                   .dbline -2
 017E                   .dbline 115
 017E           ;  else
 017E           ;       TCCR1B = 0x00;
 017E           ; }
 017E           L3:
 017E 2990              ld R2,y+
 0180 2FBE              out 0x3f,R2
 0182 9991              ld R25,y+
 0184 8991              ld R24,y+
 0186 5990              ld R5,y+
 0188 4990              ld R4,y+
 018A 3990              ld R3,y+
 018C 2990              ld R2,y+
 018E                   .dbline 0 ; func end
 018E 1895              reti
 0190                   .dbend
 0190                   .dbfunc e uart0_init _uart0_init fV
                        .even
 0190           _uart0_init::
 0190                   .dbline -1
 0190                   .dbline 123
 0190           ; 
 0190           ; //UART0 initialisation
 0190           ; // desired baud rate: 9600
 0190           ; // actual: baud rate:9600 (0.0%)
 0190           ; // char size: 8 bit
 0190           ; // parity: Disabled
 0190           ; void uart0_init(void)
 0190           ; {
 0190                   .dbline 124
 0190           ;  UCSRB = 0x00; //disable while setting baud rate
 0190 2224              clr R2
 0192 2AB8              out 0xa,R2
 0194                   .dbline 125
 0194           ;  UCSRA = 0x00;
 0194 2BB8              out 0xb,R2
 0196                   .dbline 126
 0196           ;  UCSRC = 0x86;
 0196 86E8              ldi R24,134
 0198 80BD              out 0x20,R24
 019A                   .dbline 127
 019A           ;  UBRRL = 0x47; //set baud rate lo
 019A 87E4              ldi R24,71
 019C 89B9              out 0x9,R24
 019E                   .dbline 128
 019E           ;  UBRRH = 0x00; //set baud rate hi
 019E 20BC              out 0x20,R2
 01A0                   .dbline 129
 01A0           ;  UCSRB = 0x98;
 01A0 88E9              ldi R24,152
 01A2 8AB9              out 0xa,R24
 01A4                   .dbline -2
 01A4                   .dbline 130
 01A4           ; }
 01A4           L38:
 01A4                   .dbline 0 ; func end
 01A4 0895              ret
 01A6                   .dbend
                        .area vector(rom, abs)
                        .org 22
 0016 D3C0              rjmp _uart0_rx_isr
                        .area text(rom, con, rel)
 01A6                   .dbfile F:\单片机教学\调试程序\stepmotor\step.c
 01A6                   .dbfunc e uart0_rx_isr _uart0_rx_isr fV
                        .even
 01A6           _uart0_rx_isr::
 01A6                   .dbline -1
 01A6                   .dbline 134
 01A6           ; 
 01A6           ; #pragma interrupt_handler uart0_rx_isr:12
 01A6           ; void uart0_rx_isr(void)
 01A6           ; {
 01A6                   .dbline -2
 01A6                   .dbline 136
 01A6           ;  //uart has received a character in UDR
 01A6           ; }
 01A6           L39:
 01A6                   .dbline 0 ; func end
 01A6 1895              reti
 01A8                   .dbend
 01A8                   .dbfunc e init_devices _init_devices fV
                        .even
 01A8           _init_devices::
 01A8                   .dbline -1
 01A8                   .dbline 140
 01A8           ; 
 01A8           ; //call this routine to initialise all peripherals
 01A8           ; void init_devices(void)
 01A8           ; {
 01A8                   .dbline 142
 01A8           ;  //stop errant interrupts until set up
 01A8           ;  CLI(); //disable all interrupts
 01A8 F894              cli
 01AA                   .dbline 143
 01AA           ;  port_init();
 01AA 2ADF              rcall _port_init
 01AC                   .dbline 144
 01AC           ;  timer1_init();
 01AC 35DF              rcall _timer1_init
 01AE                   .dbline 145
 01AE           ;  uart0_init();
 01AE F0DF              rcall _uart0_init
 01B0                   .dbline 147
 01B0           ; 
 01B0           ;  MCUCR = 0x00;
 01B0 2224              clr R2
 01B2 25BE              out 0x35,R2
 01B4                   .dbline 148
 01B4           ;  GICR  = 0x00;
 01B4 2BBE              out 0x3b,R2
 01B6                   .dbline 149
 01B6           ;  TIMSK = 0x04; //timer interrupt sources
 01B6 84E0              ldi R24,4
 01B8 89BF              out 0x39,R24
 01BA                   .dbline 150
 01BA           ;  SEI(); //re-enable interrupts
 01BA 7894              sei
 01BC                   .dbline -2
 01BC                   .dbline 152
 01BC           ;  //all peripherals are now initialised
 01BC           ; }
 01BC           L40:
 01BC                   .dbline 0 ; func end
 01BC 0895              ret
 01BE                   .dbend
 01BE                   .dbfunc e main _main fV
                        .even
 01BE           _main::
 01BE                   .dbline -1
 01BE                   .dbline 156
 01BE           ; 
 01BE           ; //
 01BE           ; void main(void)
 01BE           ; {
 01BE                   .dbline 157
 01BE           ;  init_devices();
 01BE F4DF              rcall _init_devices
 01C0           L42:
 01C0                   .dbline 159
 01C0           L43:
 01C0                   .dbline 159
 01C0 FFCF              rjmp L42
 01C2           X1:
 01C2                   .dbline -2
 01C2                   .dbline 160
 01C2           ;  //insert your functional code here...
 01C2           ;  while(1);
 01C2           ; }
 01C2           L41:
 01C2                   .dbline 0 ; func end
 01C2 0895              ret
 01C4                   .dbend

⌨️ 快捷键说明

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