📄 main.ls
字号:
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 + -