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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 3 页
字号:
4351  033a 2401          	jrnc	L65
4352  033c 5c            	incw	x
4353  033d               L65:
4354  033d 02            	rlwa	x,a
4355  033e 160b          	ldw	y,(OFST+7,sp)
4356  0340 90f6          	ld	a,(y)
4357  0342 f7            	ld	(x),a
4359  0343 ac1d041d      	jpf	L7652
4360  0347               L5652:
4361                     ; 189 		else if(*str == '%')
4363  0347 1e0b          	ldw	x,(OFST+7,sp)
4364  0349 f6            	ld	a,(x)
4365  034a a125          	cp	a,#37
4366  034c 2703          	jreq	L07
4367  034e cc040d        	jp	L1752
4368  0351               L07:
4369                     ; 191 			str++;
4371  0351 1e0b          	ldw	x,(OFST+7,sp)
4372  0353 1c0001        	addw	x,#1
4373  0356 1f0b          	ldw	(OFST+7,sp),x
4374                     ; 192 			if (*str == 'd' || *str == 'D')
4376  0358 1e0b          	ldw	x,(OFST+7,sp)
4377  035a f6            	ld	a,(x)
4378  035b a164          	cp	a,#100
4379  035d 2707          	jreq	L5752
4381  035f 1e0b          	ldw	x,(OFST+7,sp)
4382  0361 f6            	ld	a,(x)
4383  0362 a144          	cp	a,#68
4384  0364 2637          	jrne	L3752
4385  0366               L5752:
4386                     ; 194 				str++;
4388  0366 1e0b          	ldw	x,(OFST+7,sp)
4389  0368 1c0001        	addw	x,#1
4390  036b 1f0b          	ldw	(OFST+7,sp),x
4391                     ; 195 				decToAscii(&lcd_stack[coordinate],va_arg(marker,u16),(*str-'0'));
4393  036d 1e0b          	ldw	x,(OFST+7,sp)
4394  036f f6            	ld	a,(x)
4395  0370 a030          	sub	a,#48
4396  0372 88            	push	a
4397  0373 1e03          	ldw	x,(OFST-1,sp)
4398  0375 1c0002        	addw	x,#2
4399  0378 1f03          	ldw	(OFST-1,sp),x
4400  037a 1e03          	ldw	x,(OFST-1,sp)
4401  037c 5a            	decw	x
4402  037d 5a            	decw	x
4403  037e fe            	ldw	x,(x)
4404  037f 89            	pushw	x
4405  0380 7b0c          	ld	a,(OFST+8,sp)
4406  0382 97            	ld	xl,a
4407  0383 7b0d          	ld	a,(OFST+9,sp)
4408  0385 1b07          	add	a,(OFST+3,sp)
4409  0387 2401          	jrnc	L06
4410  0389 5c            	incw	x
4411  038a               L06:
4412  038a 02            	rlwa	x,a
4413  038b cd018c        	call	_decToAscii
4415  038e 5b03          	addw	sp,#3
4416                     ; 196 				coordinate += (*str-'0'-1);
4418  0390 1e0b          	ldw	x,(OFST+7,sp)
4419  0392 f6            	ld	a,(x)
4420  0393 a031          	sub	a,#49
4421  0395 1b04          	add	a,(OFST+0,sp)
4422  0397 6b04          	ld	(OFST+0,sp),a
4424  0399 ac1d041d      	jpf	L7652
4425  039d               L3752:
4426                     ; 198 			else if(*str == 'c' || *str == 'C')
4428  039d 1e0b          	ldw	x,(OFST+7,sp)
4429  039f f6            	ld	a,(x)
4430  03a0 a163          	cp	a,#99
4431  03a2 2707          	jreq	L3062
4433  03a4 1e0b          	ldw	x,(OFST+7,sp)
4434  03a6 f6            	ld	a,(x)
4435  03a7 a143          	cp	a,#67
4436  03a9 261f          	jrne	L1062
4437  03ab               L3062:
4438                     ; 200 				lcd_stack[coordinate] = va_arg(marker,u16);
4440  03ab 7b09          	ld	a,(OFST+5,sp)
4441  03ad 97            	ld	xl,a
4442  03ae 7b0a          	ld	a,(OFST+6,sp)
4443  03b0 1b04          	add	a,(OFST+0,sp)
4444  03b2 2401          	jrnc	L26
4445  03b4 5c            	incw	x
4446  03b5               L26:
4447  03b5 02            	rlwa	x,a
4448  03b6 1602          	ldw	y,(OFST-2,sp)
4449  03b8 72a90002      	addw	y,#2
4450  03bc 1702          	ldw	(OFST-2,sp),y
4451  03be 1602          	ldw	y,(OFST-2,sp)
4452  03c0 905a          	decw	y
4453  03c2 905a          	decw	y
4454  03c4 90e601        	ld	a,(1,y)
4455  03c7 f7            	ld	(x),a
4457  03c8 2053          	jra	L7652
4458  03ca               L1062:
4459                     ; 202 			else if(*str == 'x' || *str == 'X')
4461  03ca 1e0b          	ldw	x,(OFST+7,sp)
4462  03cc f6            	ld	a,(x)
4463  03cd a178          	cp	a,#120
4464  03cf 2707          	jreq	L1162
4466  03d1 1e0b          	ldw	x,(OFST+7,sp)
4467  03d3 f6            	ld	a,(x)
4468  03d4 a158          	cp	a,#88
4469  03d6 2645          	jrne	L7652
4470  03d8               L1162:
4471                     ; 204 				str++;
4473  03d8 1e0b          	ldw	x,(OFST+7,sp)
4474  03da 1c0001        	addw	x,#1
4475  03dd 1f0b          	ldw	(OFST+7,sp),x
4476                     ; 205 				hexToAscii(&lcd_stack[coordinate],va_arg(marker,u16),(*str - '0'));
4478  03df 1e0b          	ldw	x,(OFST+7,sp)
4479  03e1 f6            	ld	a,(x)
4480  03e2 a030          	sub	a,#48
4481  03e4 88            	push	a
4482  03e5 1e03          	ldw	x,(OFST-1,sp)
4483  03e7 1c0002        	addw	x,#2
4484  03ea 1f03          	ldw	(OFST-1,sp),x
4485  03ec 1e03          	ldw	x,(OFST-1,sp)
4486  03ee 5a            	decw	x
4487  03ef 5a            	decw	x
4488  03f0 fe            	ldw	x,(x)
4489  03f1 89            	pushw	x
4490  03f2 7b0c          	ld	a,(OFST+8,sp)
4491  03f4 97            	ld	xl,a
4492  03f5 7b0d          	ld	a,(OFST+9,sp)
4493  03f7 1b07          	add	a,(OFST+3,sp)
4494  03f9 2401          	jrnc	L46
4495  03fb 5c            	incw	x
4496  03fc               L46:
4497  03fc 02            	rlwa	x,a
4498  03fd cd0235        	call	_hexToAscii
4500  0400 5b03          	addw	sp,#3
4501                     ; 206 				coordinate += (*str - '0' - 1);
4503  0402 1e0b          	ldw	x,(OFST+7,sp)
4504  0404 f6            	ld	a,(x)
4505  0405 a031          	sub	a,#49
4506  0407 1b04          	add	a,(OFST+0,sp)
4507  0409 6b04          	ld	(OFST+0,sp),a
4508  040b 2010          	jra	L7652
4509  040d               L1752:
4510                     ; 212 			lcd_stack[coordinate] = *str;
4512  040d 7b09          	ld	a,(OFST+5,sp)
4513  040f 97            	ld	xl,a
4514  0410 7b0a          	ld	a,(OFST+6,sp)
4515  0412 1b04          	add	a,(OFST+0,sp)
4516  0414 2401          	jrnc	L66
4517  0416 5c            	incw	x
4518  0417               L66:
4519  0417 02            	rlwa	x,a
4520  0418 160b          	ldw	y,(OFST+7,sp)
4521  041a 90f6          	ld	a,(y)
4522  041c f7            	ld	(x),a
4523  041d               L7652:
4524                     ; 214 		str++;
4526  041d 1e0b          	ldw	x,(OFST+7,sp)
4527  041f 1c0001        	addw	x,#1
4528  0422 1f0b          	ldw	(OFST+7,sp),x
4529                     ; 215 		coordinate++;
4531  0424 0c04          	inc	(OFST+0,sp)
4532  0426               L7552:
4533                     ; 180 	while(*str != '\0')
4535  0426 1e0b          	ldw	x,(OFST+7,sp)
4536  0428 7d            	tnz	(x)
4537  0429 2703          	jreq	L27
4538  042b cc031c        	jp	L5552
4539  042e               L27:
4540  042e ac220322      	jpf	L1652
4614                     ; 20 void Init_UART2(void)
4614                     ; 21 {
4615                     	switch	.text
4616  0432               _Init_UART2:
4620                     ; 22 		UART2_CR1=0x00;
4622  0432 725f5244      	clr	_UART2_CR1
4623                     ; 23 		UART2_CR2=0x00;
4625  0436 725f5245      	clr	_UART2_CR2
4626                     ; 24 		UART2_CR3=0x00;
4628  043a 725f5246      	clr	_UART2_CR3
4629                     ; 35 		UART2_BRR2=0x00;
4631  043e 725f5243      	clr	_UART2_BRR2
4632                     ; 36 		UART2_BRR1=0x0d;
4634  0442 350d5242      	mov	_UART2_BRR1,#13
4635                     ; 38 		UART2_CR2=0x2c;//允许接收,发送,开接收中断
4637  0446 352c5245      	mov	_UART2_CR2,#44
4638                     ; 40 }
4641  044a 81            	ret
4677                     ; 42 void UART2_sendchar(u8 data)
4677                     ; 43 {
4678                     	switch	.text
4679  044b               _UART2_sendchar:
4681  044b 88            	push	a
4682       00000000      OFST:	set	0
4685  044c               L7662:
4686                     ; 44 		while((UART2_SR & 0x80)==0x00);
4688  044c c65240        	ld	a,_UART2_SR
4689  044f a580          	bcp	a,#128
4690  0451 27f9          	jreq	L7662
4691                     ; 45 		UART2_DR=data;
4693  0453 7b01          	ld	a,(OFST+1,sp)
4694  0455 c75241        	ld	_UART2_DR,a
4695                     ; 46 }
4698  0458 84            	pop	a
4699  0459 81            	ret
4737                     ; 48 @far @interrupt void UART2_Recv_IRQHandler (void)
4737                     ; 49 {
4739                     	switch	.text
4740  045a               f_UART2_Recv_IRQHandler:
4742       00000001      OFST:	set	1
4743  045a 3b0002        	push	c_x+2
4744  045d be00          	ldw	x,c_x
4745  045f 89            	pushw	x
4746  0460 3b0002        	push	c_y+2
4747  0463 be00          	ldw	x,c_y
4748  0465 89            	pushw	x
4749  0466 88            	push	a
4752                     ; 51 	data=UART2_DR;
4754  0467 c65241        	ld	a,_UART2_DR
4755  046a 6b01          	ld	(OFST+0,sp),a
4756                     ; 52 	showLine(6,2,lcd_buffer,"0x%x2",(u16)data);
4758  046c 7b01          	ld	a,(OFST+0,sp)
4759  046e 5f            	clrw	x
4760  046f 97            	ld	xl,a
4761  0470 89            	pushw	x
4762  0471 ae0025        	ldw	x,#L1172
4763  0474 89            	pushw	x
4764  0475 ae0000        	ldw	x,#_lcd_buffer
4765  0478 89            	pushw	x
4766  0479 ae0002        	ldw	x,#2
4767  047c a606          	ld	a,#6
4768  047e 95            	ld	xh,a
4769  047f cd02fb        	call	_showLine
4771  0482 5b06          	addw	sp,#6
4772                     ; 53 	return;
4775  0484 84            	pop	a
4776  0485 85            	popw	x
4777  0486 bf00          	ldw	c_y,x
4778  0488 320002        	pop	c_y+2
4779  048b 85            	popw	x
4780  048c bf00          	ldw	c_x,x
4781  048e 320002        	pop	c_x+2
4782  0491 80            	iret
4840                     ; 20 main()
4840                     ; 21 {
4842                     	switch	.text
4843  0492               _main:
4845  0492 88            	push	a
4846       00000001      OFST:	set	1
4849                     ; 22 	u8 tmp=0;
4851  0493 0f01          	clr	(OFST+0,sp)
4852                     ; 23 	Init_UART2();
4854  0495 ad9b          	call	_Init_UART2
4856                     ; 24 	_asm("rim");
4859  0497 9a            rim
4861                     ; 25 	st7920LcdInit(); /*LCD初始化*/
4863  0498 cd0082        	call	_st7920LcdInit
4865                     ; 26 	showLine(0,0,lcd_buffer,"MAX3232 Example");
4867  049b ae0015        	ldw	x,#L7372
4868  049e 89            	pushw	x
4869  049f ae0000        	ldw	x,#_lcd_buffer
4870  04a2 89            	pushw	x
4871  04a3 5f            	clrw	x
4872  04a4 4f            	clr	a
4873  04a5 95            	ld	xh,a
4874  04a6 cd02fb        	call	_showLine
4876  04a9 5b04          	addw	sp,#4
4877                     ; 27 	showLine(0,1,lcd_buffer,"USART TX<->RX");
4879  04ab ae0007        	ldw	x,#L1472
4880  04ae 89            	pushw	x
4881  04af ae0000        	ldw	x,#_lcd_buffer
4882  04b2 89            	pushw	x
4883  04b3 ae0001        	ldw	x,#1
4884  04b6 4f            	clr	a
4885  04b7 95            	ld	xh,a
4886  04b8 cd02fb        	call	_showLine
4888  04bb 5b04          	addw	sp,#4
4889                     ; 28 	showLine(0,2,lcd_buffer,"Data:");
4891  04bd ae0000        	ldw	x,#L3472
4892  04c0 89            	pushw	x
4893  04c1 ae0000        	ldw	x,#_lcd_buffer
4894  04c4 89            	pushw	x
4895  04c5 ae0002        	ldw	x,#2
4896  04c8 4f            	clr	a
4897  04c9 95            	ld	xh,a
4898  04ca cd02fb        	call	_showLine
4900  04cd 5b04          	addw	sp,#4
4901                     ; 29 	refreshLCD(lcd_buffer); /*刷新LCD*/
4903  04cf ae0000        	ldw	x,#_lcd_buffer
4904  04d2 cd011c        	call	_refreshLCD
4906  04d5               L5472:
4907                     ; 32 		UART2_sendchar(tmp);
4909  04d5 7b01          	ld	a,(OFST+0,sp)
4910  04d7 cd044b        	call	_UART2_sendchar
4912                     ; 33 		delay_ms(10);
4914  04da ae000a        	ldw	x,#10
4915  04dd cd0000        	call	_delay_ms
4917                     ; 35 		refreshLCD(lcd_buffer); /*刷新LCD*/
4919  04e0 ae0000        	ldw	x,#_lcd_buffer
4920  04e3 cd011c        	call	_refreshLCD
4922                     ; 36 		tmp++;
4924  04e6 0c01          	inc	(OFST+0,sp)
4925                     ; 37 		delay_ms(1000);
4927  04e8 ae03e8        	ldw	x,#1000
4928  04eb cd0000        	call	_delay_ms
4931  04ee 20e5          	jra	L5472
4944                     	xdef	_main
4945                     	xdef	f_UART2_Recv_IRQHandler
4946                     	xdef	_UART2_sendchar
4947                     	xdef	_Init_UART2
4948                     	xdef	_SPI_rechar
4949                     	xdef	_SPI_sendchar
4950                     	xdef	_SPI_Init
4951                     	switch	.ubsct
4952  0000               _lcd_buffer:
4953  0000 000000000000  	ds.b	64
4954                     	xdef	_lcd_buffer
4955                     	xdef	_showLine
4956                     	xdef	_hexToAscii
4957                     	xdef	_decToAscii
4958                     	xdef	_refreshLCD
4959                     	xdef	_st7920LcdInit
4960                     	xdef	_sendDataST7920
4961                     	xdef	_sendCodeST7920
4962                     	xdef	_delay_us
4963                     	xdef	_delay_ms
4964                     .const:	section	.text
4965  0000               L3472:
4966  0000 44617461a3    	dc.b	"Data",163
4967  0005 ba00          	dc.b	186,0
4968  0007               L1472:
4969  0007 555341525420  	dc.b	"USART TX<->RX",0
4970  0015               L7372:
4971  0015 4d4158333233  	dc.b	"MAX3232 Example",0
4972  0025               L1172:
4973  0025 307825783200  	dc.b	"0x%x2",0
4974                     	xref.b	c_x
4975                     	xref.b	c_y
4995                     	end

⌨️ 快捷键说明

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