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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 3 页
字号:
3890  01a7 42            	mul	x,a
3891  01a8 9f            	ld	a,xl
3892  01a9 ad8d          	call	_SPI_sendchar
3894                     ; 45 	LCD_DELAY()
3897  01ab 9d            nop
3902  01ac 9d            nop
3907  01ad 9d            nop
3912  01ae 9d            nop
3917  01af 9d            nop
3919                     ; 46 	E_CLK
3921  01b0 721b5014      	bres	_PE_ODR,#5
3922                     ; 47 	LCD_DELAY()
3925  01b4 9d            nop
3930  01b5 9d            nop
3935  01b6 9d            nop
3940  01b7 9d            nop
3945  01b8 9d            nop
3947                     ; 48 }
3950  01b9 84            	pop	a
3951  01ba 81            	ret
3988                     ; 50 void sendDataST7920(u8 Lcd_data)
3988                     ; 51 {
3989                     	switch	.text
3990  01bb               _sendDataST7920:
3992  01bb 88            	push	a
3993       00000000      OFST:	set	0
3996                     ; 52 	E_CLK
3998  01bc 721b5014      	bres	_PE_ODR,#5
3999                     ; 53 	LCD_DELAY()
4002  01c0 9d            nop
4007  01c1 9d            nop
4012  01c2 9d            nop
4017  01c3 9d            nop
4022  01c4 9d            nop
4024                     ; 54 	E_SET
4026  01c5 721a5014      	bset	_PE_ODR,#5
4027                     ; 55 	SPI_sendchar(0xFA);
4029  01c9 a6fa          	ld	a,#250
4030  01cb cd0138        	call	_SPI_sendchar
4032                     ; 56 	SPI_sendchar(Lcd_data & 0xF0);
4034  01ce 7b01          	ld	a,(OFST+1,sp)
4035  01d0 a4f0          	and	a,#240
4036  01d2 cd0138        	call	_SPI_sendchar
4038                     ; 57 	SPI_sendchar(Lcd_data << 4);
4040  01d5 7b01          	ld	a,(OFST+1,sp)
4041  01d7 97            	ld	xl,a
4042  01d8 a610          	ld	a,#16
4043  01da 42            	mul	x,a
4044  01db 9f            	ld	a,xl
4045  01dc cd0138        	call	_SPI_sendchar
4047                     ; 58 	LCD_DELAY()
4050  01df 9d            nop
4055  01e0 9d            nop
4060  01e1 9d            nop
4065  01e2 9d            nop
4070  01e3 9d            nop
4072                     ; 59 	E_CLK
4074  01e4 721b5014      	bres	_PE_ODR,#5
4075                     ; 60 	LCD_DELAY()
4078  01e8 9d            nop
4083  01e9 9d            nop
4088  01ea 9d            nop
4093  01eb 9d            nop
4098  01ec 9d            nop
4100                     ; 61 }
4103  01ed 84            	pop	a
4104  01ee 81            	ret
4150                     ; 63 void refreshLCD(const u8 *lcd_stack)
4150                     ; 64 {
4151                     	switch	.text
4152  01ef               _refreshLCD:
4154  01ef 89            	pushw	x
4155  01f0 88            	push	a
4156       00000001      OFST:	set	1
4159                     ; 66 	sendCodeST7920(0x02);	//地址归位
4161  01f1 a602          	ld	a,#2
4162  01f3 ad95          	call	_sendCodeST7920
4164                     ; 67 	for(addr=0;addr<16;addr++)
4166  01f5 0f01          	clr	(OFST+0,sp)
4167  01f7               L5052:
4168                     ; 69 		sendDataST7920(*(lcd_stack + addr));
4170  01f7 7b02          	ld	a,(OFST+1,sp)
4171  01f9 97            	ld	xl,a
4172  01fa 7b03          	ld	a,(OFST+2,sp)
4173  01fc 1b01          	add	a,(OFST+0,sp)
4174  01fe 2401          	jrnc	L24
4175  0200 5c            	incw	x
4176  0201               L24:
4177  0201 02            	rlwa	x,a
4178  0202 f6            	ld	a,(x)
4179  0203 adb6          	call	_sendDataST7920
4181                     ; 67 	for(addr=0;addr<16;addr++)
4183  0205 0c01          	inc	(OFST+0,sp)
4186  0207 7b01          	ld	a,(OFST+0,sp)
4187  0209 a110          	cp	a,#16
4188  020b 25ea          	jrult	L5052
4189                     ; 71 	for(addr=32;addr<48;addr++)
4191  020d a620          	ld	a,#32
4192  020f 6b01          	ld	(OFST+0,sp),a
4193  0211               L3152:
4194                     ; 73 		sendDataST7920(*(lcd_stack + addr));
4196  0211 7b02          	ld	a,(OFST+1,sp)
4197  0213 97            	ld	xl,a
4198  0214 7b03          	ld	a,(OFST+2,sp)
4199  0216 1b01          	add	a,(OFST+0,sp)
4200  0218 2401          	jrnc	L44
4201  021a 5c            	incw	x
4202  021b               L44:
4203  021b 02            	rlwa	x,a
4204  021c f6            	ld	a,(x)
4205  021d ad9c          	call	_sendDataST7920
4207                     ; 71 	for(addr=32;addr<48;addr++)
4209  021f 0c01          	inc	(OFST+0,sp)
4212  0221 7b01          	ld	a,(OFST+0,sp)
4213  0223 a130          	cp	a,#48
4214  0225 25ea          	jrult	L3152
4215                     ; 75 	for(addr=16;addr<32;addr++)
4217  0227 a610          	ld	a,#16
4218  0229 6b01          	ld	(OFST+0,sp),a
4219  022b               L1252:
4220                     ; 77 		sendDataST7920(*(lcd_stack + addr));
4222  022b 7b02          	ld	a,(OFST+1,sp)
4223  022d 97            	ld	xl,a
4224  022e 7b03          	ld	a,(OFST+2,sp)
4225  0230 1b01          	add	a,(OFST+0,sp)
4226  0232 2401          	jrnc	L64
4227  0234 5c            	incw	x
4228  0235               L64:
4229  0235 02            	rlwa	x,a
4230  0236 f6            	ld	a,(x)
4231  0237 ad82          	call	_sendDataST7920
4233                     ; 75 	for(addr=16;addr<32;addr++)
4235  0239 0c01          	inc	(OFST+0,sp)
4238  023b 7b01          	ld	a,(OFST+0,sp)
4239  023d a120          	cp	a,#32
4240  023f 25ea          	jrult	L1252
4241                     ; 80 	for(addr=48;addr<64;addr++)
4243  0241 a630          	ld	a,#48
4244  0243 6b01          	ld	(OFST+0,sp),a
4245  0245               L7252:
4246                     ; 82 		sendDataST7920(*(lcd_stack + addr));
4248  0245 7b02          	ld	a,(OFST+1,sp)
4249  0247 97            	ld	xl,a
4250  0248 7b03          	ld	a,(OFST+2,sp)
4251  024a 1b01          	add	a,(OFST+0,sp)
4252  024c 2401          	jrnc	L05
4253  024e 5c            	incw	x
4254  024f               L05:
4255  024f 02            	rlwa	x,a
4256  0250 f6            	ld	a,(x)
4257  0251 cd01bb        	call	_sendDataST7920
4259                     ; 80 	for(addr=48;addr<64;addr++)
4261  0254 0c01          	inc	(OFST+0,sp)
4264  0256 7b01          	ld	a,(OFST+0,sp)
4265  0258 a140          	cp	a,#64
4266  025a 25e9          	jrult	L7252
4267                     ; 84 }
4270  025c 5b03          	addw	sp,#3
4271  025e 81            	ret
4324                     ; 86 void decToAscii(u8* str,u16 dec,u8 width)
4324                     ; 87 {
4325                     	switch	.text
4326  025f               _decToAscii:
4328  025f 89            	pushw	x
4329       00000000      OFST:	set	0
4332  0260 acff02ff      	jpf	L1062
4333  0264               L7752:
4334                     ; 90 		switch(width)
4336  0264 7b07          	ld	a,(OFST+7,sp)
4338                     ; 121 			default: *str = '0';
4339  0266 4a            	dec	a
4340  0267 2603cc02ef    	jreq	L5452
4341  026c 4a            	dec	a
4342  026d 2764          	jreq	L3452
4343  026f 4a            	dec	a
4344  0270 2745          	jreq	L1452
4345  0272 4a            	dec	a
4346  0273 2726          	jreq	L7352
4347  0275 4a            	dec	a
4348  0276 2707          	jreq	L5352
4349  0278               L7452:
4352  0278 1e01          	ldw	x,(OFST+1,sp)
4353  027a a630          	ld	a,#48
4354  027c f7            	ld	(x),a
4355  027d 2077          	jra	L7062
4356  027f               L5352:
4357                     ; 94 				*str = (dec / 10000 + '0');
4359  027f 1e05          	ldw	x,(OFST+5,sp)
4360  0281 90ae2710      	ldw	y,#10000
4361  0285 65            	divw	x,y
4362  0286 1c0030        	addw	x,#48
4363  0289 1601          	ldw	y,(OFST+1,sp)
4364  028b 01            	rrwa	x,a
4365  028c 90f7          	ld	(y),a
4366  028e 02            	rlwa	x,a
4367                     ; 95 				dec %= 10000;
4369  028f 1e05          	ldw	x,(OFST+5,sp)
4370  0291 90ae2710      	ldw	y,#10000
4371  0295 65            	divw	x,y
4372  0296 51            	exgw	x,y
4373  0297 1f05          	ldw	(OFST+5,sp),x
4374                     ; 96 				break;
4376  0299 205b          	jra	L7062
4377  029b               L7352:
4378                     ; 100 				*str = (dec / 1000 + '0');
4380  029b 1e05          	ldw	x,(OFST+5,sp)
4381  029d 90ae03e8      	ldw	y,#1000
4382  02a1 65            	divw	x,y
4383  02a2 1c0030        	addw	x,#48
4384  02a5 1601          	ldw	y,(OFST+1,sp)
4385  02a7 01            	rrwa	x,a
4386  02a8 90f7          	ld	(y),a
4387  02aa 02            	rlwa	x,a
4388                     ; 101 				dec %= 1000;
4390  02ab 1e05          	ldw	x,(OFST+5,sp)
4391  02ad 90ae03e8      	ldw	y,#1000
4392  02b1 65            	divw	x,y
4393  02b2 51            	exgw	x,y
4394  02b3 1f05          	ldw	(OFST+5,sp),x
4395                     ; 102 				break;
4397  02b5 203f          	jra	L7062
4398  02b7               L1452:
4399                     ; 106 				*str = (dec/100+'0');
4401  02b7 1e05          	ldw	x,(OFST+5,sp)
4402  02b9 90ae0064      	ldw	y,#100
4403  02bd 65            	divw	x,y
4404  02be 1c0030        	addw	x,#48
4405  02c1 1601          	ldw	y,(OFST+1,sp)
4406  02c3 01            	rrwa	x,a
4407  02c4 90f7          	ld	(y),a
4408  02c6 02            	rlwa	x,a
4409                     ; 107 				dec %= 100;
4411  02c7 1e05          	ldw	x,(OFST+5,sp)
4412  02c9 90ae0064      	ldw	y,#100
4413  02cd 65            	divw	x,y
4414  02ce 51            	exgw	x,y
4415  02cf 1f05          	ldw	(OFST+5,sp),x
4416                     ; 108 				break;
4418  02d1 2023          	jra	L7062
4419  02d3               L3452:
4420                     ; 112 				*str = (dec/10+'0');
4422  02d3 1e05          	ldw	x,(OFST+5,sp)
4423  02d5 90ae000a      	ldw	y,#10
4424  02d9 65            	divw	x,y
4425  02da 1c0030        	addw	x,#48
4426  02dd 1601          	ldw	y,(OFST+1,sp)
4427  02df 01            	rrwa	x,a
4428  02e0 90f7          	ld	(y),a
4429  02e2 02            	rlwa	x,a
4430                     ; 113 				dec %= 10;
4432  02e3 1e05          	ldw	x,(OFST+5,sp)
4433  02e5 90ae000a      	ldw	y,#10
4434  02e9 65            	divw	x,y
4435  02ea 51            	exgw	x,y
4436  02eb 1f05          	ldw	(OFST+5,sp),x
4437                     ; 114 				break;
4439  02ed 2007          	jra	L7062
4440  02ef               L5452:
4441                     ; 118 				*str = (dec+'0');
4443  02ef 7b06          	ld	a,(OFST+6,sp)
4444  02f1 ab30          	add	a,#48
4445  02f3 1e01          	ldw	x,(OFST+1,sp)
4446  02f5 f7            	ld	(x),a
4447                     ; 119 				break;
4449  02f6               L7062:
4450                     ; 123 		width--;
4452  02f6 0a07          	dec	(OFST+7,sp)
4453                     ; 124 		str++;
4455  02f8 1e01          	ldw	x,(OFST+1,sp)
4456  02fa 1c0001        	addw	x,#1
4457  02fd 1f01          	ldw	(OFST+1,sp),x
4458  02ff               L1062:
4459                     ; 88 	while(width)
4461  02ff 0d07          	tnz	(OFST+7,sp)
4462  0301 2703          	jreq	L65
4463  0303 cc0264        	jp	L7752
4464  0306               L65:
4465                     ; 126 }
4468  0306 85            	popw	x
4469  0307 81            	ret
4531                     ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4531                     ; 129 {
4532                     	switch	.text
4533  0308               _hexToAscii:
4535  0308 89            	pushw	x
4536  0309 89            	pushw	x
4537       00000002      OFST:	set	2
4540  030a acc403c4      	jpf	L7562
4541  030e               L5562:
4542                     ; 133 		switch(width)
4544  030e 7b09          	ld	a,(OFST+7,sp)
4546                     ; 163 			default: *str = '0';
4547  0310 4a            	dec	a
4548  0311 2603          	jrne	L46
4549  0313 cc0398        	jp	L7162
4550  0316               L46:
4551  0316 4a            	dec	a
4552  0317 2758          	jreq	L5162
4553  0319 4a            	dec	a
4554  031a 2730          	jreq	L3162
4555  031c 4a            	dec	a
4556  031d 2709          	jreq	L1162
4557  031f               L1262:
4560  031f 1e03          	ldw	x,(OFST+1,sp)
4561  0321 a630          	ld	a,#48
4562  0323 f7            	ld	(x),a
4563  0324 acbb03bb      	jpf	L5662
4564  0328               L1162:
4565                     ; 137 				tmp = (hex >> 12);
4567  0328 1e07          	ldw	x,(OFST+5,sp)
4568  032a 01            	rrwa	x,a
4569  032b 4f            	clr	a
4570  032c 41            	exg	a,xl
4571  032d 4e            	swap	a
4572  032e a40f          	and	a,#15
4573  0330 02            	rlwa	x,a
4574  0331 1f01          	ldw	(OFST-1,sp),x
4575                     ; 138 				if(tmp > 9) *str = tmp + ('A' - 10);
4577  0333 1e01          	ldw	x,(OFST-1,sp)
4578  0335 a3000a        	cpw	x,#10
4579  0338 2509          	jrult	L7662
4582  033a 7b02          	ld	a,(OFST+0,sp)
4583  033c ab37          	add	a,#55
4584  033e 1e03          	ldw	x,(OFST+1,sp)
4585  0340 f7            	ld	(x),a
4587  0341 2078          	jra	L5662
4588  0343               L7662:
4589                     ; 139 				else *str = tmp + '0';
4591  0343 7b02          	ld	a,(OFST+0,sp)
4592  0345 ab30          	add	a,#48
4593  0347 1e03          	ldw	x,(OFST+1,sp)
4594  0349 f7            	ld	(x),a
4595  034a 206f          	jra	L5662
4596  034c               L3162:
4597                     ; 144 				tmp = (hex >> 8) & 0x000F;
4599  034c 1e07          	ldw	x,(OFST+5,sp)
4600  034e 4f            	clr	a
4601  034f 01            	rrwa	x,a
4602  0350 01            	rrwa	x,a
4603  0351 a40f          	and	a,#15
4604  0353 5f            	clrw	x
4605  0354 02            	rlwa	x,a
4606  0355 1f01          	ldw	(OFST-1,sp),x
4607  0357 01            	rrwa	x,a
4608                     ; 145 				if(tmp > 9) *str = tmp + ('A' - 10);
4610  0358 1e01          	ldw	x,(OFST-1,sp)
4611  035a a3000a        	cpw	x,#10
4612  035d 2509          	jrult	L3762
4615  035f 7b02          	ld	a,(OFST+0,sp)
4616  0361 ab37          	add	a,#55
4617  0363 1e03          	ldw	x,(OFST+1,sp)
4618  0365 f7            	ld	(x),a
4620  0366 2053          	jra	L5662
4621  0368               L3762:
4622                     ; 146 				else *str = tmp + '0';
4624  0368 7b02          	ld	a,(OFST+0,sp)
4625  036a ab30          	add	a,#48
4626  036c 1e03          	ldw	x,(OFST+1,sp)
4627  036e f7            	ld	(x),a
4628  036f 204a          	jra	L5662
4629  0371               L5162:
4630                     ; 151 				tmp = (hex >> 4) & 0x000F;
4632  0371 1e07          	ldw	x,(OFST+5,sp)
4633  0373 54            	srlw	x
4634  0374 54            	srlw	x
4635  0375 54            	srlw	x
4636  0376 54            	srlw	x
4637  0377 01            	rrwa	x,a
4638  0378 a40f          	and	a,#15
4639  037a 5f            	clrw	x
4640  037b 5f            	clrw	x

⌨️ 快捷键说明

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