1.lis
来自「这是个lcd12864液晶的串行驱动程序」· LIS 代码 · 共 1,496 行 · 第 1/4 页
LIS
1,496 行
02E0 0000 .byte 0,0
02E2 0000 .byte 0,0
02E4 0000 .byte 0,0
02E6 0718 .byte 7,24
02E8 2020 .byte 32,32
02EA 2010 .byte 32,16
02EC 0800 .byte 8,0
02EE 0000 .byte 0,0
02F0 8080 .byte 128,128
02F2 8080 .byte 128,128
02F4 8080 .byte 128,128
02F6 8000 .byte 128,0
02F8 8080 .byte 128,128
02FA 8000 .byte 128,0
02FC 0080 .byte 0,128
02FE 8080 .byte 128,128
0300 203F .byte 32,63
0302 2000 .byte 32,0
0304 3F20 .byte 63,32
0306 003F .byte 0,63
0308 0001 .byte 0,1
030A 0E30 .byte 14,48
030C 0806 .byte 8,6
030E 0100 .byte 1,0
0310 .dbsym e HZK _HZK A[576:576]kc
.area text(rom, con, rel)
0000 .dbfile G:\test\lcd\1\1.c
0000 .dbfunc e Wleft_Cmad _Wleft_Cmad fV
0000 ; Lstate -> R20
0000 ; Lcmd -> R16
.even
0000 _Wleft_Cmad::
0000 0E940000 xcall push_gset1
0004 .dbline -1
0004 .dbline 98
0004 ; //mega8515 lcd of ks108
0004 ; //
0004 ; //-----------------------------------------------------------------------------
0004 ; // Includes
0004 ; //-----------------------------------------------------------------------------
0004 ; #include <iom16v.h>
0004 ; #include <macros.h>
0004 ; typedef unsigned char uchar;
0004 ; typedef unsigned int uint;
0004 ; //-----------------------------------------------------------------------------
0004 ; // DB0-DB7=PA
0004 ; // CSA = PC7 // Select left or right LCD.
0004 ; // CSB = PC6 // Select left or right LCD.
0004 ; // DI = PB2 // Select Rigster LCD.
0004 ; // RW = PB1 // Read or Write LCD.
0004 ; // EN = PB0;
0004 ; //-----------------------------------------------------------------------------
0004 ; /* 定义12864端口 */
0004 ; //DATA_PORT=PORTA
0004 ; #define DATA PORTA
0004 ; //CSA=PC7
0004 ; #define CSA_H asm("sbi 0x15,7")
0004 ; #define CSA_L asm("cbi 0x15,7")
0004 ; //CSB=PC6
0004 ; #define CSB_H asm("sbi 0x15,6")
0004 ; #define CSB_L asm("cbi 0x15,6")
0004 ; //DI=PB2
0004 ; #define DI_H asm("sbi 0x18,2")
0004 ; #define DI_L asm("cbi 0x18,2")
0004 ; //RW=PB1
0004 ; #define RW_H asm("sbi 0x18,1")
0004 ; #define RW_L asm("cbi 0x18,1")
0004 ; //EN=PB0
0004 ; #define EN_H asm("sbi 0x18,0")
0004 ; #define EN_L asm("cbi 0x18,0")
0004 ;
0004 ; //-----------------------------------------------------------------------------
0004 ; // Data for display.
0004 ; //-----------------------------------------------------------------------------
0004 ; const uchar Dig[] = {
0004 ; 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x0F,0x10,0x20,0x20,0x10,0x0F,0x00, // 0
0004 ; 0x00,0x10,0x10,0xF8,0x00,0x00,0x00,0x00,0x00,0x20,0x20,0x3F,0x20,0x20,0x00,0x00, // 1
0004 ; 0x00,0x70,0x08,0x08,0x08,0x88,0x70,0x00,0x00,0x30,0x28,0x24,0x22,0x21,0x30,0x00, // 2
0004 ; 0x00,0x30,0x08,0x88,0x88,0x48,0x30,0x00,0x00,0x18,0x20,0x20,0x20,0x11,0x0E,0x00, // 3
0004 ; 0x00,0x00,0xC0,0x20,0x10,0xF8,0x00,0x00,0x00,0x07,0x04,0x24,0x24,0x3F,0x24,0x00, // 4
0004 ; 0x00,0xF8,0x08,0x88,0x88,0x08,0x08,0x00,0x00,0x19,0x21,0x20,0x20,0x11,0x0E,0x00, // 5
0004 ; 0x00,0xE0,0x10,0x88,0x88,0x18,0x00,0x00,0x00,0x0F,0x11,0x20,0x20,0x11,0x0E,0x00, // 6
0004 ; 0x00,0x38,0x08,0x08,0xC8,0x38,0x08,0x00,0x00,0x00,0x00,0x3F,0x00,0x00,0x00,0x00, // 7
0004 ; 0x00,0x70,0x88,0x08,0x08,0x88,0x70,0x00,0x00,0x1C,0x22,0x21,0x21,0x22,0x1C,0x00, // 8
0004 ; 0x00,0xE0,0x10,0x08,0x08,0x10,0xE0,0x00,0x00,0x00,0x31,0x22,0x22,0x11,0x0F,0x00, // 9
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x30,0x00,0x00,0x00,0x00,0x00, // .[10]
0004 ; 0xF0,0x08,0xF0,0x00,0xE0,0x18,0x00,0x00,0x00,0x21,0x1C,0x03,0x1E,0x21,0x1E,0x00, // %[11]
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00 // [12]
0004 ; };
0004 ;
0004 ; const uchar HZK[] = {
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x10,0x48,0x56,0xD4,0x54,0xD4,0x54,0x54, // 氧量:[0]
0004 ; 0x54,0xD4,0x04,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x40,0x7C,0x54,0x54,0x54,0x54,0x54,0x54,
0004 ; 0x54,0x7E,0x44,0x40,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x15,0x15,0x15,0x7F,0x15,0x15,0x15,
0004 ; 0x00,0x1F,0x20,0x40,0x78,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x50,0x5F,0x55,0x55,0x55,0x7F,0x55,0x55,
0004 ; 0x55,0x5F,0x50,0x40,0x00,0x00,0x00,0x00,0x31,0x31,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0xC2,0x0C,0xC0,0x00,0xFC,0x94,0x94,0x94, // 温度:[4]
0004 ; 0x94,0x94,0xFE,0x04,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xF8,0x08,0x28,0x28,0xF8,0xAA,0xAC,0xA8,
0004 ; 0xF8,0x28,0x2C,0x08,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x04,0x7C,0x03,0x40,0x7E,0x42,0x42,0x7E,0x42,
0004 ; 0x7E,0x42,0x42,0x7E,0x40,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x30,0x0F,0x40,0x42,0x42,0x26,0x2A,0x12,0x2A,
0004 ; 0x26,0x42,0x40,0x40,0x00,0x00,0x00,0x00,0x31,0x31,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x90,0x90,0xFE,0x50,0x10,0x40,0x90, // 热电势[8]
0004 ; 0x7E,0x10,0x10,0xF8,0x10,0x80,0x00,0x00,0x00,0xF0,0x90,0x90,0x90,0xFE,0x90,0x90,
0004 ; 0x90,0x90,0xF8,0x10,0x00,0x00,0x48,0x48,0x48,0xFE,0x28,0x28,0x80,0x48,0xBE,0x08,
0004 ; 0x08,0xF8,0x00,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x40,0x34,0x07,0x10,0x64,0x02,0x11,
0004 ; 0x61,0x02,0x00,0x13,0x64,0x07,0x00,0x00,0x00,0x0F,0x04,0x04,0x04,0x3F,0x44,0x44,
0004 ; 0x44,0x44,0x47,0x40,0x70,0x00,0x40,0x44,0x45,0x25,0x14,0x0F,0x04,0x04,0x24,0x44,
0004 ; 0x3E,0x04,0x01,0x03,0x00,0x00,0x00,0x00,0x31,0x31,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x20,0x10,0x48,0x56,0xD4,0x54,0xD4,0x54, // 氧电势[12]
0004 ; 0x54,0x54,0xD4,0x04,0x04,0x00,0x00,0x00,0x00,0xF0,0x90,0x90,0x90,0xFE,0x90,0x90,
0004 ; 0x90,0x90,0xF8,0x10,0x00,0x00,0x48,0x48,0x48,0xFE,0x28,0x28,0x80,0x48,0xBE,0x08,
0004 ; 0x08,0xF8,0x00,0x80,0x00,0x00,0x00,0x00,0x80,0x80,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x11,0x15,0x15,0x15,0x7F,0x15,0x15,
0004 ; 0x15,0x00,0x1F,0x20,0x40,0x78,0x00,0x00,0x00,0x0F,0x04,0x04,0x04,0x3F,0x44,0x44,
0004 ; 0x44,0x44,0x47,0x40,0x70,0x00,0x40,0x44,0x45,0x25,0x14,0x0F,0x04,0x04,0x24,0x44,
0004 ; 0x3E,0x04,0x01,0x03,0x00,0x00,0x00,0x00,0x31,0x31,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x18,0x24,0x24,0x18,0xC0,0x30,0x08,0x08,0x08,0x08,0x38,0x00,0x00,0x00, // C:[16]
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x07,0x18,0x20,0x20,0x20,0x10,0x08,0x00,0x00,0x00,
0004 ; 0x80,0x80,0x80,0x80,0x80,0x80,0x80,0x00,0x80,0x80,0x80,0x00,0x00,0x80,0x80,0x80, // mv[17]
0004 ; 0x20,0x3F,0x20,0x00,0x3F,0x20,0x00,0x3F,0x00,0x01,0x0E,0x30,0x08,0x06,0x01,0x00
0004 ; };
0004 ; //-----------------------------------------------------------------------------
0004 ; // LCD:Write instraction code at left.
0004 ; //-----------------------------------------------------------------------------
0004 ; void Wleft_Cmad(unsigned char Lcmd)
0004 ; {
0004 .dbline 100
0004 ; unsigned char Lstate;
0004 ; CSA_L; CSB_H;
0004 AF98 cbi 0x15,7
0006 .dbline 100
0006 AE9A sbi 0x15,6
0008 .dbline 101
0008 ; DI_L; RW_H;
0008 C298 cbi 0x18,2
000A .dbline 101
000A C19A sbi 0x18,1
000C .dbline 102
000C ; DDRA=0x00;//a口设为输入
000C 2224 clr R2
000E 2ABA out 0x1a,R2
0010 .dbline 103
0010 ; PORTA=0x00;
0010 2BBA out 0x1b,R2
0012 L2:
0012 .dbline 105
0012 ; do
0012 ; { EN_H;
0012 .dbline 105
0012 C09A sbi 0x18,0
0014 .dbline 106
0014 ; Lstate = PINA;
0014 49B3 in R20,0x19
0016 .dbline 107
0016 ; EN_L;
0016 C098 cbi 0x18,0
0018 .dbline 108
0018 L3:
0018 .dbline 108
0018 ; }while(Lstate & 0x80) ;
0018 47FD sbrc R20,7
001A FBCF rjmp L2
001C .dbline 109
001C ; DDRA=0xff;
001C 8FEF ldi R24,255
001E 8ABB out 0x1a,R24
0020 .dbline 110
0020 ; RW_L;
0020 C198 cbi 0x18,1
0022 .dbline 111
0022 ; DATA = Lcmd;
0022 0BBB out 0x1b,R16
0024 .dbline 112
0024 ; EN_H;
0024 C09A sbi 0x18,0
0026 .dbline 113
0026 ; EN_L;
0026 C098 cbi 0x18,0
0028 .dbline -2
0028 L1:
0028 0E940000 xcall pop_gset1
002C .dbline 0 ; func end
002C 0895 ret
002E .dbsym r Lstate 20 c
002E .dbsym r Lcmd 16 c
002E .dbend
002E .dbfunc e Wleft_Data _Wleft_Data fV
002E ; Lstate -> R20
002E ; Ldat -> R16
.even
002E _Wleft_Data::
002E 0E940000 xcall push_gset1
0032 .dbline -1
0032 .dbline 119
0032 ; }
0032 ; //-----------------------------------------------------------------------------
0032 ; // LCD:Write Data at left.
0032 ; //-----------------------------------------------------------------------------
0032 ; void Wleft_Data(unsigned char Ldat)
0032 ; {
0032 .dbline 121
0032 ; unsigned char Lstate;
0032 ; CSA_L; CSB_H;
0032 AF98 cbi 0x15,7
0034 .dbline 121
0034 AE9A sbi 0x15,6
0036 .dbline 122
0036 ; DI_L;
0036 C298 cbi 0x18,2
0038 .dbline 123
0038 ; RW_H;
0038 C19A sbi 0x18,1
003A .dbline 124
003A ; DDRA=0x00;
003A 2224 clr R2
003C 2ABA out 0x1a,R2
003E .dbline 125
003E ; PORTA=0x00;
003E 2BBA out 0x1b,R2
0040 L6:
0040 .dbline 127
0040 ; do
0040 ; { EN_H;
0040 .dbline 127
0040 C09A sbi 0x18,0
0042 .dbline 128
0042 ; Lstate = PINA;
0042 49B3 in R20,0x19
0044 .dbline 129
0044 ; EN_L;
0044 C098 cbi 0x18,0
0046 .dbline 130
0046 L7:
0046 .dbline 130
0046 ; }while(Lstate & 0x80);
0046 47FD sbrc R20,7
0048 FBCF rjmp L6
004A .dbline 131
004A ; DDRA=0xff;
004A 8FEF ldi R24,255
004C 8ABB out 0x1a,R24
004E .dbline 132
004E ; DI_H;
004E C29A sbi 0x18,2
0050 .dbline 133
0050 ; RW_L;
0050 C198 cbi 0x18,1
0052 .dbline 134
0052 ; DATA = Ldat;
0052 0BBB out 0x1b,R16
0054 .dbline 135
0054 ; EN_H;
0054 C09A sbi 0x18,0
0056 .dbline 136
0056 ; EN_L;
0056 C098 cbi 0x18,0
0058 .dbline -2
0058 L5:
0058 0E940000 xcall pop_gset1
005C .dbline 0 ; func end
005C 0895 ret
005E .dbsym r Lstate 20 c
005E .dbsym r Ldat 16 c
005E .dbend
005E .dbfunc e Wrigt_Cmad _Wrigt_Cmad fV
005E ; Lstate -> R20
005E ; Rcmd -> R16
.even
005E _Wrigt_Cmad::
005E 0E940000 xcall push_gset1
0062 .dbline -1
0062 .dbline 142
0062 ; }
0062 ; //-----------------------------------------------------------------------------
0062 ; // LCD:Write instraction code at Right.
0062 ; //-----------------------------------------------------------------------------
0062 ; void Wrigt_Cmad(unsigned char Rcmd)
0062 ; {
0062 .dbline 144
0062 ; unsigned char Lstate;
0062 ; CSA_H; CSB_L;
0062 AF9A sbi 0x15,7
0064 .dbline 144
0064 AE98 cbi 0x15,6
0066 .dbline 145
0066 ; DI_L;
0066 C298 cbi 0x18,2
0068 .dbline 146
0068 ; RW_H;
0068 C19A sbi 0x18,1
006A .dbline 147
006A ; DDRA=0x00;
006A 2224 clr R2
006C 2ABA out 0x1a,R2
006E .dbline 148
006E ; PORTA=0x00;
006E 2BBA out 0x1b,R2
0070 L10:
0070 .dbline 150
0070 ; do
0070 ; { EN_H;
0070 .dbline 150
0070 C09A sbi 0x18,0
0072 .dbline 151
0072 ; Lstate = PINA;
0072 49B3 in R20,0x19
0074 .dbline 152
0074 ; EN_L;
0074 C098 cbi 0x18,0
0076 .dbline 153
0076 L11:
0076 .dbline 153
0076 ; }while(Lstate & 0x80) ;
0076 47FD sbrc R20,7
0078 FBCF rjmp L10
007A .dbline 154
007A ; DDRA=0xff;
007A 8FEF ldi R24,255
007C 8ABB out 0x1a,R24
007E .dbline 155
007E ; RW_L;
007E C198 cbi 0x18,1
0080 .dbline 156
0080 ; DATA = Rcmd;
0080 0BBB out 0x1b,R16
0082 .dbline 157
0082 ; EN_H;
0082 C09A sbi 0x18,0
0084 .dbline 158
0084 ; EN_L;
0084 C098 cbi 0x18,0
0086 .dbline -2
0086 L9:
0086 0E940000 xcall pop_gset1
008A .dbline 0 ; func end
008A 0895 ret
008C .dbsym r Lstate 20 c
008C .dbsym r Rcmd 16 c
008C .dbend
008C .dbfunc e Wrigt_Data _Wrigt_Data fV
008C ; Lstate -> R20
008C ; Rdat -> R16
.even
008C _Wrigt_Data::
008C 0E940000 xcall push_gset1
0090 .dbline -1
0090 .dbline 164
0090 ; }
0090 ; //-----------------------------------------------------------------------------
0090 ; // LCD:Write Data at right.
0090 ; //-----------------------------------------------------------------------------
0090 ; void Wrigt_Data(unsigned char Rdat)
0090 ; {
0090 .dbline 166
0090 ; unsigned char Lstate;
0090 ; CSA_H; CSB_L;
0090 AF9A sbi 0x15,7
0092 .dbline 166
0092 AE98 cbi 0x15,6
0094 .dbline 167
0094 ; DI_L;
0094 C298 cbi 0x18,2
0096 .dbline 168
0096 ; RW_H;
0096 C19A sbi 0x18,1
0098 .dbline 169
0098 ; DDRA=0x00;
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?