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

📄 uarttest.lst

📁 AVR 128 单片机 串口 自定义指令处理程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
(0100) 	 	{
(0101) 	 	for(i=0;i<ccnt;i++)
    0203 2766      CLR	R22
    0204 C03E      RJMP	0x0243
(0102) 	 		{
(0103) 			cmd_buff[i].cmd=cmd_buff[i+1].cmd;
    0205 E083      LDI	R24,3
    0206 9F86      MUL	R24,R22
    0207 E087      LDI	R24,7
    0208 E091      LDI	R25,1
    0209 01F0      MOVW	R30,R0
    020A 0FE8      ADD	R30,R24
    020B 1FF9      ADC	R31,R25
    020C 8020      LDD	R2,Z+0
    020D E084      LDI	R24,4
    020E E091      LDI	R25,1
    020F 01F0      MOVW	R30,R0
    0210 0FE8      ADD	R30,R24
    0211 1FF9      ADC	R31,R25
    0212 8220      STD	Z+0,R2
(0104) 			cmd_buff[i].dat1=cmd_buff[i+1].cmd;
    0213 E083      LDI	R24,3
    0214 9F86      MUL	R24,R22
    0215 E087      LDI	R24,7
    0216 E091      LDI	R25,1
    0217 01F0      MOVW	R30,R0
    0218 0FE8      ADD	R30,R24
    0219 1FF9      ADC	R31,R25
    021A 8020      LDD	R2,Z+0
    021B E085      LDI	R24,5
    021C E091      LDI	R25,1
    021D 01F0      MOVW	R30,R0
    021E 0FE8      ADD	R30,R24
    021F 1FF9      ADC	R31,R25
    0220 8220      STD	Z+0,R2
(0105) 			cmd_buff[i].dat2=cmd_buff[i+1].cmd;
    0221 E083      LDI	R24,3
    0222 9F86      MUL	R24,R22
    0223 E087      LDI	R24,7
    0224 E091      LDI	R25,1
    0225 01F0      MOVW	R30,R0
    0226 0FE8      ADD	R30,R24
    0227 1FF9      ADC	R31,R25
    0228 8020      LDD	R2,Z+0
    0229 E086      LDI	R24,6
    022A E091      LDI	R25,1
    022B 01F0      MOVW	R30,R0
    022C 0FE8      ADD	R30,R24
    022D 1FF9      ADC	R31,R25
    022E 8220      STD	Z+0,R2
(0106) 			
(0107) 			putchar('[');putchar(('0'+ccnt));
    022F E50B      LDI	R16,0x5B
    0230 E010      LDI	R17,0
    0231 940E036D  CALL	_putchar
    0233 91000103  LDS	R16,ccnt
    0235 2711      CLR	R17
    0236 5D00      SUBI	R16,0xD0
    0237 4F1F      SBCI	R17,0xFF
    0238 940E036D  CALL	_putchar
(0108) 			Send_Str(":proCMD] A");
    023A E700      LDI	R16,0x70
    023B E011      LDI	R17,1
    023C D061      RCALL	_Send_Str
(0109) 			putchar(cmd_buff[0].cmd);	
    023D 91000104  LDS	R16,cmd_buff
    023F 2711      CLR	R17
    0240 940E036D  CALL	_putchar
    0242 9563      INC	R22
    0243 90200103  LDS	R2,ccnt
    0245 1562      CP	R22,R2
    0246 F408      BCC	0x0248
    0247 CFBD      RJMP	0x0205
(0110) 
(0111) 			}
(0112) 		 ccnt--;
    0248 2D82      MOV	R24,R2
    0249 5081      SUBI	R24,1
    024A 93800103  STS	ccnt,R24
(0113) 		
(0114) 	 	switch(cmd_buff[0].cmd)
    024C 91400104  LDS	R20,cmd_buff
    024E 2755      CLR	R21
    024F 3540      CPI	R20,0x50
    0250 E0E0      LDI	R30,0
    0251 075E      CPC	R21,R30
    0252 F139      BEQ	0x027A
    0253 E580      LDI	R24,0x50
    0254 E090      LDI	R25,0
    0255 1784      CP	R24,R20
    0256 0795      CPC	R25,R21
    0257 F02C      BLT	0x025D
    0258 3443      CPI	R20,0x43
    0259 E0E0      LDI	R30,0
    025A 075E      CPC	R21,R30
    025B F071      BEQ	0x026A
    025C C021      RJMP	0x027E
    025D 3547      CPI	R20,0x57
    025E E0E0      LDI	R30,0
    025F 075E      CPC	R21,R30
    0260 F069      BEQ	0x026E
    0261 3548      CPI	R20,0x58
    0262 E0E0      LDI	R30,0
    0263 075E      CPC	R21,R30
    0264 F069      BEQ	0x0272
    0265 3549      CPI	R20,0x59
    0266 E0E0      LDI	R30,0
    0267 075E      CPC	R21,R30
    0268 F069      BEQ	0x0276
    0269 C014      RJMP	0x027E
(0115) 	 		{
(0116) 			case CONNECT:Send_Str("connect A");break;
    026A E606      LDI	R16,0x66
    026B E011      LDI	R17,1
    026C D031      RCALL	_Send_Str
    026D C013      RJMP	0x0281
(0117) 			case WAIT	:Send_Str("waiting A");break;
    026E E50C      LDI	R16,0x5C
    026F E011      LDI	R17,1
    0270 D02D      RCALL	_Send_Str
    0271 C00F      RJMP	0x0281
(0118) 			case MOVEX	:Send_Str("movex A");break;
    0272 E504      LDI	R16,0x54
    0273 E011      LDI	R17,1
    0274 D029      RCALL	_Send_Str
    0275 C00B      RJMP	0x0281
(0119) 			case MOVEY	:Send_Str("movey A");break;
    0276 E40C      LDI	R16,0x4C
    0277 E011      LDI	R17,1
    0278 D025      RCALL	_Send_Str
    0279 C007      RJMP	0x0281
(0120) 			case MOVEXY :Send_Str("movexy A");break;
    027A E403      LDI	R16,0x43
    027B E011      LDI	R17,1
    027C D021      RCALL	_Send_Str
    027D C003      RJMP	0x0281
(0121) 			default:Send_Str("Inlegal Command!A");break;
    027E E301      LDI	R16,0x31
    027F E011      LDI	R17,1
    0280 D01D      RCALL	_Send_Str
(0122) 			}
(0123) 	 	}
    0281 940E031A  CALL	pop_gset2
    0283 9508      RET
_ReceivePro:
    0284 940E033F  CALL	push_lset
(0124) 	 }
(0125) 	 
(0126) #pragma interrupt_handler ReceivePro:19
(0127) void ReceivePro(void)	  //串口接受中断服务程序
(0128) 	{
(0129) 	buff[bcnt]=UDR0;
    0286 E88A      LDI	R24,0x8A
    0287 E091      LDI	R25,1
    0288 91E00100  LDS	R30,bcnt
    028A 27FF      CLR	R31
    028B 0FE8      ADD	R30,R24
    028C 1FF9      ADC	R31,R25
    028D B02C      IN	R2,0x0C
    028E 8220      STD	Z+0,R2
(0130) 	bcnt++;
    028F 91800100  LDS	R24,bcnt
    0291 5F8F      SUBI	R24,0xFF
    0292 93800100  STS	bcnt,R24
(0131) 	bcnt=bcnt%(BUFFLEN);
    0294 E218      LDI	R17,0x28
    0295 2F08      MOV	R16,R24
    0296 940E0302  CALL	mod8u
    0298 93000100  STS	bcnt,R16
(0132) 	
(0133) 	showbuff();
    029A DE11      RCALL	_showbuff
    029B 940E0356  CALL	pop_lset
    029D 9518      RETI
_Send_Str:
  str                  --> R20
    029E 940E0328  CALL	push_gset1
    02A0 01A8      MOVW	R20,R16
(0134) 	//putchar('['); putchar('H'); putchar(':');putchar(bhead/10+'0');putchar(bhead%10+'0');putchar(']');
(0135) 	//putchar('['); putchar('b'); putchar(':');putchar(bcnt/10+'0');putchar(bcnt%10+'0');putchar(']');
(0136) 	}
(0137) 
(0138) void Send_Str(uchar * str)		//串口发送程序
(0139) 	 {
    02A1 C006      RJMP	0x02A8
(0140) 	 while(*str!=EOS)
(0141) 	 	{
(0142) 		putchar(*(str++));
    02A2 01FA      MOVW	R30,R20
    02A3 9101      LD	R16,Z+
    02A4 01AF      MOVW	R20,R30
    02A5 2711      CLR	R17
    02A6 940E036D  CALL	_putchar
    02A8 01FA      MOVW	R30,R20
    02A9 8180      LDD	R24,Z+0
    02AA 3481      CPI	R24,0x41
    02AB F7B1      BNE	0x02A2
    02AC 940E032B  CALL	pop_gset1
    02AE 9508      RET
(0143) 		}
(0144) 	 }
(0145) void USART_Init(unsigned int baud)			  //串口初始化
(0146) 	 {
(0147) 	 UBRR0H=0;//(uchar) (baud>>8);
_USART_Init:
  baud                 --> R16
    02AF 2422      CLR	R2
    02B0 92200090  STS	0x90,R2
(0148) 	 UBRR0L=51;//(uchar) baud;
    02B2 E383      LDI	R24,0x33
    02B3 B989      OUT	0x09,R24
(0149) 	 
(0150) 	 UCSR0B=(1<<RXCIE0)|(1<<RXEN0)|(1<<TXEN0);
    02B4 E988      LDI	R24,0x98
    02B5 B98A      OUT	0x0A,R24
(0151) 	 UCSR0C=0x06;
    02B6 E086      LDI	R24,6
    02B7 93800095  STS	0x95,R24
    02B9 9508      RET
(0152) 	 }
(0153) 	 
(0154) void main()
(0155) 	 {
(0156) 	 DDRB=0XFF;
_main:
    02BA EF8F      LDI	R24,0xFF
    02BB BB87      OUT	0x17,R24
(0157) 	 PORTB=0X01;	 
    02BC E081      LDI	R24,1
    02BD BB88      OUT	0x18,R24
(0158) 	 
(0159) 	 USART_Init(0X06);
    02BE E006      LDI	R16,6
    02BF E010      LDI	R17,0
    02C0 DFEE      RCALL	_USART_Init
(0160) 	 _SEI();
    02C1 9478      BSET	7
(0161) 	 
(0162) 	 showbuff();
    02C2 DDE9      RCALL	_showbuff
    02C3 C002      RJMP	0x02C6
(0163) 	  
(0164) 	 //Send_Str("C=connect  W=wait  X=movex  Y=movey  P=movexy A");
(0165) 	 while(1) {
(0166) 	 		  Cmd_buffPro();
    02C4 DE13      RCALL	_Cmd_buffPro
(0167) 			  Cmd_pro();
FILE: <library>
    02C5 DF35      RCALL	_Cmd_pro
    02C6 CFFD      RJMP	0x02C4
    02C7 9508      RET
mod16s:
    02C8 9468      BSET	6
    02C9 92DA      ST	R13,-Y
    02CA 2ED1      MOV	R13,R17
    02CB C004      RJMP	0x02D0
div16s:
    02CC 94E8      BCLR	6
    02CD 92DA      ST	R13,-Y
    02CE 2ED1      MOV	R13,R17
    02CF 26D3      EOR	R13,R19
    02D0 FF17      SBRS	R17,7
    02D1 C004      RJMP	0x02D6
    02D2 9510      COM	R17
    02D3 9500      COM	R16
    02D4 5F0F      SUBI	R16,0xFF
    02D5 4F1F      SBCI	R17,0xFF
    02D6 FF37      SBRS	R19,7
    02D7 C004      RJMP	0x02DC
    02D8 9530      COM	R19
    02D9 9520      COM	R18
    02DA 5F2F      SUBI	R18,0xFF
    02DB 4F3F      SBCI	R19,0xFF
    02DC 940E02E9  CALL	xdiv16u
    02DE FED7      SBRS	R13,7
    02DF C004      RJMP	0x02E4
    02E0 9510      COM	R17
    02E1 9500      COM	R16
    02E2 5F0F      SUBI	R16,0xFF
    02E3 4F1F      SBCI	R17,0xFF
    02E4 90D9      LD	R13,Y+
    02E5 9508      RET
mod16u:
    02E6 9468      BSET	6
    02E7 C001      RJMP	xdiv16u
div16u:
    02E8 94E8      BCLR	6
xdiv16u:
    02E9 92EA      ST	R14,-Y
    02EA 92FA      ST	R15,-Y
    02EB 938A      ST	R24,-Y
    02EC 24EE      CLR	R14
    02ED 24FF      CLR	R15
    02EE E180      LDI	R24,0x10
    02EF 0F00      LSL	R16
    02F0 1F11      ROL	R17
    02F1 1CEE      ROL	R14
    02F2 1CFF      ROL	R15
    02F3 16E2      CP	R14,R18
    02F4 06F3      CPC	R15,R19
    02F5 F018      BCS	0x02F9
    02F6 1AE2      SUB	R14,R18
    02F7 0AF3      SBC	R15,R19
    02F8 9503      INC	R16
    02F9 958A      DEC	R24
    02FA F7A1      BNE	0x02EF
    02FB F416      BRTC	0x02FE
    02FC 2D0E      MOV	R16,R14
    02FD 2D1F      MOV	R17,R15
    02FE 9189      LD	R24,Y+
    02FF 90F9      LD	R15,Y+
    0300 90E9      LD	R14,Y+
    0301 9508      RET
mod8u:
    0302 9468      BSET	6
    0303 C001      RJMP	xdiv8u
div8u:
    0304 94E8      BCLR	6
xdiv8u:
    0305 932A      ST	R18,-Y
    0306 92FA      ST	R15,-Y
    0307 92EA      ST	R14,-Y
    0308 24FF      CLR	R15
    0309 24EE      CLR	R14
    030A E120      LDI	R18,0x10
    030B 0F00      LSL	R16
    030C 1CFF      ROL	R15
    030D 1CEE      ROL	R14
    030E 16E1      CP	R14,R17
    030F F010      BCS	0x0312
    0310 1AE1      SUB	R14,R17
    0311 9503      INC	R16
    0312 952A      DEC	R18
    0313 F7B9      BNE	0x030B
    0314 F40E      BRTC	0x0316
    0315 2D0E      MOV	R16,R14
    0316 90E9      LD	R14,Y+
    0317 90F9      LD	R15,Y+
    0318 9129      LD	R18,Y+
    0319 9508      RET
pop_gset2:
    031A E0E2      LDI	R30,2
    031B 940C032C  JMP	pop
pop_gset4:
    031D E0E8      LDI	R30,0x8
    031E 940C032C  JMP	pop
push_gset5:
    0320 92FA      ST	R15,-Y
    0321 92EA      ST	R14,-Y
push_gset4:
    0322 92DA      ST	R13,-Y
    0323 92CA      ST	R12,-Y
push_gset3:
    0324 92BA      ST	R11,-Y
    0325 92AA      ST	R10,-Y
push_gset2:
    0326 937A      ST	R23,-Y
    0327 936A      ST	R22,-Y
push_gset1:
    0328 935A      ST	R21,-Y
    0329 934A      ST	R20,-Y
    032A 9508      RET
pop_gset1:
    032B E0E1      LDI	R30,1
pop:
    032C 9149      LD	R20,Y+
    032D 9159      LD	R21,Y+
    032E FDE0      SBRC	R30,0
    032F 9508      RET
    0330 9169      LD	R22,Y+
    0331 9179      LD	R23,Y+
    0332 FDE1      SBRC	R30,1
    0333 9508      RET
    0334 90A9      LD	R10,Y+
    0335 90B9      LD	R11,Y+
    0336 FDE2      SBRC	R30,2
    0337 9508      RET
    0338 90C9      LD	R12,Y+
    0339 90D9      LD	R13,Y+
    033A FDE3      SBRC	R30,3
    033B 9508      RET
    033C 90E9      LD	R14,Y+
    033D 90F9      LD	R15,Y+
    033E 9508      RET
push_lset:
    033F 93FA      ST	R31,-Y
    0340 93EA      ST	R30,-Y
    0341 93BA      ST	R27,-Y
    0342 93AA      ST	R26,-Y
    0343 939A      ST	R25,-Y
    0344 938A      ST	R24,-Y
    0345 933A      ST	R19,-Y
    0346 932A      ST	R18,-Y
    0347 931A      ST	R17,-Y
    0348 930A      ST	R16,-Y
    0349 929A      ST	R9,-Y
    034A 928A      ST	R8,-Y
    034B 927A      ST	R7,-Y
    034C 926A      ST	R6,-Y
    034D 925A      ST	R5,-Y
    034E 924A      ST	R4,-Y
    034F 923A      ST	R3,-Y
    0350 922A      ST	R2,-Y
    0351 921A      ST	R1,-Y
    0352 920A      ST	R0,-Y
    0353 B60F      IN	R0,0x3F
    0354 920A      ST	R0,-Y
    0355 9508      RET
pop_lset:
    0356 9009      LD	R0,Y+
    0357 BE0F      OUT	0x3F,R0
    0358 9009      LD	R0,Y+
    0359 9019      LD	R1,Y+
    035A 9029      LD	R2,Y+
    035B 9039      LD	R3,Y+
    035C 9049      LD	R4,Y+
    035D 9059      LD	R5,Y+
    035E 9069      LD	R6,Y+
    035F 9079      LD	R7,Y+
    0360 9089      LD	R8,Y+
    0361 9099      LD	R9,Y+
    0362 9109      LD	R16,Y+
    0363 9119      LD	R17,Y+
    0364 9129      LD	R18,Y+
    0365 9139      LD	R19,Y+
    0366 9189      LD	R24,Y+
    0367 9199      LD	R25,Y+
    0368 91A9      LD	R26,Y+
    0369 91B9      LD	R27,Y+
    036A 91E9      LD	R30,Y+
    036B 91F9      LD	R31,Y+
    036C 9508      RET
_putchar:
    036D 940E0328  CALL	push_gset1
    036F 2F40      MOV	R20,R16
    0370 902001B2  LDS	R2,_textmode
    0372 903001B3  LDS	R3,_textmode+1
    0374 2022      TST	R2
    0375 F411      BNE	0x0378
    0376 2033      TST	R3
    0377 F021      BEQ	0x037C
    0378 304A      CPI	R20,0xA
    0379 F411      BNE	0x037C
    037A E00D      LDI	R16,0xD
    037B DFF1      RCALL	_putchar
    037C 9B5D      SBIS	0x0B,5
    037D CFFE      RJMP	0x037C
    037E B94C      OUT	0x0C,R20
    037F 2F04      MOV	R16,R20
    0380 2711      CLR	R17
    0381 940E032B  CALL	pop_gset1
    0383 9508      RET

⌨️ 快捷键说明

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