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

📄 main.lis

📁 一个关于AVR单片机的例程
💻 LIS
字号:
                        .module main.c
                        .area text(rom, con, rel)
 0000                   .dbfile D:\桌面\实验教程\LED应用\PWM控制LED亮度\main.c
 0000                   .dbfunc e port_init _port_init fV
                        .even
 0000           _port_init::
 0000                   .dbline -1
 0000                   .dbline 9
 0000           ; //ICC-AVR application builder : 2007-1-31 21:10:52
 0000           ; // Target : M16
 0000           ; // Crystal: 7.3728Mhz
 0000           ; 
 0000           ; #include <iom16v.h>
 0000           ; #include <macros.h>
 0000           ; 
 0000           ; void port_init(void)
 0000           ; {
 0000                   .dbline 10
 0000           ;  PORTA = 0x00;
 0000 2224              clr R2
 0002 2BBA              out 0x1b,R2
 0004                   .dbline 11
 0004           ;  DDRA  = 0x00;
 0004 2ABA              out 0x1a,R2
 0006                   .dbline 12
 0006           ;  PORTB = 0x00;
 0006 28BA              out 0x18,R2
 0008                   .dbline 13
 0008           ;  DDRB  = 0x08;
 0008 88E0              ldi R24,8
 000A 87BB              out 0x17,R24
 000C                   .dbline 14
 000C           ;  PORTC = 0x00; //m103 output only
 000C 25BA              out 0x15,R2
 000E                   .dbline 15
 000E           ;  DDRC  = 0x00;
 000E 24BA              out 0x14,R2
 0010                   .dbline 16
 0010           ;  PORTD = 0x00;
 0010 22BA              out 0x12,R2
 0012                   .dbline 17
 0012           ;  DDRD  = 0x00;
 0012 21BA              out 0x11,R2
 0014                   .dbline -2
 0014           L1:
 0014                   .dbline 0 ; func end
 0014 0895              ret
 0016                   .dbend
                        .area vector(rom, abs)
                        .org 76
 004C 0C940B00          jmp _timer0_comp_isr
                        .area text(rom, con, rel)
 0016                   .dbfile D:\桌面\实验教程\LED应用\PWM控制LED亮度\main.c
 0016                   .dbfunc e timer0_comp_isr _timer0_comp_isr fV
                        .even
 0016           _timer0_comp_isr::
 0016                   .dbline -1
 0016                   .dbline 22
 0016           ; }
 0016           ; 
 0016           ; #pragma interrupt_handler timer0_comp_isr:20
 0016           ; void timer0_comp_isr(void)
 0016           ; {
 0016                   .dbline -2
 0016           L2:
 0016                   .dbline 0 ; func end
 0016 1895              reti
 0018                   .dbend
 0018                   .dbfunc e timer0_init _timer0_init fV
                        .even
 0018           _timer0_init::
 0018                   .dbline -1
 0018                   .dbline 31
 0018           ;  //compare occured TCNT0=OCR0
 0018           ; }
 0018           ; 
 0018           ; //TIMER0 initialize - prescale:64
 0018           ; // WGM: CTC
 0018           ; // desired value: 1KHz
 0018           ; // actual value:  0.993KHz (-0.7%)
 0018           ; void timer0_init(void)
 0018           ; {
 0018                   .dbline 32
 0018           ;  TCCR0 = 0x00; //stop
 0018 2224              clr R2
 001A 23BE              out 0x33,R2
 001C                   .dbline 33
 001C           ;  TCNT0 = 0x8D; //set count
 001C 8DE8              ldi R24,141
 001E 82BF              out 0x32,R24
 0020                   .dbline 34
 0020           ;  OCR0  = 0x73;  //set compare
 0020 83E7              ldi R24,115
 0022 8CBF              out 0x3c,R24
 0024                   .dbline 35
 0024           ;  TCCR0 = 0x0B; //start timer
 0024 8BE0              ldi R24,11
 0026 83BF              out 0x33,R24
 0028                   .dbline -2
 0028           L3:
 0028                   .dbline 0 ; func end
 0028 0895              ret
 002A                   .dbend
                        .area vector(rom, abs)
                        .org 36
 0024 0C941500          jmp _timer0_ovf_isr
                        .area text(rom, con, rel)
 002A                   .dbfile D:\桌面\实验教程\LED应用\PWM控制LED亮度\main.c
 002A                   .dbfunc e timer0_ovf_isr _timer0_ovf_isr fV
                        .even
 002A           _timer0_ovf_isr::
 002A 8A93              st -y,R24
 002C 8FB7              in R24,0x3f
 002E 8A93              st -y,R24
 0030                   .dbline -1
 0030                   .dbline 40
 0030           ; }
 0030           ; 
 0030           ; #pragma interrupt_handler timer0_ovf_isr:10
 0030           ; void timer0_ovf_isr(void)
 0030           ; {
 0030                   .dbline 41
 0030           ;  TCNT0 = 0x8D; //reload counter value
 0030 8DE8              ldi R24,141
 0032 82BF              out 0x32,R24
 0034                   .dbline -2
 0034           L4:
 0034 8991              ld R24,y+
 0036 8FBF              out 0x3f,R24
 0038 8991              ld R24,y+
 003A                   .dbline 0 ; func end
 003A 1895              reti
 003C                   .dbend
 003C                   .dbfunc e init_devices _init_devices fV
                        .even
 003C           _init_devices::
 003C                   .dbline -1
 003C                   .dbline 46
 003C           ; }
 003C           ; 
 003C           ; //call this routine to initialize all peripherals
 003C           ; void init_devices(void)
 003C           ; {
 003C                   .dbline 48
 003C           ;  //stop errant interrupts until set up
 003C           ;  CLI(); //disable all interrupts
 003C F894              cli
 003E                   .dbline 49
 003E           ;  port_init();
 003E E0DF              xcall _port_init
 0040                   .dbline 50
 0040           ;  timer0_init();
 0040 EBDF              xcall _timer0_init
 0042                   .dbline 52
 0042           ; 
 0042           ;  MCUCR = 0x00;
 0042 2224              clr R2
 0044 25BE              out 0x35,R2
 0046                   .dbline 53
 0046           ;  GICR  = 0x00;
 0046 2BBE              out 0x3b,R2
 0048                   .dbline 54
 0048           ;  TIMSK = 0x01; //timer interrupt sources
 0048 81E0              ldi R24,1
 004A 89BF              out 0x39,R24
 004C                   .dbline 55
 004C           ;  SEI(); //re-enable interrupts
 004C 7894              sei
 004E                   .dbline -2
 004E           L5:
 004E                   .dbline 0 ; func end
 004E 0895              ret
 0050                   .dbend
 0050                   .dbfunc e main _main fV
                        .even
 0050           _main::
 0050                   .dbline -1
 0050                   .dbline 60
 0050           ;  //all peripherals are now initialized
 0050           ; }
 0050           ; 
 0050           ; void main()
 0050           ; {
 0050                   .dbline 61
 0050           ;  init_devices();
 0050 F5DF              xcall _init_devices
 0052                   .dbline -2
 0052           L6:
 0052                   .dbline 0 ; func end
 0052 0895              ret
 0054                   .dbend

⌨️ 快捷键说明

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