📄 uart.lst
字号:
__text_start:
__start:
00CF E5CF LDI R28,0x5F
00D0 E0D2 LDI R29,2
00D1 BFCD OUT P3D,R28
00D2 BFDE OUT P3E,R29
00D3 51C0 SUBI R28,0x10
00D4 40D0 SBCI R29,0
00D5 EA0A LDI R16,0xAA
00D6 8308 STD R16,0+Y
00D7 2400 CLR R0
00D8 EDE8 LDI R30,0xD8
00D9 E0F0 LDI R31,0
00DA E010 LDI R17,0
00DB 3FE3 CPI R30,0xF3
00DC 07F1 CPC R31,R17
00DD F011 BEQ 0x00E0
00DE 9201 ST R0,Z+
00DF CFFB RJMP 0x00DB
00E0 8300 STD R16,0+Z
00E1 E2E5 LDI R30,0x25
00E2 E0F1 LDI R31,1
00E3 E6A0 LDI R26,0x60
00E4 E0B0 LDI R27,0
00E5 E011 LDI R17,1
00E6 39ED CPI R30,0x9D
00E7 07F1 CPC R31,R17
00E8 F021 BEQ 0x00ED
00E9 95C8 LPM
00EA 9631 ADIW R30,1
00EB 920D ST R0,X+
00EC CFF9 RJMP 0x00E6
00ED D001 RCALL _main
_exit:
00EE CFFF RJMP _exit
FILE: uart.c
(0000) /**********************************************
(0001) http://www.sl.com.cn
(0002) 双龙电子公司----RS232通信演示程序(ICCAVR)
(0003) 作者:詹卫前
(0004) 1、使用ICCAVR的终端调试窗口,进行通信调试。
(0005) 2、在AVR的UART工作之前,应当先对ICCAVR的终
(0006) 端调试窗口进行设置,设置串口为com1或com2,
(0007) 通信波特率为19200。
(0008) 3、接线:PORTD.0(RXD)----R(D232)
(0009) PORTD.1(TXD)----T(D232)
(0010) **********************************************/
(0011) #include <io8515.h>
(0012) #include <stdio.h>
(0013) void main(void)
(0014) {
(0015) unsigned char temp;
(0016) UBRR = 12;
_main:
temp --> R20
00EF E08C LDI R24,0xC
00F0 B989 OUT P09,R24
(0017) UCR=0x18;
00F1 E188 LDI R24,0x18
00F2 B98A OUT P0A,R24
(0018) puts("Hello World!\n");
00F3 E804 LDI R16,0x84
00F4 E010 LDI R17,0
00F5 D2C3 RCALL _puts
(0019) putchar(0x0d);
00F6 E00D LDI R16,0xD
00F7 D2A3 RCALL _putchar
(0020) putchar(0x0a);
00F8 E00A LDI R16,0xA
00F9 D2A1 RCALL _putchar
(0021) printf("请使用PC机键盘输入数字、字母或汉字!");
00FA E600 LDI R16,0x60
00FB E010 LDI R17,0
00FC D082 RCALL _printf
(0022) putchar(0x0a);
00FD E00A LDI R16,0xA
00FE D29C RCALL _putchar
(0023) putchar(0x0d);
00FF E00D LDI R16,0xD
0100 D29A RCALL _putchar
0101 C00D RJMP 0x010F
(0024) while (1)
(0025) {
(0026) temp=getchar();
0102 D2B1 RCALL _getchar
0103 2E20 MOV R2,R16
0104 2E31 MOV R3,R17
0105 2D42 MOV R20,R2
(0027) if (temp!=0)
0106 2344 TST R20
0107 F039 BEQ 0x010F
(0028) {
(0029) putchar(temp);
0108 2F04 MOV R16,R20
0109 D291 RCALL _putchar
(0030) if(temp==0x0d)
010A 304D CPI R20,0xD
010B F411 BNE 0x010E
(0031) putchar(0x0a);
010C E00A LDI R16,0xA
010D D28D RCALL _putchar
(0032) temp=0;
010E 2744 CLR R20
(0033) }
(0034) }
010F CFF2 RJMP 0x0102
(0035) }
FILE: <library>
0110 9508 RET
_islower:
0111 E285 LDI R24,0x25
0112 E090 LDI R25,0
0113 2E20 MOV R2,R16
0114 2E31 MOV R3,R17
0115 0E28 ADD R2,R24
0116 1E39 ADC R3,R25
0117 2DE2 MOV R30,R2
0118 2DF3 MOV R31,R3
0119 95C8 LPM
011A 2D00 MOV R16,R0
011B 2711 CLR R17
011C 7002 ANDI R16,2
011D 7010 ANDI R17,0
011E 9508 RET
_toupper:
011F D03A RCALL push_gset1
0120 2F40 MOV R20,R16
0121 2F51 MOV R21,R17
0122 2F04 MOV R16,R20
0123 2F15 MOV R17,R21
0124 DFEC RCALL _islower
0125 2E20 MOV R2,R16
0126 2E31 MOV R3,R17
0127 2022 TST R2
0128 F411 BNE 0x012B
0129 2033 TST R3
012A F039 BEQ 0x0132
012B 2F04 MOV R16,R20
012C 2F15 MOV R17,R21
012D 5601 SUBI R16,0x61
012E 4010 SBCI R17,0
012F 5B0F SUBI R16,0xBF
0130 4F1F SBCI R17,0xFF
0131 C002 RJMP 0x0134
0132 2F04 MOV R16,R20
0133 2F15 MOV R17,R21
0134 D028 RCALL pop_gset1
0135 9508 RET
mod16u:
0136 9468 BSET 6
0137 C001 RJMP 0x0139
div16u:
0138 94E8 BCLR 6
0139 92EA ST R14,-Y
013A 92FA ST R15,-Y
013B 938A ST R24,-Y
013C 24EE CLR R14
013D 18FF SUB R15,R15
013E E181 LDI R24,0x11
013F 1F00 ROL R16
0140 1F11 ROL R17
0141 958A DEC R24
0142 F439 BNE 0x014A
0143 F416 BRTC 0x0146
0144 2D0E MOV R16,R14
0145 2D1F MOV R17,R15
0146 9189 LD R24,Y+
0147 90F9 LD R15,Y+
0148 90E9 LD R14,Y+
0149 9508 RET
014A 1CEE ROL R14
014B 1CFF ROL R15
014C 1AE2 SUB R14,R18
014D 0AF3 SBC R15,R19
014E F420 BCC 0x0153
014F 0EE2 ADD R14,R18
0150 1EF3 ADC R15,R19
0151 9488 BCLR 0
0152 CFEC RJMP 0x013F
0153 9408 BSET 0
0154 CFEA RJMP 0x013F
push_arg4:
0155 933A ST R19,-Y
0156 932A ST R18,-Y
push_arg2:
0157 931A ST R17,-Y
0158 930A ST R16,-Y
0159 9508 RET
push_gset1:
015A 935A ST R21,-Y
015B 934A ST R20,-Y
015C 9508 RET
pop_gset1:
015D E0E1 LDI R30,1
pop:
015E 9149 LD R20,Y+
015F 9159 LD R21,Y+
0160 FDE0 SBRC R30,0
0161 9508 RET
0162 9169 LD R22,Y+
0163 9179 LD R23,Y+
0164 FDE1 SBRC R30,1
0165 9508 RET
0166 90A9 LD R10,Y+
0167 90B9 LD R11,Y+
0168 FDE2 SBRC R30,2
0169 9508 RET
016A 90C9 LD R12,Y+
016B 90D9 LD R13,Y+
016C FDE3 SBRC R30,3
016D 9508 RET
016E 90E9 LD R14,Y+
016F 90F9 LD R15,Y+
0170 9508 RET
push_gset2:
0171 937A ST R23,-Y
0172 936A ST R22,-Y
0173 CFE6 RJMP push_gset1
push_gset3:
0174 92BA ST R11,-Y
0175 92AA ST R10,-Y
0176 CFFA RJMP push_gset2
push_gset4:
0177 92DA ST R13,-Y
0178 92CA ST R12,-Y
0179 CFFA RJMP push_gset3
push_gset5:
017A 92FA ST R15,-Y
017B 92EA ST R14,-Y
017C CFFA RJMP push_gset4
pop_gset5:
017D 27EE CLR R30
017E CFDF RJMP pop
_printf:
017F DFD5 RCALL push_arg4
0180 DFD9 RCALL push_gset1
0181 9722 SBIW R28,2
0182 E082 LDI R24,2
0183 E090 LDI R25,0
0184 8388 STD R24,0+Y
0185 8399 STD R25,1+Y
0186 2F8C MOV R24,R28
0187 2F9D MOV R25,R29
0188 9604 ADIW R24,4
0189 2F28 MOV R18,R24
018A 2F39 MOV R19,R25
018B 2700 CLR R16
018C 2711 CLR R17
018D D205 RCALL __va_start
018E 2E20 MOV R2,R16
018F 2E31 MOV R3,R17
0190 2D42 MOV R20,R2
0191 2D53 MOV R21,R3
0192 8348 STD R20,0+Y
0193 8359 STD R21,1+Y
0194 812C LDD R18,4+Y
0195 813D LDD R19,5+Y
0196 E10A LDI R16,0x1A
0197 E010 LDI R17,0
0198 D00A RCALL __print
0199 2E20 MOV R2,R16
019A 2E31 MOV R3,R17
019B 2D42 MOV R20,R2
019C 2D53 MOV R21,R3
019D 2F04 MOV R16,R20
019E 2F15 MOV R17,R21
019F 9622 ADIW R28,2
01A0 DFBC RCALL pop_gset1
01A1 9624 ADIW R28,4
01A2 9508 RET
__print:
01A3 DFB1 RCALL push_arg4
01A4 DFD5 RCALL push_gset5
01A5 9728 SBIW R28,0x8
01A6 2400 CLR R0
01A7 2411 CLR R1
01A8 820E STD R0,6+Y
01A9 821F STD R1,7+Y
01AA C180 RJMP 0x032B
01AB 89EC LDD R30,20+Y
01AC 89FD LDD R31,21+Y
01AD 8180 LDD R24,0+Z
01AE 3285 CPI R24,0x25
01AF F059 BEQ 0x01BB
01B0 8100 LDD R16,0+Z
01B1 2711 CLR R17
01B2 89EA LDD R30,18+Y
01B3 89FB LDD R31,19+Y
01B4 D219 RCALL xicall
01B5 818E LDD R24,6+Y
01B6 819F LDD R25,7+Y
01B7 9601 ADIW R24,1
01B8 838E STD R24,6+Y
01B9 839F STD R25,7+Y
01BA C16B RJMP 0x0326
01BB 24CC CLR R12
01BC 24DD CLR R13
01BD ED88 LDI R24,0xD8
01BE E090 LDI R25,0
01BF 2EE8 MOV R14,R24
01C0 2EF9 MOV R15,R25
01C1 E260 LDI R22,0x20
01C2 898C LDD R24,20+Y
01C3 899D LDD R25,21+Y
01C4 9601 ADIW R24,1
01C5 8B8C STD R24,20+Y
01C6 8B9D STD R25,21+Y
01C7 89EC LDD R30,20+Y
01C8 89FD LDD R31,21+Y
01C9 8020 LDD R2,0+Z
01CA 2433 CLR R3
01CB 822A STD R2,2+Y
01CC 823B STD R3,3+Y
01CD 818A LDD R24,2+Y
01CE 819B LDD R25,3+Y
01CF 3588 CPI R24,0x58
01D0 E0E0 LDI R30,0
01D1 079E CPC R25,R30
01D2 F409 BNE 0x01D4
01D3 C086 RJMP 0x025A
01D4 E588 LDI R24,0x58
01D5 E090 LDI R25,0
01D6 1582 CP R24,R2
01D7 0593 CPC R25,R3
01D8 F0A4 BLT 0x01ED
01D9 818A LDD R24,2+Y
01DA 819B LDD R25,3+Y
01DB 3485 CPI R24,0x45
01DC E0E0 LDI R30,0
01DD 079E CPC R25,R30
01DE F409 BNE 0x01E0
01DF C143 RJMP 0x0323
01E0 3485 CPI R24,0x45
01E1 E0E0 LDI R30,0
01E2 079E CPC R25,R30
01E3 F40C BGE 0x01E5
01E4 C041 RJMP 0x0226
01E5 818A LDD R24,2+Y
01E6 819B LDD R25,3+Y
01E7 3583 CPI R24,0x53
01E8 E0E0 LDI R30,0
01E9 079E CPC R25,R30
01EA F409 BNE 0x01EC
01EB C0D0 RJMP 0x02BC
01EC C039 RJMP 0x0226
01ED 818A LDD R24,2+Y
01EE 819B LDD R25,3+Y
01EF 368F CPI R24,0x6F
01F0 E0E0 LDI R30,0
01F1 079E CPC R25,R30
01F2 F409 BNE 0x01F4
01F3 C066 RJMP 0x025A
01F4 E68F LDI R24,0x6F
01F5 E090 LDI R25,0
01F6 802A LDD R2,2+Y
01F7 803B LDD R3,3+Y
01F8 1582 CP R24,R2
01F9 0593 CPC R25,R3
01FA F0CC BLT 0x0214
01FB 818A LDD R24,2+Y
01FC 819B LDD R25,3+Y
01FD 3683 CPI R24,0x63
01FE E0E0 LDI R30,0
01FF 079E CPC R25,R30
0200 F12C BLT 0x0226
0201 E686 LDI R24,0x66
0202 E090 LDI R25,0
0203 802A LDD R2,2+Y
0204 803B LDD R3,3+Y
0205 1582 CP R24,R2
0206 0593 CPC R25,R3
0207 F0F4 BLT 0x0226
0208 E586 LDI R24,0x56
0209 EF9F LDI R25,0xFF
020A 810A LDD R16,2+Y
020B 811B LDD R17,3+Y
020C 0F00 LSL R16
020D 1F11 ROL R17
020E 0F08 ADD R16,R24
020F 1F19 ADC R17,R25
0210 D1D1 RCALL lpm16
0211 2FE0 MOV R30,R16
0212 2FF1 MOV R31,R17
0213 9409 IJMP
0214 818A LDD R24,2+Y
0215 819B LDD R25,3+Y
0216 3783 CPI R24,0x73
0217 E0E0 LDI R30,0
0218 079E CPC R25,R30
0219 F409 BNE 0x021B
021A C0D6 RJMP 0x02F1
021B 3785 CPI R24,0x75
021C E0E0 LDI R30,0
021D 079E CPC R25,R30
021E F409 BNE 0x0220
021F C03A RJMP 0x025A
0220 3788 CPI R24,0x78
0221 E0E0 LDI R30,0
0222 079E CPC R25,R30
0223 F409 BNE 0x0225
0224 C035 RJMP 0x025A
0225 C000 RJMP 0x0226
0226 89EC LDD R30,20+Y
0227 89FD LDD R31,21+Y
0228 8100 LDD R16,0+Z
0229 2711 CLR R17
022A 89EA LDD R30,18+Y
022B 89FB LDD R31,19+Y
022C D1A1 RCALL xicall
022D 818E LDD R24,6+Y
022E 819F LDD R25,7+Y
022F 9601 ADIW R24,1
0230 838E STD R24,6+Y
0231 839F STD R25,7+Y
0232 C0F3 RJMP 0x0326
0233 898E LDD R24,22+Y
0234 899F LDD R25,23+Y
0235 9602 ADIW R24,2
0236 8B8E STD R24,22+Y
0237 8B9F STD R25,23+Y
0238 89EE LDD R30,22+Y
0239 89FF LDD R31,23+Y
023A 9732 SBIW R30,2
023B 80A0 LDD R10,0+Z
023C 80B1 LDD R11,1+Z
023D E080 LDI R24,0
023E E090 LDI R25,0
023F 16A8 CP R10,R24
0240 06B9 CPC R11,R25
0241 F474 BGE 0x0250
0242 2D8C MOV R24,R12
0243 2D9D MOV R25,R13
0244 6088 ORI R24,0x8
0245 2EC8 MOV R12,R24
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -