📄 ks0108.lis
字号:
.module KS0108.c
.area text(rom, con, rel)
0000 .dbfile D:/PROGRA~1/AVRTOO~1/Icc/include/delay.h
0000 .dbfunc e delay_1us _delay_1us fV
.even
0000 _delay_1us::
0000 .dbline -1
0000 .dbline 2
0000 ;
0000 ; /*----------------------------------
0000 .dbline 3
0000 ; 成功地LCD_ks0108(128*64)!
0000 0000 nop
0002 .dbline -2
0002 L1:
0002 .dbline 0 ; func end
0002 0895 ret
0004 .dbend
0004 .dbfunc e delay_nus _delay_nus fV
0004 ; i -> R20,R21
0004 ; n -> R22,R23
.even
0004 _delay_nus::
0004 0E940000 xcall push_gset2
0008 B801 movw R22,R16
000A .dbline -1
000A .dbline 7
000A ; 可显示字符,汉字,图象,并可滚动显示!
000A ; LGM12641BS1R--KS0108 Driver
000A ; 2007.4.14
000A ; -------------------------------------*/
000A .dbline 8
000A ;
000A 4427 clr R20
000C 5527 clr R21
000E .dbline 9
000E ; #include <iom16v.h>
000E 03C0 xjmp L6
0010 L3:
0010 .dbline 10
0010 F7DF xcall _delay_1us
0012 L4:
0012 .dbline 9
0012 4F5F subi R20,255 ; offset = 1
0014 5F4F sbci R21,255
0016 L6:
0016 .dbline 9
0016 4617 cp R20,R22
0018 5707 cpc R21,R23
001A D0F3 brlo L3
001C .dbline -2
001C L2:
001C 0E940000 xcall pop_gset2
0020 .dbline 0 ; func end
0020 0895 ret
0022 .dbsym r i 20 i
0022 .dbsym r n 22 i
0022 .dbend
0022 .dbfunc e delay_1ms _delay_1ms fV
0022 ; i -> R16,R17
.even
0022 _delay_1ms::
0022 .dbline -1
0022 .dbline 14
0022 ; #include <macros.h>
0022 ; #include <delay.h>
0022 ; #include "LCD.h"
0022 ; #include "zimo2.h"
0022 ;
0022 .dbline 16
0022 0027 clr R16
0024 1127 clr R17
0026 02C0 xjmp L11
0028 L8:
0028 .dbline 16
0028 L9:
0028 .dbline 16
0028 0F5F subi R16,255 ; offset = 1
002A 1F4F sbci R17,255
002C L11:
002C .dbline 16
002C ; #define uchar unsigned char
002C ; #define uint unsigned int
002C 0437 cpi R16,116
002E E4E0 ldi R30,4
0030 1E07 cpc R17,R30
0032 D0F3 brlo L8
0034 .dbline -2
0034 L7:
0034 .dbline 0 ; func end
0034 0895 ret
0036 .dbsym r i 16 i
0036 .dbend
0036 .dbfunc e delay_nms _delay_nms fV
0036 ; i -> R20,R21
0036 ; n -> R22,R23
.even
0036 _delay_nms::
0036 0E940000 xcall push_gset2
003A B801 movw R22,R16
003C .dbline -1
003C .dbline 20
003C ;
003C ; void main()
003C ; {uchar i=0;
003C ; LCD_Init();
003C .dbline 21
003C ; /* LCD_WriteCH(0,4,L,X1);
003C 4427 clr R20
003E 5527 clr R21
0040 .dbline 22
0040 ; LCD_WriteHZ(2,0,L,hz5);
0040 03C0 xjmp L16
0042 L13:
0042 .dbline 23
0042 EFDF xcall _delay_1ms
0044 L14:
0044 .dbline 22
0044 4F5F subi R20,255 ; offset = 1
0046 5F4F sbci R21,255
0048 L16:
0048 .dbline 22
0048 4617 cp R20,R22
004A 5707 cpc R21,R23
004C D0F3 brlo L13
004E .dbline -2
004E L12:
004E 0E940000 xcall pop_gset2
0052 .dbline 0 ; func end
0052 0895 ret
0054 .dbsym r i 20 i
0054 .dbsym r n 22 i
0054 .dbend
0054 .dbfile C:\DOCUME~1\wpzhao.USTC\MYDOCU~1\我的文档\我的ICC\LCD_KS0108/LCD.h
0054 .dbfunc e LCD_WriteC _LCD_WriteC fV
0054 ; cmd -> R20
.even
0054 _LCD_WriteC::
0054 0E940000 xcall push_gset1
0058 402F mov R20,R16
005A .dbline -1
005A .dbline 62
005A ; LCD_WriteHZ(3,0,L,hz5);
005A ; LCD_WriteHZ(4,0,L,hz5);
005A ; LCD_WriteHZ(5,0,L,hz5);
005A ; LCD_WriteHZ(6,0,L,hz5);
005A ;
005A ; LCD_WriteCH(0,14,L,MaoHao);
005A ;
005A ; LCD_WriteCH(0,24,L,X4);
005A ; LCD_WriteHZ(4,20,L,hz5);
005A ; LCD_WriteHZ(5,20,L,hz5);
005A ; LCD_WriteHZ(6,20,L,hz5);
005A ;
005A ; LCD_WriteCH(0,34,L,MaoHao);
005A ;
005A ; LCD_WriteCH(0,44,L,X3);
005A ; LCD_WriteHZ(5,40,L,hz5);
005A ; LCD_WriteHZ(6,40,L,hz5);
005A ;
005A ; LCD_WriteCH(0,56,L,MaoHao);
005A ;
005A ; LCD_WriteHZ(0,10,R,X3);
005A ; LCD_WriteHZ(6,0,R,hz5);
005A ;
005A ; LCD_WriteHZ(3,20,R,hz5);
005A ; LCD_WriteHZ(4,20,R,hz5);
005A ; LCD_WriteHZ(5,20,R,hz5);
005A ; LCD_WriteHZ(6,20,R,hz5);
005A ; LCD_WriteHZ(4,40,R,hz5);
005A ; LCD_WriteHZ(5,40,R,hz5);
005A ; LCD_WriteHZ(6,40,R,hz5);
005A ; LCD_WriteHZ(6,40,R,hz5);*/
005A ;
005A ; /* LCD_WriteHZ(0,16,L,hz0);
005A ; LCD_WriteHZ(1,32,L,hz1);
005A ; LCD_WriteHZ(2,48,L,hz2);
005A ; LCD_WriteHZ(3,0,R,hz3);
005A ; LCD_WriteHZ(4,16,R,hz4);
005A ; delay_nms(2500);
005A ; while(1){
005A ; Set_Startline(i++);
005A .dbline 62
005A DB98 cbi 0x1b,3
005C .dbline 63
005C ; if(i==64) i=0;
005C DA98 cbi 0x1b,2
005E .dbline 64
005E ; LCD_WritePIC(0,8,Hello);} */
005E DC98 cbi 0x1b,4
0060 .dbline 65
0060 ; LCD_WritePIC(0,8,Hello);
0060 48BB out 0x18,R20
0062 .dbline 66
0062 ; delay_nms(500);
0062 DC9A sbi 0x1b,4
0064 .dbline 67
0064 ; LCD_WritePIC(0,8,psc);
0064 01E0 ldi R16,1
0066 10E0 ldi R17,0
0068 CDDF xcall _delay_nus
006A .dbline 68
006A ; delay_nms(500);
006A DC98 cbi 0x1b,4
006C .dbline 69
006C ; LCD_WritePIC(0,8,gui);
006C 04E1 ldi R16,20
006E 10E0 ldi R17,0
0070 C9DF xcall _delay_nus
0072 .dbline -2
0072 L17:
0072 0E940000 xcall pop_gset1
0076 .dbline 0 ; func end
0076 0895 ret
0078 .dbsym r cmd 20 c
0078 .dbend
0078 .dbfunc e LCD_WriteD _LCD_WriteD fV
0078 ; data -> R20
.even
0078 _LCD_WriteD::
0078 0E940000 xcall push_gset1
007C 402F mov R20,R16
007E .dbline -1
007E .dbline 72
007E ; }
007E ; }
007E ; }
007E .dbline 72
007E DB98 cbi 0x1b,3
0080 .dbline 73
0080 ; }
0080 DA9A sbi 0x1b,2
0082 .dbline 74
0082 ; }
0082 DC98 cbi 0x1b,4
0084 .dbline 75
0084 ; }
0084 48BB out 0x18,R20
0086 .dbline 76
0086 ; }
0086 DC9A sbi 0x1b,4
0088 .dbline 77
0088 ; }
0088 01E0 ldi R16,1
008A 10E0 ldi R17,0
008C BBDF xcall _delay_nus
008E .dbline 78
008E ; }
008E DC98 cbi 0x1b,4
0090 .dbline 79
0090 ; }
0090 04E1 ldi R16,20
0092 10E0 ldi R17,0
0094 B7DF xcall _delay_nus
0096 .dbline -2
0096 L18:
0096 0E940000 xcall pop_gset1
009A .dbline 0 ; func end
009A 0895 ret
009C .dbsym r data 20 c
009C .dbend
009C .dbfunc e Set_XY _Set_XY fV
009C ; y -> R20
009C ; x -> R22
.even
009C _Set_XY::
009C 0E940000 xcall push_gset2
00A0 422F mov R20,R18
00A2 602F mov R22,R16
00A4 .dbline -1
00A4 .dbline 87
00A4 ; }
00A4 ; }
00A4 ; }
00A4 ; }
00A4 ; }
00A4 ; }
00A4 ; }
00A4 ; }
00A4 .dbline 87
00A4 6854 subi R22,72 ; addi 184
00A6 .dbline 88
00A6 ; }
00A6 405C subi R20,192 ; addi 64
00A8 .dbline 89
00A8 ; }
00A8 062F mov R16,R22
00AA D4DF xcall _LCD_WriteC
00AC .dbline 90
00AC ; }
00AC 042F mov R16,R20
00AE D2DF xcall _LCD_WriteC
00B0 .dbline -2
00B0 L19:
00B0 0E940000 xcall pop_gset2
00B4 .dbline 0 ; func end
00B4 0895 ret
00B6 .dbsym r y 20 c
00B6 .dbsym r x 22 c
00B6 .dbend
00B6 .dbfunc e Set_Startline _Set_Startline fV
00B6 ; i -> R20
.even
00B6 _Set_Startline::
00B6 0E940000 xcall push_gset1
00BA 402F mov R20,R16
00BC .dbline -1
00BC .dbline 96
00BC ; }
00BC ; }
00BC ; }
00BC ; }
00BC ; }
00BC ; }
00BC .dbline 97
00BC ; }
00BC 042F mov R16,R20
00BE 0054 subi R16,64 ; addi 192
00C0 C9DF xcall _LCD_WriteC
00C2 .dbline -2
00C2 L20:
00C2 0E940000 xcall pop_gset1
00C6 .dbline 0 ; func end
00C6 0895 ret
00C8 .dbsym r i 20 c
00C8 .dbend
00C8 .dbfunc e LCD_Select _LCD_Select fV
00C8 ; x -> R16
.even
00C8 _LCD_Select::
00C8 .dbline -1
00C8 .dbline 104
00C8 ; }
00C8 ; }
00C8 ; }
00C8 ; }
00C8 ; }
00C8 ; }
00C8 ; }
00C8 .dbline 104
00C8 0031 cpi R16,16
00CA 19F4 brne L22
00CC .dbline 104
00CC .dbline 105
00CC ; }
00CC D89A sbi 0x1b,0
00CE .dbline 106
00CE ; }
00CE D998 cbi 0x1b,1
00D0 .dbline 106
00D0 0CC0 xjmp L23
00D2 L22:
00D2 .dbline 107
00D2 ; }
00D2 0032 cpi R16,32
00D4 19F4 brne L24
00D6 .dbline 107
00D6 .dbline 108
00D6 ; }
00D6 D898 cbi 0x1b,0
00D8 .dbline 109
00D8 ; }
00D8 D99A sbi 0x1b,1
00DA .dbline 109
00DA 07C0 xjmp L25
00DC L24:
00DC .dbline 110
00DC ; }
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -