📄 mega8.lis
字号:
.module mega8.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\单片机程序\AVR程序\闪烁灯\mega8.c
0000 .dbfunc e port_init _port_init fV
.even
0000 _port_init::
0000 .dbline -1
0000 .dbline 9
0000 ; //ICC-AVR application builder : 2008-8-1 19:01:17
0000 ; // Target : M8
0000 ; // Crystal: 16.000Mhz
0000 ;
0000 ; #include <iom8v.h>
0000 ; #include <macros.h>
0000 ;
0000 ; void port_init(void)
0000 ; {
0000 .dbline 10
0000 ; PORTB = 0x00;
0000 2224 clr R2
0002 28BA out 0x18,R2
0004 .dbline 11
0004 ; DDRB = 0x00;
0004 27BA out 0x17,R2
0006 .dbline 12
0006 ; PORTC = 0x00; //m103 output only
0006 25BA out 0x15,R2
0008 .dbline 13
0008 ; DDRC = 0x7F;
0008 8FE7 ldi R24,127
000A 84BB out 0x14,R24
000C .dbline 14
000C ; PORTD = 0x00;
000C 22BA out 0x12,R2
000E .dbline 15
000E ; DDRD = 0x00;
000E 21BA out 0x11,R2
0010 .dbline -2
0010 L1:
0010 .dbline 0 ; func end
0010 0895 ret
0012 .dbend
0012 .dbfunc e init_devices _init_devices fV
.even
0012 _init_devices::
0012 .dbline -1
0012 .dbline 20
0012 ; }
0012 ;
0012 ; //call this routine to initialize all peripherals
0012 ; void init_devices(void)
0012 ; {
0012 .dbline 22
0012 ; //stop errant interrupts until set up
0012 ; CLI(); //disable all interrupts
0012 F894 cli
0014 .dbline 23
0014 ; port_init();
0014 F5DF rcall _port_init
0016 .dbline 25
0016 ;
0016 ; MCUCR = 0x00;
0016 2224 clr R2
0018 25BE out 0x35,R2
001A .dbline 26
001A ; GICR = 0x00;
001A 2BBE out 0x3b,R2
001C .dbline 27
001C ; TIMSK = 0x00; //timer interrupt sources
001C 29BE out 0x39,R2
001E .dbline 28
001E ; SEI(); //re-enable interrupts
001E 7894 sei
0020 .dbline -2
0020 L2:
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbend
0022 .dbfunc e main _main fV
0022 ; K -> <dead>
0022 ; i -> R20,R21
0022 ; j -> R22,R23
.even
0022 _main::
0022 .dbline -1
0022 .dbline 33
0022 ; //all peripherals are now initialized
0022 ; }
0022 ;
0022 ; void main()
0022 ; {
0022 .dbline 35
0022 ; unsigned int i,j,K;
0022 ; init_devices();
0022 F7DF rcall _init_devices
0024 .dbline 36
0024 ; PORTC = 0X2A;
0024 8AE2 ldi R24,42
0026 85BB out 0x15,R24
0028 15C0 rjmp L5
002A L4:
002A .dbline 38
002A ; while(1)
002A ; {
002A .dbline 39
002A ; for(i=0;i<500;i++)
002A 4427 clr R20
002C 5527 clr R21
002E 0BC0 rjmp L10
0030 L7:
0030 .dbline 40
0030 6627 clr R22
0032 7727 clr R23
0034 02C0 rjmp L14
0036 L11:
0036 .dbline 40
0036 L12:
0036 .dbline 40
0036 6F5F subi R22,255 ; offset = 1
0038 7F4F sbci R23,255
003A L14:
003A .dbline 40
003A 6C32 cpi R22,44
003C E1E0 ldi R30,1
003E 7E07 cpc R23,R30
0040 D0F3 brlo L11
0042 L8:
0042 .dbline 39
0042 4F5F subi R20,255 ; offset = 1
0044 5F4F sbci R21,255
0046 L10:
0046 .dbline 39
0046 443F cpi R20,244
0048 E1E0 ldi R30,1
004A 5E07 cpc R21,R30
004C 88F3 brlo L7
004E .dbline 41
004E 25B2 in R2,0x15
0050 2094 com R2
0052 25BA out 0x15,R2
0054 .dbline 42
0054 L5:
0054 .dbline 37
0054 EACF rjmp L4
0056 X0:
0056 .dbline -2
0056 L3:
0056 .dbline 0 ; func end
0056 0895 ret
0058 .dbsym l K 1 i
0058 .dbsym r i 20 i
0058 .dbsym r j 22 i
0058 .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -