📄 mega8.lst
字号:
__start:
__text_start:
0013 E5CF LDI R28,0x5F
0014 E0D4 LDI R29,4
0015 BFCD OUT 0x3D,R28
0016 BFDE OUT 0x3E,R29
0017 51C0 SUBI R28,0x10
0018 40D0 SBCI R29,0
0019 EA0A LDI R16,0xAA
001A 8308 STD Y+0,R16
001B 2400 CLR R0
001C E6E0 LDI R30,0x60
001D E0F0 LDI R31,0
001E E010 LDI R17,0
001F 36E0 CPI R30,0x60
0020 07F1 CPC R31,R17
0021 F011 BEQ 0x0024
0022 9201 ST R0,Z+
0023 CFFB RJMP 0x001F
0024 8300 STD Z+0,R16
0025 E2E6 LDI R30,0x26
0026 E0F0 LDI R31,0
0027 E6A0 LDI R26,0x60
0028 E0B0 LDI R27,0
0029 E010 LDI R17,0
002A 32E6 CPI R30,0x26
002B 07F1 CPC R31,R17
002C F021 BEQ 0x0031
002D 95C8 LPM
002E 9631 ADIW R30,1
002F 920D ST R0,X+
0030 CFF9 RJMP 0x002A
0031 D012 RCALL _main
_exit:
0032 CFFF RJMP _exit
FILE: E:\单片机\单片机程序\AVR程序\闪烁灯\mega8.c
(0001) //ICC-AVR application builder : 2008-8-1 19:01:17
(0002) // Target : M8
(0003) // Crystal: 16.000Mhz
(0004)
(0005) #include <iom8v.h>
(0006) #include <macros.h>
(0007)
(0008) void port_init(void)
(0009) {
(0010) PORTB = 0x00;
_port_init:
0033 2422 CLR R2
0034 BA28 OUT 0x18,R2
(0011) DDRB = 0x00;
0035 BA27 OUT 0x17,R2
(0012) PORTC = 0x00; //m103 output only
0036 BA25 OUT 0x15,R2
(0013) DDRC = 0x7F;
0037 E78F LDI R24,0x7F
0038 BB84 OUT 0x14,R24
(0014) PORTD = 0x00;
0039 BA22 OUT 0x12,R2
(0015) DDRD = 0x00;
003A BA21 OUT 0x11,R2
003B 9508 RET
(0016) }
(0017)
(0018) //call this routine to initialize all peripherals
(0019) void init_devices(void)
(0020) {
(0021) //stop errant interrupts until set up
(0022) CLI(); //disable all interrupts
_init_devices:
003C 94F8 BCLR 7
(0023) port_init();
003D DFF5 RCALL _port_init
(0024)
(0025) MCUCR = 0x00;
003E 2422 CLR R2
003F BE25 OUT 0x35,R2
(0026) GICR = 0x00;
0040 BE2B OUT 0x3B,R2
(0027) TIMSK = 0x00; //timer interrupt sources
0041 BE29 OUT 0x39,R2
(0028) SEI(); //re-enable interrupts
0042 9478 BSET 7
0043 9508 RET
(0029) //all peripherals are now initialized
(0030) }
(0031)
(0032) void main()
(0033) {
(0034) unsigned int i,j,K;
(0035) init_devices();
_main:
K --> Y+1
i --> R20
j --> R22
0044 DFF7 RCALL _init_devices
(0036) PORTC = 0X2A;
0045 E28A LDI R24,0x2A
0046 BB85 OUT 0x15,R24
0047 C015 RJMP 0x005D
(0037) while(1)
(0038) {
(0039) for(i=0;i<500;i++)
0048 2744 CLR R20
0049 2755 CLR R21
004A C00B RJMP 0x0056
(0040) for(j=0;j<300;j++);
004B 2766 CLR R22
004C 2777 CLR R23
004D C002 RJMP 0x0050
004E 5F6F SUBI R22,0xFF
004F 4F7F SBCI R23,0xFF
0050 326C CPI R22,0x2C
0051 E0E1 LDI R30,1
0052 077E CPC R23,R30
0053 F3D0 BCS 0x004E
0054 5F4F SUBI R20,0xFF
0055 4F5F SBCI R21,0xFF
0056 3F44 CPI R20,0xF4
0057 E0E1 LDI R30,1
0058 075E CPC R21,R30
0059 F388 BCS 0x004B
(0041) PORTC = ~PORTC;
FILE: <library>
005A B225 IN R2,0x15
005B 9420 COM R2
005C BA25 OUT 0x15,R2
005D CFEA RJMP 0x0048
005E 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -