⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 usart_int.lis

📁 protues_atmeg8学习之:uart篇源代码
💻 LIS
📖 第 1 页 / 共 2 页
字号:
 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 + -