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