📄 lcd6610.lis
字号:
0004 ;
0004 ; #define LCD_CMD_SLEEPIN 0x10
0004 ; #define LCD_CMD_CASET 0x2A
0004 ; #define LCD_CMD_PASET 0x2B
0004 ; #define LCD_CMD_RAMWR 0x2C
0004 ; #define MADCTL_VERT 0x68
0004 ;
0004 ;
0004 ; unsigned char Bmp004[]=
0004 ; {
0004 ; /*------------------------------------------------------------------------------
0004 ; 源文件 / 文字 : www.smart-io.com
0004 ; 宽×高(像素): 128×16
0004 ; 字模格式/大小 : 单色点阵液晶字模,横向取模,字节倒序/256字节
0004 ; 数据转换日期 : 2004-5-27 2:04:32
0004 ; ------------------------------------------------------------------------------*/
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x0C,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x08,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0xEB,0xEB,0xEB,0x00,0x7C,0x7F,0x3C,0x77,0x3E,0x00,0x0E,0x3C,0x00,0x38,0x3C,0x7F,
0004 ; 0x49,0x49,0x49,0x00,0x42,0x92,0x42,0x4C,0x08,0xFE,0x08,0x42,0x00,0x44,0x42,0x92,
0004 ; 0x49,0x49,0x49,0x00,0x02,0x92,0x78,0x04,0x08,0x00,0x08,0x42,0x00,0x02,0x42,0x92,
0004 ; 0x55,0x55,0x55,0x00,0x3C,0x92,0x44,0x04,0x08,0x00,0x08,0x42,0x00,0x02,0x42,0x92,
0004 ; 0x55,0x55,0x55,0x00,0x40,0x92,0x42,0x04,0x08,0x00,0x08,0x42,0x00,0x02,0x42,0x92,
0004 ; 0x22,0x22,0x22,0x06,0x42,0x92,0x42,0x04,0x08,0x00,0x08,0x42,0x06,0x44,0x42,0x92,
0004 ; 0x22,0x22,0x22,0x06,0x3E,0xB7,0xFC,0x1F,0x30,0x00,0x3E,0x3C,0x06,0x38,0x3C,0xB7,
0004 ; 0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0004 ; 0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF,0xFF
0004 ; };
0004 ;
0004 ; const unsigned char Bmp_ascii[]=
0004 ; {
0004 ; /*------------------------------------------------------------------------------
0004 ; 源文件 / 文字 : a ~Z
0004 ; 宽×高(像素): 5*7
0004 ; 字模格式/大小 : 单色点阵液晶字模,纵向取模,字节倒序/44字节
0004 ; 数据转换日期 : 2004-7-31 2:36:43
0004 ; ------------------------------------------------------------------------------*/
0004 ; 0x7E,0x81,0x81,0x81,0x7E,
0004 ; 0x00,0x82,0xFF,0x80,0x00,
0004 ; 0xC6,0xA1,0x91,0x89,0x86,
0004 ; 0x42,0x81,0x89,0x89,0x76,
0004 ; 0x30,0x2C,0x22,0xFF,0x20,
0004 ; 0x4F,0x89,0x89,0x89,0x71,
0004 ; 0x7E,0x89,0x89,0x89,0x72,
0004 ; 0x03,0x01,0xF9,0x07,0x01,
0004 ; 0x76,0x89,0x89,0x89,0x76,
0004 ; 0x4E,0x91,0x91,0x91,0x7E,
0004 ;
0004 ; 0x28,0x54,0x54,0x78,0x40,
0004 ; 0x01,0x7F,0x48,0x48,0x30,
0004 ; 0x38,0x44,0x44,0x4C,0x00,
0004 ; 0x30,0x48,0x49,0x7F,0x40,
0004 ; 0x38,0x54,0x54,0x58,0x00,
0004 ; 0x48,0x7E,0x49,0x49,0x01,
0004 ; 0x3A,0x55,0x55,0x53,0x21,
0004 ; 0x41,0x7F,0x08,0x48,0x70,
0004 ; 0x00,0x44,0x7D,0x40,0x00,
0004 ; 0x40,0x44,0x44,0x3D,0x00,
0004 ; 0x41,0x7F,0x10,0x68,0x4C,
0004 ; 0x00,0x41,0x7F,0x40,0x00,
0004 ; 0x7C,0x04,0x7C,0x04,0x78,
0004 ; 0x7C,0x04,0x04,0x78,0x00,
0004 ; 0x00,0x38,0x44,0x44,0x38,
0004 ; 0x42,0x7E,0x52,0x12,0x0C,
0004 ; 0x0C,0x12,0x52,0x7E,0x42,
0004 ; 0x44,0x7C,0x48,0x04,0x04,
0004 ; 0x4C,0x54,0x54,0x64,0x00,
0004 ; 0x04,0x3F,0x44,0x40,0x00,
0004 ; 0x3C,0x40,0x40,0x7C,0x40,
0004 ; 0x0C,0x30,0x60,0x30,0x0C,
0004 ; 0x0C,0x70,0x1C,0x70,0x0C,
0004 ; 0x44,0x6C,0x10,0x6C,0x44,
0004 ; 0x02,0x4E,0x50,0x70,0x0E,
0004 ; 0x00,0x64,0x54,0x4C,0x44
0004 ; };
0004 ;
0004 ;
0004 ; void LCD_write(unsigned char data,unsigned char dc);
0004 ; void LCD_contrast(unsigned char data);
0004 ; void lcd_ascii(char *s,unsigned char len);
0004 ; void lcd_color(unsigned char bkg,unsigned char text);
0004 ; void lcd_window(unsigned char xp,unsigned char yp,unsigned char xe,unsigned char ye);
0004 ; void lcd_gotoxy(unsigned char x, unsigned char y);
0004 ; void lcd_bar(unsigned char len,unsigned char val,unsigned char bkgcol,unsigned char fillcol);
0004 ; unsigned char lcd_bkg_color;
0004 ; unsigned char lcd_text_color;
0004 ; unsigned char lcd_x;
0004 ; unsigned char lcd_y;
0004 ;
0004 ;
0004 ;
0004 ; /***********LCD WRITE******************/
0004 ; /**********基础程序直接调用即可*********/
0004 ; void LCD_write(unsigned char data,unsigned char dc)
0004 ; {
0004 .dbline 128
0004 ; unsigned char temp;
0004 ;
0004 ; temp=0;
0004 4427 clr R20
0006 .dbline 129
0006 ; clr_lcd_data;
0006 C598 cbi 0x18,5
0008 .dbline 130
0008 ; clr_lcd_clk;
0008 C798 cbi 0x18,7
000A .dbline 132
000A ;
000A ; if (dc) set_lcd_data; /*dc=0 instrution*/
000A 2223 tst R18
000C 11F0 breq L2
000E .dbline 132
000E C59A sbi 0x18,5
0010 01C0 xjmp L3
0012 L2:
0012 .dbline 133
0012 ; else clr_lcd_data;
0012 C598 cbi 0x18,5
0014 L3:
0014 .dbline 134
0014 ; set_lcd_clk;
0014 C79A sbi 0x18,7
0016 .dbline 135
0016 ; clr_lcd_clk;
0016 C798 cbi 0x18,7
0018 .dbline 136
0018 ; if (data&0x80) set_lcd_data; //high 4 bit
0018 07FF sbrs R16,7
001A 02C0 rjmp L4
001C .dbline 136
001C C59A sbi 0x18,5
001E 01C0 xjmp L5
0020 L4:
0020 .dbline 137
0020 ; else clr_lcd_data;
0020 C598 cbi 0x18,5
0022 L5:
0022 .dbline 138
0022 ; set_lcd_clk;
0022 C79A sbi 0x18,7
0024 .dbline 139
0024 ; clr_lcd_clk;
0024 C798 cbi 0x18,7
0026 .dbline 140
0026 ; if (data&0x40) set_lcd_data;
0026 06FF sbrs R16,6
0028 02C0 rjmp L6
002A .dbline 140
002A C59A sbi 0x18,5
002C 01C0 xjmp L7
002E L6:
002E .dbline 141
002E ; else clr_lcd_data;
002E C598 cbi 0x18,5
0030 L7:
0030 .dbline 142
0030 ; set_lcd_clk;
0030 C79A sbi 0x18,7
0032 .dbline 143
0032 ; clr_lcd_clk;
0032 C798 cbi 0x18,7
0034 .dbline 144
0034 ; if (data&0x20) set_lcd_data;
0034 05FF sbrs R16,5
0036 02C0 rjmp L8
0038 .dbline 144
0038 C59A sbi 0x18,5
003A 01C0 xjmp L9
003C L8:
003C .dbline 145
003C ; else clr_lcd_data;
003C C598 cbi 0x18,5
003E L9:
003E .dbline 146
003E ; set_lcd_clk;
003E C79A sbi 0x18,7
0040 .dbline 147
0040 ; clr_lcd_clk;
0040 C798 cbi 0x18,7
0042 .dbline 148
0042 ; if (data&0x10) set_lcd_data;
0042 04FF sbrs R16,4
0044 02C0 rjmp L10
0046 .dbline 148
0046 C59A sbi 0x18,5
0048 01C0 xjmp L11
004A L10:
004A .dbline 149
004A ; else clr_lcd_data;
004A C598 cbi 0x18,5
004C L11:
004C .dbline 150
004C ; set_lcd_clk;
004C C79A sbi 0x18,7
004E .dbline 151
004E ; clr_lcd_clk;
004E C798 cbi 0x18,7
0050 .dbline 152
0050 ; if (data&0x08) set_lcd_data;//low 4 bit
0050 03FF sbrs R16,3
0052 02C0 rjmp L12
0054 .dbline 152
0054 C59A sbi 0x18,5
0056 01C0 xjmp L13
0058 L12:
0058 .dbline 153
0058 ; else clr_lcd_data;
0058 C598 cbi 0x18,5
005A L13:
005A .dbline 154
005A ; set_lcd_clk;
005A C79A sbi 0x18,7
005C .dbline 155
005C ; clr_lcd_clk;
005C C798 cbi 0x18,7
005E .dbline 156
005E ; if (data&0x04) set_lcd_data;
005E 02FF sbrs R16,2
0060 02C0 rjmp L14
0062 .dbline 156
0062 C59A sbi 0x18,5
0064 01C0 xjmp L15
0066 L14:
0066 .dbline 157
0066 ; else clr_lcd_data;
0066 C598 cbi 0x18,5
0068 L15:
0068 .dbline 158
0068 ; set_lcd_clk;
0068 C79A sbi 0x18,7
006A .dbline 159
006A ; clr_lcd_clk;
006A C798 cbi 0x18,7
006C .dbline 160
006C ; if (data&0x02) set_lcd_data;
006C 01FF sbrs R16,1
006E 02C0 rjmp L16
0070 .dbline 160
0070 C59A sbi 0x18,5
0072 01C0 xjmp L17
0074 L16:
0074 .dbline 161
0074 ; else clr_lcd_data;
0074 C598 cbi 0x18,5
0076 L17:
0076 .dbline 162
0076 ; set_lcd_clk;
0076 C79A sbi 0x18,7
0078 .dbline 163
0078 ; clr_lcd_clk;
0078 C798 cbi 0x18,7
007A .dbline 164
007A ; if (data&0x01) set_lcd_data;
007A 00FF sbrs R16,0
007C 02C0 rjmp L18
007E .dbline 164
007E C59A sbi 0x18,5
0080 01C0 xjmp L19
0082 L18:
0082 .dbline 165
0082 ; else clr_lcd_data;
0082 C598 cbi 0x18,5
0084 L19:
0084 .dbline 166
0084 ; set_lcd_clk;
0084 C79A sbi 0x18,7
0086 .dbline 167
0086 ; clr_lcd_clk;
0086 C798 cbi 0x18,7
0088 .dbline -2
0088 .dbline 168
0088 ; }
0088 L1:
0088 0E940000 xcall pop_gset1
008C .dbline 0 ; func end
008C 0895 ret
008E .dbsym r temp 20 c
008E .dbsym r dc 18 c
008E .dbsym r data 16 c
008E .dbend
008E .dbfunc e lcd_init _lcd_init fV
.even
008E _lcd_init::
008E .dbline -1
008E .dbline 173
008E ; /***********液晶初始化******************/
008E ; /**********基础程序直接调用即可*********/
008E ; /*****************************/
008E ; void lcd_init(void)
008E ; {
008E .dbline 174
008E ; clr_lcd_cs; //enable lcd
008E C398 cbi 0x18,3
0090 .dbline 175
0090 ; clr_lcd_reset;
0090 C498 cbi 0x18,4
0092 .dbline 176
0092 ; delay_ms(50);
0092 02E3 ldi R16,50
0094 10E0 ldi R17,0
0096 0E940000 xcall _delay_ms
009A .dbline 177
009A ; set_lcd_reset;
009A C49A sbi 0x18,4
009C .dbline 178
009C ; delay_ms(50);
009C 02E3 ldi R16,50
009E 10E0 ldi R17,0
00A0 0E940000 xcall _delay_ms
00A4 .dbline 180
00A4 ;
00A4 ; LCD_write(LCD_CMD_SWRESET,0);
00A4 2227 clr R18
00A6 01E0 ldi R16,1
00A8 ABDF xcall _LCD_write
00AA .dbline 181
00AA ; LCD_write(LCD_CMD_SLEEPOUT,0);
00AA 2227 clr R18
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -