⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ks0108.lis

📁 AVR(ATmega16)的LCD_KS0108控制器的驱动程序。
💻 LIS
📖 第 1 页 / 共 5 页
字号:
                        .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 + -