📄 串口发送接收.lis
字号:
0066 _uart_print::
0066 4A93 st -y,R20
0068 5A93 st -y,R21
006A A801 movw R20,R16
006C .dbline -1
006C .dbline 75
006C ; }
006C ; //带回车的字符串输出
006C ; int uart_print(char *s)
006C ; {
006C 05C0 rjmp L19
006E L18:
006E .dbline 77
006E ; while(*s)
006E ; {
006E .dbline 78
006E ; uart_putchar(*s);
006E FA01 movw R30,R20
0070 0081 ldd R16,z+0
0072 F1DF rcall _uart_putchar
0074 .dbline 79
0074 ; s++;
0074 4F5F subi R20,255 ; offset = 1
0076 5F4F sbci R21,255
0078 .dbline 80
0078 ; }
0078 L19:
0078 .dbline 76
0078 FA01 movw R30,R20
007A 2080 ldd R2,z+0
007C 2220 tst R2
007E B9F7 brne L18
0080 X3:
0080 .dbline 81
0080 ; uart_putchar(0x0a);//回车换行
0080 0AE0 ldi R16,10
0082 E9DF rcall _uart_putchar
0084 .dbline 82
0084 ; uart_putchar(0x0d);
0084 0DE0 ldi R16,13
0086 E7DF rcall _uart_putchar
0088 .dbline 83
0088 ; return 1;
0088 01E0 ldi R16,1
008A 10E0 ldi R17,0
008C .dbline -2
008C L17:
008C .dbline 0 ; func end
008C 5991 ld R21,y+
008E 4991 ld R20,y+
0090 0895 ret
0092 .dbsym r s 20 pc
0092 .dbend
0092 .dbfunc e uart_prints _uart_prints fV
0092 ; s -> R20,R21
.even
0092 _uart_prints::
0092 4A93 st -y,R20
0094 5A93 st -y,R21
0096 A801 movw R20,R16
0098 .dbline -1
0098 .dbline 87
0098 ; }
0098 ; //不带回车换行的字符串输出
0098 ; void uart_prints(char *s)
0098 ; {
0098 05C0 rjmp L23
009A L22:
009A .dbline 89
009A ; while(*s)
009A ; {
009A .dbline 90
009A ; uart_putchar(*s);
009A FA01 movw R30,R20
009C 0081 ldd R16,z+0
009E DBDF rcall _uart_putchar
00A0 .dbline 91
00A0 ; s++;
00A0 4F5F subi R20,255 ; offset = 1
00A2 5F4F sbci R21,255
00A4 .dbline 92
00A4 ; }
00A4 L23:
00A4 .dbline 88
00A4 FA01 movw R30,R20
00A6 2080 ldd R2,z+0
00A8 2220 tst R2
00AA B9F7 brne L22
00AC X4:
00AC .dbline -2
00AC L21:
00AC .dbline 0 ; func end
00AC 5991 ld R21,y+
00AE 4991 ld R20,y+
00B0 0895 ret
00B2 .dbsym r s 20 pc
00B2 .dbend
.area vector(rom, abs)
.org 22
0016 59C0 rjmp _uart_rec_int
.area text(rom, con, rel)
00B2 .dbfile E:\xiaozhiyong2009\设计资料\项目设计\ICCAVR_mega8_C\ICCAVR_mega8_串口发送接收\串口发送接收.c
00B2 .dbfunc e uart_rec_int _uart_rec_int fV
.even
00B2 _uart_rec_int::
00B2 0A92 st -y,R0
00B4 1A92 st -y,R1
00B6 2A92 st -y,R2
00B8 3A92 st -y,R3
00BA 4A92 st -y,R4
00BC 5A92 st -y,R5
00BE 6A92 st -y,R6
00C0 7A92 st -y,R7
00C2 8A92 st -y,R8
00C4 9A92 st -y,R9
00C6 0A93 st -y,R16
00C8 1A93 st -y,R17
00CA 2A93 st -y,R18
00CC 3A93 st -y,R19
00CE 8A93 st -y,R24
00D0 9A93 st -y,R25
00D2 AA93 st -y,R26
00D4 BA93 st -y,R27
00D6 EA93 st -y,R30
00D8 FA93 st -y,R31
00DA 0FB6 in R0,0x3f
00DC 0A92 st -y,R0
00DE .dbline -1
00DE .dbline 97
00DE ; }
00DE ; //接收中断
00DE ; #pragma interrupt_handler uart_rec_int:iv_USART_RX
00DE ; void uart_rec_int()
00DE ; {
00DE .dbline 98
00DE ; uart_putchar(UDR);
00DE 0CB1 in R16,0xc
00E0 BADF rcall _uart_putchar
00E2 .dbline 99
00E2 ; uart_putchar(0x0a);//回车换行
00E2 0AE0 ldi R16,10
00E4 B8DF rcall _uart_putchar
00E6 .dbline 100
00E6 ; uart_putchar(0x0d);
00E6 0DE0 ldi R16,13
00E8 B6DF rcall _uart_putchar
00EA .dbline -2
00EA L25:
00EA .dbline 0 ; func end
00EA 0990 ld R0,y+
00EC 0FBE out 0x3f,R0
00EE F991 ld R31,y+
00F0 E991 ld R30,y+
00F2 B991 ld R27,y+
00F4 A991 ld R26,y+
00F6 9991 ld R25,y+
00F8 8991 ld R24,y+
00FA 3991 ld R19,y+
00FC 2991 ld R18,y+
00FE 1991 ld R17,y+
0100 0991 ld R16,y+
0102 9990 ld R9,y+
0104 8990 ld R8,y+
0106 7990 ld R7,y+
0108 6990 ld R6,y+
010A 5990 ld R5,y+
010C 4990 ld R4,y+
010E 3990 ld R3,y+
0110 2990 ld R2,y+
0112 1990 ld R1,y+
0114 0990 ld R0,y+
0116 1895 reti
0118 .dbend
0118 .dbfunc e main _main fV
.even
0118 _main::
0118 .dbline -1
0118 .dbline 105
0118 ; }
0118 ; //**************************************************************************
0118 ;
0118 ; void main()
0118 ; {
0118 .dbline 106
0118 ; port_init();
0118 73DF rcall _port_init
011A .dbline 107
011A ; init_devices();
011A 7ADF rcall _init_devices
011C .dbline 109
011C ;
011C ; init_uart();
011C 93DF rcall _init_uart
011E .dbline 110
011E ; uart_print("xiaozhiyong");
011E 00E0 ldi R16,<L27
0120 10E0 ldi R17,>L27
0122 A1DF rcall _uart_print
0124 L28:
0124 .dbline 112
0124 ; while(1)
0124 ; {
0124 .dbline 113
0124 ; ;
0124 .dbline 115
0124 ; //delay();
0124 ; }
0124 L29:
0124 .dbline 111
0124 FFCF rjmp L28
0126 X5:
0126 .dbline -2
0126 L26:
0126 .dbline 0 ; func end
0126 0895 ret
0128 .dbend
.area data(ram, con, rel)
0000 .dbfile E:\xiaozhiyong2009\设计资料\项目设计\ICCAVR_mega8_C\ICCAVR_mega8_串口发送接收\串口发送接收.c
0000 L27:
0000 .blkb 12
.area idata
0000 7869616F7A6869796F6E6700 .byte 'x,'i,'a,'o,'z,'h,'i,'y,'o,'n,'g,0
.area data(ram, con, rel)
000C .dbfile E:\xiaozhiyong2009\设计资料\项目设计\ICCAVR_mega8_C\ICCAVR_mega8_串口发送接收\串口发送接收.c
000C ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -