📄 mega16.lst
字号:
__start:
__text_start:
002A E5CF LDI R28,0x5F
002B E0D4 LDI R29,4
002C BFCD OUT 0x3D,R28
002D BFDE OUT 0x3E,R29
002E 51C0 SUBI R28,0x10
002F 40D0 SBCI R29,0
0030 EA0A LDI R16,0xAA
0031 8308 STD Y+0,R16
0032 2400 CLR R0
0033 E6E0 LDI R30,0x60
0034 E0F0 LDI R31,0
0035 E010 LDI R17,0
0036 36E0 CPI R30,0x60
0037 07F1 CPC R31,R17
0038 F011 BEQ 0x003B
0039 9201 ST R0,Z+
003A CFFB RJMP 0x0036
003B 8300 STD Z+0,R16
003C E5E4 LDI R30,0x54
003D E0F0 LDI R31,0
003E E6A0 LDI R26,0x60
003F E0B0 LDI R27,0
0040 E010 LDI R17,0
0041 35E4 CPI R30,0x54
0042 07F1 CPC R31,R17
0043 F021 BEQ 0x0048
0044 95C8 LPM
0045 9631 ADIW R30,1
0046 920D ST R0,X+
0047 CFF9 RJMP 0x0041
0048 940E005E CALL _main
_exit:
004A CFFF RJMP _exit
FILE: E:\单片机\单片机程序\AVR程序\闪烁灯\mega16.c
(0001) //ICC-AVR application builder : 2008-8-1 15:39:15
(0002) // Target : M16
(0003) // Crystal: 16.000Mhz
(0004)
(0005) #include <iom16v.h>
(0006) #include <macros.h>
(0007)
(0008) void port_init(void)
(0009) {
(0010) PORTA = 0x00;
_port_init:
004B 2422 CLR R2
004C BA2B OUT 0x1B,R2
(0011) DDRA = 0xFF;
004D EF8F LDI R24,0xFF
004E BB8A OUT 0x1A,R24
(0012) PORTB = 0x00;
004F BA28 OUT 0x18,R2
(0013) DDRB = 0x00;
0050 BA27 OUT 0x17,R2
(0014) PORTC = 0x00; //m103 output only
0051 BA25 OUT 0x15,R2
(0015) DDRC = 0x00;
0052 BA24 OUT 0x14,R2
(0016) PORTD = 0x00;
0053 BA22 OUT 0x12,R2
(0017) DDRD = 0x00;
0054 BA21 OUT 0x11,R2
0055 9508 RET
(0018) }
(0019)
(0020) //call this routine to initialize all peripherals
(0021) void init_devices(void)
(0022) {
(0023) //stop errant interrupts until set up0
(0024) CLI(); //disable all interrupts
_init_devices:
0056 94F8 BCLR 7
(0025) port_init();
0057 DFF3 RCALL _port_init
(0026)
(0027) MCUCR = 0x00;
0058 2422 CLR R2
0059 BE25 OUT 0x35,R2
(0028) GICR = 0x00;
005A BE2B OUT 0x3B,R2
(0029) TIMSK = 0x00; //timer interrupt sources
005B BE29 OUT 0x39,R2
(0030) SEI(); //re-enable interrupts
005C 9478 BSET 7
005D 9508 RET
(0031) //all peripherals are now initialized
(0032) }
(0033)
(0034) void main()
(0035) {
(0036) unsigned int i,j;
(0037) init_devices();
_main:
i --> R20
j --> R22
005E DFF7 RCALL _init_devices
(0038) PORTA = 0XAA;
005F EA8A LDI R24,0xAA
0060 BB8B OUT 0x1B,R24
0061 C015 RJMP 0x0077
(0039) while(1)
(0040) {
(0041) for(i=0;i<1000;i++)
0062 2744 CLR R20
0063 2755 CLR R21
0064 C00B RJMP 0x0070
(0042) for(j=0;j<1000;j++);
0065 2766 CLR R22
0066 2777 CLR R23
0067 C002 RJMP 0x006A
0068 5F6F SUBI R22,0xFF
0069 4F7F SBCI R23,0xFF
006A 3E68 CPI R22,0xE8
006B E0E3 LDI R30,3
006C 077E CPC R23,R30
006D F3D0 BCS 0x0068
006E 5F4F SUBI R20,0xFF
006F 4F5F SBCI R21,0xFF
0070 3E48 CPI R20,0xE8
0071 E0E3 LDI R30,3
0072 075E CPC R21,R30
0073 F388 BCS 0x0065
(0043) PORTA = ~PORTA;
FILE: <library>
0074 B22B IN R2,0x1B
0075 9420 COM R2
0076 BA2B OUT 0x1B,R2
0077 CFEA RJMP 0x0062
0078 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -