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

📄 dc.lis

📁 这是关于AVR单片机学习的初步开发
💻 LIS
字号:
                        .module dc.c
                        .area text(rom, con, rel)
 0000                   .dbfile F:\单片机教学\调试程序\dcmotor\dc.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2005-3-31 上午 09:37:18
 0000           ; // Target : M8
 0000           ; // Crystal: 11.059Mhz
 0000           ; 
 0000           ; #include <iom8v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  PORTB = 0xFF;
 0000 8FEF              ldi R24,255
 0002 88BB              out 0x18,R24
 0004                   .dbline 11
 0004           ;  DDRB  = 0x03;
 0004 83E0              ldi R24,3
 0006 87BB              out 0x17,R24
 0008                   .dbline 12
 0008           ;  PORTC = 0x7F; //m103 output only
 0008 8FE7              ldi R24,127
 000A 85BB              out 0x15,R24
 000C                   .dbline 13
 000C           ;  DDRC  = 0x00;
 000C 2224              clr R2
 000E 24BA              out 0x14,R2
 0010                   .dbline 14
 0010           ;  PORTD = 0xFF;
 0010 8FEF              ldi R24,255
 0012 82BB              out 0x12,R24
 0014                   .dbline 15
 0014           ;  DDRD  = 0x00;
 0014 21BA              out 0x11,R2
 0016                   .dbline -2
 0016                   .dbline 16
 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 23
 0018           ; 
 0018           ; //TIMER1 initialisation - prescale:1
 0018           ; // WGM: 2) PWM 9bit phz correct, TOP=0x01FF
 0018           ; // desired value: 1Hz
 0018           ; // actual value: 10820.938Hz (100.0%)
 0018           ; void timer1_init(void)
 0018           ; {
 0018                   .dbline 24
 0018           ;  TCCR1B = 0x00; //stop
 0018 2224              clr R2
 001A 2EBC              out 0x2e,R2
 001C                   .dbline 25
 001C           ;  TCNT1H = 0xFE; //setup
 001C 8EEF              ldi R24,254
 001E 8DBD              out 0x2d,R24
 0020                   .dbline 26
 0020           ;  TCNT1L = 0x01;
 0020 81E0              ldi R24,1
 0022 8CBD              out 0x2c,R24
 0024                   .dbline 28
 0024           ;  
 0024           ;  OCR1AH = 0x00;
 0024 2BBC              out 0x2b,R2
 0026                   .dbline 29
 0026           ;  OCR1AL = 0xEF;
 0026 8FEE              ldi R24,239
 0028 8ABD              out 0x2a,R24
 002A                   .dbline 30
 002A           ;  OCR1BH = 0x00;
 002A 29BC              out 0x29,R2
 002C                   .dbline 31
 002C           ;  OCR1BL = 0xEF;
 002C 88BD              out 0x28,R24
 002E                   .dbline 33
 002E           ;  
 002E           ;  ICR1H  = 0x01;
 002E 81E0              ldi R24,1
 0030 87BD              out 0x27,R24
 0032                   .dbline 34
 0032           ;  ICR1L  = 0xFF;
 0032 8FEF              ldi R24,255
 0034 86BD              out 0x26,R24
 0036                   .dbline 35
 0036           ;  TCCR1A = 0x82;
 0036 82E8              ldi R24,130
 0038 8FBD              out 0x2f,R24
 003A                   .dbline 36
 003A           ;  TCCR1B = 0x01; //start Timer
 003A 81E0              ldi R24,1
 003C 8EBD              out 0x2e,R24
 003E                   .dbline -2
 003E                   .dbline 37
 003E           ; }
 003E           L2:
 003E                   .dbline 0 ; func end
 003E 0895              ret
 0040                   .dbend
                        .area vector(rom, abs)
                        .org 12
 000C 20C0              rjmp _timer1_compa_isr
                        .area text(rom, con, rel)
 0040                   .dbfile F:\单片机教学\调试程序\dcmotor\dc.c
 0040                   .dbfunc e timer1_compa_isr _timer1_compa_isr fV
                        .even
 0040           _timer1_compa_isr::
 0040 0A92              st -y,R0
 0042 0FB6              in R0,0x3f
 0044 0A92              st -y,R0
 0046                   .dbline -1
 0046                   .dbline 41
 0046           ; 
 0046           ; #pragma interrupt_handler timer1_compa_isr:7
 0046           ; void timer1_compa_isr(void)
 0046           ; {
 0046                   .dbline 43
 0046           ;  //compare occured TCNT1=OCR1A
 0046           ;  PORTB |=0x01; 
 0046 C09A              sbi 0x18,0
 0048                   .dbline -2
 0048                   .dbline 44
 0048           ; }
 0048           L3:
 0048 0990              ld R0,y+
 004A 0FBE              out 0x3f,R0
 004C 0990              ld R0,y+
 004E                   .dbline 0 ; func end
 004E 1895              reti
 0050                   .dbend
                        .area vector(rom, abs)
                        .org 16
 0010 28C0              rjmp _timer1_ovf_isr
                        .area text(rom, con, rel)
 0050                   .dbfile F:\单片机教学\调试程序\dcmotor\dc.c
 0050                   .dbfunc e timer1_ovf_isr _timer1_ovf_isr fV
                        .even
 0050           _timer1_ovf_isr::
 0050 0A92              st -y,R0
 0052 0FB6              in R0,0x3f
 0054 0A92              st -y,R0
 0056                   .dbline -1
 0056                   .dbline 48
 0056           ; 
 0056           ; #pragma interrupt_handler timer1_ovf_isr:9
 0056           ; void timer1_ovf_isr(void)
 0056           ; {
 0056                   .dbline 49
 0056           ;  PORTB &=~0x01;
 0056 C098              cbi 0x18,0
 0058                   .dbline -2
 0058                   .dbline 50
 0058           ; }
 0058           L4:
 0058 0990              ld R0,y+
 005A 0FBE              out 0x3f,R0
 005C 0990              ld R0,y+
 005E                   .dbline 0 ; func end
 005E 1895              reti
 0060                   .dbend
 0060                   .dbfunc e init_devices _init_devices fV
                        .even
 0060           _init_devices::
 0060                   .dbline -1
 0060                   .dbline 54
 0060           ; 
 0060           ; //call this routine to initialise all peripherals
 0060           ; void init_devices(void)
 0060           ; {
 0060                   .dbline 56
 0060           ;  //stop errant interrupts until set up
 0060           ;  CLI(); //disable all interrupts
 0060 F894              cli
 0062                   .dbline 57
 0062           ;  port_init();
 0062 CEDF              rcall _port_init
 0064                   .dbline 58
 0064           ;  timer1_init();
 0064 D9DF              rcall _timer1_init
 0066                   .dbline 60
 0066           ; 
 0066           ;  MCUCR = 0x00;
 0066 2224              clr R2
 0068 25BE              out 0x35,R2
 006A                   .dbline 61
 006A           ;  GICR  = 0x00;
 006A 2BBE              out 0x3b,R2
 006C                   .dbline 62
 006C           ;  TIMSK = 0x14; //timer interrupt sources
 006C 84E1              ldi R24,20
 006E 89BF              out 0x39,R24
 0070                   .dbline 63
 0070           ;  SEI(); //re-enable interrupts
 0070 7894              sei
 0072                   .dbline -2
 0072                   .dbline 65
 0072           ;  //all peripherals are now initialised
 0072           ; }
 0072           L5:
 0072                   .dbline 0 ; func end
 0072 0895              ret
 0074                   .dbend
 0074                   .dbfunc e main _main fV
                        .even
 0074           _main::
 0074                   .dbline -1
 0074                   .dbline 69
 0074           ; 
 0074           ; //
 0074           ; void main(void)
 0074           ; {
 0074                   .dbline 70
 0074           ;  init_devices();
 0074 F5DF              rcall _init_devices
 0076           L7:
 0076                   .dbline 72
 0076           L8:
 0076                   .dbline 72
 0076 FFCF              rjmp L7
 0078           X0:
 0078                   .dbline -2
 0078                   .dbline 73
 0078           ;  //insert your functional code here...
 0078           ;  while(1);
 0078           ; }
 0078           L6:
 0078                   .dbline 0 ; func end
 0078 0895              ret
 007A                   .dbend

⌨️ 快捷键说明

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