📄 uarttest.lis
字号:
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 + -