📄 lcd_app.txt
字号:
;;;147 else if((MAX_Y - tempY)<24)return 1;
;;;148 else
;;;149 {
;;;150 tempX = 0;
;;;151 tempY += 12;
;;;152 }
;;;153 str ++;
00030c e2866001 ADD r6,r6,#1
000310 ea000034 B |L1.1000|
|L1.788|
000314 e2650030 RSB r0,r5,#0x30 ;147
000318 e3500018 CMP r0,#0x18 ;147
00031c a3a04000 MOVGE r4,#0 ;150
000320 aafffff7 BGE |L1.772|
000324 ea000023 B |L1.952|
|L1.808|
;;;154 }
;;;155 else if(*str<0x20)
000328 e3520020 CMP r2,#0x20
00032c 2a00000a BCS |L1.860|
;;;156 {
;;;157 if((MAX_X - tempX)<6)
000330 e2640054 RSB r0,r4,#0x54
000334 e3500006 CMP r0,#6
000338 aa000005 BGE |L1.852|
;;;158 {
;;;159 tempX = 0;
;;;160 if((MAX_Y - tempY)<24)return 1;
00033c e2650030 RSB r0,r5,#0x30
000340 e3500018 CMP r0,#0x18
000344 e3a04000 MOV r4,#0 ;159
000348 ba00001a BLT |L1.952|
;;;161 else tempY += 12;
00034c e285000c ADD r0,r5,#0xc
000350 e3c05801 BIC r5,r0,#0x10000
|L1.852|
;;;162 }
;;;163 Dis_Ascii_12_fast(tempX,tempY,0x20);
000354 e3a02020 MOV r2,#0x20
;;;164 str ++;
;;;165 tempX += 6;
000358 ea00000a B |L1.904|
|L1.860|
;;;166
;;;167 }
;;;168 else if(*str<0x80)
00035c e3520080 CMP r2,#0x80
;;;169 {
;;;170 if((MAX_X - tempX)<6)
000360 e2640054 RSB r0,r4,#0x54
000364 2a00000d BCS |L1.928|
000368 e3500006 CMP r0,#6
00036c aa000005 BGE |L1.904|
;;;171 {
;;;172 tempX = 0;
;;;173 if((MAX_Y - tempY)<24)return 1;
000370 e2650030 RSB r0,r5,#0x30
000374 e3500018 CMP r0,#0x18
000378 e3a04000 MOV r4,#0 ;172
00037c ba00000d BLT |L1.952|
;;;174 else tempY += 12;
000380 e285000c ADD r0,r5,#0xc
000384 e3c05801 BIC r5,r0,#0x10000
|L1.904|
;;;175 }
;;;176 Dis_Ascii_12_fast(tempX,tempY,*str);
000388 e1a01005 MOV r1,r5
00038c e1a00004 MOV r0,r4
000390 ebfffffe BL Dis_Ascii_12_fast
;;;177 str ++;
000394 e2866001 ADD r6,r6,#1
;;;178 tempX += 6;
000398 e2840006 ADD r0,r4,#6
00039c ea000010 B |L1.996|
|L1.928|
;;;179 }
;;;180 else
;;;181 {
;;;182 if((MAX_X - tempX)<12)
0003a0 e350000c CMP r0,#0xc
0003a4 aa000008 BGE |L1.972|
;;;183 {
;;;184 tempX = 0;
;;;185 if((MAX_Y - tempY)<24)return 1;
0003a8 e2650030 RSB r0,r5,#0x30
0003ac e3500018 CMP r0,#0x18
0003b0 e3a04000 MOV r4,#0 ;184
0003b4 aa000002 BGE |L1.964|
|L1.952|
0003b8 e3a00001 MOV r0,#1
|L1.956|
0003bc e8bd4070 POP {r4-r6,lr}
;;;186 else tempY += 12;
;;;187 }
;;;188 Dis_GBK12_fast(tempX,tempY,str);
;;;189 str += 2;
;;;190 tempX += 12;
;;;191 }
;;;192 }
;;;193 return 0;
;;;194 }
0003c0 e12fff1e BX lr
|L1.964|
0003c4 e285000c ADD r0,r5,#0xc ;186
0003c8 e3c05801 BIC r5,r0,#0x10000 ;186
|L1.972|
0003cc e1a02006 MOV r2,r6 ;188
0003d0 e1a01005 MOV r1,r5 ;188
0003d4 e1a00004 MOV r0,r4 ;188
0003d8 ebfffffe BL Dis_GBK12_fast
0003dc e2866002 ADD r6,r6,#2 ;189
0003e0 e284000c ADD r0,r4,#0xc ;190
|L1.996|
0003e4 e3c04801 BIC r4,r0,#0x10000 ;178
|L1.1000|
0003e8 e5d62000 LDRB r2,[r6,#0] ;137
0003ec e3520000 CMP r2,#0 ;137
0003f0 1affffba BNE |L1.736|
0003f4 e3a00000 MOV r0,#0 ;193
0003f8 eaffffef B |L1.956|
;;;195
ENDP
LCD_print12 PROC
;;;196 uint8 LCD_print12(uint16 x,uint16 y,uint8 *str)
;;;197 {
0003fc e92d4070 PUSH {r4-r6,lr}
000400 e1a06002 MOV r6,r2
;;;198 uint16 tempX = x,tempY = y;
000404 e1a04000 MOV r4,r0
000408 e1a05001 MOV r5,r1
;;;199 while(*str)
00040c ea000041 B |L1.1304|
|L1.1040|
;;;200 {
;;;201 if(*str == '\n')
000410 e352000a CMP r2,#0xa
000414 1a00000f BNE |L1.1112|
;;;202 {
;;;203 if((MAX_X - tempX)<6)
000418 e2640054 RSB r0,r4,#0x54
00041c e3500006 CMP r0,#6
000420 aa000007 BGE |L1.1092|
;;;204 {
;;;205 tempX = 0;
;;;206 if((MAX_Y - tempY)<24)return 1;
000424 e2650030 RSB r0,r5,#0x30
000428 e3500018 CMP r0,#0x18
00042c e3a04000 MOV r4,#0 ;205
000430 ba00002c BLT |L1.1256|
|L1.1076|
;;;207 else tempY += 12;
000434 e285000c ADD r0,r5,#0xc
000438 e3c05801 BIC r5,r0,#0x10000
;;;208 }
;;;209 else if((MAX_Y - tempY)<24)return 1;
;;;210 else
;;;211 {
;;;212 tempX = 0;
;;;213 tempY += 12;
;;;214 }
;;;215 str ++;
00043c e2866001 ADD r6,r6,#1
000440 ea000034 B |L1.1304|
|L1.1092|
000444 e2650030 RSB r0,r5,#0x30 ;209
000448 e3500018 CMP r0,#0x18 ;209
00044c a3a04000 MOVGE r4,#0 ;212
000450 aafffff7 BGE |L1.1076|
000454 ea000023 B |L1.1256|
|L1.1112|
;;;216 }
;;;217 else if(*str<0x20)
000458 e3520020 CMP r2,#0x20
00045c 2a00000a BCS |L1.1164|
;;;218 {
;;;219 if((MAX_X - tempX)<6)
000460 e2640054 RSB r0,r4,#0x54
000464 e3500006 CMP r0,#6
000468 aa000005 BGE |L1.1156|
;;;220 {
;;;221 tempX = 0;
;;;222 if((MAX_Y - tempY)<24)return 1;
00046c e2650030 RSB r0,r5,#0x30
000470 e3500018 CMP r0,#0x18
000474 e3a04000 MOV r4,#0 ;221
000478 ba00001a BLT |L1.1256|
;;;223 else tempY += 12;
00047c e285000c ADD r0,r5,#0xc
000480 e3c05801 BIC r5,r0,#0x10000
|L1.1156|
;;;224 }
;;;225 Dis_Ascii_12(tempX,tempY,0x20);
000484 e3a02020 MOV r2,#0x20
;;;226 str ++;
;;;227 tempX += 6;
000488 ea00000a B |L1.1208|
|L1.1164|
;;;228
;;;229 }
;;;230 else if(*str<0x80)
00048c e3520080 CMP r2,#0x80
;;;231 {
;;;232 if((MAX_X - tempX)<6)
000490 e2640054 RSB r0,r4,#0x54
000494 2a00000d BCS |L1.1232|
000498 e3500006 CMP r0,#6
00049c aa000005 BGE |L1.1208|
;;;233 {
;;;234 tempX = 0;
;;;235 if((MAX_Y - tempY)<24)return 1;
0004a0 e2650030 RSB r0,r5,#0x30
0004a4 e3500018 CMP r0,#0x18
0004a8 e3a04000 MOV r4,#0 ;234
0004ac ba00000d BLT |L1.1256|
;;;236 else tempY += 12;
0004b0 e285000c ADD r0,r5,#0xc
0004b4 e3c05801 BIC r5,r0,#0x10000
|L1.1208|
;;;237 }
;;;238 Dis_Ascii_12(tempX,tempY,*str);
0004b8 e1a01005 MOV r1,r5
0004bc e1a00004 MOV r0,r4
0004c0 ebfffffe BL Dis_Ascii_12
;;;239 str ++;
0004c4 e2866001 ADD r6,r6,#1
;;;240 tempX += 6;
0004c8 e2840006 ADD r0,r4,#6
0004cc ea000010 B |L1.1300|
|L1.1232|
;;;241 }
;;;242 else
;;;243 {
;;;244 if((MAX_X - tempX)<12)
0004d0 e350000c CMP r0,#0xc
0004d4 aa000008 BGE |L1.1276|
;;;245 {
;;;246 tempX = 0;
;;;247 if((MAX_Y - tempY)<24)return 1;
0004d8 e2650030 RSB r0,r5,#0x30
0004dc e3500018 CMP r0,#0x18
0004e0 e3a04000 MOV r4,#0 ;246
0004e4 aa000002 BGE |L1.1268|
|L1.1256|
0004e8 e3a00001 MOV r0,#1
|L1.1260|
0004ec e8bd4070 POP {r4-r6,lr}
;;;248 else tempY += 12;
;;;249 }
;;;250 Dis_GBK12(tempX,tempY,str);
;;;251 str += 2;
;;;252 tempX += 12;
;;;253 }
;;;254 }
;;;255 return 0;
;;;256 }
0004f0 e12fff1e BX lr
|L1.1268|
0004f4 e285000c ADD r0,r5,#0xc ;248
0004f8 e3c05801 BIC r5,r0,#0x10000 ;248
|L1.1276|
0004fc e1a02006 MOV r2,r6 ;250
000500 e1a01005 MOV r1,r5 ;250
000504 e1a00004 MOV r0,r4 ;250
000508 ebfffffe BL Dis_GBK12
00050c e2866002 ADD r6,r6,#2 ;251
000510 e284000c ADD r0,r4,#0xc ;252
|L1.1300|
000514 e3c04801 BIC r4,r0,#0x10000 ;240
|L1.1304|
000518 e5d62000 LDRB r2,[r6,#0] ;199
00051c e3520000 CMP r2,#0 ;199
000520 1affffba BNE |L1.1040|
000524 e3a00000 MOV r0,#0 ;255
000528 eaffffef B |L1.1260|
;;;257
ENDP
LCD_print16_P PROC
;;;258 uint8 LCD_print16_P(uint16 x,uint16 y,uint8 *str)
;;;259 {
00052c e92d40f8 PUSH {r3-r7,lr}
000530 e1a06002 MOV r6,r2
;;;260 uint16 tempX = x,tempY = y;
000534 e1a04000 MOV r4,r0
000538 e1a05001 MOV r5,r1
;;;261 uint16 temp;
;;;262 while(temp = *str)
00053c ea000046 B |L1.1628|
|L1.1344|
;;;263 {
;;;264 if(temp == '\n')
000540 e1dd00b0 LDRH r0,[sp,#0]
000544 e350000a CMP r0,#0xa
000548 1a00000f BNE |L1.1420|
;;;265 {
;;;266 if((MAX_X - tempX)<8)
00054c e2640054 RSB r0,r4,#0x54
000550 e3500008 CMP r0,#8
000554 aa000007 BGE |L1.1400|
;;;267 {
;;;268 tempX = 0;
;;;269 if((MAX_Y - tempY)<32)return 1;
000558 e2650030 RSB r0,r5,#0x30
00055c e3500020 CMP r0,#0x20
000560 e3a04000 MOV r4,#0 ;268
000564 ba00002d BLT |L1.1568|
|L1.1384|
;;;270 else tempY += 16;
000568 e2850010 ADD r0,r5,#0x10
00056c e3c05801 BIC r5,r0,#0x10000
;;;271 }
;;;272 else if((MAX_Y - tempY)<32)return 1;
;;;273 else
;;;274 {
;;;275 tempX = 0;
;;;276 tempY += 16;
;;;277 }
;;;278 str ++;
000570 e2866001 ADD r6,r6,#1
000574 ea000038 B |L1.1628|
|L1.1400|
000578 e2650030 RSB r0,r5,#0x30 ;272
00057c e3500020 CMP r0,#0x20 ;272
000580 a3a04000 MOVGE r4,#0 ;275
000584 aafffff7 BGE |L1.1384|
000588 ea000024 B |L1.1568|
|L1.1420|
;;;279 }
;;;280 else if(temp<0x20)
00058c e3500020 CMP r0,#0x20
000590 2a00000a BCS |L1.1472|
;;;281 {
;;;282 if((MAX_X - tempX)<8)
000594 e2640054 RSB r0,r4,#0x54
000598 e3500008 CMP r0,#8
00059c aa000005 BGE |L1.1464|
;;;283 {
;;;284 tempX = 0;
;;;285 if((MAX_Y - tempY)<32)return 1;
0005a0 e2650030 RSB r0,r5,#0x30
0005a4 e3500020 CMP r0,#0x20
0005a8 e3a04000 MOV r4,#0 ;284
0005ac ba00001b BLT |L1.1568|
;;;286 else tempY += 16;
0005b0 e2850010 ADD r0,r5,#0x10
0005b4 e3c05801 BIC r5,r0,#0x10000
|L1.1464|
;;;287 }
;;;288 Dis_Ascii_16(tempX,tempY,0x20);
0005b8 e3a02020 MOV r2,#0x20
;;;289 str ++;
;;;290 tempX += 8;
0005bc ea00000b B |L1.1520|
|L1.1472|
;;;291 }
;;;292 else if(temp<0x80)
0005c0 e3500080 CMP r0,#0x80
;;;293 {
;;;294 if((MAX_X - tempX)<8)
0005c4 e2641054 RSB r1,r4,#0x54
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -