📄 main.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 940E0065 CALL _main
_exit:
004A CFFF RJMP _exit
FILE: E:\设计练习\每周练习\暑假培训\1602\avr1602\mega16test.c
(0001) #include <iom16v.h>
(0002) #define uchar unsigned char
(0003) #define fosc 12000000 //晶振7.3728MHZ
(0004)
(0005) void port_init(void)
(0006) {
(0007) PORTA = 0xFF;
_port_init:
004B EF8F LDI R24,0xFF
004C BB8B OUT 0x1B,R24
(0008) DDRA = 0x00;
004D 2422 CLR R2
004E BA2A OUT 0x1A,R2
(0009) PORTB = 0xFF;
004F BB88 OUT 0x18,R24
(0010) DDRB = 0x00;
0050 BA27 OUT 0x17,R2
(0011) PORTC = 0xFF; //m103 output only
0051 BB85 OUT 0x15,R24
(0012) DDRC = 0xFF;
0052 BB84 OUT 0x14,R24
(0013) PORTD = 0xFF;
0053 BB82 OUT 0x12,R24
(0014) DDRD = 0x00;
0054 BA21 OUT 0x11,R2
0055 9508 RET
_delay:
i --> R20
j --> R22
t --> R16
0056 940E009C CALL push_gset2
(0015) }
(0016)
(0017) void delay(uchar t)
(0018) {
(0019) uchar i,j;
(0020) for(i=0;i<t;i++)
0058 2744 CLR R20
0059 C006 RJMP 0x0060
(0021) for(j=0;j<250;j++);
005A 2766 CLR R22
005B C001 RJMP 0x005D
005C 9563 INC R22
005D 3F6A CPI R22,0xFA
005E F3E8 BCS 0x005C
005F 9543 INC R20
0060 1740 CP R20,R16
0061 F3C0 BCS 0x005A
0062 940E0093 CALL pop_gset2
0064 9508 RET
(0022) }
(0023)
(0024)
(0025) /* RS232通信main函数 */
(0026) void main(void)
(0027) {
(0028) port_init();
_main:
0065 DFE5 RCALL _port_init
(0029) PORTC = 0x0;
0066 2422 CLR R2
0067 BA25 OUT 0x15,R2
0068 C028 RJMP 0x0091
(0030) while(1)
(0031) {
(0032) delay(250); delay(250); delay(250);
0069 EF0A LDI R16,0xFA
006A DFEB RCALL _delay
006B EF0A LDI R16,0xFA
006C DFE9 RCALL _delay
006D EF0A LDI R16,0xFA
006E DFE7 RCALL _delay
(0033) delay(250); delay(250); delay(250);
006F EF0A LDI R16,0xFA
0070 DFE5 RCALL _delay
0071 EF0A LDI R16,0xFA
0072 DFE3 RCALL _delay
0073 EF0A LDI R16,0xFA
0074 DFE1 RCALL _delay
(0034) delay(250); delay(250); delay(250);
0075 EF0A LDI R16,0xFA
0076 DFDF RCALL _delay
0077 EF0A LDI R16,0xFA
0078 DFDD RCALL _delay
0079 EF0A LDI R16,0xFA
007A DFDB RCALL _delay
(0035) PORTC = 0xff;
007B EF8F LDI R24,0xFF
007C BB85 OUT 0x15,R24
(0036) delay(250); delay(250); delay(250);
007D EF0A LDI R16,0xFA
007E DFD7 RCALL _delay
007F EF0A LDI R16,0xFA
0080 DFD5 RCALL _delay
0081 EF0A LDI R16,0xFA
0082 DFD3 RCALL _delay
(0037) delay(250); delay(250); delay(250);
0083 EF0A LDI R16,0xFA
0084 DFD1 RCALL _delay
0085 EF0A LDI R16,0xFA
0086 DFCF RCALL _delay
0087 EF0A LDI R16,0xFA
0088 DFCD RCALL _delay
(0038) delay(250); delay(250); delay(250);
0089 EF0A LDI R16,0xFA
008A DFCB RCALL _delay
008B EF0A LDI R16,0xFA
008C DFC9 RCALL _delay
008D EF0A LDI R16,0xFA
008E DFC7 RCALL _delay
(0039) PORTC = 0x0;
FILE: <library>
008F 2422 CLR R2
0090 BA25 OUT 0x15,R2
0091 CFD7 RJMP 0x0069
0092 9508 RET
pop_gset2:
0093 E0E2 LDI R30,2
0094 940C00A2 JMP pop
push_gset5:
0096 92FA ST R15,-Y
0097 92EA ST R14,-Y
push_gset4:
0098 92DA ST R13,-Y
0099 92CA ST R12,-Y
push_gset3:
009A 92BA ST R11,-Y
009B 92AA ST R10,-Y
push_gset2:
009C 937A ST R23,-Y
009D 936A ST R22,-Y
push_gset1:
009E 935A ST R21,-Y
009F 934A ST R20,-Y
00A0 9508 RET
pop_gset1:
00A1 E0E1 LDI R30,1
pop:
00A2 9149 LD R20,Y+
00A3 9159 LD R21,Y+
00A4 FDE0 SBRC R30,0
00A5 9508 RET
00A6 9169 LD R22,Y+
00A7 9179 LD R23,Y+
00A8 FDE1 SBRC R30,1
00A9 9508 RET
00AA 90A9 LD R10,Y+
00AB 90B9 LD R11,Y+
00AC FDE2 SBRC R30,2
00AD 9508 RET
00AE 90C9 LD R12,Y+
00AF 90D9 LD R13,Y+
00B0 FDE3 SBRC R30,3
00B1 9508 RET
00B2 90E9 LD R14,Y+
00B3 90F9 LD R15,Y+
00B4 9508 RET
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -