📄 ks0108_12864lcd_m16.lst
字号:
FILE: <library>
__start:
__text_start:
3E4 E5CF LDI R28,0x5F
3E5 E0D4 LDI R29,4
3E6 BFCD OUT 0x3D,R28
3E7 BFDE OUT 0x3E,R29
3E8 51CE SUBI R28,0x1E
3E9 40D0 SBCI R29,0
3EA EA0A LDI R16,0xAA
3EB 8308 STD Y+0,R16
3EC 2400 CLR R0
3ED E6E0 LDI R30,0x60
3EE E0F0 LDI R31,0
3EF E010 LDI R17,0
3F0 36E0 CPI R30,0x60
3F1 07F1 CPC R31,R17
3F2 F011 BEQ 0x03F5
3F3 9201 ST R0,Z+
3F4 CFFB RJMP 0x03F0
3F5 8300 STD Z+0,R16
3F6 ECE8 LDI R30,0xC8
3F7 E0F7 LDI R31,7
3F8 E6A0 LDI R26,0x60
3F9 E0B0 LDI R27,0
3FA E017 LDI R17,7
3FB E000 LDI R16,0
3FC BF0B OUT 0x3B,R16
3FD 3CE8 CPI R30,0xC8
3FE 07F1 CPC R31,R17
3FF F021 BEQ 0x0404
400 95C8 LPM
401 9631 ADIW R30,1
402 920D ST R0,X+
403 CFF9 RJMP 0x03FD
404 D001 RCALL _main
_exit:
405 CFFF RJMP _exit
_main:
406 D00F RCALL _Init_System
407 D01E RCALL _KS0108_12864LCD_Init
408 C001 RJMP 0x040A
409 D04C RCALL _KS0108_12864LCD_Update
40A CFFE RJMP 0x0409
40B 9508 RET
_Port_Init:
Init_SYS.C:Port_Init:
40C 2422 CLR R2
40D BA2B OUT 0x1B,R2
40E BA2A OUT 0x1A,R2
40F BA28 OUT 0x18,R2
410 BA27 OUT 0x17,R2
411 BA25 OUT 0x15,R2
412 BA24 OUT 0x14,R2
413 BA22 OUT 0x12,R2
414 BA21 OUT 0x11,R2
415 9508 RET
_Init_System:
416 EA87 LDI R24,0xA7
417 BF81 OUT 0x31,R24
418 94F8 BCLR 7
419 DFF2 RCALL _Port_Init
41A 2422 CLR R2
41B BE25 OUT 0x35,R2
41C BE2B OUT 0x3B,R2
41D BE29 OUT 0x39,R2
41E 9478 BSET 7
41F 9508 RET
_Delay_1ms:
i --> R16
KS0108_12864LCD.C:Delay_1ms:
420 2700 CLR R16
421 C001 RJMP 0x0423
422 9503 INC R16
423 380F CPI R16,0x8F
424 F3E8 BCS 0x0422
425 9508 RET
_KS0108_12864LCD_Init:
426 9721 SBIW R28,1
427 EF8F LDI R24,0xFF
428 BB8A OUT 0x1A,R24
429 BB81 OUT 0x11,R24
42A 2422 CLR R2
42B BA2B OUT 0x1B,R2
42C 9A93 SBI 0x12,3
42D DFF2 RCALL _Delay_1ms
42E 9893 CBI 0x12,3
42F DFF0 RCALL _Delay_1ms
430 9A93 SBI 0x12,3
431 DFEE RCALL _Delay_1ms
432 940E 06A0 CALL 0x06A0
434 E30E LDI R16,0x3E
435 D0B3 RCALL KS0108_12864LCD.C:LCD_Send_Byte
436 940E 06CC CALL 0x06CC
438 D0B0 RCALL KS0108_12864LCD.C:LCD_Send_Byte
439 940E 06C7 CALL 0x06C7
43B D0AD RCALL KS0108_12864LCD.C:LCD_Send_Byte
43C 940E 0674 CALL 0x0674
43E D0AA RCALL KS0108_12864LCD.C:LCD_Send_Byte
43F 940E 06BD CALL 0x06BD
441 D0A7 RCALL KS0108_12864LCD.C:LCD_Send_Byte
442 940E 069A CALL 0x069A
444 E30E LDI R16,0x3E
445 D0A3 RCALL KS0108_12864LCD.C:LCD_Send_Byte
446 940E 06CC CALL 0x06CC
448 D0A0 RCALL KS0108_12864LCD.C:LCD_Send_Byte
449 940E 06C7 CALL 0x06C7
44B D09D RCALL KS0108_12864LCD.C:LCD_Send_Byte
44C 940E 0674 CALL 0x0674
44E D09A RCALL KS0108_12864LCD.C:LCD_Send_Byte
44F 940E 06BD CALL 0x06BD
451 D097 RCALL KS0108_12864LCD.C:LCD_Send_Byte
452 2700 CLR R16
453 D056 RCALL KS0108_12864LCD.C:Clear_Screen
454 9621 ADIW R28,1
455 9508 RET
_KS0108_12864LCD_Update:
i --> R20
j --> R22
456 D1D7 RCALL push_xgsetF000
457 972B SBIW R28,0xB
458 2422 CLR R2
459 822E STD Y+6,R2
45A 940E 0669 CALL 0x0669
45C D13A RCALL _LCD_Disp_an_Image
45D 940E 0656 CALL <created procedures>
45F 2700 CLR R16
460 D049 RCALL KS0108_12864LCD.C:Clear_Screen
461 2422 CLR R2
462 822A STD Y+2,R2
463 E584 LDI R24,0x54
464 940E 068C CALL 0x068C
466 2700 CLR R16
467 D0DC RCALL _LCD_Disp_String
468 2422 CLR R2
469 822A STD Y+2,R2
46A E68A LDI R24,0x6A
46B 940E 068C CALL 0x068C
46D E007 LDI R16,7
46E D0D5 RCALL _LCD_Disp_String
46F 2422 CLR R2
470 862A STD Y+10,R2
471 940E 06D1 CALL 0x06D1
473 940E 0683 CALL 0x0683
475 D0E6 RCALL KS0108_12864LCD.C:LCD_Disp_Chinese_String
476 2422 CLR R2
477 862A STD Y+10,R2
478 940E 06B8 CALL 0x06B8
47A 940E 0691 CALL 0x0691
47C D0DF RCALL KS0108_12864LCD.C:LCD_Disp_Chinese_String
47D 940E 0656 CALL <created procedures>
47F E081 LDI R24,1
480 838E STD Y+6,R24
481 940E 0669 CALL 0x0669
483 D113 RCALL _LCD_Disp_an_Image
484 940E 0656 CALL <created procedures>
486 E001 LDI R16,1
487 D022 RCALL KS0108_12864LCD.C:Clear_Screen
488 E081 LDI R24,1
489 838A STD Y+2,R24
48A E584 LDI R24,0x54
48B 940E 068C CALL 0x068C
48D 2700 CLR R16
48E D0B5 RCALL _LCD_Disp_String
48F E081 LDI R24,1
490 838A STD Y+2,R24
491 E68A LDI R24,0x6A
492 940E 068C CALL 0x068C
494 E007 LDI R16,7
495 D0AE RCALL _LCD_Disp_String
496 E081 LDI R24,1
497 878A STD Y+10,R24
498 940E 06D1 CALL 0x06D1
49A 2422 CLR R2
49B 940E 0683 CALL 0x0683
49D D0BE RCALL KS0108_12864LCD.C:LCD_Disp_Chinese_String
49E E081 LDI R24,1
49F 878A STD Y+10,R24
4A0 940E 06B8 CALL 0x06B8
4A2 2422 CLR R2
4A3 940E 0691 CALL 0x0691
4A5 D0B6 RCALL KS0108_12864LCD.C:LCD_Disp_Chinese_String
4A6 940E 0656 CALL <created procedures>
4A8 962B ADIW R28,0xB
4A9 C187 RJMP pop_xgsetF000
KS0108_12864LCD.C:Clear_Screen:
_Clear_Screen:
Page --> R20
Column --> R22
Vedio_Mode --> R10
4AA D18B RCALL push_xgsetF00C
4AB 2EA0 MOV R10,R16
4AC 9721 SBIW R28,1
4AD 2744 CLR R20
4AE C01E RJMP 0x04CD
4AF 9A94 SBI 0x12,4
4B0 9895 CBI 0x12,5
4B1 940E 067E CALL 0x067E
4B3 5408 SUBI R16,0x48
4B4 D034 RCALL KS0108_12864LCD.C:LCD_Send_Byte
4B5 940E 0674 CALL 0x0674
4B7 D031 RCALL KS0108_12864LCD.C:LCD_Send_Byte
4B8 2766 CLR R22
4B9 C010 RJMP 0x04CA
4BA 3460 CPI R22,0x40
4BB F449 BNE 0x04C5
4BC 9894 CBI 0x12,4
4BD 9A95 SBI 0x12,5
4BE 940E 067E CALL 0x067E
4C0 5408 SUBI R16,0x48
4C1 D027 RCALL KS0108_12864LCD.C:LCD_Send_Byte
4C2 940E 0674 CALL 0x0674
4C4 D024 RCALL KS0108_12864LCD.C:LCD_Send_Byte
4C5 82A8 STD Y+0,R10
4C6 E021 LDI R18,1
4C7 2700 CLR R16
4C8 D020 RCALL KS0108_12864LCD.C:LCD_Send_Byte
4C9 9563 INC R22
4CA 3860 CPI R22,0x80
4CB F370 BCS 0x04BA
4CC 9543 INC R20
4CD 3048 CPI R20,0x8
4CE F300 BCS 0x04AF
4CF 9621 ADIW R28,1
4D0 C16A RJMP pop_xgsetF00C
4D1 940E 06B3 CALL 0x06B3
_LCD_Read_Busy:
LCD_Timeout --> R16
KS0108_12864LCD.C:LCD_Read_Busy:
4D3 9890 CBI 0x12,0
4D4 940E 06A6 CALL 0x06A6
4D6 C006 RJMP 0x04DD
4D7 9892 CBI 0x12,2
4D8 0000 NOP
4D9 0000 NOP
4DA 9A92 SBI 0x12,2
4DB 0000 NOP
4DC 0000 NOP
4DD 9BCF SBIS 0x19,7
4DE C006 RJMP 0x04E5
4DF 01C8 MOVW R24,R16
4E0 9601 ADIW R24,1
4E1 018C MOVW R16,R24
4E2 3080 CPI R24,0
4E3 0789 CPC R24,R25
4E4 F791 BNE 0x04D7
4E5 EF8F LDI R24,0xFF
4E6 BB8A OUT 0x1A,R24
4E7 9892 CBI 0x12,2
4E8 9508 RET
KS0108_12864LCD.C:LCD_Send_Byte:
_LCD_Send_Byte:
IVERSE --> Y,+0
DATA_FLAG --> R18
DATA --> R16
4E9 9A92 SBI 0x12,2
4EA 0000 NOP
4EB 0000 NOP
4EC 2322 TST R18
4ED F011 BEQ 0x04F0
4EE 9A90 SBI 0x12,0
4EF C001 RJMP 0x04F1
4F0 9890 CBI 0x12,0
4F1 9891 CBI 0x12,1
4F2 8008 LDD R0,Y+0
4F3 2000 TST R0
4F4 F051 BEQ 0x04FF
4F5 2322 TST R18
4F6 F041 BEQ 0x04FF
4F7 2E20 MOV R2,R16
4F8 2433 CLR R3
4F9 EF8F LDI R24,0xFF
4FA E090 LDI R25,0
4FB 1982 SUB R24,R2
4FC 0993 SBC R25,R3
4FD BB8B OUT 0x1B,R24
4FE C001 RJMP 0x0500
4FF BB0B OUT 0x1B,R16
500 9892 CBI 0x12,2
501 0000 NOP
502 0000 NOP
503 9508 RET
_LCD_Set_XY:
Y --> R20
X --> R22
KS0108_12864LCD.C:LCD_Set_XY:
504 934A ST R20,-Y
505 936A ST R22,-Y
506 2F42 MOV R20,R18
507 2F60 MOV R22,R16
508 9721 SBIW R28,1
509 3440 CPI R20,0x40
50A F058 BCS 0x0516
50B 940E 069A CALL 0x069A
50D 2F06 MOV R16,R22
50E 5408 SUBI R16,0x48
50F DFD9 RCALL KS0108_12864LCD.C:LCD_Send_Byte
510 940E 067E CALL 0x067E
512 5C00 SUBI R16,0xC0
513 5400 SUBI R16,0x40
514 DFD4 RCALL KS0108_12864LCD.C:LCD_Send_Byte
515 C009 RJMP 0x051F
516 940E 06A0 CALL 0x06A0
518 2F06 MOV R16,R22
519 5408 SUBI R16,0x48
51A DFCE RCALL KS0108_12864LCD.C:LCD_Send_Byte
51B 940E 067E CALL 0x067E
51D 5C00 SUBI R16,0xC0
51E DFCA RCALL KS0108_12864LCD.C:LCD_Send_Byte
51F 9621 ADIW R28,1
520 9169 LD R22,Y+
521 9149 LD R20,Y+
522 9508 RET
KS0108_12864LCD.C:LCD_Disp_a_Char:
_LCD_Disp_a_Char:
cl --> R20
Video_Mode --> Y,+11
Char_Value --> R22
Y --> R10
X --> R12
523 D11E RCALL push_xgsetF03C
524 2EA2 MOV R10,R18
525 2EC0 MOV R12,R16
526 9721 SBIW R28,1
527 8569 LDD R22,Y+9
528 5260 SUBI R22,0x20
529 2744 CLR R20
52A C015 RJMP 0x0540
52B 2D2A MOV R18,R10
52C 0F24 ADD R18,R20
52D 2D0C MOV R16,R12
52E DFD5 RCALL _LCD_Set_XY
52F 840B LDD R0,Y+11
530 8208 STD Y+0,R0
531 E021 LDI R18,1
532 E086 LDI R24,6
533 9F86 MUL R24,R22
534 0110 MOVW R2,R0
535 E880 LDI R24,0x80
536 E090 LDI R25,0
537 0E28 ADD R2,R24
538 1E39 ADC R3,R25
539 2FE4 MOV R30,R20
53A 27FF CLR R31
53B 0DE2 ADD R30,R2
53C 1DF3 ADC R31,R3
53D 9104 LPM R16,0(Z)
53E DFAA RCALL KS0108_12864LCD.C:LCD_Send_Byte
53F 9543 INC R20
540 3046 CPI R20,6
541 F348 BCS 0x052B
542 9621 ADIW R28,1
543 C105 RJMP pop_xgsetF03C
_LCD_Disp_String:
Video_Mode --> Y,+11
pString --> R20
Y --> R22
X --> R10
KS0108_12864LCD.C:LCD_Disp_String:
544 D0F1 RCALL push_xgsetF00C
545 2F62 MOV R22,R18
546 2EA0 MOV R10,R16
547 9723 SBIW R28,3
548 8549 LDD R20,Y+9
549 855A LDD R21,Y+10
54A C00B RJMP 0x0556
54B 840B LDD R0,Y+11
54C 820A STD Y+2,R0
54D 01FA MOVW R30,R20
54E 9024 LPM R2,2(Z)
54F 8228 STD Y+0,R2
550 2F26 MOV R18,R22
551 2D0A MOV R16,R10
552 DFD0 RCALL KS0108_12864LCD.C:LCD_Disp_a_Char
553 5F6A SUBI R22,0xFA
554 5F4F SUBI R20,0xFF
555 4F5F SBCI R21,0xFF
556 01FA MOVW R30,R20
557 9024 LPM R2,255(Z)
558 2022 TST R2
559 F789 BNE 0x054B
55A 9623 ADIW R28,3
55B C0DF RJMP pop_xgsetF00C
KS0108_12864LCD.C:LCD_Disp_Chinese_String:
_LCD_Disp_Chinese_String:
nm --> R10
cl --> R22
Video_Mode --> Y,+21
pCN_String --> Y,+19
Char_Gap --> Y,+17
Start_Char --> Y,+15
Char_Amount --> Y,+13
Char_Length --> R12
Y --> R14
X --> R20
55C D0C6 RCALL push_xgsetF0FC
55D 2EE2 MOV R14,R18
55E 2F40 MOV R20,R16
55F 9721 SBIW R28,1
560 84CB LDD R12,Y+11
561 24AA CLR R10
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -