📄 mega16.lis
字号:
.module mega16.c
.area text(rom, con, rel)
0000 .dbfile E:\单片机\单片机程序\AVR程序\闪烁灯\mega16.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 15:39:15
0000 ; // Target : M16
0000 ; // Crystal: 16.000Mhz
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 = 0xFF;
0004 8FEF ldi R24,255
0006 8ABB out 0x1a,R24
0008 .dbline 12
0008 ; PORTB = 0x00;
0008 28BA out 0x18,R2
000A .dbline 13
000A ; DDRB = 0x00;
000A 27BA out 0x17,R2
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
0016 .dbfunc e init_devices _init_devices fV
.even
0016 _init_devices::
0016 .dbline -1
0016 .dbline 22
0016 ; }
0016 ;
0016 ; //call this routine to initialize all peripherals
0016 ; void init_devices(void)
0016 ; {
0016 .dbline 24
0016 ; //stop errant interrupts until set up0
0016 ; CLI(); //disable all interrupts
0016 F894 cli
0018 .dbline 25
0018 ; port_init();
0018 F3DF xcall _port_init
001A .dbline 27
001A ;
001A ; MCUCR = 0x00;
001A 2224 clr R2
001C 25BE out 0x35,R2
001E .dbline 28
001E ; GICR = 0x00;
001E 2BBE out 0x3b,R2
0020 .dbline 29
0020 ; TIMSK = 0x00; //timer interrupt sources
0020 29BE out 0x39,R2
0022 .dbline 30
0022 ; SEI(); //re-enable interrupts
0022 7894 sei
0024 .dbline -2
0024 L2:
0024 .dbline 0 ; func end
0024 0895 ret
0026 .dbend
0026 .dbfunc e main _main fV
0026 ; i -> R20,R21
0026 ; j -> R22,R23
.even
0026 _main::
0026 .dbline -1
0026 .dbline 35
0026 ; //all peripherals are now initialized
0026 ; }
0026 ;
0026 ; void main()
0026 ; {
0026 .dbline 37
0026 ; unsigned int i,j;
0026 ; init_devices();
0026 F7DF xcall _init_devices
0028 .dbline 38
0028 ; PORTA = 0XAA;
0028 8AEA ldi R24,170
002A 8BBB out 0x1b,R24
002C 15C0 xjmp L5
002E L4:
002E .dbline 40
002E ; while(1)
002E ; {
002E .dbline 41
002E ; for(i=0;i<1000;i++)
002E 4427 clr R20
0030 5527 clr R21
0032 0BC0 xjmp L10
0034 L7:
0034 .dbline 42
0034 6627 clr R22
0036 7727 clr R23
0038 02C0 xjmp L14
003A L11:
003A .dbline 42
003A L12:
003A .dbline 42
003A 6F5F subi R22,255 ; offset = 1
003C 7F4F sbci R23,255
003E L14:
003E .dbline 42
003E 683E cpi R22,232
0040 E3E0 ldi R30,3
0042 7E07 cpc R23,R30
0044 D0F3 brlo L11
0046 L8:
0046 .dbline 41
0046 4F5F subi R20,255 ; offset = 1
0048 5F4F sbci R21,255
004A L10:
004A .dbline 41
004A 483E cpi R20,232
004C E3E0 ldi R30,3
004E 5E07 cpc R21,R30
0050 88F3 brlo L7
0052 .dbline 43
0052 2BB2 in R2,0x1b
0054 2094 com R2
0056 2BBA out 0x1b,R2
0058 .dbline 44
0058 L5:
0058 .dbline 39
0058 EACF xjmp L4
005A X0:
005A .dbline -2
005A L3:
005A .dbline 0 ; func end
005A 0895 ret
005C .dbsym r i 20 i
005C .dbsym r j 22 i
005C .dbend
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -