📄 lcd_app.lst
字号:
439 01b4 90E0 ldi r25,hi8(48)
440 01b6 8C19 sub r24,r12
441 01b8 9D09 sbc r25,r13
442 01ba 8097 sbiw r24,32
443 01bc 00F4 brsh .+2
444 01be 00C0 rjmp .L41
446 .LM42:
447 01c0 80E1 ldi r24,lo8(16)
448 01c2 90E0 ldi r25,hi8(16)
449 01c4 C80E add r12,r24
450 01c6 D91E adc r13,r25
451 01c8 EE24 clr r14
452 01ca FF24 clr r15
453 .L52:
455 .LM43:
456 01cc B601 movw r22,r12
457 01ce C701 movw r24,r14
458 01d0 0E94 0000 call Dis_Ascii_16
460 .LM44:
461 01d4 0F5F subi r16,lo8(-(1))
462 01d6 1F4F sbci r17,hi8(-(1))
464 .LM45:
465 01d8 E8E0 ldi r30,lo8(8)
466 01da F0E0 ldi r31,hi8(8)
467 01dc EE0E add r14,r30
468 01de FF1E adc r15,r31
469 01e0 00C0 rjmp .L64
470 .L50:
472 .LM46:
473 01e2 84E5 ldi r24,lo8(84)
474 01e4 90E0 ldi r25,hi8(84)
475 01e6 8E19 sub r24,r14
476 01e8 9F09 sbc r25,r15
477 01ea 4097 sbiw r24,16
478 01ec 00F4 brsh .L55
480 .LM47:
481 01ee 80E3 ldi r24,lo8(48)
482 01f0 90E0 ldi r25,hi8(48)
483 01f2 8C19 sub r24,r12
484 01f4 9D09 sbc r25,r13
485 01f6 8097 sbiw r24,32
486 01f8 00F0 brlo .L41
488 .LM48:
489 01fa 80E1 ldi r24,lo8(16)
490 01fc 90E0 ldi r25,hi8(16)
491 01fe C80E add r12,r24
492 0200 D91E adc r13,r25
493 0202 EE24 clr r14
494 0204 FF24 clr r15
495 .L55:
496 .LBB2:
498 .LM49:
499 0206 0F5F subi r16,lo8(-(1))
500 0208 1F4F sbci r17,hi8(-(1))
501 020a F801 movw r30,r16
502 /* #APP */
503 020c 8491 lpm r24, Z
504
505 /* #NOAPP */
506 .LBE2:
507 020e 90E0 ldi r25,lo8(0)
508 0210 982F mov r25,r24
509 0212 8827 clr r24
510 0214 820F add r24,r18
511 0216 931F adc r25,r19
512 0218 9A83 std Y+2,r25
513 021a 8983 std Y+1,r24
515 .LM50:
516 021c A501 movw r20,r10
517 021e B601 movw r22,r12
518 0220 C701 movw r24,r14
519 0222 0E94 0000 call Dis_GBK16
521 .LM51:
522 0226 0F5F subi r16,lo8(-(1))
523 0228 1F4F sbci r17,hi8(-(1))
525 .LM52:
526 022a 80E1 ldi r24,lo8(16)
527 022c 90E0 ldi r25,hi8(16)
528 022e E80E add r14,r24
529 0230 F91E adc r15,r25
530 .L64:
531 .LBB3:
533 .LM53:
534 0232 F801 movw r30,r16
535 /* #APP */
536 0234 4491 lpm r20, Z
537
538 /* #NOAPP */
539 .LBE3:
540 0236 4423 tst r20
541 0238 01F0 breq .+2
542 023a 00C0 rjmp .L36
543 023c 80E0 ldi r24,lo8(0)
544 023e 90E0 ldi r25,hi8(0)
545 0240 00C0 rjmp .L59
546 .L41:
547 0242 81E0 ldi r24,lo8(1)
548 0244 90E0 ldi r25,hi8(1)
549 .L59:
550 /* epilogue: frame size=2 */
551 0246 2296 adiw r28,2
552 0248 0FB6 in __tmp_reg__,__SREG__
553 024a F894 cli
554 024c DEBF out __SP_H__,r29
555 024e 0FBE out __SREG__,__tmp_reg__
556 0250 CDBF out __SP_L__,r28
557 0252 DF91 pop r29
558 0254 CF91 pop r28
559 0256 1F91 pop r17
560 0258 0F91 pop r16
561 025a FF90 pop r15
562 025c EF90 pop r14
563 025e DF90 pop r13
564 0260 CF90 pop r12
565 0262 BF90 pop r11
566 0264 AF90 pop r10
567 0266 0895 ret
568 /* epilogue end (size=17) */
569 /* function LCD_print16_P size 205 (170) */
582 .Lscope2:
583 .data
584 .LC0:
585 0000 A1F6 00 .string "\241\366"
586 .text
591 .global LCD_print_unicode16
593 LCD_print_unicode16:
376:LCD\LCD_APP.c **** }
377:LCD\LCD_APP.c **** }
378:LCD\LCD_APP.c **** return 0;
379:LCD\LCD_APP.c **** }
380:LCD\LCD_APP.c ****
381:LCD\LCD_APP.c **** unsigned char LCD_print_unicode12(unsigned int x,unsigned int y,unsigned int *str)
382:LCD\LCD_APP.c **** {
383:LCD\LCD_APP.c **** unsigned int tempX = x,tempY = y;
384:LCD\LCD_APP.c **** unsigned int temp;
385:LCD\LCD_APP.c **** while(*str)
386:LCD\LCD_APP.c **** {
387:LCD\LCD_APP.c **** if(*str == '\n')
388:LCD\LCD_APP.c **** {
389:LCD\LCD_APP.c **** if((MAX_X - tempX)<6)
390:LCD\LCD_APP.c **** {
391:LCD\LCD_APP.c **** tempX = 0;
392:LCD\LCD_APP.c **** if((MAX_Y - tempY)<12)return 1;
393:LCD\LCD_APP.c **** else tempY += 12;
394:LCD\LCD_APP.c **** }
395:LCD\LCD_APP.c **** else if((MAX_Y - tempY)<24)return 1;
396:LCD\LCD_APP.c **** else
397:LCD\LCD_APP.c **** {
398:LCD\LCD_APP.c **** tempX = 0;
399:LCD\LCD_APP.c **** tempY += 12;
400:LCD\LCD_APP.c **** }
401:LCD\LCD_APP.c **** str ++;
402:LCD\LCD_APP.c **** }
403:LCD\LCD_APP.c **** else if(*str<0x20)
404:LCD\LCD_APP.c **** {
405:LCD\LCD_APP.c **** if((MAX_X - tempX)<6)
406:LCD\LCD_APP.c **** {
407:LCD\LCD_APP.c **** tempX = 0;
408:LCD\LCD_APP.c **** if((MAX_Y - tempY)<24)return 1;
409:LCD\LCD_APP.c **** else tempY += 12;
410:LCD\LCD_APP.c **** }
411:LCD\LCD_APP.c **** Dis_Ascii_12(tempX,tempY,0x20);
412:LCD\LCD_APP.c **** str ++;
413:LCD\LCD_APP.c **** tempX += 6;
414:LCD\LCD_APP.c ****
415:LCD\LCD_APP.c **** }
416:LCD\LCD_APP.c **** else if(*str<0x80)
417:LCD\LCD_APP.c **** {
418:LCD\LCD_APP.c **** if((MAX_X - tempX)<6)
419:LCD\LCD_APP.c **** {
420:LCD\LCD_APP.c **** tempX = 0;
421:LCD\LCD_APP.c **** if((MAX_Y - tempY)<24)return 1;
422:LCD\LCD_APP.c **** else tempY += 12;
423:LCD\LCD_APP.c **** }
424:LCD\LCD_APP.c **** Dis_Ascii_12(tempX,tempY,*str);
425:LCD\LCD_APP.c **** str ++;
426:LCD\LCD_APP.c **** tempX += 6;
427:LCD\LCD_APP.c **** }
428:LCD\LCD_APP.c **** else if(*str<0x4e00)
429:LCD\LCD_APP.c **** {
430:LCD\LCD_APP.c **** if((MAX_X - tempX)<12)
431:LCD\LCD_APP.c **** {
432:LCD\LCD_APP.c **** tempX = 0;
433:LCD\LCD_APP.c **** if((MAX_Y - tempY)<24)return 1;
434:LCD\LCD_APP.c **** else tempY += 12;
435:LCD\LCD_APP.c **** }
436:LCD\LCD_APP.c **** Dis_GBK12(tempX,tempY,"■");
437:LCD\LCD_APP.c **** str ++;
438:LCD\LCD_APP.c **** tempX += 12;
439:LCD\LCD_APP.c ****
440:LCD\LCD_APP.c **** }
441:LCD\LCD_APP.c **** else if(*str<0x9fa6)
442:LCD\LCD_APP.c **** {
443:LCD\LCD_APP.c **** temp = *str;
444:LCD\LCD_APP.c **** if((MAX_X - tempX)<12)
445:LCD\LCD_APP.c **** {
446:LCD\LCD_APP.c **** tempX = 0;
447:LCD\LCD_APP.c **** if((MAX_Y - tempY)<24)return 1;
448:LCD\LCD_APP.c **** else tempY += 12;
449:LCD\LCD_APP.c **** }
450:LCD\LCD_APP.c **** if(Unicode_to_GBK((unsigned char *)&temp))return 1;
451:LCD\LCD_APP.c **** Dis_GBK12(tempX,tempY,(unsigned char *)&temp);
452:LCD\LCD_APP.c **** str ++;
453:LCD\LCD_APP.c **** tempX += 12;
454:LCD\LCD_APP.c **** }
455:LCD\LCD_APP.c **** else
456:LCD\LCD_APP.c **** {
457:LCD\LCD_APP.c **** if((MAX_X - tempX)<12)
458:LCD\LCD_APP.c **** {
459:LCD\LCD_APP.c **** tempX = 0;
460:LCD\LCD_APP.c **** if((MAX_Y - tempY)<24)return 1;
461:LCD\LCD_APP.c **** else tempY += 12;
462:LCD\LCD_APP.c **** }
463:LCD\LCD_APP.c **** Dis_GBK12(tempX,tempY,"■");
464:LCD\LCD_APP.c **** str ++;
465:LCD\LCD_APP.c **** tempX += 12;
466:LCD\LCD_APP.c **** }
467:LCD\LCD_APP.c **** }
468:LCD\LCD_APP.c **** return 0;
469:LCD\LCD_APP.c **** }
470:LCD\LCD_APP.c **** unsigned char LCD_print_unicode16(unsigned int x,unsigned int y,unsigned int *str)
471:LCD\LCD_APP.c **** {
594 push r8
595 push r9
596 push r10
597 push r11
598 0268 8F92 push r12
599 026a 9F92 push r13
600 026c AF92 push r14
601 026e BF92 push r15
602 0270 CF92 push r16
603 0272 DF92 push r17
604 0274 EF92 push r28
605 0276 FF92 push r29
606 0278 0F93 in r28,__SP_L__
607 027a 1F93 in r29,__SP_H__
608 027c CF93 sbiw r28,2
609 027e DF93 in __tmp_reg__,__SREG__
610 0280 CDB7 cli
611 0282 DEB7 out __SP_H__,r29
612 0284 2297 out __SREG__,__tmp_reg__
613 0286 0FB6 out __SP_L__,r28
614 0288 F894 /* prologue end (size=20) */
615 028a DEBF movw r12,r20
616 028c 0FBE movw r16,r24
617 028e CDBF movw r14,r22
618 ldi r21,lo8(.LC0)
619 0290 6A01 mov r8,r21
620 0292 8C01 ldi r21,hi8(.LC0)
621 0294 7B01 mov r9,r21
623 0298 852E .LM55:
624 029a 50E0 movw r10,r28
625 029c 952E sec
472:LCD\LCD_APP.c **** unsigned int tempX = x,tempY = y;
473:LCD\LCD_APP.c **** unsigned int temp;
474:LCD\LCD_APP.c **** while(*str)
475:LCD\LCD_APP.c **** { if(*str == '\n')
476:LCD\LCD_APP.c **** {
477:LCD\LCD_APP.c **** if((MAX_X - tempX)<8)
478:LCD\LCD_APP.c **** {
479:LCD\LCD_APP.c **** tempX = 0;
480:LCD\LCD_APP.c **** if((MAX_Y - tempY)<32)return 1;
481:LCD\LCD_APP.c **** else tempY += 16;
482:LCD\LCD_APP.c **** }
483:LCD\LCD_APP.c **** else if((MAX_Y - tempY)<32)return 1;
484:LCD\LCD_APP.c **** else
485:LCD\LCD_APP.c **** {
486:LCD\LCD_APP.c **** tempX = 0;
487:LCD\LCD_APP.c **** tempY += 16;
488:LCD\LCD_APP.c **** }
489:LCD\LCD_APP.c **** str ++;
490:LCD\LCD_APP.c **** }
491:LCD\LCD_APP.c **** else if(*str<0x20)
492:LCD\LCD_APP.c **** {
493:LCD\LCD_APP.c **** if((MAX_X - tempX)<8)
494:LCD\LCD_APP.c **** {
495:LCD\LCD_APP.c **** tempX = 0;
496:LCD\LCD_APP.c **** if((MAX_Y - tempY)<32)return 1;
497:LCD\LCD_APP.c **** else tempY += 16;
498:LCD\LCD_APP.c **** }
499:LCD\LCD_APP.c **** Dis_Ascii_16(tempX,tempY,0x20);
500:LCD\LCD_APP.c **** str ++;
501:LCD\LCD_APP.c **** tempX += 8;
502:LCD\LCD_APP.c **** }
503:LCD\LCD_APP.c **** else if(*str<0x80)
504:LCD\LCD_APP.c **** {
505:LCD\LCD_APP.c **** if((MAX_X - tempX)<8)
506:LCD\LCD_APP.c **** {
507:LCD\LCD_APP.c **** tempX = 0;
508:LCD\LCD_APP.c **** if((MAX_Y - tempY)<32)return 1;
509:LCD\LCD_APP.c **** else tempY += 16;
510:LCD\LCD_APP.c **** }
511:LCD\LCD_APP.c **** Dis_Ascii_16(tempX,tempY,*str);
512:LCD\LCD_APP.c **** str ++;
513:LCD\LCD_APP.c **** tempX += 8;
514:LCD\LCD_APP.c **** }
515:LCD\LCD_APP.c **** else if(*str < 0x4e00)
516:LCD\LCD_APP.c **** {
517:LCD\LCD_APP.c **** if((MAX_X - tempX)<16)
518:LCD\LCD_APP.c **** {
519:LCD\LCD_APP.c **** tempX = 0;
520:LCD\LCD_APP.c **** if((MAX_Y - tempY)<32)return 1;
521:LCD\LCD_APP.c **** else tempY += 16;
522:LCD\LCD_APP.c **** }
523:LCD\LCD_APP.c **** Dis_GBK16(tempX,tempY,"■");
524:LCD\LCD_APP.c **** str ++;
525:LCD\LCD_APP.c **** tempX += 16;
526:LCD\LCD_APP.c **** }
527:LCD\LCD_APP.c **** else if(*str < 0x9fa6)
528:LCD\LCD_APP.c **** {
529:LCD\LCD_APP.c **** temp = *str;
530:LCD\LCD_APP.c **** if((MAX_X - tempX)<16)
531:LCD\LCD_APP.c **** {
532:LCD\LCD_APP.c **** tempX = 0;
533:LCD\LCD_APP.c **** if((MAX_Y - tempY)<32)return 1;
534:LCD\LCD_APP.c **** else tempY += 16;
535:LCD\LCD_APP.c **** }
536:LCD\LCD_APP.c **** if(Unicode_to_GBK((unsigned char *)&temp))return 1;
626 _zero_reg__
627 rjmp .L66
628 029e 5E01 .L67:
630 02a2 A11C .LM56:
631 02a4 B11C cpi r20,10
632 02a6 00C0 cpc r21,__zero_reg__
633 brne .L68
635 .LM57:
636 02a8 4A30 ldi r24,lo8(84)
637 02aa 5105 ldi r25,hi8(84)
638 02ac 01F4 sub r24,r16
639 sbc r25,r17
640 sbiw r24,8
641 02ae 84E5 brsh .L70
643 02b2 801B .LM58:
644 02b4 910B ldi r24,lo8(48)
645 02b6 0897 ldi r25,hi8(48)
646 02b8 00F4 sub r24,r14
647 sbc r25,r15
648 sbiw r24,32
649 02ba 80E3 brsh .+2
650 02bc 90E0 rjmp .L72
652 02c0 9F09 .LM59:
653 02c2 8097 ldi r24,lo8(16)
654 02c4 00F4 ldi r25,hi8(16)
655 02c6 00C0 add r14,r24
656 adc r15,r25
657 rjmp .L74
658 02c8 80E1 .L70:
660 02cc E80E .LM60:
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -