19264图形点阵液晶显示器(KS0108控制器)的显示驱动程序,程序兼容12864图形点阵液晶(KS0108控制器)显示
/*
以下为博主设计的硬件地址,该地址与实际设计相关
R/W D/I /CS1 /CS2 /CS3 E
A15 A14 A13 A12 A11 与A10有关
A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0
LCD_CON 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
LCD_R_CON 0 0 1 1 0 1 0 0 0 0 0 0 0 0 0 0
LCD_M_CON 0 0 1 0 1 1 0 0 0 0 0 0 0 0 0 0
LCD_L_CON 0 0 0 1 1 1 0 0 0 0 0 0 0 0 0 0
LCD_STATUS 1 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0
LCD_WR 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0
LCD_R_WR 0 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0
LCD_M_WR 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0
LCD_L_WR 0 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0
LCD_R_RD 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0
LCD_M_RD 1 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0
LCD_L_RD 1 1 0 1 1 1 0 0 0 0 0 0 0 0 0 0
*/
/*--------------------------------------------
19264图形点阵液晶显示器(KS0108控制器)自定义寄存器
--------------------------------------------*/
#define LCD_CON XBYTE[0x0400]
#define LCD_R_CON XBYTE[0x3400]
#define LCD_M_CON XBYTE[0x2C00]
#define LCD_L_CON XBYTE[0x1C00]
#define LCD_STATUS XBYTE[0x8400]
#define LCD_WR XBYTE[0x7C00]
#define LCD_R_WR XBYTE[0x7400]
#define LCD_M_WR XBYTE[0x6C00]
#define LCD_L_WR XBYTE[0x5C00]
#define LCD_R_RD XBYTE[0xF400]
#define LCD_M_RD XBYTE[0xEC00]
#define LCD_L_RD XBYTE[0xDC00]
/*
LCD_CON=0x3E(全屏关显示)
LCD_R_CON=0x3E(右屏关显示)
LCD_M_CON=0x3E(中屏关显示)
LCD_L_CON=0x3E(左屏关显示)
LCD_CON=0x3F(全屏开显示)
LCD_R_CON=0x3F(右屏开显示)
LCD_M_CON=0x3F(中屏开显示)
LCD_L_CON=0x3F(左屏开显示)
LCD_CON=11******(全屏设置显示起始行)
LCD_R_CON=11******(右屏设置显示起始行)
LCD_M_CON=11******(中屏设置显示起始行)
LCD_L_CON=11******(左屏设置显示起始行)
LCD_CON=10111***(设置页地址)
LCD_CON=01******(设置列地址)
LCD_R_CON=10111***(设置右屏页地址)
LCD_R_CON=01******(设置右屏列地址)
LCD_M_CON=10111***(设置中屏页地址)
LCD_M_CON=01******(设置中屏列地址)
LCD_L_CON=10111***(设置左屏页地址)
LCD_L_CON=01******(设置左屏列地址)
A=LCD_STATUS(读状态:BUSY,0,ON/OFF,RST,0,0,0,0)
LCD_WR=********(写数据)
LCD_R_WR=********(右屏写数据)
LCD_M_WR=********(中屏写数据)
LCD_L_WR=********(左屏写数据)
A=LCD_R_RD(右屏读数据)
A=LCD_M_RD(中屏读数据)
A=LCD_L_RD(左屏读数据)
*/
KS0108控制器指令说明:
以下为驱动函数声明,源代码见附件。
/****************************************************************************************
*NAME: void LCDDisplay(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char code *data_adr,unsigned char Overlap)
*FUNCTION: LCD显示函数,适用于19264图形点阵液晶(KS0108控制器)显示,兼容12864图形点阵液晶(KS0108控制器)显示
*Parameter: x0,y0,x1,y1分别为方块左上角和右下角的点阵坐标,*data_adr为图形方块数据存储地址,Overlap为是否进行写覆盖操作标志,1为重叠,0为覆盖
*RETURN: 无返回值
*CREATED BY: 青山Blog
*CREATED DATE:2011.05.23
*****************************************************************************************/
void LCDDisplay(unsigned char x0,unsigned char y0,unsigned char x1,unsigned char y1,unsigned char code *data_adr,unsigned char Overlap);
只要确保y向即列向坐标值不超过128,该驱动函数完全兼容12864图形点阵液晶(KS0108控制器)显示,当然若觉得驱动函数中多了19264液晶得显示代码,下面附件中的驱动显示函数即为12864图形点阵液晶(KS0108控制器)的驱动函数,只要液晶寄存器地址定义根据实际硬件设计做相应修改即可。
19264LCDDISPLAY.h:attachment download
12864LCDDISPLAY.h:attachment download
KS0108 控制器系列液晶模块使用说明书:
attachment download青山Blog http://blog.ednchina.com/qingshan
net_zhang521_239294929 2015-4-9 18:02
用户1407317 2013-5-18 20:14
用户424277 2012-9-28 17:24
用户428375 2012-9-28 11:30
用户416919 2012-7-15 11:54
用户421922 2012-1-24 10:35
不错,挺详细的,配一个头文件就可用了
用户966982 2011-6-11 09:02