新聞中心

EEPW首頁(yè) > 嵌入式系統(tǒng) > 設(shè)計(jì)應(yīng)用 > GXM12864圖形液晶顯示模塊驅(qū)動(dòng)程序

GXM12864圖形液晶顯示模塊驅(qū)動(dòng)程序

作者: 時(shí)間:2016-11-21 來源:網(wǎng)絡(luò) 收藏
GXM12864是一種采用低功耗CMOS技術(shù)實(shí)現(xiàn)的點(diǎn)陣圖形LCD模塊,內(nèi)含KS0108B/HD61202控制器,CSA與KS0108B(1)連通!CSB與KS0108B(2)連通!CSA/CSB為01時(shí)選通KS0108B(1);為10時(shí)選通CSB與KS0108B(2),為其他值時(shí)!禁止選通!總線處于高阻狀態(tài)!

硬件原理為PO口接DB0-DB7的8位雙向數(shù)據(jù)總線!
KS0108B 指令集
1:顯示開關(guān)指令: R/W=0;D/I=0; 開:0X3F; 關(guān):0X3E
2:顯示起始行指令:R/W=0;D/I=0;8位數(shù)據(jù)高2位為1 后6位位起始巷(0-63)
3:頁(yè)設(shè)置指令:R/W=0;D/I=0; 前5位恒定為10111!后三位為頁(yè)號(hào)(0-7)
4:列地址設(shè)置指令:R/W=0;D/I=0;;高2位為01;后6位為列地址(0-63)
5:讀狀態(tài)指令:R/W=1;D/I=0;DB7:BUZY 1忙 0 正常 DB6:0 DB5: ON/OFF ON 顯示打開 OFF 顯示關(guān)閉 DB4:RESET 1 復(fù)位狀態(tài) 0 正常狀態(tài) DB3-DB0 0000
6:寫數(shù)據(jù)指令:R/W=0;D/I=1;DB7-DB0 為要寫入的數(shù)據(jù)
7:讀數(shù)據(jù)指令:R/W=1;D/I=1;DB7-DB0 為要讀顯示的數(shù)據(jù)

本文引用地址:http://m.butianyuan.cn/article/201611/319369.htm

#define LCD XBYTE[0XFFFF] //LCD端口
#define CSA P2_0 //片選1
#define CSB P2_1 //片選2
#define E P2_2 //使能信號(hào),高電平有效
#define R/W P2_3 //讀寫選擇
#define D/I p2_4 //指令數(shù)據(jù)通道

sbit busy=ACC^7; //LCD狀態(tài)字節(jié)第7位

void send_lcd(unsigned char i) //發(fā)命令到主窗口
{
CSA=1; //選通1
CSB=0;
R/W=1;
D/I=0;//讀狀態(tài)
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;//讀狀態(tài)
do(ACC=LCD)
while(busy) //等待空閑
R/W=0;
D/I=1; //寫數(shù)據(jù)狀態(tài)
LCD=i;
}
unsigned char read_lcd(void) //讀數(shù)據(jù)
{
unsigned char i;
P0=0xff;
CSA=1; //選通1
CSB=0;
R/W=1;
D/I=0;//讀狀態(tài)
do(ACC=LCD)
while(busy) //等待空閑
D/I=1; //讀數(shù)據(jù)狀態(tài)
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); //設(shè)置顯示列地址
for(i=0;i<64;i++)
write_lcd(0);
}
}

void initial(void);
{
send_lcd(0x3f); //開顯示
send_lcd(0xc0); //設(shè)置起始行為第一行
}




評(píng)論


技術(shù)專區(qū)

關(guān)閉