小點(diǎn)陣漢顯液晶模塊及其應(yīng)用
出處:hq_y 發(fā)布于:2007-04-19 16:16:38
關(guān)鍵詞:小點(diǎn)陣;漢顯液晶模塊;單片機(jī);HZ3132-64B30
對于手機(jī)等體積小巧的電子產(chǎn)品,其人機(jī)界面一方面要滿足大信息量的顯示要求,另一方面,顯示屏的大小又受體積的制約。因此,如何在面積有限的情況下多顯示一些漢字已成為此類產(chǎn)品需要解決的重要問題。而解決上述問題為行之有效的方法就是采用小點(diǎn)陣漢字顯示,這樣可以在同樣的成本和體積下多顯示一些漢字。另一方面,此類電子產(chǎn)品還要求具有較強(qiáng)的漢字輸入功能,以滿足漢字輸入及查找的需要。
HZ132-64B30即是采用小點(diǎn)陣漢字顯示,它是具有12×12點(diǎn)陣漢字顯示功能的液晶圖形顯示模塊。該模塊同時還內(nèi)嵌了先進(jìn)的T9拼音輸入法,并采用UART方式與控制MCU進(jìn)行接口,因此可為手機(jī)、智能終端等人機(jī)交互信息量大的電子產(chǎn)品提供一個較好的解決方案。
1?。龋冢保常玻叮矗拢常暗男阅芴攸c(diǎn)
HZ132-64B30漢字液晶顯示模塊的主要性能特點(diǎn)如下:
●模塊分辨率為132(列)×64(行),全屏幕圖形點(diǎn)陣,漢字顯示點(diǎn)陣為12×12;
●內(nèi)含12×12點(diǎn)陣一、二級簡體中文漢字字庫及12×6點(diǎn)陣ASCⅡ字符庫;
●全屏幕可以顯示每行10個共5行標(biāo)準(zhǔn)宋體漢字或者20×5個ASCⅡ字符,非常適合信息終端類顯示;
●具有多種圖形及文本顯示命令;
●采用串行接口控制,硬件連接比較簡單;
●內(nèi)嵌先進(jìn)的T9拼音輸入法,與大多數(shù)手機(jī)的拼音輸入法兼容;
●液晶屏尺寸(mm):53.0(L)×28.0(W)×2.0(H),顯示點(diǎn)陣: 0.26(L)×0.28(W);
●采用單+5V電源供電,內(nèi)部可提供顯示驅(qū)動負(fù)電壓。
HZ132-64B30漢顯模塊在模塊上方的一排5根引腳是給用戶的電源和串行數(shù)據(jù)口,現(xiàn)將各引腳功能說明如下:
VCC(1):5V正電源端;
TXD(2):漢顯模塊的串行數(shù)據(jù)輸出引腳;
RXD(3):漢顯模塊的串行數(shù)據(jù)輸入引腳,在模塊啟動期間,該腳接地可以激活自檢程序,此時液晶屏將顯示自檢畫面
GND(4):接地端;
RESET(5):外部復(fù)位引腳,高電平有效。
2 用戶命令
控制MCU一般通過串口命令與漢顯模塊進(jìn)行通信,模塊對串口命令做出相應(yīng)的顯示或返回相應(yīng)的數(shù)據(jù),模塊的通信格式為9600,n,8,1,所有發(fā)往漢顯模塊的命令都是以“ESC”鍵值0X1b開始,后面跟一個字節(jié)的命令碼,其后再跟具體的命令內(nèi)容。模塊返回的內(nèi)容則是以“ESC”開始,后面跟一個字節(jié)的命令碼,其后跟返回內(nèi)容。模塊可自動對每條指令做出是否成功的返回響應(yīng),執(zhí)行成功時返回“OK!”,錯誤指令則返回“error”。對于有數(shù)據(jù)返回的指令,這些響應(yīng)通常跟在數(shù)據(jù)的后面。當(dāng)模塊正常運(yùn)行時,可以通過適當(dāng)?shù)脑O(shè)置使其不再對命令執(zhí)行做出成功與否的響應(yīng),以提高模塊的運(yùn)行速度。
發(fā)往模塊的命令格式為:ESC、命令代碼(1 byte)、命令內(nèi)容(N bytes);
模塊返回的數(shù)據(jù)格式為:ESC、返回內(nèi)容(N bytes)。
下面詳細(xì)介紹各用戶命令:
(1)設(shè)置LCM的灰度
命令格式:ESC,0X31,HD;
0X31:灰度設(shè)置命令;
HD:灰度值,取值范圍為0X00~0X3F,建議灰度值取為0X07。
(2)清屏命令
命令格式:ESC,0X32;
(3)設(shè)置光標(biāo)位置
命令格式:ESC,0X33,X,Y;
其中X為以漢字為單位的屏幕列坐標(biāo)值,取值范圍為0~19;Y則是以漢字為單位的屏幕行坐標(biāo)值,取值范圍為0~4。
(4)顯示光標(biāo)
命令格式:ESC,0X34,A;
其中,A為光標(biāo)顯示開關(guān),A為0時,不顯示光標(biāo),A為1時,光標(biāo)顯示。
(5)在光標(biāo)位置顯示字符串
命令格式:ESC,0X37,B,N,END;
該命令可在當(dāng)前光標(biāo)位置顯示漢字或ASCⅡ字符串,也可用于顯示單個漢字或ASCⅡ字符。其中:B為顯示屬性開關(guān),當(dāng)B為0時,正常顯示字符,B為1時,反顯字符;N為顯示字符的內(nèi)容(多字節(jié)),當(dāng)顯示內(nèi)容為漢字時,N為顯示漢字的內(nèi)碼;當(dāng)顯示內(nèi)容為ASCⅡ碼時,N為ASCⅡ碼值;END為結(jié)束標(biāo)志,其值為0X00。
(6)在任意位置畫點(diǎn)
命令格式:ESC,0X38,C,X,Y;
畫點(diǎn)時,坐標(biāo)原點(diǎn)(0,0)都是在左上角,X坐標(biāo)向右遞增,Y坐標(biāo)向下遞增。其中:C是畫點(diǎn)屬性開關(guān),C為1時,在該坐標(biāo)原點(diǎn)畫一個點(diǎn),C為0時,擦除該坐標(biāo)的點(diǎn);X表示以點(diǎn)為單位的X坐標(biāo)值(0<X<131);Y表示以點(diǎn)為單位的Y坐標(biāo)值(0<Y<63)。
(7)任意位置畫線
命令格式:ESC,0X39,D,X0,Y0,X1,Y1;
其中,D為畫線屬性,D為2時,畫一條虛線;D為1時,畫一條實(shí)線;D為0時,擦除該位置的線;X0表示直線一端的X位置;Y0表示直線一端的Y位置;X1表示直線另一端的X位置;Y1表示直線另一端的Y位置。
(8)任意位置畫圓
命令格式:ESC,0X41,E,X,Y,R;
其中,E表示畫圓屬性,E為1,畫一個圓,E為0,擦除該圓;X表示圓心的X位置;Y表示圓心的Y位置;R表示半徑。
(9)畫圖片
命令格式:ESC,0X42,F,X0Y0,X1Y1,N;
其中,F為畫圖屬性,F為0,畫正常圖,F為1,畫反顯圖;X0Y0為圖片左上角的坐標(biāo)位置;X1Y1為圖片大小,寬為X1 高為Y1;N為多字節(jié)圖形數(shù)據(jù),排列方法為橫向8bit,字節(jié)為左高右低,字節(jié)排列順序為從左到右、從上到下。
(10)畫ICON
命令格式:ESC,0X43,G,N;
該功能用于顯示廠家預(yù)設(shè)在模塊內(nèi)的ICON圖形。其中:G表示ICON屬性,G為1時,畫該ICON,G為0時,擦除該ICON;N表示從左到右第幾個ICON0<n<131。
(11)取數(shù)字組合的有效拼音組合用于T9拼音輸入法
命令格式:發(fā)送:ESC,0X47,N1,END;
返回:ESC,N1,X1,END,Xn,END;
數(shù)字代表的字母采用國際標(biāo)準(zhǔn):0和1無效,2ABC,3DEF,4GHI,5JKL,6MNO,7PQRS,8TUV,9WXYZ;
N1表示輸入數(shù)字所代表的字母小于或等于6個數(shù)字,取值范圍為2~9,代表的字母范圍為A~F;
X1表示個返回的拼音字符串(小寫);
Xn表示第n個返回的拼音字符串(小寫);
(12)取符合輸入拼音字符串的漢字串用于T9拼音輸入法
命令格式:發(fā)送:ESC,0X48,N,Xn,N,END;
返回:ESC,Nx,END。
其中,N表示返回漢字的個數(shù);Xn表示返回第幾頁的漢字n≥1(用于待選漢字翻頁);N1表示輸入的拼音字符串≤6個數(shù)字;Nx表示返回的漢字串。
(13)設(shè)置是否對命令做返回響應(yīng)
命令格式:ESC,0X50,H;
其中,H為命令響應(yīng)屬性,H為00表示不返回命令響應(yīng),H為01則表示當(dāng)命令正確執(zhí)行時返回“OK!”,當(dāng)命令不正確時返回“error”。
3 具體應(yīng)用
HZ132-64B30漢顯液晶模塊可廣泛用于人機(jī)交互界面友好、顯示信息量大的電子產(chǎn)品中,由于控制MCU是通過UART與液晶模塊進(jìn)行通訊的,故該模塊幾乎可與任何種類的單片機(jī)進(jìn)行接口。對于不具備UART或UART被占用的單片機(jī),可使用通用I/O口線來模擬串口,但模擬串口的波特率將受到指令周期的限制而無法做得很高,一般只能做到4800bps,這時可將漢顯模塊的晶振更換為11.0592MHz,同時模塊的波特率也改為4800 bps, 即可正常通訊了。
圖1是以AT89C2051單片機(jī)為例,給出的漢顯液晶模塊與單片機(jī)的接口電路。
下面是采用C51語言編寫的與圖1硬件電路配套的子程序:
#define CR putstring(“\r\n”) //發(fā)送一個回車換行
#define OLEN 8 //串行發(fā)送緩沖區(qū)長度
idata uchar outbuf[OLEN]; //發(fā)送緩沖區(qū)
data uchar idata *outlast=outbuf; //由中斷傳輸出去的字節(jié)位置
data uchar idata *putlast=outbuf; //放入發(fā)送緩沖區(qū)的字節(jié)位置
#define ILEN 30 // 串行接收緩沖區(qū)長度
idata uchar inbuf[OLEN] ;接收緩沖區(qū)
data uchar idata *inlast=inbuf; //由中斷進(jìn)入接收緩沖區(qū)的字節(jié)位置
data uchar idata *getlast=inbuf; //取走的字節(jié)位置
bit outbufsign0; //一個數(shù)據(jù)發(fā)完標(biāo)志,發(fā)完=0
bit outbufsign; //輸出緩沖區(qū)非空標(biāo)志,非空=1
bit inbufsign; //接收緩沖區(qū)非空標(biāo)志, 非空=1
bit inbufful; //輸入緩沖區(qū)滿標(biāo)志,滿=1
//放入一個字節(jié)到發(fā)送緩沖區(qū)
putbyte(unsigned char c)
{
ES=0; //暫停串行中斷,以免數(shù)據(jù)比較時出錯
while((((outlast-putlast)==2)&&(outlast > putlast )) || ((outlast < putlast) && (OLEN-(putlast-outlast)==2)))
{
ES=1;
c++;c--;
ES=0;
}
*putlast=c; //放字節(jié)進(jìn)入緩沖區(qū)
putlast++; //發(fā)送緩沖區(qū)指針加一
if(putlast==outbuf+OLEN) putlast=outbuf;
//指針到頂部后換到底部
outbufsign=1;
if (?。铮酰簦猓酰妫螅椋纾睿埃?/P>
{
outbufsign0=1;
TI=1;
} //緩沖區(qū)開始為空置為有,啟動發(fā)送
ES=1;
}
// 設(shè)置光標(biāo)位置
void lcd_cursor(uchar x, uchar y)
{
putbyte(0x1b);
putbyte(0x33);
putbyte(x);
putbyte(y);
}
//顯示字符串
void lcd_string(uchar attr,uchar *string)
{
putbyte(0x1b);
putbyte(0x37);
putbyte(attr);
putstring(string);
putbyte(0x00);
}
//畫點(diǎn)
void lcd_ dot(uchar attr,uchar x,uchar y)
{
putbyte(0x1b);
putbyte(0x38);
putbyte(attr);
putbyte(x);
putbyte(y);
}
// 畫圖片,*picture data指向圖片數(shù)據(jù),圖片數(shù)據(jù)的二個字節(jié)是圖片寬度和圖片高度
void lcd_picture(uchar attr,uchar x0,uchar y0,uchar *picture_data)
{
putbyte(0x1b);
putbyte(0x42);
putbyte(attr);
putbyte(x0);
putbyte(y0);
putbytes(picture_data,(((*picture_data)+7)/8)*(*(picture_data+1))+2);
}
//發(fā)送字符串到串口
putstring(uchar *puts)
{
for(;*puts!=0;puts++)//遇到停止符0結(jié)束
putbyte(*puts);
}
//串口中斷處理
serial () interrupt 4
{
if (TI)
{
TI = 0;
if(outbufsign)
{
SBUF=*outlast; //未發(fā)送完繼續(xù)
outlast++;//傳出去的字節(jié)位置加一
if (outlast==outbuf+OLEN) outlast=
outbuf; //地址到頂部回到底部
if (putlast==outlast) outbufsign=0;
//數(shù)據(jù)發(fā)送完置發(fā)送緩沖區(qū)空標(biāo)志
}
{
outbufsign0=0;
}
}
if(RI)
{
RI = 0;
if(!inbufful)
{
*inlast= SBUF; //放入數(shù)據(jù)
inlast++; //放入的位置加一
inbufsign=1;
if(inlast==inbuf+ILEN)inlast=inbuf;
//地址到頂部回到底部
if (inlast==getlast) inbufful=1;
//接收緩沖區(qū)滿置滿標(biāo)志
}
}
}
//串口初始化
void serial_init(void)
{
SCON=0x50;
TMOD|=0x20;
PCON|= 0x80;
TH1 = 0xf4;
TR1 = 1;
ES = 1;
REN=1;
EA=1;
}
4 結(jié)束語
HZ132-64B30小點(diǎn)陣漢顯模塊的推出為小體積、交互顯示信息量較大的電子產(chǎn)品的人機(jī)界面顯示提供了一個較好的解決方案,它可以用較低的成本顯示較多的漢字,同時,其內(nèi)嵌的T9拼音輸入法也為漢字的輸入與查找提供了方便,因而該模塊在通信、信息終端及智能化電子產(chǎn)品中具有廣泛的應(yīng)用前景。
版權(quán)與免責(zé)聲明
凡本網(wǎng)注明“出處:維庫電子市場網(wǎng)”的所有作品,版權(quán)均屬于維庫電子市場網(wǎng),轉(zhuǎn)載請必須注明維庫電子市場網(wǎng),http://www.hbjingang.com,違反者本網(wǎng)將追究相關(guān)法律責(zé)任。
本網(wǎng)轉(zhuǎn)載并注明自其它出處的作品,目的在于傳遞更多信息,并不代表本網(wǎng)贊同其觀點(diǎn)或證實(shí)其內(nèi)容的真實(shí)性,不承擔(dān)此類作品侵權(quán)行為的直接責(zé)任及連帶責(zé)任。其他媒體、網(wǎng)站或個人從本網(wǎng)轉(zhuǎn)載時,必須保留本網(wǎng)注明的作品出處,并自負(fù)版權(quán)等法律責(zé)任。
如涉及作品內(nèi)容、版權(quán)等問題,請在作品發(fā)表之日起一周內(nèi)與本網(wǎng)聯(lián)系,否則視為放棄相關(guān)權(quán)利。
- LED照明技術(shù)特性與選型運(yùn)維指南2026/1/5 10:26:27
- 工業(yè)觸摸屏選型與現(xiàn)場應(yīng)用技術(shù)指南2025/12/22 11:44:57
- 顯示器色深 6Bit、8Bit、10Bit 與 6 抖 8、8 抖 10、FRC2025/8/28 15:29:32
- Micro-LED技術(shù)解析2025/8/26 17:21:56
- LED顯示屏標(biāo)清、高清、超清、1080P與4K的解析2025/8/8 17:05:00
- MOSFET驅(qū)動與隔離方案設(shè)計
- 高溫環(huán)境下電源IC選型建議
- 安防監(jiān)控設(shè)備連接器應(yīng)用分析
- 高速PCB信號完整性(SI)設(shè)計核心實(shí)操規(guī)范
- 鎖相環(huán)(PLL)中的環(huán)路濾波器:參數(shù)計算與穩(wěn)定性分析
- MOSFET反向恢復(fù)特性對系統(tǒng)的影響
- 電源IC在惡劣環(huán)境中的防護(hù)設(shè)計
- 連接器耐腐蝕性能測試方法
- PCB電磁兼容(EMC)設(shè)計與干擾抑制核心實(shí)操規(guī)范
- 用于相位噪聲測量的低通濾波器設(shè)計與本振凈化技術(shù)









