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

📄 uarttest.lis

📁 AVR 128 单片机 串口 自定义指令处理程序
💻 LIS
📖 第 1 页 / 共 3 页
字号:
 0338           ;                       cmd_buff[i].dat1=cmd_buff[i+1].cmd;
 0338           ;                       cmd_buff[i].dat2=cmd_buff[i+1].cmd;
 0338           ;                       
 0338           ;                       putchar('[');putchar(('0'+ccnt));
 0338           ;                       Send_Str(":proCMD] A");
 0338           ;                       putchar(cmd_buff[0].cmd);       
 0338           ; 
 0338           ;                       }
 0338           ;                ccnt--;
 0338 822D              mov R24,R2
 033A 8150              subi R24,1
 033C 80930300          sts _ccnt,R24
 0340                   .dbline 114
 0340           ;               
 0340           ;               switch(cmd_buff[0].cmd)
 0340 40910400          lds R20,_cmd_buff
 0344 5527              clr R21
 0346 4035              cpi R20,80
 0348 E0E0              ldi R30,0
 034A 5E07              cpc R21,R30
 034C 39F1              breq L55
 034E 80E5              ldi R24,80
 0350 90E0              ldi R25,0
 0352 8417              cp R24,R20
 0354 9507              cpc R25,R21
 0356 2CF0              brlt L59
 0358           L58:
 0358 4334              cpi R20,67
 035A E0E0              ldi R30,0
 035C 5E07              cpc R21,R30
 035E 71F0              breq L47
 0360 21C0              xjmp L44
 0362           L59:
 0362 4735              cpi R20,87
 0364 E0E0              ldi R30,0
 0366 5E07              cpc R21,R30
 0368 69F0              breq L49
 036A 4835              cpi R20,88
 036C E0E0              ldi R30,0
 036E 5E07              cpc R21,R30
 0370 69F0              breq L51
 0372 4935              cpi R20,89
 0374 E0E0              ldi R30,0
 0376 5E07              cpc R21,R30
 0378 69F0              breq L53
 037A 14C0              xjmp L44
 037C           X4:
 037C                   .dbline 115
 037C           ;                       {
 037C           L47:
 037C                   .dbline 116
 037C           ;                       case CONNECT:Send_Str("connect A");break;
 037C 00E0              ldi R16,<L48
 037E 10E0              ldi R17,>L48
 0380 31D0              xcall _Send_Str
 0382                   .dbline 116
 0382 13C0              xjmp L45
 0384           L49:
 0384                   .dbline 117
 0384           ;                       case WAIT       :Send_Str("waiting A");break;
 0384 00E0              ldi R16,<L50
 0386 10E0              ldi R17,>L50
 0388 2DD0              xcall _Send_Str
 038A                   .dbline 117
 038A 0FC0              xjmp L45
 038C           L51:
 038C                   .dbline 118
 038C           ;                       case MOVEX      :Send_Str("movex A");break;
 038C 00E0              ldi R16,<L52
 038E 10E0              ldi R17,>L52
 0390 29D0              xcall _Send_Str
 0392                   .dbline 118
 0392 0BC0              xjmp L45
 0394           L53:
 0394                   .dbline 119
 0394           ;                       case MOVEY      :Send_Str("movey A");break;
 0394 00E0              ldi R16,<L54
 0396 10E0              ldi R17,>L54
 0398 25D0              xcall _Send_Str
 039A                   .dbline 119
 039A 07C0              xjmp L45
 039C           L55:
 039C                   .dbline 120
 039C           ;                       case MOVEXY :Send_Str("movexy A");break;
 039C 00E0              ldi R16,<L56
 039E 10E0              ldi R17,>L56
 03A0 21D0              xcall _Send_Str
 03A2                   .dbline 120
 03A2 03C0              xjmp L45
 03A4           L44:
 03A4                   .dbline 121
 03A4           ;                       default:Send_Str("Inlegal Command!A");break;
 03A4 00E0              ldi R16,<L57
 03A6 10E0              ldi R17,>L57
 03A8 1DD0              xcall _Send_Str
 03AA                   .dbline 121
 03AA           L45:
 03AA                   .dbline 123
 03AA           L32:
 03AA                   .dbline -2
 03AA           L31:
 03AA 0E940000          xcall pop_gset2
 03AE                   .dbline 0 ; func end
 03AE 0895              ret
 03B0                   .dbsym r i 22 c
 03B0                   .dbend
                        .area vector(rom, abs)
                        .org 72
 0048 0C94D801          jmp _ReceivePro
                        .area text(rom, con, rel)
 03B0                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 03B0                   .dbfunc e ReceivePro _ReceivePro fV
                        .even
 03B0           _ReceivePro::
 03B0 0E940000          xcall push_lset
 03B4                   .dbline -1
 03B4                   .dbline 128
 03B4           ;                       }
 03B4           ;               }
 03B4           ;        }
 03B4           ;        
 03B4           ; #pragma interrupt_handler ReceivePro:19
 03B4           ; void ReceivePro(void)   //串口接受中断服务程序
 03B4           ;       {
 03B4                   .dbline 129
 03B4           ;       buff[bcnt]=UDR0;
 03B4 80E0              ldi R24,<_buff
 03B6 90E0              ldi R25,>_buff
 03B8 E0910000          lds R30,_bcnt
 03BC FF27              clr R31
 03BE E80F              add R30,R24
 03C0 F91F              adc R31,R25
 03C2 2CB0              in R2,0xc
 03C4 2082              std z+0,R2
 03C6                   .dbline 130
 03C6           ;       bcnt++;
 03C6 80910000          lds R24,_bcnt
 03CA 8F5F              subi R24,255    ; addi 1
 03CC 80930000          sts _bcnt,R24
 03D0                   .dbline 131
 03D0           ;       bcnt=bcnt%(BUFFLEN);
 03D0 18E2              ldi R17,40
 03D2 082F              mov R16,R24
 03D4 0E940000          xcall mod8u
 03D8 00930000          sts _bcnt,R16
 03DC                   .dbline 133
 03DC           ;       
 03DC           ;       showbuff();
 03DC 11DE              xcall _showbuff
 03DE                   .dbline -2
 03DE           L60:
 03DE 0E940000          xcall pop_lset
 03E2                   .dbline 0 ; func end
 03E2 1895              reti
 03E4                   .dbend
 03E4                   .dbfunc e Send_Str _Send_Str fV
 03E4           ;            str -> R20,R21
                        .even
 03E4           _Send_Str::
 03E4 0E940000          xcall push_gset1
 03E8 A801              movw R20,R16
 03EA                   .dbline -1
 03EA                   .dbline 139
 03EA           ;       //putchar('['); putchar('H'); putchar(':');putchar(bhead/10+'0');putchar(bhead%10+'0');putchar(']');
 03EA           ;       //putchar('['); putchar('b'); putchar(':');putchar(bcnt/10+'0');putchar(bcnt%10+'0');putchar(']');
 03EA           ;       }
 03EA           ; 
 03EA           ; void Send_Str(uchar * str)            //串口发送程序
 03EA           ;        {
 03EA 06C0              xjmp L63
 03EC           L62:
 03EC                   .dbline 141
 03EC                   .dbline 142
 03EC FA01              movw R30,R20
 03EE 0191              ld R16,Z+
 03F0 AF01              movw R20,R30
 03F2 1127              clr R17
 03F4 0E940000          xcall _putchar
 03F8                   .dbline 143
 03F8           L63:
 03F8                   .dbline 140
 03F8           ;        while(*str!=EOS)
 03F8 FA01              movw R30,R20
 03FA 8081              ldd R24,z+0
 03FC 8134              cpi R24,65
 03FE B1F7              brne L62
 0400                   .dbline -2
 0400           L61:
 0400 0E940000          xcall pop_gset1
 0404                   .dbline 0 ; func end
 0404 0895              ret
 0406                   .dbsym r str 20 pc
 0406                   .dbend
 0406                   .dbfunc e USART_Init _USART_Init fV
 0406           ;           baud -> R16,R17
                        .even
 0406           _USART_Init::
 0406                   .dbline -1
 0406                   .dbline 146
 0406           ;               {
 0406           ;               putchar(*(str++));
 0406           ;               }
 0406           ;        }
 0406           ; void USART_Init(unsigned int baud)                      //串口初始化
 0406           ;        {
 0406                   .dbline 147
 0406           ;        UBRR0H=0;//(uchar) (baud>>8);
 0406 2224              clr R2
 0408 20929000          sts 144,R2
 040C                   .dbline 148
 040C           ;        UBRR0L=51;//(uchar) baud;
 040C 83E3              ldi R24,51
 040E 89B9              out 0x9,R24
 0410                   .dbline 150
 0410           ;        
 0410           ;        UCSR0B=(1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
 0410 88E9              ldi R24,152
 0412 8AB9              out 0xa,R24
 0414                   .dbline 151
 0414           ;        UCSR0C=0x06;
 0414 86E0              ldi R24,6
 0416 80939500          sts 149,R24
 041A                   .dbline -2
 041A           L65:
 041A                   .dbline 0 ; func end
 041A 0895              ret
 041C                   .dbsym r baud 16 i
 041C                   .dbend
 041C                   .dbfunc e main _main fV
                        .even
 041C           _main::
 041C                   .dbline -1
 041C                   .dbline 155
 041C           ;        }
 041C           ;        
 041C           ; void main()
 041C           ;        {
 041C                   .dbline 156
 041C           ;        DDRB=0XFF;
 041C 8FEF              ldi R24,255
 041E 87BB              out 0x17,R24
 0420                   .dbline 157
 0420           ;        PORTB=0X01;     
 0420 81E0              ldi R24,1
 0422 88BB              out 0x18,R24
 0424                   .dbline 159
 0424           ;        
 0424           ;        USART_Init(0X06);
 0424 06E0              ldi R16,6
 0426 10E0              ldi R17,0
 0428 EEDF              xcall _USART_Init
 042A                   .dbline 160
 042A           ;        _SEI();
 042A 7894              sei
 042C                   .dbline 162
 042C           ;        
 042C           ;        showbuff();
 042C E9DD              xcall _showbuff
 042E 02C0              xjmp L68
 0430           L67:
 0430                   .dbline 165
 0430                   .dbline 166
 0430 13DE              xcall _Cmd_buffPro
 0432                   .dbline 167
 0432 35DF              xcall _Cmd_pro
 0434                   .dbline 168
 0434           L68:
 0434                   .dbline 165
 0434 FDCF              xjmp L67
 0436           X7:
 0436                   .dbline -2
 0436           L66:
 0436                   .dbline 0 ; func end
 0436 0895              ret
 0438                   .dbend
                        .area bss(ram, con, rel)
 0000                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 0000           _buff::
 0000                   .blkb 40
 0028                   .dbsym e buff _buff A[40:40]c
                        .area data(ram, con, rel)
 0031                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 0031           L57:
 0031                   .blkb 18
                        .area idata
 0031 496E6C6567616C20436F6D6D616E6421  .byte 'I,'n,'l,'e,'g,'a,'l,32,'C,'o,'m,'m,'a,'n,'d,33
 0041 4100              .byte 'A,0
                        .area data(ram, con, rel)
 0043                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 0043           L56:
 0043                   .blkb 9
                        .area idata
 0043 6D6F76657879204100        .byte 'm,'o,'v,'e,'x,'y,32,'A,0
                        .area data(ram, con, rel)
 004C                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 004C           L54:
 004C                   .blkb 8
                        .area idata
 004C 6D6F766579204100  .byte 'm,'o,'v,'e,'y,32,'A,0
                        .area data(ram, con, rel)
 0054                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 0054           L52:
 0054                   .blkb 8
                        .area idata
 0054 6D6F766578204100  .byte 'm,'o,'v,'e,'x,32,'A,0
                        .area data(ram, con, rel)
 005C                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 005C           L50:
 005C                   .blkb 10
                        .area idata
 005C 77616974696E67204100      .byte 'w,'a,'i,'t,'i,'n,'g,32,'A,0
                        .area data(ram, con, rel)
 0066                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 0066           L48:
 0066                   .blkb 10
                        .area idata
 0066 636F6E6E656374204100      .byte 'c,'o,'n,'n,'e,'c,'t,32,'A,0
                        .area data(ram, con, rel)
 0070                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 0070           L43:
 0070                   .blkb 11
                        .area idata
 0070 3A70726F434D445D204100    .byte 58,'p,'r,'o,'C,'M,'D,93,32,'A,0
                        .area data(ram, con, rel)
 007B                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 007B           L9:
 007B                   .blkb 5
                        .area idata
 007B 205D204100        .byte 32,93,32,'A,0
                        .area data(ram, con, rel)
 0080                   .dbfile G:\我的毕设\指令处理程序\uarttest.c
 0080           L2:
 0080                   .blkb 10
                        .area idata
 0080 205B427566663A204100      .byte 32,91,'B,'u,'f,'f,58,32,'A,0
                        .area data(ram, con, rel)
 008A                   .dbfile G:\我的毕设\指令处理程序\uarttest.c

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -