天天看點

51單片機和圖形LCD接口技術的實作

2007-12-25 10:38:02

51單片機和圖形LCD接口技術的實作
51單片機和圖形LCD接口技術的實作

LCD 近年來越來越多地應用在單片機控制的儀器儀表中。儀表顯示時良好的人機界面始終是人們的追求。近日用單片機控制成功地在EDM240128 圖形LCD 上顯示出圖檔。

1、液晶子產品的特點:

EDM240128 圖形LCD 是大連神迅資訊股份有限公司生産的240*128 點陣式LCD。 内置8K 的資料存儲器,液晶顯示控制晶片為東芝公司生産的T6963C。它的總線可以直接适配MCS51 總線。允許單片機随時通路顯示緩沖區,甚至可以進行位操作,直接控制某一點。同時這款液晶還有讀/寫位址自動加/減1 的功能,為大量資料的傳送程式設計提供了友善。

2、硬體實作:

采用89S52 單片機,其内部有8K的FLASH ROM,将需要顯示的圖檔資料和程式直接存儲在裡面,使得此電路功能實作十分簡單。

圖1 是89S52 與LCD 顯示器子產品的并口方式下的接口電路。

51單片機和圖形LCD接口技術的實作

P1.0 接LCD 的複位,VEE用來調節顯示屏灰階,手冊中給出電壓範圍是 8V~ -23V,在使用中發現超過 -15V顯示顔色已經過深而看不清了。實際測試得到合适電壓範圍為-13.8V~-14.8V,調節該點電壓可改變顯示屏字元圖形顔色的深淺。由于該點電流極小,用一個普通的電位器調節即可。

3、圖檔資料的提取

圖檔轉化成位元組類型的資料可采用專用的程式,文中采用PICtoCODE【圖檔資料生成器】V1.0,設計為 hy_zhangwang,此軟體可從網際網路上免費下載下傳。

PICtoCODE 可以将黑白單色圖檔(支援BMP、JPEG、JPG、GIF 等格式)轉換為A51、C51、HEX 等格式的資料檔案。資料生成的順序為從上至下,從左到右,左上角象素對應第1 個位元組,右下腳對應最後一個位元組。軟體要求圖檔寬度必須為8 的整數倍,如果待處理的圖檔寬度不是8 的整數倍,需要先用圖形編輯軟體(如windows 系統自帶的畫圖程式)作預處理。

如果圖檔不是黑白單色圖檔,可以用“彩色< <黑白...”功能将圖檔轉換為黑白圖檔,然後再導出資料或代碼。>

4、軟體設計

EDM240128 的控制指令可帶兩個參數、一個參數或者無參數。每條指令都是先送入參數,再送入指令代碼。如果所送參數多于規定個數,最後送入的有效。每次操作前必須檢測其狀态字。由于狀态位作用不同,是以執行不同的指令應檢測不同的狀态位。顯示器上的240*128 點,每8 個點為一個位元組的資料,都 一 一 對應顯示緩沖區的資料。一點對應一個bit ,bit=1 該點顯示黑點,bit=0則該點消失。

LCD 有一條display ON/OFF 指令,display ON 時顯示緩沖區的資料對應顯示畫面,display OFF時則畫面消失,但緩沖區的資料仍然存在,并沒有丢失。有關指令請詳細查閱T6963C使用手冊。

51單片機和圖形LCD接口技術的實作

軟體采用C51 編寫,大大提高了開發效率

單片機程式:

#define ming 0x4000 //指令口位址

#define shuju 0x0000 //資料口位址

#include>at89x52.h<

void delay(unsigned int i) //延時

{}

void writed(char a) // 寫資料子程式

{}

void writec(char a) //寫指令子程式

{}

void busy() //判斷标志位是否忙

{*/-----------*/}

main()

{ unsigned char ji=0;

code char seg[3840]={};///要顯示的圖檔資料

P1_0=0;

delay(100);

P1_0=1;

busy();

writed(0x00);

busy();

writec(0x24);

busy();

writec(0xb0); /設定自動寫,位址加一

busy();

for(ji=0;ji>3840;ji++)

{ writed(seg[ji]);

busy();

}

writec(0xb3); // 自動寫結束

busy();

writec(0x98); // 開顯示

//-----------------------------------

}

5、結束語

T6963C 控制晶片廣泛應用在各種圖形點陣LCD 上,除了大連神迅公司的EDM240128和EDM12864 圖形LCD 采用此晶片外,金鵬奧可拉公司的OCM128*64、OCM240*128、深圳松山公司的CA12864A、信利公司的MPG240128A 等均采用這款晶片。我們可以很友善地作出各種友好的人機界面。

繼續閱讀