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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 3 页
字号:
3902  01ab 721b5014      	bres	_PE_ODR,#5
3903                     ; 60 	LCD_DELAY()
3906  01af 9d            nop
3911  01b0 9d            nop
3916  01b1 9d            nop
3921  01b2 9d            nop
3926  01b3 9d            nop
3928                     ; 61 }
3931  01b4 84            	pop	a
3932  01b5 81            	ret
3978                     ; 63 void refreshLCD(const u8 *lcd_stack)
3978                     ; 64 {
3979                     	switch	.text
3980  01b6               _refreshLCD:
3982  01b6 89            	pushw	x
3983  01b7 88            	push	a
3984       00000001      OFST:	set	1
3987                     ; 66 	sendCodeST7920(0x02);	//地址归位
3989  01b8 a602          	ld	a,#2
3990  01ba ad95          	call	_sendCodeST7920
3992                     ; 67 	for(addr=0;addr<16;addr++)
3994  01bc 0f01          	clr	(OFST+0,sp)
3995  01be               L1242:
3996                     ; 69 		sendDataST7920(*(lcd_stack + addr));
3998  01be 7b02          	ld	a,(OFST+1,sp)
3999  01c0 97            	ld	xl,a
4000  01c1 7b03          	ld	a,(OFST+2,sp)
4001  01c3 1b01          	add	a,(OFST+0,sp)
4002  01c5 2401          	jrnc	L63
4003  01c7 5c            	incw	x
4004  01c8               L63:
4005  01c8 02            	rlwa	x,a
4006  01c9 f6            	ld	a,(x)
4007  01ca adb6          	call	_sendDataST7920
4009                     ; 67 	for(addr=0;addr<16;addr++)
4011  01cc 0c01          	inc	(OFST+0,sp)
4014  01ce 7b01          	ld	a,(OFST+0,sp)
4015  01d0 a110          	cp	a,#16
4016  01d2 25ea          	jrult	L1242
4017                     ; 71 	for(addr=32;addr<48;addr++)
4019  01d4 a620          	ld	a,#32
4020  01d6 6b01          	ld	(OFST+0,sp),a
4021  01d8               L7242:
4022                     ; 73 		sendDataST7920(*(lcd_stack + addr));
4024  01d8 7b02          	ld	a,(OFST+1,sp)
4025  01da 97            	ld	xl,a
4026  01db 7b03          	ld	a,(OFST+2,sp)
4027  01dd 1b01          	add	a,(OFST+0,sp)
4028  01df 2401          	jrnc	L04
4029  01e1 5c            	incw	x
4030  01e2               L04:
4031  01e2 02            	rlwa	x,a
4032  01e3 f6            	ld	a,(x)
4033  01e4 ad9c          	call	_sendDataST7920
4035                     ; 71 	for(addr=32;addr<48;addr++)
4037  01e6 0c01          	inc	(OFST+0,sp)
4040  01e8 7b01          	ld	a,(OFST+0,sp)
4041  01ea a130          	cp	a,#48
4042  01ec 25ea          	jrult	L7242
4043                     ; 75 	for(addr=16;addr<32;addr++)
4045  01ee a610          	ld	a,#16
4046  01f0 6b01          	ld	(OFST+0,sp),a
4047  01f2               L5342:
4048                     ; 77 		sendDataST7920(*(lcd_stack + addr));
4050  01f2 7b02          	ld	a,(OFST+1,sp)
4051  01f4 97            	ld	xl,a
4052  01f5 7b03          	ld	a,(OFST+2,sp)
4053  01f7 1b01          	add	a,(OFST+0,sp)
4054  01f9 2401          	jrnc	L24
4055  01fb 5c            	incw	x
4056  01fc               L24:
4057  01fc 02            	rlwa	x,a
4058  01fd f6            	ld	a,(x)
4059  01fe ad82          	call	_sendDataST7920
4061                     ; 75 	for(addr=16;addr<32;addr++)
4063  0200 0c01          	inc	(OFST+0,sp)
4066  0202 7b01          	ld	a,(OFST+0,sp)
4067  0204 a120          	cp	a,#32
4068  0206 25ea          	jrult	L5342
4069                     ; 80 	for(addr=48;addr<64;addr++)
4071  0208 a630          	ld	a,#48
4072  020a 6b01          	ld	(OFST+0,sp),a
4073  020c               L3442:
4074                     ; 82 		sendDataST7920(*(lcd_stack + addr));
4076  020c 7b02          	ld	a,(OFST+1,sp)
4077  020e 97            	ld	xl,a
4078  020f 7b03          	ld	a,(OFST+2,sp)
4079  0211 1b01          	add	a,(OFST+0,sp)
4080  0213 2401          	jrnc	L44
4081  0215 5c            	incw	x
4082  0216               L44:
4083  0216 02            	rlwa	x,a
4084  0217 f6            	ld	a,(x)
4085  0218 cd0182        	call	_sendDataST7920
4087                     ; 80 	for(addr=48;addr<64;addr++)
4089  021b 0c01          	inc	(OFST+0,sp)
4092  021d 7b01          	ld	a,(OFST+0,sp)
4093  021f a140          	cp	a,#64
4094  0221 25e9          	jrult	L3442
4095                     ; 84 }
4098  0223 5b03          	addw	sp,#3
4099  0225 81            	ret
4152                     ; 86 void decToAscii(u8* str,u16 dec,u8 width)
4152                     ; 87 {
4153                     	switch	.text
4154  0226               _decToAscii:
4156  0226 89            	pushw	x
4157       00000000      OFST:	set	0
4160  0227 acc602c6      	jpf	L5152
4161  022b               L3152:
4162                     ; 90 		switch(width)
4164  022b 7b07          	ld	a,(OFST+7,sp)
4166                     ; 121 			default: *str = '0';
4167  022d 4a            	dec	a
4168  022e 2603cc02b6    	jreq	L1642
4169  0233 4a            	dec	a
4170  0234 2764          	jreq	L7542
4171  0236 4a            	dec	a
4172  0237 2745          	jreq	L5542
4173  0239 4a            	dec	a
4174  023a 2726          	jreq	L3542
4175  023c 4a            	dec	a
4176  023d 2707          	jreq	L1542
4177  023f               L3642:
4180  023f 1e01          	ldw	x,(OFST+1,sp)
4181  0241 a630          	ld	a,#48
4182  0243 f7            	ld	(x),a
4183  0244 2077          	jra	L3252
4184  0246               L1542:
4185                     ; 94 				*str = (dec / 10000 + '0');
4187  0246 1e05          	ldw	x,(OFST+5,sp)
4188  0248 90ae2710      	ldw	y,#10000
4189  024c 65            	divw	x,y
4190  024d 1c0030        	addw	x,#48
4191  0250 1601          	ldw	y,(OFST+1,sp)
4192  0252 01            	rrwa	x,a
4193  0253 90f7          	ld	(y),a
4194  0255 02            	rlwa	x,a
4195                     ; 95 				dec %= 10000;
4197  0256 1e05          	ldw	x,(OFST+5,sp)
4198  0258 90ae2710      	ldw	y,#10000
4199  025c 65            	divw	x,y
4200  025d 51            	exgw	x,y
4201  025e 1f05          	ldw	(OFST+5,sp),x
4202                     ; 96 				break;
4204  0260 205b          	jra	L3252
4205  0262               L3542:
4206                     ; 100 				*str = (dec / 1000 + '0');
4208  0262 1e05          	ldw	x,(OFST+5,sp)
4209  0264 90ae03e8      	ldw	y,#1000
4210  0268 65            	divw	x,y
4211  0269 1c0030        	addw	x,#48
4212  026c 1601          	ldw	y,(OFST+1,sp)
4213  026e 01            	rrwa	x,a
4214  026f 90f7          	ld	(y),a
4215  0271 02            	rlwa	x,a
4216                     ; 101 				dec %= 1000;
4218  0272 1e05          	ldw	x,(OFST+5,sp)
4219  0274 90ae03e8      	ldw	y,#1000
4220  0278 65            	divw	x,y
4221  0279 51            	exgw	x,y
4222  027a 1f05          	ldw	(OFST+5,sp),x
4223                     ; 102 				break;
4225  027c 203f          	jra	L3252
4226  027e               L5542:
4227                     ; 106 				*str = (dec/100+'0');
4229  027e 1e05          	ldw	x,(OFST+5,sp)
4230  0280 90ae0064      	ldw	y,#100
4231  0284 65            	divw	x,y
4232  0285 1c0030        	addw	x,#48
4233  0288 1601          	ldw	y,(OFST+1,sp)
4234  028a 01            	rrwa	x,a
4235  028b 90f7          	ld	(y),a
4236  028d 02            	rlwa	x,a
4237                     ; 107 				dec %= 100;
4239  028e 1e05          	ldw	x,(OFST+5,sp)
4240  0290 90ae0064      	ldw	y,#100
4241  0294 65            	divw	x,y
4242  0295 51            	exgw	x,y
4243  0296 1f05          	ldw	(OFST+5,sp),x
4244                     ; 108 				break;
4246  0298 2023          	jra	L3252
4247  029a               L7542:
4248                     ; 112 				*str = (dec/10+'0');
4250  029a 1e05          	ldw	x,(OFST+5,sp)
4251  029c 90ae000a      	ldw	y,#10
4252  02a0 65            	divw	x,y
4253  02a1 1c0030        	addw	x,#48
4254  02a4 1601          	ldw	y,(OFST+1,sp)
4255  02a6 01            	rrwa	x,a
4256  02a7 90f7          	ld	(y),a
4257  02a9 02            	rlwa	x,a
4258                     ; 113 				dec %= 10;
4260  02aa 1e05          	ldw	x,(OFST+5,sp)
4261  02ac 90ae000a      	ldw	y,#10
4262  02b0 65            	divw	x,y
4263  02b1 51            	exgw	x,y
4264  02b2 1f05          	ldw	(OFST+5,sp),x
4265                     ; 114 				break;
4267  02b4 2007          	jra	L3252
4268  02b6               L1642:
4269                     ; 118 				*str = (dec+'0');
4271  02b6 7b06          	ld	a,(OFST+6,sp)
4272  02b8 ab30          	add	a,#48
4273  02ba 1e01          	ldw	x,(OFST+1,sp)
4274  02bc f7            	ld	(x),a
4275                     ; 119 				break;
4277  02bd               L3252:
4278                     ; 123 		width--;
4280  02bd 0a07          	dec	(OFST+7,sp)
4281                     ; 124 		str++;
4283  02bf 1e01          	ldw	x,(OFST+1,sp)
4284  02c1 1c0001        	addw	x,#1
4285  02c4 1f01          	ldw	(OFST+1,sp),x
4286  02c6               L5152:
4287                     ; 88 	while(width)
4289  02c6 0d07          	tnz	(OFST+7,sp)
4290  02c8 2703          	jreq	L25
4291  02ca cc022b        	jp	L3152
4292  02cd               L25:
4293                     ; 126 }
4296  02cd 85            	popw	x
4297  02ce 81            	ret
4359                     ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4359                     ; 129 {
4360                     	switch	.text
4361  02cf               _hexToAscii:
4363  02cf 89            	pushw	x
4364  02d0 89            	pushw	x
4365       00000002      OFST:	set	2
4368  02d1 ac8b038b      	jpf	L3752
4369  02d5               L1752:
4370                     ; 133 		switch(width)
4372  02d5 7b09          	ld	a,(OFST+7,sp)
4374                     ; 163 			default: *str = '0';
4375  02d7 4a            	dec	a
4376  02d8 2603          	jrne	L06
4377  02da cc035f        	jp	L3352
4378  02dd               L06:
4379  02dd 4a            	dec	a
4380  02de 2758          	jreq	L1352
4381  02e0 4a            	dec	a
4382  02e1 2730          	jreq	L7252
4383  02e3 4a            	dec	a
4384  02e4 2709          	jreq	L5252
4385  02e6               L5352:
4388  02e6 1e03          	ldw	x,(OFST+1,sp)
4389  02e8 a630          	ld	a,#48
4390  02ea f7            	ld	(x),a
4391  02eb ac820382      	jpf	L1062
4392  02ef               L5252:
4393                     ; 137 				tmp = (hex >> 12);
4395  02ef 1e07          	ldw	x,(OFST+5,sp)
4396  02f1 01            	rrwa	x,a
4397  02f2 4f            	clr	a
4398  02f3 41            	exg	a,xl
4399  02f4 4e            	swap	a
4400  02f5 a40f          	and	a,#15
4401  02f7 02            	rlwa	x,a
4402  02f8 1f01          	ldw	(OFST-1,sp),x
4403                     ; 138 				if(tmp > 9) *str = tmp + ('A' - 10);
4405  02fa 1e01          	ldw	x,(OFST-1,sp)
4406  02fc a3000a        	cpw	x,#10
4407  02ff 2509          	jrult	L3062
4410  0301 7b02          	ld	a,(OFST+0,sp)
4411  0303 ab37          	add	a,#55
4412  0305 1e03          	ldw	x,(OFST+1,sp)
4413  0307 f7            	ld	(x),a
4415  0308 2078          	jra	L1062
4416  030a               L3062:
4417                     ; 139 				else *str = tmp + '0';
4419  030a 7b02          	ld	a,(OFST+0,sp)
4420  030c ab30          	add	a,#48
4421  030e 1e03          	ldw	x,(OFST+1,sp)
4422  0310 f7            	ld	(x),a
4423  0311 206f          	jra	L1062
4424  0313               L7252:
4425                     ; 144 				tmp = (hex >> 8) & 0x000F;
4427  0313 1e07          	ldw	x,(OFST+5,sp)
4428  0315 4f            	clr	a
4429  0316 01            	rrwa	x,a
4430  0317 01            	rrwa	x,a
4431  0318 a40f          	and	a,#15
4432  031a 5f            	clrw	x
4433  031b 02            	rlwa	x,a
4434  031c 1f01          	ldw	(OFST-1,sp),x
4435  031e 01            	rrwa	x,a
4436                     ; 145 				if(tmp > 9) *str = tmp + ('A' - 10);
4438  031f 1e01          	ldw	x,(OFST-1,sp)
4439  0321 a3000a        	cpw	x,#10
4440  0324 2509          	jrult	L7062
4443  0326 7b02          	ld	a,(OFST+0,sp)
4444  0328 ab37          	add	a,#55
4445  032a 1e03          	ldw	x,(OFST+1,sp)
4446  032c f7            	ld	(x),a
4448  032d 2053          	jra	L1062
4449  032f               L7062:
4450                     ; 146 				else *str = tmp + '0';
4452  032f 7b02          	ld	a,(OFST+0,sp)
4453  0331 ab30          	add	a,#48
4454  0333 1e03          	ldw	x,(OFST+1,sp)
4455  0335 f7            	ld	(x),a
4456  0336 204a          	jra	L1062
4457  0338               L1352:
4458                     ; 151 				tmp = (hex >> 4) & 0x000F;
4460  0338 1e07          	ldw	x,(OFST+5,sp)
4461  033a 54            	srlw	x
4462  033b 54            	srlw	x
4463  033c 54            	srlw	x
4464  033d 54            	srlw	x
4465  033e 01            	rrwa	x,a
4466  033f a40f          	and	a,#15
4467  0341 5f            	clrw	x
4468  0342 5f            	clrw	x
4469  0343 97            	ld	xl,a
4470  0344 1f01          	ldw	(OFST-1,sp),x
4471                     ; 152 				if(tmp > 9) *str = tmp + ('A' - 10);
4473  0346 1e01          	ldw	x,(OFST-1,sp)
4474  0348 a3000a        	cpw	x,#10
4475  034b 2509          	jrult	L3162
4478  034d 7b02          	ld	a,(OFST+0,sp)
4479  034f ab37          	add	a,#55
4480  0351 1e03          	ldw	x,(OFST+1,sp)
4481  0353 f7            	ld	(x),a
4483  0354 202c          	jra	L1062
4484  0356               L3162:
4485                     ; 153 				else *str = tmp + '0';
4487  0356 7b02          	ld	a,(OFST+0,sp)
4488  0358 ab30          	add	a,#48
4489  035a 1e03          	ldw	x,(OFST+1,sp)
4490  035c f7            	ld	(x),a
4491  035d 2023          	jra	L1062
4492  035f               L3352:
4493                     ; 158 				tmp = hex & 0x000F;
4495  035f 7b07          	ld	a,(OFST+5,sp)
4496  0361 97            	ld	xl,a
4497  0362 7b08          	ld	a,(OFST+6,sp)
4498  0364 a40f          	and	a,#15
4499  0366 5f            	clrw	x
4500  0367 02            	rlwa	x,a
4501  0368 1f01          	ldw	(OFST-1,sp),x
4502  036a 01            	rrwa	x,a
4503                     ; 159 				if(tmp > 9) *str = tmp + ('A' - 10);
4505  036b 1e01          	ldw	x,(OFST-1,sp)
4506  036d a3000a        	cpw	x,#10
4507  0370 2509          	jrult	L7162
4510  0372 7b02          	ld	a,(OFST+0,sp)
4511  0374 ab37          	add	a,#55
4512  0376 1e03          	ldw	x,(OFST+1,sp)
4513  0378 f7            	ld	(x),a
4515  0379 2007          	jra	L1062
4516  037b               L7162:
4517                     ; 160 				else *str = tmp + '0';
4519  037b 7b02          	ld	a,(OFST+0,sp)
4520  037d ab30          	add	a,#48

⌨️ 快捷键说明

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