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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 3 页
字号:
3933  01a0 02            	rlwa	x,a
3934  01a1 f6            	ld	a,(x)
3935  01a2 adb6          	call	_sendDataST7920
3937                     ; 67 	for(addr=0;addr<16;addr++)
3939  01a4 0c01          	inc	(OFST+0,sp)
3942  01a6 7b01          	ld	a,(OFST+0,sp)
3943  01a8 a110          	cp	a,#16
3944  01aa 25ea          	jrult	L1632
3945                     ; 71 	for(addr=32;addr<48;addr++)
3947  01ac a620          	ld	a,#32
3948  01ae 6b01          	ld	(OFST+0,sp),a
3949  01b0               L7632:
3950                     ; 73 		sendDataST7920(*(lcd_stack + addr));
3952  01b0 7b02          	ld	a,(OFST+1,sp)
3953  01b2 97            	ld	xl,a
3954  01b3 7b03          	ld	a,(OFST+2,sp)
3955  01b5 1b01          	add	a,(OFST+0,sp)
3956  01b7 2401          	jrnc	L63
3957  01b9 5c            	incw	x
3958  01ba               L63:
3959  01ba 02            	rlwa	x,a
3960  01bb f6            	ld	a,(x)
3961  01bc ad9c          	call	_sendDataST7920
3963                     ; 71 	for(addr=32;addr<48;addr++)
3965  01be 0c01          	inc	(OFST+0,sp)
3968  01c0 7b01          	ld	a,(OFST+0,sp)
3969  01c2 a130          	cp	a,#48
3970  01c4 25ea          	jrult	L7632
3971                     ; 75 	for(addr=16;addr<32;addr++)
3973  01c6 a610          	ld	a,#16
3974  01c8 6b01          	ld	(OFST+0,sp),a
3975  01ca               L5732:
3976                     ; 77 		sendDataST7920(*(lcd_stack + addr));
3978  01ca 7b02          	ld	a,(OFST+1,sp)
3979  01cc 97            	ld	xl,a
3980  01cd 7b03          	ld	a,(OFST+2,sp)
3981  01cf 1b01          	add	a,(OFST+0,sp)
3982  01d1 2401          	jrnc	L04
3983  01d3 5c            	incw	x
3984  01d4               L04:
3985  01d4 02            	rlwa	x,a
3986  01d5 f6            	ld	a,(x)
3987  01d6 ad82          	call	_sendDataST7920
3989                     ; 75 	for(addr=16;addr<32;addr++)
3991  01d8 0c01          	inc	(OFST+0,sp)
3994  01da 7b01          	ld	a,(OFST+0,sp)
3995  01dc a120          	cp	a,#32
3996  01de 25ea          	jrult	L5732
3997                     ; 80 	for(addr=48;addr<64;addr++)
3999  01e0 a630          	ld	a,#48
4000  01e2 6b01          	ld	(OFST+0,sp),a
4001  01e4               L3042:
4002                     ; 82 		sendDataST7920(*(lcd_stack + addr));
4004  01e4 7b02          	ld	a,(OFST+1,sp)
4005  01e6 97            	ld	xl,a
4006  01e7 7b03          	ld	a,(OFST+2,sp)
4007  01e9 1b01          	add	a,(OFST+0,sp)
4008  01eb 2401          	jrnc	L24
4009  01ed 5c            	incw	x
4010  01ee               L24:
4011  01ee 02            	rlwa	x,a
4012  01ef f6            	ld	a,(x)
4013  01f0 cd015a        	call	_sendDataST7920
4015                     ; 80 	for(addr=48;addr<64;addr++)
4017  01f3 0c01          	inc	(OFST+0,sp)
4020  01f5 7b01          	ld	a,(OFST+0,sp)
4021  01f7 a140          	cp	a,#64
4022  01f9 25e9          	jrult	L3042
4023                     ; 84 }
4026  01fb 5b03          	addw	sp,#3
4027  01fd 81            	ret
4080                     ; 86 void decToAscii(u8* str,u16 dec,u8 width)
4080                     ; 87 {
4081                     	switch	.text
4082  01fe               _decToAscii:
4084  01fe 89            	pushw	x
4085       00000000      OFST:	set	0
4088  01ff ac9e029e      	jpf	L5542
4089  0203               L3542:
4090                     ; 90 		switch(width)
4092  0203 7b07          	ld	a,(OFST+7,sp)
4094                     ; 121 			default: *str = '0';
4095  0205 4a            	dec	a
4096  0206 2603cc028e    	jreq	L1242
4097  020b 4a            	dec	a
4098  020c 2764          	jreq	L7142
4099  020e 4a            	dec	a
4100  020f 2745          	jreq	L5142
4101  0211 4a            	dec	a
4102  0212 2726          	jreq	L3142
4103  0214 4a            	dec	a
4104  0215 2707          	jreq	L1142
4105  0217               L3242:
4108  0217 1e01          	ldw	x,(OFST+1,sp)
4109  0219 a630          	ld	a,#48
4110  021b f7            	ld	(x),a
4111  021c 2077          	jra	L3642
4112  021e               L1142:
4113                     ; 94 				*str = (dec / 10000 + '0');
4115  021e 1e05          	ldw	x,(OFST+5,sp)
4116  0220 90ae2710      	ldw	y,#10000
4117  0224 65            	divw	x,y
4118  0225 1c0030        	addw	x,#48
4119  0228 1601          	ldw	y,(OFST+1,sp)
4120  022a 01            	rrwa	x,a
4121  022b 90f7          	ld	(y),a
4122  022d 02            	rlwa	x,a
4123                     ; 95 				dec %= 10000;
4125  022e 1e05          	ldw	x,(OFST+5,sp)
4126  0230 90ae2710      	ldw	y,#10000
4127  0234 65            	divw	x,y
4128  0235 51            	exgw	x,y
4129  0236 1f05          	ldw	(OFST+5,sp),x
4130                     ; 96 				break;
4132  0238 205b          	jra	L3642
4133  023a               L3142:
4134                     ; 100 				*str = (dec / 1000 + '0');
4136  023a 1e05          	ldw	x,(OFST+5,sp)
4137  023c 90ae03e8      	ldw	y,#1000
4138  0240 65            	divw	x,y
4139  0241 1c0030        	addw	x,#48
4140  0244 1601          	ldw	y,(OFST+1,sp)
4141  0246 01            	rrwa	x,a
4142  0247 90f7          	ld	(y),a
4143  0249 02            	rlwa	x,a
4144                     ; 101 				dec %= 1000;
4146  024a 1e05          	ldw	x,(OFST+5,sp)
4147  024c 90ae03e8      	ldw	y,#1000
4148  0250 65            	divw	x,y
4149  0251 51            	exgw	x,y
4150  0252 1f05          	ldw	(OFST+5,sp),x
4151                     ; 102 				break;
4153  0254 203f          	jra	L3642
4154  0256               L5142:
4155                     ; 106 				*str = (dec/100+'0');
4157  0256 1e05          	ldw	x,(OFST+5,sp)
4158  0258 90ae0064      	ldw	y,#100
4159  025c 65            	divw	x,y
4160  025d 1c0030        	addw	x,#48
4161  0260 1601          	ldw	y,(OFST+1,sp)
4162  0262 01            	rrwa	x,a
4163  0263 90f7          	ld	(y),a
4164  0265 02            	rlwa	x,a
4165                     ; 107 				dec %= 100;
4167  0266 1e05          	ldw	x,(OFST+5,sp)
4168  0268 90ae0064      	ldw	y,#100
4169  026c 65            	divw	x,y
4170  026d 51            	exgw	x,y
4171  026e 1f05          	ldw	(OFST+5,sp),x
4172                     ; 108 				break;
4174  0270 2023          	jra	L3642
4175  0272               L7142:
4176                     ; 112 				*str = (dec/10+'0');
4178  0272 1e05          	ldw	x,(OFST+5,sp)
4179  0274 90ae000a      	ldw	y,#10
4180  0278 65            	divw	x,y
4181  0279 1c0030        	addw	x,#48
4182  027c 1601          	ldw	y,(OFST+1,sp)
4183  027e 01            	rrwa	x,a
4184  027f 90f7          	ld	(y),a
4185  0281 02            	rlwa	x,a
4186                     ; 113 				dec %= 10;
4188  0282 1e05          	ldw	x,(OFST+5,sp)
4189  0284 90ae000a      	ldw	y,#10
4190  0288 65            	divw	x,y
4191  0289 51            	exgw	x,y
4192  028a 1f05          	ldw	(OFST+5,sp),x
4193                     ; 114 				break;
4195  028c 2007          	jra	L3642
4196  028e               L1242:
4197                     ; 118 				*str = (dec+'0');
4199  028e 7b06          	ld	a,(OFST+6,sp)
4200  0290 ab30          	add	a,#48
4201  0292 1e01          	ldw	x,(OFST+1,sp)
4202  0294 f7            	ld	(x),a
4203                     ; 119 				break;
4205  0295               L3642:
4206                     ; 123 		width--;
4208  0295 0a07          	dec	(OFST+7,sp)
4209                     ; 124 		str++;
4211  0297 1e01          	ldw	x,(OFST+1,sp)
4212  0299 1c0001        	addw	x,#1
4213  029c 1f01          	ldw	(OFST+1,sp),x
4214  029e               L5542:
4215                     ; 88 	while(width)
4217  029e 0d07          	tnz	(OFST+7,sp)
4218  02a0 2703          	jreq	L05
4219  02a2 cc0203        	jp	L3542
4220  02a5               L05:
4221                     ; 126 }
4224  02a5 85            	popw	x
4225  02a6 81            	ret
4287                     ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4287                     ; 129 {
4288                     	switch	.text
4289  02a7               _hexToAscii:
4291  02a7 89            	pushw	x
4292  02a8 89            	pushw	x
4293       00000002      OFST:	set	2
4296  02a9 ac630363      	jpf	L3352
4297  02ad               L1352:
4298                     ; 133 		switch(width)
4300  02ad 7b09          	ld	a,(OFST+7,sp)
4302                     ; 163 			default: *str = '0';
4303  02af 4a            	dec	a
4304  02b0 2603          	jrne	L65
4305  02b2 cc0337        	jp	L3742
4306  02b5               L65:
4307  02b5 4a            	dec	a
4308  02b6 2758          	jreq	L1742
4309  02b8 4a            	dec	a
4310  02b9 2730          	jreq	L7642
4311  02bb 4a            	dec	a
4312  02bc 2709          	jreq	L5642
4313  02be               L5742:
4316  02be 1e03          	ldw	x,(OFST+1,sp)
4317  02c0 a630          	ld	a,#48
4318  02c2 f7            	ld	(x),a
4319  02c3 ac5a035a      	jpf	L1452
4320  02c7               L5642:
4321                     ; 137 				tmp = (hex >> 12);
4323  02c7 1e07          	ldw	x,(OFST+5,sp)
4324  02c9 01            	rrwa	x,a
4325  02ca 4f            	clr	a
4326  02cb 41            	exg	a,xl
4327  02cc 4e            	swap	a
4328  02cd a40f          	and	a,#15
4329  02cf 02            	rlwa	x,a
4330  02d0 1f01          	ldw	(OFST-1,sp),x
4331                     ; 138 				if(tmp > 9) *str = tmp + ('A' - 10);
4333  02d2 1e01          	ldw	x,(OFST-1,sp)
4334  02d4 a3000a        	cpw	x,#10
4335  02d7 2509          	jrult	L3452
4338  02d9 7b02          	ld	a,(OFST+0,sp)
4339  02db ab37          	add	a,#55
4340  02dd 1e03          	ldw	x,(OFST+1,sp)
4341  02df f7            	ld	(x),a
4343  02e0 2078          	jra	L1452
4344  02e2               L3452:
4345                     ; 139 				else *str = tmp + '0';
4347  02e2 7b02          	ld	a,(OFST+0,sp)
4348  02e4 ab30          	add	a,#48
4349  02e6 1e03          	ldw	x,(OFST+1,sp)
4350  02e8 f7            	ld	(x),a
4351  02e9 206f          	jra	L1452
4352  02eb               L7642:
4353                     ; 144 				tmp = (hex >> 8) & 0x000F;
4355  02eb 1e07          	ldw	x,(OFST+5,sp)
4356  02ed 4f            	clr	a
4357  02ee 01            	rrwa	x,a
4358  02ef 01            	rrwa	x,a
4359  02f0 a40f          	and	a,#15
4360  02f2 5f            	clrw	x
4361  02f3 02            	rlwa	x,a
4362  02f4 1f01          	ldw	(OFST-1,sp),x
4363  02f6 01            	rrwa	x,a
4364                     ; 145 				if(tmp > 9) *str = tmp + ('A' - 10);
4366  02f7 1e01          	ldw	x,(OFST-1,sp)
4367  02f9 a3000a        	cpw	x,#10
4368  02fc 2509          	jrult	L7452
4371  02fe 7b02          	ld	a,(OFST+0,sp)
4372  0300 ab37          	add	a,#55
4373  0302 1e03          	ldw	x,(OFST+1,sp)
4374  0304 f7            	ld	(x),a
4376  0305 2053          	jra	L1452
4377  0307               L7452:
4378                     ; 146 				else *str = tmp + '0';
4380  0307 7b02          	ld	a,(OFST+0,sp)
4381  0309 ab30          	add	a,#48
4382  030b 1e03          	ldw	x,(OFST+1,sp)
4383  030d f7            	ld	(x),a
4384  030e 204a          	jra	L1452
4385  0310               L1742:
4386                     ; 151 				tmp = (hex >> 4) & 0x000F;
4388  0310 1e07          	ldw	x,(OFST+5,sp)
4389  0312 54            	srlw	x
4390  0313 54            	srlw	x
4391  0314 54            	srlw	x
4392  0315 54            	srlw	x
4393  0316 01            	rrwa	x,a
4394  0317 a40f          	and	a,#15
4395  0319 5f            	clrw	x
4396  031a 5f            	clrw	x
4397  031b 97            	ld	xl,a
4398  031c 1f01          	ldw	(OFST-1,sp),x
4399                     ; 152 				if(tmp > 9) *str = tmp + ('A' - 10);
4401  031e 1e01          	ldw	x,(OFST-1,sp)
4402  0320 a3000a        	cpw	x,#10
4403  0323 2509          	jrult	L3552
4406  0325 7b02          	ld	a,(OFST+0,sp)
4407  0327 ab37          	add	a,#55
4408  0329 1e03          	ldw	x,(OFST+1,sp)
4409  032b f7            	ld	(x),a
4411  032c 202c          	jra	L1452
4412  032e               L3552:
4413                     ; 153 				else *str = tmp + '0';
4415  032e 7b02          	ld	a,(OFST+0,sp)
4416  0330 ab30          	add	a,#48
4417  0332 1e03          	ldw	x,(OFST+1,sp)
4418  0334 f7            	ld	(x),a
4419  0335 2023          	jra	L1452
4420  0337               L3742:
4421                     ; 158 				tmp = hex & 0x000F;
4423  0337 7b07          	ld	a,(OFST+5,sp)
4424  0339 97            	ld	xl,a
4425  033a 7b08          	ld	a,(OFST+6,sp)
4426  033c a40f          	and	a,#15
4427  033e 5f            	clrw	x
4428  033f 02            	rlwa	x,a
4429  0340 1f01          	ldw	(OFST-1,sp),x
4430  0342 01            	rrwa	x,a
4431                     ; 159 				if(tmp > 9) *str = tmp + ('A' - 10);
4433  0343 1e01          	ldw	x,(OFST-1,sp)
4434  0345 a3000a        	cpw	x,#10
4435  0348 2509          	jrult	L7552
4438  034a 7b02          	ld	a,(OFST+0,sp)
4439  034c ab37          	add	a,#55
4440  034e 1e03          	ldw	x,(OFST+1,sp)
4441  0350 f7            	ld	(x),a
4443  0351 2007          	jra	L1452
4444  0353               L7552:
4445                     ; 160 				else *str = tmp + '0';
4447  0353 7b02          	ld	a,(OFST+0,sp)
4448  0355 ab30          	add	a,#48
4449  0357 1e03          	ldw	x,(OFST+1,sp)
4450  0359 f7            	ld	(x),a
4451  035a               L1452:
4452                     ; 165 		width--;
4454  035a 0a09          	dec	(OFST+7,sp)
4455                     ; 166 		str++;
4457  035c 1e03          	ldw	x,(OFST+1,sp)
4458  035e 1c0001        	addw	x,#1
4459  0361 1f03          	ldw	(OFST+1,sp),x
4460  0363               L3352:
4461                     ; 131 	while(width)
4463  0363 0d09          	tnz	(OFST+7,sp)
4464  0365 2703          	jreq	L06
4465  0367 cc02ad        	jp	L1352
4466  036a               L06:
4467                     ; 168 }
4470  036a 5b04          	addw	sp,#4
4471  036c 81            	ret
4564                     ; 170 void showLine(const u8 x,const u8 y,u8* lcd_stack,char * str,...)
4564                     ; 171 {
4565                     	switch	.text
4566  036d               _showLine:
4568  036d 89            	pushw	x
4569  036e 5204          	subw	sp,#4
4570       00000004      OFST:	set	4
4573                     ; 172 	u8 coordinate = 16 * y + x;
4575  0370 9f            	ld	a,xl
4576  0371 97            	ld	xl,a
4577  0372 a610          	ld	a,#16
4578  0374 42            	mul	x,a
4579  0375 9f            	ld	a,xl
4580  0376 1b05          	add	a,(OFST+1,sp)
4581  0378 6b04          	ld	(OFST+0,sp),a
4582                     ; 175 	va_start(marker,str); // Initialize variable arguments.  
4584  037a 96            	ldw	x,sp
4585  037b 1c000d        	addw	x,#OFST+9
4586  037e 1f02          	ldw	(OFST-2,sp),x
4587                     ; 176 	for(i=0;i<64;i++)
4589  0380 0f01          	clr	(OFST-3,sp)
4590  0382               L1362:
4593  0382 0c01          	inc	(OFST-3,sp)
4596  0384 7b01          	ld	a,(OFST-3,sp)
4597  0386 a140          	cp	a,#64
4598  0388 25f8          	jrult	L1362

⌨️ 快捷键说明

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