51單片機(jī)和圖形LCD接口技術(shù)的實(shí)現(xiàn)
1、液晶模塊的特點(diǎn):
EDM240128 圖形LCD 是大連神迅信息股份有限公司生產(chǎn)的240*128 點(diǎn)陣式LCD。 內(nèi)置8K 的數(shù)據(jù)存儲器,液晶顯示控制芯片為東芝公司生產(chǎn)的T6963C。它的總線可以直接適配MCS51 總線。允許單片機(jī)隨時訪問顯示緩沖區(qū),甚至可以進(jìn)行位操作,直接控制某一點(diǎn)。同時這款液晶還有讀/寫地址自動加/減1 的功能,為大量數(shù)據(jù)的傳送編程提供了方便。
2、硬件實(shí)現(xiàn):
采用89S52 單片機(jī),其內(nèi)部有8K的FLASH ROM,將需要顯示的圖片數(shù)據(jù)和程序直接存儲在里面,使得此電路功能實(shí)現(xiàn)十分簡單。
圖1 是89S52 與LCD 顯示器模塊的并口方式下的接口電路。
P1.0 接LCD 的復(fù)位,VEE用來調(diào)節(jié)顯示屏灰度,手冊中給出電壓范圍是 8V~ -23V,在使用中發(fā)現(xiàn)超過 -15V顯示顏色已經(jīng)過深而看不清了。實(shí)際測試得到合適電壓范圍為-13.8V~-14.8V,調(diào)節(jié)該點(diǎn)電壓可改變顯示屏字符圖形顏色的深淺。由于該點(diǎn)電流極小,用一個普通的電位器調(diào)節(jié)即可。
3、圖片數(shù)據(jù)的提取
圖片轉(zhuǎn)化成字節(jié)類型的數(shù)據(jù)可采用專用的程序,文中采用PICtoCODE【圖片數(shù)據(jù)生成器】V1.0,設(shè)計為 hy_zhangwang,此軟件可從互聯(lián)網(wǎng)上免費(fèi)下載。
PICtoCODE 可以將黑白單色圖片(支持BMP、JPEG、JPG、GIF 等格式)轉(zhuǎn)換為A51、C51、HEX 等格式的數(shù)據(jù)文件。數(shù)據(jù)生成的順序為從上至下,從左到右,左上角象素對應(yīng)第1 個字節(jié),右下腳對應(yīng)最后一個字節(jié)。軟件要求圖片寬度必須為8 的整數(shù)倍,如果待處理的圖片寬度不是8 的整數(shù)倍,需要先用圖形編輯軟件(如windows 系統(tǒng)自帶的畫圖程序)作預(yù)處理。
如果圖片不是黑白單色圖片,可以用“彩色>>黑白...”功能將圖片轉(zhuǎn)換為黑白圖片,然后再導(dǎo)出數(shù)據(jù)或代碼。
4、軟件設(shè)計
EDM240128 的控制指令可帶兩個參數(shù)、一個參數(shù)或者無參數(shù)。每條指令都是先送入?yún)?shù),再送入指令代碼。如果所送參數(shù)多于規(guī)定個數(shù),最后送入的有效。每次操作前必須檢測其狀態(tài)字。由于狀態(tài)位作用不同,因此執(zhí)行不同的指令應(yīng)檢測不同的狀態(tài)位。顯示器上的240*128 點(diǎn),每8 個點(diǎn)為一個字節(jié)的數(shù)據(jù),都 一一對應(yīng)顯示緩沖區(qū)的數(shù)據(jù)。一點(diǎn)對應(yīng)一個bit ,bit=1 該點(diǎn)顯示黑點(diǎn),bit=0則該點(diǎn)消失。
LCD 有一條display ON/OFF 指令,display ON 時顯示緩沖區(qū)的數(shù)據(jù)對應(yīng)顯示畫面,display OFF時則畫面消失,但緩沖區(qū)的數(shù)據(jù)仍然存在,并沒有丟失。有關(guān)命令請詳細(xì)查閱T6963C使用手冊。
軟件采用C51 編寫,大大提高了開發(fā)效率
單片機(jī)程序:
#define ming 0x4000 //指令口地址
#define shuju 0x0000 //數(shù)據(jù)口地址
#includeat89x52.h>
void delay(unsigned int i) //延時
{/*-----------*/}
void writed(char a) // 寫數(shù)據(jù)子程序
{/*----------*/}
void writec(char a) //寫指令子程序
{/*-----------*/}
void busy() //判斷標(biāo)志位是否忙
{*/-----------*/}
main()
{ unsigned char ji=0;
code char seg[3840]={/*-----------*/};///要顯示的圖片數(shù)據(jù)
P1_0=0;
delay(100);
P1_0=1;
busy();
writed(0x00);
busy();
writec(0x24);
busy();
writec(0xb0); /////設(shè)置自動寫,地址加一
busy();
for(ji=0;ji3840;ji++)
{ writed(seg[ji]);
busy();
}
writec(0xb3); // 自動寫結(jié)束
busy();
writec(0x98); // 開顯示
//-----------------------------------
}
5、結(jié)束語
T6963C 控制芯片廣泛應(yīng)用在各種圖形點(diǎn)陣LCD 上,除了大連神迅公司的EDM240128和EDM12864 圖形LCD 采用此芯片外,金鵬奧可拉公司的OCM128*64、OCM240*128、深圳松山公司的CA12864A、信利公司的MPG240128A 等均采用這款芯片。我們可以很方便地作出各種友好的人機(jī)界面。
評論