微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > GXM12864图形液晶显示模块驱动程序

GXM12864图形液晶显示模块驱动程序

时间:11-21 来源:互联网 点击:
GXM12864是一种采用低功耗CMOS技术实现的点阵图形LCD模块,内含KS0108B/HD61202控制器,CSA与KS0108B(1)连通!CSB与KS0108B(2)连通!CSA/CSB为01时选通KS0108B(1);为10时选通CSB与KS0108B(2),为其他值时!禁止选通!总线处于高阻状态!

硬件原理为PO口接DB0-DB7的8位双向数据总线!
KS0108B 指令集
1:显示开关指令: R/W=0;D/I=0; 开:0X3F; 关:0X3E
2:显示起始行指令:R/W=0;D/I=0;8位数据高2位为1 后6位位起始巷(0-63)
3:页设置指令:R/W=0;D/I=0; 前5位恒定为10111!后三位为页号(0-7)
4:列地址设置指令:R/W=0;D/I=0;;高2位为01;后6位为列地址(0-63)
5:读状态指令:R/W=1;D/I=0;DB7:BUZY 1忙 0 正常 DB6:0 DB5: ON/OFF ON 显示打开 OFF 显示关闭 DB4:RESET 1 复位状态 0 正常状态 DB3-DB0 0000
6:写数据指令:R/W=0;D/I=1;DB7-DB0 为要写入的数据
7:读数据指令:R/W=1;D/I=1;DB7-DB0 为要读显示的数据

#define LCD XBYTE[0XFFFF] //LCD端口
#define CSA P2_0 //片选1
#define CSB P2_1 //片选2
#define E P2_2 //使能信号,高电平有效
#define R/W P2_3 //读写选择
#define D/I p2_4 //指令数据通道

sbit busy=ACC^7; //LCD状态字节第7位

void send_lcd(unsigned char i) //发命令到主窗口
{
CSA=1; //选通1
CSB=0;
R/W=1;
D/I=0;//读状态
do(ACC=LCD)
while(busy) //等待空闲
R/W=0;
LCD=i;
}

void wrie_lcd(unsigned char i) //写命令到主窗口
{
CSA=1; //选通1
CSB=0;
R/W=1;
D/I=0;//读状态
do(ACC=LCD)
while(busy) //等待空闲
R/W=0;
D/I=1; //写数据状态
LCD=i;
}
unsigned char read_lcd(void) //读数据
{
unsigned char i;
P0=0xff;
CSA=1; //选通1
CSB=0;
R/W=1;
D/I=0;//读状态
do(ACC=LCD)
while(busy) //等待空闲
D/I=1; //读数据状态
i=P0&0xff;
return i;
}

void clr_lcd(void) //清屏
{
unsigned char page,i;
for(page=0xb8;page<0xc0;page++)
{
send_lcd(page);
send_lcd(0x40); //设置显示列地址
for(i=0;i<64;i++)
write_lcd(0);
}
}

void initial(void);
{
send_lcd(0x3f); //开显示
send_lcd(0xc0); //设置起始行为第一行
}


上一篇:PIC 外部中断INT0
下一篇:PIC MSSP_SPI_74HC595

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top