📄 usart_int.lis
字号:
006A _uart_rx_isr::
006A 2A92 st -y,R2
006C 0A93 st -y,R16
006E 8A93 st -y,R24
0070 9A93 st -y,R25
0072 EA93 st -y,R30
0074 FA93 st -y,R31
0076 2FB6 in R2,0x3f
0078 2A92 st -y,R2
007A .dbline -1
007A .dbline 72
007A ;
007A ; #pragma interrupt_handler uart_rx_isr:iv_USART_RX
007A ; void uart_rx_isr(void)
007A ; {
007A .dbline 74
007A ; unsigned char temp;
007A ; temp = UDR;
007A 0CB1 in R16,0xc
007C .dbline 75
007C ; if(gU8getchar < 3)
007C 80910000 lds R24,_gU8getchar
0080 8330 cpi R24,3
0082 48F4 brsh L19
0084 .dbline 76
0084 ; {
0084 .dbline 77
0084 ; gU8RecBuff[gU8getchar]=temp;
0084 80E0 ldi R24,<_gU8RecBuff
0086 90E0 ldi R25,>_gU8RecBuff
0088 E0910000 lds R30,_gU8getchar
008C FF27 clr R31
008E E80F add R30,R24
0090 F91F adc R31,R25
0092 0083 std z+0,R16
0094 .dbline 78
0094 ; }
0094 0AC0 rjmp L20
0096 L19:
0096 .dbline 80
0096 ; else
0096 ; {
0096 .dbline 81
0096 ; gU8getchar=0;
0096 2224 clr R2
0098 20920000 sts _gU8getchar,R2
009C .dbline 82
009C ; gU8RecBuff[gU8getchar]=temp;
009C 80E0 ldi R24,<_gU8RecBuff
009E 90E0 ldi R25,>_gU8RecBuff
00A0 E22D mov R30,R2
00A2 FF27 clr R31
00A4 E80F add R30,R24
00A6 F91F adc R31,R25
00A8 0083 std z+0,R16
00AA .dbline 83
00AA ; }
00AA L20:
00AA .dbline 84
00AA ; gU8getchar++;
00AA 80910000 lds R24,_gU8getchar
00AE 8F5F subi R24,255 ; addi 1
00B0 80930000 sts _gU8getchar,R24
00B4 .dbline -2
00B4 .dbline 85
00B4 ; }
00B4 L18:
00B4 2990 ld R2,y+
00B6 2FBE out 0x3f,R2
00B8 F991 ld R31,y+
00BA E991 ld R30,y+
00BC 9991 ld R25,y+
00BE 8991 ld R24,y+
00C0 0991 ld R16,y+
00C2 2990 ld R2,y+
00C4 .dbline 0 ; func end
00C4 1895 reti
00C6 .dbsym r temp 16 c
00C6 .dbend
00C6 .dbfunc e main _main fV
00C6 ; i -> R20
.even
00C6 _main::
00C6 .dbline -1
00C6 .dbline 89
00C6 ;
00C6 ; //RS232通信main函数
00C6 ; void main(void)
00C6 ; {
00C6 .dbline 90
00C6 ; unsigned char i=0;
00C6 4427 clr R20
00C8 .dbline 91
00C8 ; CLI();
00C8 F894 cli
00CA .dbline 92
00CA ; uart_init();
00CA C4DF rcall _uart_init
00CC .dbline 93
00CC ; SEI();
00CC 7894 sei
00CE .dbline 95
00CE ; //proteus还不支持汉文显示
00CE ; puts_hh("RS232 test demo!");
00CE 00E0 ldi R16,<L22
00D0 10E0 ldi R17,>L22
00D2 AEDF rcall _puts_hh
00D4 .dbline 96
00D4 ; puts_hh("MAIL:young45@126.com");
00D4 00E0 ldi R16,<L23
00D6 10E0 ldi R17,>L23
00D8 ABDF rcall _puts_hh
00DA .dbline 97
00DA ; putchar(0x0a); //换行
00DA 0AE0 ldi R16,10
00DC 91DF rcall _putchar
00DE .dbline 98
00DE ; putchar(0x0d); //回车
00DE 0DE0 ldi R16,13
00E0 8FDF rcall _putchar
00E2 .dbline 100
00E2 ; //键盘输入回显到终端
00E2 ; puts("put int please: ");
00E2 00E0 ldi R16,<L24
00E4 10E0 ldi R17,>L24
00E6 94DF rcall _puts
00E8 25C0 rjmp L26
00EA L25:
00EA .dbline 102
00EA ; while(1)
00EA ; {
00EA .dbline 103
00EA ; if (0<gU8getchar) //按PC键盘开始测试
00EA 20900000 lds R2,_gU8getchar
00EE 3324 clr R3
00F0 3214 cp R3,R2
00F2 00F5 brsh L28
00F4 .dbline 104
00F4 ; {
00F4 .dbline 105
00F4 ; putchar(0x0a); //换行
00F4 0AE0 ldi R16,10
00F6 84DF rcall _putchar
00F8 .dbline 106
00F8 ; putchar(0x0d); //回车
00F8 0DE0 ldi R16,13
00FA 82DF rcall _putchar
00FC .dbline 107
00FC ; puts("your put is: ");
00FC 00E0 ldi R16,<L30
00FE 10E0 ldi R17,>L30
0100 87DF rcall _puts
0102 .dbline 108
0102 ; for(i=0;i<gU8getchar;i++)
0102 4427 clr R20
0104 09C0 rjmp L34
0106 L31:
0106 .dbline 109
0106 80E0 ldi R24,<_gU8RecBuff
0108 90E0 ldi R25,>_gU8RecBuff
010A E42F mov R30,R20
010C FF27 clr R31
010E E80F add R30,R24
0110 F91F adc R31,R25
0112 0081 ldd R16,z+0
0114 75DF rcall _putchar
0116 L32:
0116 .dbline 108
0116 4395 inc R20
0118 L34:
0118 .dbline 108
0118 20900000 lds R2,_gU8getchar
011C 4215 cp R20,R2
011E 98F3 brlo L31
0120 .dbline 110
0120 ; putchar(gU8RecBuff[i]);
0120 ; gU8getchar=0;
0120 2224 clr R2
0122 20920000 sts _gU8getchar,R2
0126 .dbline 111
0126 ; putchar(0x0a); //换行
0126 0AE0 ldi R16,10
0128 6BDF rcall _putchar
012A .dbline 112
012A ; putchar(0x0d); //回车
012A 0DE0 ldi R16,13
012C 69DF rcall _putchar
012E .dbline 113
012E ; puts("put int please: ");
012E 00E0 ldi R16,<L24
0130 10E0 ldi R17,>L24
0132 6EDF rcall _puts
0134 .dbline 114
0134 ; }
0134 L28:
0134 .dbline 115
0134 L26:
0134 .dbline 101
0134 DACF rjmp L25
0136 X0:
0136 .dbline -2
0136 .dbline 116
0136 ; }
0136 ; }
0136 L21:
0136 .dbline 0 ; func end
0136 0895 ret
0138 .dbsym r i 20 c
0138 .dbend
.area data(ram, con, rel)
0004 .dbfile F:\Learn\AVR\Pro_Mega8\USART\usart_int\usart_int.c
0004 L30:
0004 .blkb 14
.area idata
0004 796F7572207075742069733A2000 .byte 'y,'o,'u,'r,32,'p,'u,'t,32,'i,'s,58,32,0
.area data(ram, con, rel)
0012 .dbfile F:\Learn\AVR\Pro_Mega8\USART\usart_int\usart_int.c
0012 L24:
0012 .blkb 17
.area idata
0012 70757420696E7420706C656173653A20 .byte 'p,'u,'t,32,'i,'n,'t,32,'p,'l,'e,'a,'s,'e,58,32
0022 00 .byte 0
.area data(ram, con, rel)
0023 .dbfile F:\Learn\AVR\Pro_Mega8\USART\usart_int\usart_int.c
0023 L23:
0023 .blkb 21
.area idata
0023 4D41494C3A796F756E67343540313236 .byte 'M,'A,'I,'L,58,'y,'o,'u,'n,'g,52,53,64,49,50,54
0033 2E636F6D00 .byte 46,'c,'o,'m,0
.area data(ram, con, rel)
0038 .dbfile F:\Learn\AVR\Pro_Mega8\USART\usart_int\usart_int.c
0038 L22:
0038 .blkb 17
.area idata
0038 525332333220746573742064656D6F21 .byte 'R,'S,50,51,50,32,'t,'e,'s,'t,32,'d,'e,'m,'o,33
0048 00 .byte 0
.area data(ram, con, rel)
0049 .dbfile F:\Learn\AVR\Pro_Mega8\USART\usart_int\usart_int.c
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -