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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 4 页
字号:
4341  0226 cd0193        	call	_SPI_sendchar
4343                     ; 56 	SPI_sendchar(Lcd_data & 0xF0);
4345  0229 7b01          	ld	a,(OFST+1,sp)
4346  022b a4f0          	and	a,#240
4347  022d cd0193        	call	_SPI_sendchar
4349                     ; 57 	SPI_sendchar(Lcd_data << 4);
4351  0230 7b01          	ld	a,(OFST+1,sp)
4352  0232 97            	ld	xl,a
4353  0233 a610          	ld	a,#16
4354  0235 42            	mul	x,a
4355  0236 9f            	ld	a,xl
4356  0237 cd0193        	call	_SPI_sendchar
4358                     ; 58 	LCD_DELAY()
4361  023a 9d            nop
4366  023b 9d            nop
4371  023c 9d            nop
4376  023d 9d            nop
4381  023e 9d            nop
4383                     ; 59 	E_CLK
4385  023f 721b5014      	bres	_PE_ODR,#5
4386                     ; 60 	LCD_DELAY()
4389  0243 9d            nop
4394  0244 9d            nop
4399  0245 9d            nop
4404  0246 9d            nop
4409  0247 9d            nop
4411                     ; 61 }
4414  0248 84            	pop	a
4415  0249 81            	ret
4461                     ; 63 void refreshLCD(const u8 *lcd_stack)
4461                     ; 64 {
4462                     	switch	.text
4463  024a               _refreshLCD:
4465  024a 89            	pushw	x
4466  024b 88            	push	a
4467       00000001      OFST:	set	1
4470                     ; 66 	sendCodeST7920(0x02);	//地址归位
4472  024c a602          	ld	a,#2
4473  024e ad95          	call	_sendCodeST7920
4475                     ; 67 	for(addr=0;addr<16;addr++)
4477  0250 0f01          	clr	(OFST+0,sp)
4478  0252               L5252:
4479                     ; 69 		sendDataST7920(*(lcd_stack + addr));
4481  0252 7b02          	ld	a,(OFST+1,sp)
4482  0254 97            	ld	xl,a
4483  0255 7b03          	ld	a,(OFST+2,sp)
4484  0257 1b01          	add	a,(OFST+0,sp)
4485  0259 2401          	jrnc	L24
4486  025b 5c            	incw	x
4487  025c               L24:
4488  025c 02            	rlwa	x,a
4489  025d f6            	ld	a,(x)
4490  025e adb6          	call	_sendDataST7920
4492                     ; 67 	for(addr=0;addr<16;addr++)
4494  0260 0c01          	inc	(OFST+0,sp)
4497  0262 7b01          	ld	a,(OFST+0,sp)
4498  0264 a110          	cp	a,#16
4499  0266 25ea          	jrult	L5252
4500                     ; 71 	for(addr=32;addr<48;addr++)
4502  0268 a620          	ld	a,#32
4503  026a 6b01          	ld	(OFST+0,sp),a
4504  026c               L3352:
4505                     ; 73 		sendDataST7920(*(lcd_stack + addr));
4507  026c 7b02          	ld	a,(OFST+1,sp)
4508  026e 97            	ld	xl,a
4509  026f 7b03          	ld	a,(OFST+2,sp)
4510  0271 1b01          	add	a,(OFST+0,sp)
4511  0273 2401          	jrnc	L44
4512  0275 5c            	incw	x
4513  0276               L44:
4514  0276 02            	rlwa	x,a
4515  0277 f6            	ld	a,(x)
4516  0278 ad9c          	call	_sendDataST7920
4518                     ; 71 	for(addr=32;addr<48;addr++)
4520  027a 0c01          	inc	(OFST+0,sp)
4523  027c 7b01          	ld	a,(OFST+0,sp)
4524  027e a130          	cp	a,#48
4525  0280 25ea          	jrult	L3352
4526                     ; 75 	for(addr=16;addr<32;addr++)
4528  0282 a610          	ld	a,#16
4529  0284 6b01          	ld	(OFST+0,sp),a
4530  0286               L1452:
4531                     ; 77 		sendDataST7920(*(lcd_stack + addr));
4533  0286 7b02          	ld	a,(OFST+1,sp)
4534  0288 97            	ld	xl,a
4535  0289 7b03          	ld	a,(OFST+2,sp)
4536  028b 1b01          	add	a,(OFST+0,sp)
4537  028d 2401          	jrnc	L64
4538  028f 5c            	incw	x
4539  0290               L64:
4540  0290 02            	rlwa	x,a
4541  0291 f6            	ld	a,(x)
4542  0292 ad82          	call	_sendDataST7920
4544                     ; 75 	for(addr=16;addr<32;addr++)
4546  0294 0c01          	inc	(OFST+0,sp)
4549  0296 7b01          	ld	a,(OFST+0,sp)
4550  0298 a120          	cp	a,#32
4551  029a 25ea          	jrult	L1452
4552                     ; 80 	for(addr=48;addr<64;addr++)
4554  029c a630          	ld	a,#48
4555  029e 6b01          	ld	(OFST+0,sp),a
4556  02a0               L7452:
4557                     ; 82 		sendDataST7920(*(lcd_stack + addr));
4559  02a0 7b02          	ld	a,(OFST+1,sp)
4560  02a2 97            	ld	xl,a
4561  02a3 7b03          	ld	a,(OFST+2,sp)
4562  02a5 1b01          	add	a,(OFST+0,sp)
4563  02a7 2401          	jrnc	L05
4564  02a9 5c            	incw	x
4565  02aa               L05:
4566  02aa 02            	rlwa	x,a
4567  02ab f6            	ld	a,(x)
4568  02ac cd0216        	call	_sendDataST7920
4570                     ; 80 	for(addr=48;addr<64;addr++)
4572  02af 0c01          	inc	(OFST+0,sp)
4575  02b1 7b01          	ld	a,(OFST+0,sp)
4576  02b3 a140          	cp	a,#64
4577  02b5 25e9          	jrult	L7452
4578                     ; 84 }
4581  02b7 5b03          	addw	sp,#3
4582  02b9 81            	ret
4635                     ; 86 void decToAscii(u8* str,u16 dec,u8 width)
4635                     ; 87 {
4636                     	switch	.text
4637  02ba               _decToAscii:
4639  02ba 89            	pushw	x
4640       00000000      OFST:	set	0
4643  02bb ac5a035a      	jpf	L1262
4644  02bf               L7162:
4645                     ; 90 		switch(width)
4647  02bf 7b07          	ld	a,(OFST+7,sp)
4649                     ; 121 			default: *str = '0';
4650  02c1 4a            	dec	a
4651  02c2 2603cc034a    	jreq	L5652
4652  02c7 4a            	dec	a
4653  02c8 2764          	jreq	L3652
4654  02ca 4a            	dec	a
4655  02cb 2745          	jreq	L1652
4656  02cd 4a            	dec	a
4657  02ce 2726          	jreq	L7552
4658  02d0 4a            	dec	a
4659  02d1 2707          	jreq	L5552
4660  02d3               L7652:
4663  02d3 1e01          	ldw	x,(OFST+1,sp)
4664  02d5 a630          	ld	a,#48
4665  02d7 f7            	ld	(x),a
4666  02d8 2077          	jra	L7262
4667  02da               L5552:
4668                     ; 94 				*str = (dec / 10000 + '0');
4670  02da 1e05          	ldw	x,(OFST+5,sp)
4671  02dc 90ae2710      	ldw	y,#10000
4672  02e0 65            	divw	x,y
4673  02e1 1c0030        	addw	x,#48
4674  02e4 1601          	ldw	y,(OFST+1,sp)
4675  02e6 01            	rrwa	x,a
4676  02e7 90f7          	ld	(y),a
4677  02e9 02            	rlwa	x,a
4678                     ; 95 				dec %= 10000;
4680  02ea 1e05          	ldw	x,(OFST+5,sp)
4681  02ec 90ae2710      	ldw	y,#10000
4682  02f0 65            	divw	x,y
4683  02f1 51            	exgw	x,y
4684  02f2 1f05          	ldw	(OFST+5,sp),x
4685                     ; 96 				break;
4687  02f4 205b          	jra	L7262
4688  02f6               L7552:
4689                     ; 100 				*str = (dec / 1000 + '0');
4691  02f6 1e05          	ldw	x,(OFST+5,sp)
4692  02f8 90ae03e8      	ldw	y,#1000
4693  02fc 65            	divw	x,y
4694  02fd 1c0030        	addw	x,#48
4695  0300 1601          	ldw	y,(OFST+1,sp)
4696  0302 01            	rrwa	x,a
4697  0303 90f7          	ld	(y),a
4698  0305 02            	rlwa	x,a
4699                     ; 101 				dec %= 1000;
4701  0306 1e05          	ldw	x,(OFST+5,sp)
4702  0308 90ae03e8      	ldw	y,#1000
4703  030c 65            	divw	x,y
4704  030d 51            	exgw	x,y
4705  030e 1f05          	ldw	(OFST+5,sp),x
4706                     ; 102 				break;
4708  0310 203f          	jra	L7262
4709  0312               L1652:
4710                     ; 106 				*str = (dec/100+'0');
4712  0312 1e05          	ldw	x,(OFST+5,sp)
4713  0314 90ae0064      	ldw	y,#100
4714  0318 65            	divw	x,y
4715  0319 1c0030        	addw	x,#48
4716  031c 1601          	ldw	y,(OFST+1,sp)
4717  031e 01            	rrwa	x,a
4718  031f 90f7          	ld	(y),a
4719  0321 02            	rlwa	x,a
4720                     ; 107 				dec %= 100;
4722  0322 1e05          	ldw	x,(OFST+5,sp)
4723  0324 90ae0064      	ldw	y,#100
4724  0328 65            	divw	x,y
4725  0329 51            	exgw	x,y
4726  032a 1f05          	ldw	(OFST+5,sp),x
4727                     ; 108 				break;
4729  032c 2023          	jra	L7262
4730  032e               L3652:
4731                     ; 112 				*str = (dec/10+'0');
4733  032e 1e05          	ldw	x,(OFST+5,sp)
4734  0330 90ae000a      	ldw	y,#10
4735  0334 65            	divw	x,y
4736  0335 1c0030        	addw	x,#48
4737  0338 1601          	ldw	y,(OFST+1,sp)
4738  033a 01            	rrwa	x,a
4739  033b 90f7          	ld	(y),a
4740  033d 02            	rlwa	x,a
4741                     ; 113 				dec %= 10;
4743  033e 1e05          	ldw	x,(OFST+5,sp)
4744  0340 90ae000a      	ldw	y,#10
4745  0344 65            	divw	x,y
4746  0345 51            	exgw	x,y
4747  0346 1f05          	ldw	(OFST+5,sp),x
4748                     ; 114 				break;
4750  0348 2007          	jra	L7262
4751  034a               L5652:
4752                     ; 118 				*str = (dec+'0');
4754  034a 7b06          	ld	a,(OFST+6,sp)
4755  034c ab30          	add	a,#48
4756  034e 1e01          	ldw	x,(OFST+1,sp)
4757  0350 f7            	ld	(x),a
4758                     ; 119 				break;
4760  0351               L7262:
4761                     ; 123 		width--;
4763  0351 0a07          	dec	(OFST+7,sp)
4764                     ; 124 		str++;
4766  0353 1e01          	ldw	x,(OFST+1,sp)
4767  0355 1c0001        	addw	x,#1
4768  0358 1f01          	ldw	(OFST+1,sp),x
4769  035a               L1262:
4770                     ; 88 	while(width)
4772  035a 0d07          	tnz	(OFST+7,sp)
4773  035c 2703          	jreq	L65
4774  035e cc02bf        	jp	L7162
4775  0361               L65:
4776                     ; 126 }
4779  0361 85            	popw	x
4780  0362 81            	ret
4842                     ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4842                     ; 129 {
4843                     	switch	.text
4844  0363               _hexToAscii:
4846  0363 89            	pushw	x
4847  0364 89            	pushw	x
4848       00000002      OFST:	set	2
4851  0365 ac1f041f      	jpf	L7762
4852  0369               L5762:
4853                     ; 133 		switch(width)
4855  0369 7b09          	ld	a,(OFST+7,sp)
4857                     ; 163 			default: *str = '0';
4858  036b 4a            	dec	a
4859  036c 2603          	jrne	L46
4860  036e cc03f3        	jp	L7362
4861  0371               L46:
4862  0371 4a            	dec	a
4863  0372 2758          	jreq	L5362
4864  0374 4a            	dec	a
4865  0375 2730          	jreq	L3362
4866  0377 4a            	dec	a
4867  0378 2709          	jreq	L1362
4868  037a               L1462:
4871  037a 1e03          	ldw	x,(OFST+1,sp)
4872  037c a630          	ld	a,#48
4873  037e f7            	ld	(x),a
4874  037f ac160416      	jpf	L5072
4875  0383               L1362:
4876                     ; 137 				tmp = (hex >> 12);
4878  0383 1e07          	ldw	x,(OFST+5,sp)
4879  0385 01            	rrwa	x,a
4880  0386 4f            	clr	a
4881  0387 41            	exg	a,xl
4882  0388 4e            	swap	a
4883  0389 a40f          	and	a,#15
4884  038b 02            	rlwa	x,a
4885  038c 1f01          	ldw	(OFST-1,sp),x
4886                     ; 138 				if(tmp > 9) *str = tmp + ('A' - 10);
4888  038e 1e01          	ldw	x,(OFST-1,sp)
4889  0390 a3000a        	cpw	x,#10
4890  0393 2509          	jrult	L7072
4893  0395 7b02          	ld	a,(OFST+0,sp)
4894  0397 ab37          	add	a,#55
4895  0399 1e03          	ldw	x,(OFST+1,sp)
4896  039b f7            	ld	(x),a
4898  039c 2078          	jra	L5072
4899  039e               L7072:
4900                     ; 139 				else *str = tmp + '0';
4902  039e 7b02          	ld	a,(OFST+0,sp)
4903  03a0 ab30          	add	a,#48
4904  03a2 1e03          	ldw	x,(OFST+1,sp)
4905  03a4 f7            	ld	(x),a
4906  03a5 206f          	jra	L5072
4907  03a7               L3362:
4908                     ; 144 				tmp = (hex >> 8) & 0x000F;
4910  03a7 1e07          	ldw	x,(OFST+5,sp)
4911  03a9 4f            	clr	a
4912  03aa 01            	rrwa	x,a
4913  03ab 01            	rrwa	x,a
4914  03ac a40f          	and	a,#15
4915  03ae 5f            	clrw	x
4916  03af 02            	rlwa	x,a
4917  03b0 1f01          	ldw	(OFST-1,sp),x
4918  03b2 01            	rrwa	x,a
4919                     ; 145 				if(tmp > 9) *str = tmp + ('A' - 10);
4921  03b3 1e01          	ldw	x,(OFST-1,sp)
4922  03b5 a3000a        	cpw	x,#10
4923  03b8 2509          	jrult	L3172
4926  03ba 7b02          	ld	a,(OFST+0,sp)
4927  03bc ab37          	add	a,#55
4928  03be 1e03          	ldw	x,(OFST+1,sp)
4929  03c0 f7            	ld	(x),a
4931  03c1 2053          	jra	L5072
4932  03c3               L3172:
4933                     ; 146 				else *str = tmp + '0';
4935  03c3 7b02          	ld	a,(OFST+0,sp)
4936  03c5 ab30          	add	a,#48
4937  03c7 1e03          	ldw	x,(OFST+1,sp)
4938  03c9 f7            	ld	(x),a
4939  03ca 204a          	jra	L5072
4940  03cc               L5362:
4941                     ; 151 				tmp = (hex >> 4) & 0x000F;
4943  03cc 1e07          	ldw	x,(OFST+5,sp)
4944  03ce 54            	srlw	x
4945  03cf 54            	srlw	x
4946  03d0 54            	srlw	x
4947  03d1 54            	srlw	x
4948  03d2 01            	rrwa	x,a
4949  03d3 a40f          	and	a,#15
4950  03d5 5f            	clrw	x
4951  03d6 5f            	clrw	x
4952  03d7 97            	ld	xl,a
4953  03d8 1f01          	ldw	(OFST-1,sp),x
4954                     ; 152 				if(tmp > 9) *str = tmp + ('A' - 10);
4956  03da 1e01          	ldw	x,(OFST-1,sp)
4957  03dc a3000a        	cpw	x,#10
4958  03df 2509          	jrult	L7172
4961  03e1 7b02          	ld	a,(OFST+0,sp)
4962  03e3 ab37          	add	a,#55
4963  03e5 1e03          	ldw	x,(OFST+1,sp)
4964  03e7 f7            	ld	(x),a
4966  03e8 202c          	jra	L5072
4967  03ea               L7172:
4968                     ; 153 				else *str = tmp + '0';
4970  03ea 7b02          	ld	a,(OFST+0,sp)
4971  03ec ab30          	add	a,#48
4972  03ee 1e03          	ldw	x,(OFST+1,sp)
4973  03f0 f7            	ld	(x),a
4974  03f1 2023          	jra	L5072
4975  03f3               L7362:
4976                     ; 158 				tmp = hex & 0x000F;
4978  03f3 7b07          	ld	a,(OFST+5,sp)
4979  03f5 97            	ld	xl,a
4980  03f6 7b08          	ld	a,(OFST+6,sp)
4981  03f8 a40f          	and	a,#15

⌨️ 快捷键说明

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