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

📄 main.ls

📁 STM8全部资料
💻 LS
📖 第 1 页 / 共 3 页
字号:
3987  0199 9d            nop
3992  019a 9d            nop
3997  019b 9d            nop
3999                     ; 48 }
4002  019c 84            	pop	a
4003  019d 81            	ret
4040                     ; 50 void sendDataST7920(u8 Lcd_data)
4040                     ; 51 {
4041                     	switch	.text
4042  019e               _sendDataST7920:
4044  019e 88            	push	a
4045       00000000      OFST:	set	0
4048                     ; 52 	E_CLK
4050  019f 721b5014      	bres	_PE_ODR,#5
4051                     ; 53 	LCD_DELAY()
4054  01a3 9d            nop
4059  01a4 9d            nop
4064  01a5 9d            nop
4069  01a6 9d            nop
4074  01a7 9d            nop
4076                     ; 54 	E_SET
4078  01a8 721a5014      	bset	_PE_ODR,#5
4079                     ; 55 	SPI_sendchar(0xFA);
4081  01ac a6fa          	ld	a,#250
4082  01ae cd011b        	call	_SPI_sendchar
4084                     ; 56 	SPI_sendchar(Lcd_data & 0xF0);
4086  01b1 7b01          	ld	a,(OFST+1,sp)
4087  01b3 a4f0          	and	a,#240
4088  01b5 cd011b        	call	_SPI_sendchar
4090                     ; 57 	SPI_sendchar(Lcd_data << 4);
4092  01b8 7b01          	ld	a,(OFST+1,sp)
4093  01ba 97            	ld	xl,a
4094  01bb a610          	ld	a,#16
4095  01bd 42            	mul	x,a
4096  01be 9f            	ld	a,xl
4097  01bf cd011b        	call	_SPI_sendchar
4099                     ; 58 	LCD_DELAY()
4102  01c2 9d            nop
4107  01c3 9d            nop
4112  01c4 9d            nop
4117  01c5 9d            nop
4122  01c6 9d            nop
4124                     ; 59 	E_CLK
4126  01c7 721b5014      	bres	_PE_ODR,#5
4127                     ; 60 	LCD_DELAY()
4130  01cb 9d            nop
4135  01cc 9d            nop
4140  01cd 9d            nop
4145  01ce 9d            nop
4150  01cf 9d            nop
4152                     ; 61 }
4155  01d0 84            	pop	a
4156  01d1 81            	ret
4202                     ; 63 void refreshLCD(const u8 *lcd_stack)
4202                     ; 64 {
4203                     	switch	.text
4204  01d2               _refreshLCD:
4206  01d2 89            	pushw	x
4207  01d3 88            	push	a
4208       00000001      OFST:	set	1
4211                     ; 66 	sendCodeST7920(0x02);	//地址归位
4213  01d4 a602          	ld	a,#2
4214  01d6 ad95          	call	_sendCodeST7920
4216                     ; 67 	for(addr=0;addr<16;addr++)
4218  01d8 0f01          	clr	(OFST+0,sp)
4219  01da               L3552:
4220                     ; 69 		sendDataST7920(*(lcd_stack + addr));
4222  01da 7b02          	ld	a,(OFST+1,sp)
4223  01dc 97            	ld	xl,a
4224  01dd 7b03          	ld	a,(OFST+2,sp)
4225  01df 1b01          	add	a,(OFST+0,sp)
4226  01e1 2401          	jrnc	L64
4227  01e3 5c            	incw	x
4228  01e4               L64:
4229  01e4 02            	rlwa	x,a
4230  01e5 f6            	ld	a,(x)
4231  01e6 adb6          	call	_sendDataST7920
4233                     ; 67 	for(addr=0;addr<16;addr++)
4235  01e8 0c01          	inc	(OFST+0,sp)
4238  01ea 7b01          	ld	a,(OFST+0,sp)
4239  01ec a110          	cp	a,#16
4240  01ee 25ea          	jrult	L3552
4241                     ; 71 	for(addr=32;addr<48;addr++)
4243  01f0 a620          	ld	a,#32
4244  01f2 6b01          	ld	(OFST+0,sp),a
4245  01f4               L1652:
4246                     ; 73 		sendDataST7920(*(lcd_stack + addr));
4248  01f4 7b02          	ld	a,(OFST+1,sp)
4249  01f6 97            	ld	xl,a
4250  01f7 7b03          	ld	a,(OFST+2,sp)
4251  01f9 1b01          	add	a,(OFST+0,sp)
4252  01fb 2401          	jrnc	L05
4253  01fd 5c            	incw	x
4254  01fe               L05:
4255  01fe 02            	rlwa	x,a
4256  01ff f6            	ld	a,(x)
4257  0200 ad9c          	call	_sendDataST7920
4259                     ; 71 	for(addr=32;addr<48;addr++)
4261  0202 0c01          	inc	(OFST+0,sp)
4264  0204 7b01          	ld	a,(OFST+0,sp)
4265  0206 a130          	cp	a,#48
4266  0208 25ea          	jrult	L1652
4267                     ; 75 	for(addr=16;addr<32;addr++)
4269  020a a610          	ld	a,#16
4270  020c 6b01          	ld	(OFST+0,sp),a
4271  020e               L7652:
4272                     ; 77 		sendDataST7920(*(lcd_stack + addr));
4274  020e 7b02          	ld	a,(OFST+1,sp)
4275  0210 97            	ld	xl,a
4276  0211 7b03          	ld	a,(OFST+2,sp)
4277  0213 1b01          	add	a,(OFST+0,sp)
4278  0215 2401          	jrnc	L25
4279  0217 5c            	incw	x
4280  0218               L25:
4281  0218 02            	rlwa	x,a
4282  0219 f6            	ld	a,(x)
4283  021a ad82          	call	_sendDataST7920
4285                     ; 75 	for(addr=16;addr<32;addr++)
4287  021c 0c01          	inc	(OFST+0,sp)
4290  021e 7b01          	ld	a,(OFST+0,sp)
4291  0220 a120          	cp	a,#32
4292  0222 25ea          	jrult	L7652
4293                     ; 80 	for(addr=48;addr<64;addr++)
4295  0224 a630          	ld	a,#48
4296  0226 6b01          	ld	(OFST+0,sp),a
4297  0228               L5752:
4298                     ; 82 		sendDataST7920(*(lcd_stack + addr));
4300  0228 7b02          	ld	a,(OFST+1,sp)
4301  022a 97            	ld	xl,a
4302  022b 7b03          	ld	a,(OFST+2,sp)
4303  022d 1b01          	add	a,(OFST+0,sp)
4304  022f 2401          	jrnc	L45
4305  0231 5c            	incw	x
4306  0232               L45:
4307  0232 02            	rlwa	x,a
4308  0233 f6            	ld	a,(x)
4309  0234 cd019e        	call	_sendDataST7920
4311                     ; 80 	for(addr=48;addr<64;addr++)
4313  0237 0c01          	inc	(OFST+0,sp)
4316  0239 7b01          	ld	a,(OFST+0,sp)
4317  023b a140          	cp	a,#64
4318  023d 25e9          	jrult	L5752
4319                     ; 84 }
4322  023f 5b03          	addw	sp,#3
4323  0241 81            	ret
4376                     ; 86 void decToAscii(u8* str,u16 dec,u8 width)
4376                     ; 87 {
4377                     	switch	.text
4378  0242               _decToAscii:
4380  0242 89            	pushw	x
4381       00000000      OFST:	set	0
4384  0243 ace202e2      	jpf	L7462
4385  0247               L5462:
4386                     ; 90 		switch(width)
4388  0247 7b07          	ld	a,(OFST+7,sp)
4390                     ; 121 			default: *str = '0';
4391  0249 4a            	dec	a
4392  024a 2603cc02d2    	jreq	L3162
4393  024f 4a            	dec	a
4394  0250 2764          	jreq	L1162
4395  0252 4a            	dec	a
4396  0253 2745          	jreq	L7062
4397  0255 4a            	dec	a
4398  0256 2726          	jreq	L5062
4399  0258 4a            	dec	a
4400  0259 2707          	jreq	L3062
4401  025b               L5162:
4404  025b 1e01          	ldw	x,(OFST+1,sp)
4405  025d a630          	ld	a,#48
4406  025f f7            	ld	(x),a
4407  0260 2077          	jra	L5562
4408  0262               L3062:
4409                     ; 94 				*str = (dec / 10000 + '0');
4411  0262 1e05          	ldw	x,(OFST+5,sp)
4412  0264 90ae2710      	ldw	y,#10000
4413  0268 65            	divw	x,y
4414  0269 1c0030        	addw	x,#48
4415  026c 1601          	ldw	y,(OFST+1,sp)
4416  026e 01            	rrwa	x,a
4417  026f 90f7          	ld	(y),a
4418  0271 02            	rlwa	x,a
4419                     ; 95 				dec %= 10000;
4421  0272 1e05          	ldw	x,(OFST+5,sp)
4422  0274 90ae2710      	ldw	y,#10000
4423  0278 65            	divw	x,y
4424  0279 51            	exgw	x,y
4425  027a 1f05          	ldw	(OFST+5,sp),x
4426                     ; 96 				break;
4428  027c 205b          	jra	L5562
4429  027e               L5062:
4430                     ; 100 				*str = (dec / 1000 + '0');
4432  027e 1e05          	ldw	x,(OFST+5,sp)
4433  0280 90ae03e8      	ldw	y,#1000
4434  0284 65            	divw	x,y
4435  0285 1c0030        	addw	x,#48
4436  0288 1601          	ldw	y,(OFST+1,sp)
4437  028a 01            	rrwa	x,a
4438  028b 90f7          	ld	(y),a
4439  028d 02            	rlwa	x,a
4440                     ; 101 				dec %= 1000;
4442  028e 1e05          	ldw	x,(OFST+5,sp)
4443  0290 90ae03e8      	ldw	y,#1000
4444  0294 65            	divw	x,y
4445  0295 51            	exgw	x,y
4446  0296 1f05          	ldw	(OFST+5,sp),x
4447                     ; 102 				break;
4449  0298 203f          	jra	L5562
4450  029a               L7062:
4451                     ; 106 				*str = (dec/100+'0');
4453  029a 1e05          	ldw	x,(OFST+5,sp)
4454  029c 90ae0064      	ldw	y,#100
4455  02a0 65            	divw	x,y
4456  02a1 1c0030        	addw	x,#48
4457  02a4 1601          	ldw	y,(OFST+1,sp)
4458  02a6 01            	rrwa	x,a
4459  02a7 90f7          	ld	(y),a
4460  02a9 02            	rlwa	x,a
4461                     ; 107 				dec %= 100;
4463  02aa 1e05          	ldw	x,(OFST+5,sp)
4464  02ac 90ae0064      	ldw	y,#100
4465  02b0 65            	divw	x,y
4466  02b1 51            	exgw	x,y
4467  02b2 1f05          	ldw	(OFST+5,sp),x
4468                     ; 108 				break;
4470  02b4 2023          	jra	L5562
4471  02b6               L1162:
4472                     ; 112 				*str = (dec/10+'0');
4474  02b6 1e05          	ldw	x,(OFST+5,sp)
4475  02b8 90ae000a      	ldw	y,#10
4476  02bc 65            	divw	x,y
4477  02bd 1c0030        	addw	x,#48
4478  02c0 1601          	ldw	y,(OFST+1,sp)
4479  02c2 01            	rrwa	x,a
4480  02c3 90f7          	ld	(y),a
4481  02c5 02            	rlwa	x,a
4482                     ; 113 				dec %= 10;
4484  02c6 1e05          	ldw	x,(OFST+5,sp)
4485  02c8 90ae000a      	ldw	y,#10
4486  02cc 65            	divw	x,y
4487  02cd 51            	exgw	x,y
4488  02ce 1f05          	ldw	(OFST+5,sp),x
4489                     ; 114 				break;
4491  02d0 2007          	jra	L5562
4492  02d2               L3162:
4493                     ; 118 				*str = (dec+'0');
4495  02d2 7b06          	ld	a,(OFST+6,sp)
4496  02d4 ab30          	add	a,#48
4497  02d6 1e01          	ldw	x,(OFST+1,sp)
4498  02d8 f7            	ld	(x),a
4499                     ; 119 				break;
4501  02d9               L5562:
4502                     ; 123 		width--;
4504  02d9 0a07          	dec	(OFST+7,sp)
4505                     ; 124 		str++;
4507  02db 1e01          	ldw	x,(OFST+1,sp)
4508  02dd 1c0001        	addw	x,#1
4509  02e0 1f01          	ldw	(OFST+1,sp),x
4510  02e2               L7462:
4511                     ; 88 	while(width)
4513  02e2 0d07          	tnz	(OFST+7,sp)
4514  02e4 2703          	jreq	L26
4515  02e6 cc0247        	jp	L5462
4516  02e9               L26:
4517                     ; 126 }
4520  02e9 85            	popw	x
4521  02ea 81            	ret
4583                     ; 128 void hexToAscii(u8* str,u16 hex,u8 width)
4583                     ; 129 {
4584                     	switch	.text
4585  02eb               _hexToAscii:
4587  02eb 89            	pushw	x
4588  02ec 89            	pushw	x
4589       00000002      OFST:	set	2
4592  02ed aca703a7      	jpf	L5272
4593  02f1               L3272:
4594                     ; 133 		switch(width)
4596  02f1 7b09          	ld	a,(OFST+7,sp)
4598                     ; 163 			default: *str = '0';
4599  02f3 4a            	dec	a
4600  02f4 2603          	jrne	L07
4601  02f6 cc037b        	jp	L5662
4602  02f9               L07:
4603  02f9 4a            	dec	a
4604  02fa 2758          	jreq	L3662
4605  02fc 4a            	dec	a
4606  02fd 2730          	jreq	L1662
4607  02ff 4a            	dec	a
4608  0300 2709          	jreq	L7562
4609  0302               L7662:
4612  0302 1e03          	ldw	x,(OFST+1,sp)
4613  0304 a630          	ld	a,#48
4614  0306 f7            	ld	(x),a
4615  0307 ac9e039e      	jpf	L3372
4616  030b               L7562:
4617                     ; 137 				tmp = (hex >> 12);
4619  030b 1e07          	ldw	x,(OFST+5,sp)
4620  030d 01            	rrwa	x,a
4621  030e 4f            	clr	a
4622  030f 41            	exg	a,xl
4623  0310 4e            	swap	a
4624  0311 a40f          	and	a,#15
4625  0313 02            	rlwa	x,a
4626  0314 1f01          	ldw	(OFST-1,sp),x
4627                     ; 138 				if(tmp > 9) *str = tmp + ('A' - 10);
4629  0316 1e01          	ldw	x,(OFST-1,sp)
4630  0318 a3000a        	cpw	x,#10
4631  031b 2509          	jrult	L5372
4634  031d 7b02          	ld	a,(OFST+0,sp)
4635  031f ab37          	add	a,#55
4636  0321 1e03          	ldw	x,(OFST+1,sp)
4637  0323 f7            	ld	(x),a
4639  0324 2078          	jra	L3372
4640  0326               L5372:
4641                     ; 139 				else *str = tmp + '0';
4643  0326 7b02          	ld	a,(OFST+0,sp)
4644  0328 ab30          	add	a,#48
4645  032a 1e03          	ldw	x,(OFST+1,sp)
4646  032c f7            	ld	(x),a
4647  032d 206f          	jra	L3372
4648  032f               L1662:
4649                     ; 144 				tmp = (hex >> 8) & 0x000F;
4651  032f 1e07          	ldw	x,(OFST+5,sp)
4652  0331 4f            	clr	a
4653  0332 01            	rrwa	x,a
4654  0333 01            	rrwa	x,a
4655  0334 a40f          	and	a,#15
4656  0336 5f            	clrw	x
4657  0337 02            	rlwa	x,a
4658  0338 1f01          	ldw	(OFST-1,sp),x
4659  033a 01            	rrwa	x,a
4660                     ; 145 				if(tmp > 9) *str = tmp + ('A' - 10);
4662  033b 1e01          	ldw	x,(OFST-1,sp)
4663  033d a3000a        	cpw	x,#10
4664  0340 2509          	jrult	L1472
4667  0342 7b02          	ld	a,(OFST+0,sp)
4668  0344 ab37          	add	a,#55
4669  0346 1e03          	ldw	x,(OFST+1,sp)
4670  0348 f7            	ld	(x),a
4672  0349 2053          	jra	L3372
4673  034b               L1472:
4674                     ; 146 				else *str = tmp + '0';
4676  034b 7b02          	ld	a,(OFST+0,sp)
4677  034d ab30          	add	a,#48
4678  034f 1e03          	ldw	x,(OFST+1,sp)
4679  0351 f7            	ld	(x),a
4680  0352 204a          	jra	L3372
4681  0354               L3662:
4682                     ; 151 				tmp = (hex >> 4) & 0x000F;
4684  0354 1e07          	ldw	x,(OFST+5,sp)
4685  0356 54            	srlw	x
4686  0357 54            	srlw	x
4687  0358 54            	srlw	x
4688  0359 54            	srlw	x
4689  035a 01            	rrwa	x,a
4690  035b a40f          	and	a,#15
4691  035d 5f            	clrw	x
4692  035e 5f            	clrw	x
4693  035f 97            	ld	xl,a
4694  0360 1f01          	ldw	(OFST-1,sp),x
4695                     ; 152 				if(tmp > 9) *str = tmp + ('A' - 10);
4697  0362 1e01          	ldw	x,(OFST-1,sp)
4698  0364 a3000a        	cpw	x,#10
4699  0367 2509          	jrult	L5472
4702  0369 7b02          	ld	a,(OFST+0,sp)
4703  036b ab37          	add	a,#55
4704  036d 1e03          	ldw	x,(OFST+1,sp)
4705  036f f7            	ld	(x),a
4707  0370 202c          	jra	L3372
4708  0372               L5472:
4709                     ; 153 				else *str = tmp + '0';

⌨️ 快捷键说明

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