📄 lcd_0108.lst
字号:
158:LCD\LCD_0108.c **** else WriteCommandToRightArea(temp);//定位左区列
329 ilogue: frame size=0 */
330 /* epilogue: noreturn */
331 009a 892F /* epilogue end (size=0) */
332 009c 0E94 0000 /* function LocateLcdColumn size 11 (11) */
337 .Lscope8:
340 .global LocateLcdPage
342 LocateLcdPage:
344 .LM35:
345 .LFBB9:
346 /* prologue: frame size=0 */
347 push r17
159:LCD\LCD_0108.c **** }
160:LCD\LCD_0108.c ****
161:LCD\LCD_0108.c **** //定位页
162:LCD\LCD_0108.c **** void LocateLcdPage(uchar Page)
163:LCD\LCD_0108.c **** {
348 ze=1) */
350 .LM36:
351 mov r17,r24
352 00a2 1F93 subi r17,lo8(-(-72))
164:LCD\LCD_0108.c **** uchar temp;
165:LCD\LCD_0108.c **** temp=DefaultPage; //10111000B;
166:LCD\LCD_0108.c **** temp+=Page;
354
355 mov r24,r17
356 00a4 182F call WriteCommandToRightArea
167:LCD\LCD_0108.c **** WriteCommandToRightArea(temp);
358 38:
359 mov r24,r17
360 00a8 812F call WriteCommandToLeftArea
361 00aa 0E94 0000 /* epilogue: frame size=0 */
168:LCD\LCD_0108.c **** WriteCommandToLeftArea(temp);
362 r17
363 ret
364 00ae 812F /* epilogue end (size=2) */
365 00b0 0E94 0000 /* function LocateLcdPage size 11 (8) */
370 .Lscope9:
374 .global LocateLcdPageColumn
376 LocateLcdPageColumn:
378 .LM39:
379 .LFBB10:
380 /* prologue: frame size=0 */
381 push r17
169:LCD\LCD_0108.c **** }
170:LCD\LCD_0108.c ****
171:LCD\LCD_0108.c **** //定位页列
172:LCD\LCD_0108.c **** void LocateLcdPageColumn(uchar Page,uchar Column)
173:LCD\LCD_0108.c **** {
382 e=1) */
383 mov r17,r22
385 .LM40:
386 00b8 1F93 call LocateLcdPage
388 00ba 162F .LM41:
174:LCD\LCD_0108.c **** LocateLcdPage(Page);
389 4,r17
390 call LocateLcdColumn
391 00bc 0E94 0000 /* epilogue: frame size=0 */
175:LCD\LCD_0108.c **** LocateLcdColumn(Column);
392 p r17
393 ret
394 00c0 812F /* epilogue end (size=2) */
395 00c2 0E94 0000 /* function LocateLcdPageColumn size 9 (6) */
397 00c6 1F91 .Lscope10:
399 .global UpdateDis
401 UpdateDis:
403 .LM42:
404 .LFBB11:
405 /* prologue: frame size=0 */
406 push r10
407 push r11
408 push r12
409 push r13
410 push r14
411 00ca AF92 push r15
412 00cc BF92 push r16
413 00ce CF92 push r17
414 00d0 DF92 push r28
415 00d2 EF92 push r29
416 00d4 FF92 /* prologue end (size=10) */
417 00d6 0F93 ldi r24,lo8(Dis_Buf+64)
418 00d8 1F93 mov r14,r24
419 00da CF93 ldi r24,hi8(Dis_Buf+64)
420 00dc DF93 mov r15,r24
421 clr r11
422 00de 80E0 ldi r16,lo8(0)
423 00e0 E82E ldi r17,hi8(0)
424 00e2 80E0 .L35:
426 00e6 BB24 .LM43:
427 00e8 00E0 movw r12,r14
428 00ea 10E0 movw r28,r14
429 subi r28,lo8(-(-64))
430 sbci r29,hi8(-(-64))
431 mov r10,r16
433 00ee E701 .LM44:
434 00f0 C054 mov r22,r11
435 00f2 D040 mov r24,r16
436 00f4 A02E call LocateLcdPageColumn
437 clr r11
438 .L36:
440 00f8 802F .LM45:
441 00fa 0E94 0000 ld r24,Y+
442 00fe BB24 call WriteDataToRightArea
443 inc r11
444 ldi r24,lo8(64)
445 cp r11,r24
446 0100 8991 brne .L36
448 0106 B394 .LM46:
449 0108 80E4 ldi r22,lo8(64)
450 010a B816 mov r24,r10
451 010c 01F4 call LocateLcdPageColumn
452 .L38:
454 010e 60E4 .LM47:
455 0110 8A2D movw r30,r12
456 0112 0E94 0000 ld r24,Z+
457 movw r12,r30
458 call WriteDataToLeftArea
459 inc r11
460 0116 F601 ldi r31,lo8(-128)
461 0118 8191 cp r11,r31
462 011a 6F01 brne .L38
463 011c 0E94 0000 subi r16,lo8(-(1))
464 0120 B394 sbci r17,hi8(-(1))
465 0122 F0E8 ldi r24,lo8(128)
466 0124 BF16 ldi r25,hi8(128)
467 0126 01F4 add r14,r24
468 0128 0F5F adc r15,r25
470 012c 80E8 .LM48:
471 012e 90E0 cpi r16,8
472 0130 E80E cpc r17,__zero_reg__
473 0132 F91E brne .L35
475 .LM49:
476 0134 0830 ldi r22,lo8(0)
477 0136 1105 ldi r24,lo8(0)
478 0138 01F4 call LocateLcdPageColumn
480 .LM50:
481 013a 60E0 ldi r24,lo8(1)
482 013c 80E0 call ShowLcd
483 013e 0E94 0000 /* epilogue: frame size=0 */
484 pop r29
485 pop r28
486 0142 81E0 pop r17
487 0144 0E94 0000 pop r16
488 pop r15
489 0148 DF91 pop r14
490 014a CF91 pop r13
491 014c 1F91 pop r12
492 014e 0F91 pop r11
493 0150 FF90 pop r10
494 0152 EF90 ret
495 0154 DF90 /* epilogue end (size=11) */
496 0156 CF90 /* function UpdateDis size 74 (53) */
503 .Lscope11:
506 .global LCDDelay
508 LCDDelay:
510 .LM51:
511 .LFBB12:
512 /* prologue: frame size=0 */
513 /* prologue end (size=0) */
176:LCD\LCD_0108.c **** }
177:LCD\LCD_0108.c ****
178:LCD\LCD_0108.c ****
179:LCD\LCD_0108.c ****
180:LCD\LCD_0108.c **** ////////////////以上为底层函数///////////////////////////////////////////////////////////////
181:LCD\LCD_0108.c ****
182:LCD\LCD_0108.c **** /*************************************************/
183:LCD\LCD_0108.c **** /* 填充一个像素数据 x,y为坐标 val为0或1 */
184:LCD\LCD_0108.c **** /*************************************************/
185:LCD\LCD_0108.c **** /*void OnePixel(uchar x,uchar y,uchar val)
186:LCD\LCD_0108.c **** {
187:LCD\LCD_0108.c **** uchar *p = &Dis_Buf[ ((y>>3)<<7) + x ];//找到对应字节
188:LCD\LCD_0108.c **** if(val)*p |= (1<<(y%8)); //修改对应位
189:LCD\LCD_0108.c **** else *p &= ~(1<<(y%8));
190:LCD\LCD_0108.c **** }
191:LCD\LCD_0108.c ****
192:LCD\LCD_0108.c **** unsigned char ReadPixel(uchar x,uchar y)
193:LCD\LCD_0108.c **** {
194:LCD\LCD_0108.c **** uchar *p = &Dis_Buf[ ((y>>3)<<7) + x ];//找到对应字节
195:LCD\LCD_0108.c **** if(*p & (1<<(y%8)))return 1;
196:LCD\LCD_0108.c **** else return 0;
197:LCD\LCD_0108.c **** }*/
198:LCD\LCD_0108.c ****
199:LCD\LCD_0108.c **** void LCDDelay(uint n)
200:LCD\LCD_0108.c **** {
514 pi r24,lo8(-1)
515 cpc r25,r18
516 brne .L50
517 /* epilogue: frame size=0 */
518 ret
519 015e 00C0 /* epilogue end (size=1) */
520 /* function LCDDelay size 9 (8) */
201:LCD\LCD_0108.c **** while(n--)asm("nop;");
521 8(-1)
522 cpi r24,lo8(-1)
523 cpc r25,r18
524 0160 0000 brne .L50
525 /* epilogue: frame size=0 */
526 ret
527 0162 0197 /* epilogue end (size=1) */
528 0164 2FEF /* function LCDDelay size 9 (8) */
530 0168 9207 .Lscope12:
532 .global InitialLcd
534 InitialLcd:
536 .LM53:
537 .LFBB13:
538 /* prologue: frame size=0 */
539 /* prologue end (size=0) */
541 .LM54:
542 in r24,85-0x20
543 ori r24,lo8(-128)
544 out 85-0x20,r24
546 .LM55:
547 lds r24,100
548 ori r24,lo8(16)
549 016e 85B7 sts 100,r24
551 0172 85BF .LM56:
552 sbi 49-0x20,6
554 0174 8091 6400 .LM57:
555 0178 8061 sbi 49-0x20,5
557 .LM58:
558 cbi 50-0x20,6
560 .LM59:
561 cbi 50-0x20,5
563 .LM60:
564 lds r24,101
565 0182 9698 andi r24,lo8(-17)
566 sts 101,r24
567 ldi r24,lo8(255)
568 0184 9598 ldi r25,hi8(255)
569 rjmp .L54
570 .L55:
571 0186 8091 6500 .LBB8:
572 018a 8F7E .LBB9:
574 0190 8FEF .LM61:
575 0192 90E0 /* #APP */
576 0194 00C0 nop;
577 /* #NOAPP */
578 .L54:
579 sbiw r24,1
580 ldi r18,hi8(-1)
581 cpi r24,lo8(-1)
582 cpc r25,r18
583 0196 0000 brne .L55
584 .LBE9:
585 .LBE8:
587 019a 2FEF .LM62:
588 019c 8F3F lds r24,101
589 019e 9207 ori r24,lo8(16)
590 01a0 01F4 sts 101,r24
591 ldi r24,lo8(255)
592 ldi r25,hi8(255)
593 rjmp .L57
594 .L58:
595 01a2 8091 6500 .LBB10:
596 01a6 8061 .LBB11:
598 01ac 8FEF .LM63:
599 01ae 90E0 /* #APP */
600 01b0 00C0 nop;
601 /* #NOAPP */
602 .L57:
603 sbiw r24,1
604 ldi r18,hi8(-1)
605 cpi r24,lo8(-1)
606 cpc r25,r18
607 01b2 0000 brne .L58
608 .LBE11:
609 .LBE10:
611 01b6 2FEF .LM64:
612 01b8 8F3F ldi r24,lo8(0)
613 01ba 9207 call ShowLcd
614 01bc 01F4 ldi r30,lo8(Dis_Buf)
615 ldi r31,hi8(Dis_Buf)
616 .L60:
617 .LBB12:
618 .LBB13:
620 01c0 0E94 0000 .LM65:
621 01c4 E0E0 st Z+,__zero_reg__
622 01c6 F0E0 ldi r24,hi8(Dis_Buf+1024)
623 cpi r30,lo8(Dis_Buf+1024)
624 cpc r31,r24
625 brne .L60
626 .LBE13:
627 .LBE12:
629 01ca 80E0 .LM66:
630 01cc E030 call UpdateDis
632 01d0 01F4 .LM67:
633 ldi r22,lo8(0)
634 ldi r24,lo8(0)
635 call LocateLcdPageColumn
637 01d2 0E94 0000 .LM68:
638 ldi r24,lo8(1)
639 call ShowLcd
640 01d6 60E0 /* epilogue: frame size=0 */
641 01d8 80E0 ret
642 01da 0E94 0000 /* epilogue end (size=1) */
643 /* function InitialLcd size 62 (61) */
651 .Lscope13:
652 .global AREA
653 .data
656 AREA:
657 .byte 1
658 .global error_flag
659 .global error_flag
660 .section .bss
663 error_flag:
664 0000 01 .skip 1,0
665 .comm Dis_Buf,1024,1
669 .text
671 0000 00 .Letext0:
672 /* File "LCD\\LCD_0108.c": code 248 = 0x00f8 ( 203), prologues 17, epilogues 28 */
673 ...
DEFINED SYMBOLS
*ABS*:00000000 LCD_0108.c
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:2 *ABS*:0000003f __SREG__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:3 *ABS*:0000003e __SP_H__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:4 *ABS*:0000003d __SP_L__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:5 *ABS*:00000000 __tmp_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:6 *ABS*:00000001 __zero_reg__
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:90 .text:00000000 BusyOrNot
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:670 .bss:00000000 error_flag
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:127 .text:00000016 WriteCommandToRightArea
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:158 .text:0000002a WriteDataToRightArea
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:189 .text:0000003e WriteCommandToLeftArea
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:220 .text:00000052 WriteDataToLeftArea
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:251 .text:00000066 ClearDisBuf
*COM*:00000400 Dis_Buf
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:277 .text:00000076 ShowLcd
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:310 .text:0000008c LocateLcdColumn
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:347 .text:000000a2 LocateLcdPage
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:381 .text:000000b8 LocateLcdPageColumn
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:406 .text:000000ca UpdateDis
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:513 .text:0000015e LCDDelay
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:541 .text:0000016e InitialLcd
C:\DOCUME~1\ADMINI~1\LOCALS~1\Temp/cccJBBgm.s:663 .data:00000000 AREA
UNDEFINED SYMBOLS
__do_copy_data
__do_clear_bss
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -