可視化編程串行控制中文字庫液晶顯示模塊VLCM320240
掃描二維碼
隨時(shí)隨地手機(jī)看文章
摘要:VLCM320240是一款具有可視化編程圖形界面、采用串行控制、內(nèi)含GB2312簡體中文字庫及64kB自造圖庫的液晶圖形顯示模塊。該模塊采用臺灣EDT公司的藍(lán)膜負(fù)顯EW32F10BCW?具有320×240的點(diǎn)陣分辨率和CCFT背光源。文中介紹了該模塊的性能特點(diǎn)、接口管腳說明、用戶命令及主要參數(shù),同時(shí)給出了VLCM320240與單片機(jī)的接口電路及相應(yīng)顯示程序。
關(guān)鍵詞:可視化編程;串行控制;中文字庫;單片機(jī) 1 引言 圖形點(diǎn)陣液晶顯示模塊由于具有顯示信息豐富、功耗低、體積小、重量輕、壽命長、不產(chǎn)生電磁輻射污染等優(yōu)點(diǎn)而成為單片機(jī)系統(tǒng)中理想的顯示器件,并被廣泛應(yīng)用于單片機(jī)控制的智能儀器儀表、工業(yè)控制領(lǐng)域、通信器材和家用電器中。但普通圖形點(diǎn)陣液晶顯示模塊用于顯示圖形界面時(shí)是非常困難的,首先圖形顯示要占用大量的用戶ROM空間。以320×240點(diǎn)陣液晶模塊為例,顯示一幅圖片(全屏幕)占用的ROM空間為?320×240?/8=9.6k Byte,這對片內(nèi)僅有幾k字節(jié)的FLASH閃存單片機(jī)來說是不可能的;其次,顯示圖片過程極其復(fù)雜,應(yīng)根據(jù)待顯示的圖形計(jì)算好各點(diǎn)陣的位置,再以字節(jié)為單位寫入數(shù)據(jù)來控制各點(diǎn)陣的亮滅。如果顯示多幅圖片,復(fù)雜程度更加令人生畏。 另外,圖形點(diǎn)陣液晶顯示模塊在顯示漢字時(shí)也存在著占用ROM容量大、與單片機(jī)的硬件接口電路復(fù)雜以及接口時(shí)序復(fù)雜,軟件編程繁復(fù)等問題。 正是由于上述幾點(diǎn)不足限制了圖形點(diǎn)陣液晶顯示模塊在生成復(fù)雜精美的中文人機(jī)界面時(shí)的應(yīng)用。而中文界面及圖形顯示又是電子產(chǎn)品人機(jī)界面發(fā)展的必然趨勢。實(shí)際上任何一種顯示界面本質(zhì)上都是由若干像素排列組合生成,若能將圖形點(diǎn)陣液晶模塊顯示控制的底層操作集成在模塊內(nèi)的單片機(jī)中,并將生成顯示界面中所用到的各種圖形界面和標(biāo)準(zhǔn)漢字庫預(yù)先存入模塊中,用戶使用時(shí)就可以僅通過串口向其發(fā)送簡單的控制命令以生成圖文顯示界面,從而使得復(fù)雜的圖形界面生成變得簡單容易,最終解決電子產(chǎn)品開發(fā)過程中難以生成精美的人機(jī)界面的難題。 VLCM320240即是一款具有上述功能的圖形點(diǎn)陣液晶模塊。該模塊是由深圳研安佳公司推出的。 VLCM320240圖形點(diǎn)陣液晶顯示模塊具有如下主要特點(diǎn): ● 該液晶顯示模塊采用臺灣EDT公司的藍(lán)膜負(fù)顯EW32F10BCW?它具有320×240的點(diǎn)陣分辨率和CCFT背光源; ● 內(nèi)部含有臺灣華邦公司生產(chǎn)的高速單片機(jī)W78E516BP; ● 內(nèi)含GB2312 16×16點(diǎn)陣國標(biāo)一級、二級簡體字庫,字庫中的漢字可顯示在液晶屏的任意位置; ● 內(nèi)含ASCⅡ 8×16點(diǎn)陣英文字庫; ● 內(nèi)含64kB自造圖庫或美術(shù)字庫、顯示資料現(xiàn)場可在線編程FLASH; ● 內(nèi)含SED1330F LCD控制器及32kB顯示緩沖區(qū); ● 配套Visual LCM仿真調(diào)試軟件可在電腦上獨(dú)立完成顯示界面的編輯、資料下載及界面生成; ● 具有標(biāo)準(zhǔn)RS232串行通信控制,可方便地由上位計(jì)算機(jī)或單片機(jī)進(jìn)行控制; ● 具有最小的硬件資源占用,使用單片機(jī)做上位機(jī)時(shí),可使用兩根I/O口線模擬串口,而使用TTL電平控制時(shí),僅需一根I/O口線。 VLCM320240留給用戶的接口有兩個(gè),即電源口POWER和RS232通信口。 其中電源口包括以下幾個(gè)端口: ●+9V電源:穩(wěn)壓后供給單片機(jī); ●GND:模塊電源地; ●+5V電源:供逆變器使用。 RS232口定義如下: ●BUSY:忙標(biāo)志輸出,低電平時(shí)為忙; ●RX:控制命令輸入,其中有8位數(shù)據(jù)位,1個(gè)起始位,一個(gè)停止位; ●GND:信號地。 在具體使用時(shí),可通過上位機(jī)的用戶命令來控制VLCM320240的顯示. 漢字或ASCII字符顯示命令中的參數(shù)為所顯示漢字的兩個(gè)字節(jié)國標(biāo)碼或ASCII字符代碼。 VLCM320240可視化編程液晶顯示模塊可廣泛應(yīng)用于顯示信息內(nèi)容豐富或顯示信息容量巨大的應(yīng)用場合,如信息家電,通信器材、工業(yè)控制、智能儀器儀表等領(lǐng)域,模塊在使用時(shí)可分為顯示界面生成及實(shí)時(shí)顯示兩個(gè)步驟。 4.1 顯示界面的模擬生成 顯示界面的生成在上位計(jì)算機(jī)上完成,利用可視化編程軟件Visual LCM可將系統(tǒng)設(shè)計(jì)中用到的各種圖形或文字進(jìn)行歸納并編輯成圖案,但圖案的大小不得超過320×240像素,同時(shí)圖案必須選為黑白兩色。然后將編輯好的圖案下載到模塊ISP FLASH存儲器中,圖案的數(shù)量應(yīng)小于256幅。對于顯示較多的文字信息,也應(yīng)盡量生成美觀的藝術(shù)字體并保存為圖案。這樣可大大加快文字信息的顯示速度。圖案下載到模塊后,可通過串口發(fā)送BMP命令以便將任意一張圖片在液晶模塊的任意位置上顯示。 4.2 實(shí)時(shí)信息顯示 由上位計(jì)算機(jī)生成的各種圖形信息最終要在單片機(jī)的控制下實(shí)現(xiàn)相應(yīng)信息的顯示。圖1所示是以AT89C52為例給出的單片機(jī)與VLCM320240的接口電路。 在圖1所示的電路中,AT89C52的RXD端與VLCM320240RS232通信口的BUSY端相連,而將單片機(jī)TXD端與模塊RX端相連,為保證波特率的準(zhǔn)確性,應(yīng)將AT89C52的晶振選取為11.0592MHz。此外,在編制相應(yīng)的顯示控制軟件時(shí),還應(yīng)注意以下幾點(diǎn): ●串行口模式應(yīng)設(shè)為模式1(1個(gè)起始位,8個(gè)數(shù)據(jù)位,1個(gè)停止位); ●波特率設(shè)應(yīng)當(dāng)為19200(TH1=TL1=0FDH,SMOD=1); ●在發(fā)送命令之前應(yīng)檢測模塊為閑態(tài)(BUSY=1)?否則所發(fā)的命令可能失效; ●串口發(fā)送的必須是完整命令的ASCII碼(漢字為其機(jī)內(nèi)碼,ASCII字符為其ASCII碼),如命令“BMP0B000C0D”,實(shí)際由串口發(fā)送的內(nèi)容是“424D503042303030433044”,順序?yàn)椋?/P> “B→M→P→0→B→0→0→0→C→0→D”; ●在每條命令的首末還要加上命令結(jié)束碼“回車鍵"的ASCII碼“0DH”,以表明該命令的結(jié)束。 ●若單片機(jī)AT89C52的串口已被占為它用,那么用一根口線來摸擬生成一個(gè)通訊協(xié)議為(19200,N,8,1)的軟串口發(fā)送命令即可。 下面給出與上述電路配套的顯示控制子程序: ; 位定義 BUSY BIT P3 ; 定義忙信號線 ; 數(shù)據(jù)字節(jié)定義 X V EQU 30H; 定義參數(shù)x XH V EQU 31H; 定義參數(shù)xH Y V EQU 32H; 定義參數(shù)y NUBER EQU 33H; 定義參數(shù)n WIDTH EQU 34H; 定義參數(shù)w HIGHT EQU 35H; 定義參數(shù)h ASC XH EQU 36H; 定義參數(shù)x高四位 ASC XL EQU 37H; 定義參數(shù)x低四位 ASC XHH EQU 38H; 定義參數(shù)xH高四位 ASC XHL EQU 39H; 定義參數(shù)xH低四位 ASC YH EQU 3AH; 定義參數(shù)y高四位 ASC YL EQU 3BH; 定義參數(shù)y低四位 ASC NH EQU 3CH; 定義參數(shù)n高四位 ASC NL EQU 3DH; 定義參數(shù)n低四位 ASC WH EQU 3EH; 定義參數(shù)w高四位 ASC WL EQU 3FH; 定義參數(shù)w低四位 ASC HH EQU 40H; 定義參數(shù)h高四位 ASC HL EQU 41H; 定義參數(shù)h低四位 ;初始化子程序 INIT SIO:MOV SCON,#50H;串行口方式1 MOV TMOD,#21H MOV TH1,#0FDH;波特率=19200? MOV TL1?#0FDH ORL PCON?#80H;SMOD=1 SETB TR1 ; 啟動T1 RET ;設(shè)置漢字或ASCII字符顯示首地址命令 ORDER HZA:MOV A? X V MOV R0? #REG ASC XH LCALL H ASC ;將參數(shù)x轉(zhuǎn)換為 兩個(gè)字節(jié)的ASCII碼 MOV A?XH V MOV R0? #REG ASC XHH LCALL H ASC ; 將參數(shù)xH轉(zhuǎn)換為 兩個(gè)字節(jié)的ASCII碼 MOV A?Y V MOV R0? #REG ASC YH LCALL H ASC ;將參數(shù)y轉(zhuǎn)換為 兩個(gè)字節(jié)的ASCII碼 LCALL BUSY CK MOV A? #“H” ;發(fā)送命令碼HZA 的ASCII碼 LCALL SEND BYTE MOV A??!埃凇?/P> LCALL SEND BYTE MOV A? ?!埃痢?/P> LCALL SEND BYTE MOV R0? #REG ASC XHH LCALL SEND CS;發(fā)參數(shù)H的ASCII碼 MOV R0? #REG ASC XH LCALL SEND CS;發(fā)參數(shù)x的ASCII碼 MOV R0? #REG ASC YH LCALL SEND CS;發(fā)參數(shù)y的ASCII碼 LJMP ORDER END ;顯示漢字串子程序 ORDER HZ? LCALL BUSY CK;檢測模塊閑狀態(tài) MOV A? ?!埃取?/P> LCALL SEND BYTE MOV A??!埃凇?/P> LCALL SEND BYTE MOV A? ?!埃摹?/P> LCALL SEND BYTE NEXT HZ: CLR A; 取漢字的高八位內(nèi)碼 MOVC A,@A+DPTR INC DPTR;調(diào)整內(nèi)碼指針 LCALL SEND BYTE CLR A; 取漢字的低八位內(nèi)碼 MOVC A,@A+DPTR INC DPTR;調(diào)整內(nèi)碼指針 LCALL SEND BYTE DJNZ R7,NEXT HZ MOV A,#0DH;命令結(jié)束 LCALL SEND BYTE RET ;顯示ASCII字符串子程序 ORDER ASCII: LCALL BUSY CK MOV A,?!埃取保?/P> LCALL SEND BYTE MOV A,?!埃凇?/P> LCALL SEND BYTE MOV A??!埃摹?/P> LCALL SEND BYTE NEXT ASCII? CLR A ?取ASCII碼 MOVC A?@A+DPTR INC DPTR LCALL SEND BYTE DJNZ R7?NEXT ASCII MOV A?#0DH LCALL SEND BYTE RET ;清屏子程序 ORDER CLR:LCALL BUSY CK MOV A,?!埃谩?/P> LCALL SEND BYTE MOV A??!埃獭?/P> LCALL SEND BYTE MOV A? #“R” LCALL SEND BYTE LJMP ORDER END ;顯示下載到模塊內(nèi)圖形子程序 ORDER BMP:MOV A,X V MOV R0, #REG ASC XH LCALL H ASC ;將參數(shù)x轉(zhuǎn)換為兩個(gè) 字節(jié)的ASCII碼 MOV A,XH V MOV R0?#REG ASC XHH LCALL H ASC ;將參數(shù)xH轉(zhuǎn)換為兩 個(gè)字節(jié)的ASCII碼 MOV A,Y V MOV R0, #REG ASC YH LCALL H ASC ;將參數(shù)y轉(zhuǎn)換為兩個(gè) 字節(jié)的ASCII碼 MOV A,NUBER MOV R0?#REG ASC NH LCALL H ASC ;將參數(shù)n轉(zhuǎn)換為兩 個(gè)字節(jié)的ASCII碼 LCALL BUSY CK ;檢測模塊閑狀態(tài) MOV A,?!埃隆?; 先發(fā)送命令碼 BMP的ASCII碼 LCALL SEND BYTE MOV A,?!埃汀?/P> LCALL SEND BYTE MOV A??!埃小?/P> LCALL SEND BYTE MOV R0, #REG ASC NH LCALL SEND CS;發(fā)參數(shù)n的ASCII碼 MOV R0, #REG ASC XHH LCALL SEND CS;發(fā)參數(shù)xH的ASCII碼 MOV R0,#REG ASC XH LCALL SEND CS;發(fā)參數(shù)x的ASCII碼 MOV R0, #REG ASC YH LCALL SEND CS;發(fā)參數(shù)y的ASCII碼 ORDER END:MOV A,#0DH ;發(fā)送命令結(jié)標(biāo) 志“0DH” MOV SBUF,A JNB TI,$ CLR TI RET ;結(jié)束上次命令子程序 BUSY CK: MOV A,#0DH MOV SBUF,A JNB TI,$ CLR TI JNB BUSY?$ RET ;發(fā)送參數(shù)子程序 SEND CS: MOV A,@R0 LCALL SEND BYTE INC R0 MOV A,@R0 LCALL SEND BYTE RET ;發(fā)送字節(jié)數(shù)據(jù)子程序 SEND BYTE: MOV SBUF,A JNB TI,$ CLR TI RET TAB HZ: DB “漢字內(nèi)碼表” TAB ASCII: DB “ASCII字符表” VLCM320240可視化編程液晶顯示模塊由于可將系統(tǒng)中用到的畫面預(yù)置到液晶顯示模塊內(nèi)部,因而使得圖形界面與中文界面的生成變得非常容易,因此,該模塊無疑將是顯示信息要求較高的應(yīng)用領(lǐng)域中理想的顯示器件選擇之一。 |