《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 設計應用 > 虛擬LCD顯示模塊的設計
虛擬LCD顯示模塊的設計
來源:電子技術應用2011年第2期
江曉軍, 瞿丹晨, 徐 潔, 劉正國
上海第二工業大學 電子與電氣工程學院, 上海201209
摘要: 通過在BTF020單片機的RAM中建立緩沖區數組并對虛擬LCD的顯示數據進行存儲,然后通過單片機的串口將該數據傳送給PC機,再用VB6.0語言對這些數據進行處理并構建虛擬LCD的界面,使其能夠正確顯示字符或者圖形。實驗結果表明,所建的虛擬LCD顯示模塊具有開發簡便、快速、通用性強的特點。
關鍵詞: LCD BTF020 顯示模塊
中圖分類號: TH85
文獻標識碼: A
文章編號: 0258-7998(2011)02-0127-03
Design of virtual LCD module
Jiang Xiaojun, Qu Danchen, Xu Jie, Liu Zhengguo
School of Electronic & Electrical Engineering, Shanghai Second Polytechnic University, Shanghai 201209, China
Abstract: The display data of the virtual LCD is stored by creating the buffering arrays in RAM of BTF020 MCU, and the data is delivered to PC by the serial port of the MCU. The delivered data is processed and the interface of the virtual LCD is established by using VB6.0, and the character and the graph can be displayed rightly. The experimental results show that the established virtual LCD module has the characteristic of convenience, speediness and commonality.
Key words : LCD; BTF020; display module


    LCD在人們生活中的應用越來越廣泛,手機、車載系統及工業測量設備等都把LCD作為重要的人機接口,將使用者需要的信息顯示出來。這種方法是通過微處理器如單片機輸出圖形數據,再由LCD顯示模塊根據該圖形數據進行顯示[1-3]。其缺點是需要在LCD的像素排列和程序邏輯設計中花費大量的時間,而且在進行不同LCD顯示模塊的驅動設計時,要根據該LCD的驅動模塊重寫驅動程序,導致系統開發周期長、成本增加[4]。
    本文介紹一種使用虛擬技術實現LCD顯示模塊的方法以彌補前述方法的不足。該方法通過在單片機的RAM中建立緩沖區數組并對虛擬LCD的顯示數據進行存儲后,將顯示數據傳遞給PC機,再對這些數據進行處理后構建虛擬LCD以顯示字符或者圖形。
1 虛擬LCD顯示模塊的結構
    虛擬LCD顯示模塊的功能結構如圖1所示。虛擬LCD顯示模塊主要由4×4按鍵輸入單元、緩沖區單元、串口通信單元、數據接收單元、顯示數據處理單元、虛擬LCD界面組成。其中,4×4按鍵輸入單元負責選擇需要的虛擬LCD界面的大小及輸入顯示數據,這些信息由BTF020單片機存儲在緩沖區單元中;緩沖區單元通過所建的二維數組將數據分配給不同的存儲單元;串口通信單元根據BTF020單片機的命令負責將緩沖區單元中的數據發送給PC機;PC機中的數據接收單元負責接收串口通信單元發出的數據;顯示數據處理單元根據數據接收單元送出的數據進行數據轉換和處理,以便構建虛擬LCD界面;虛擬LCD界面負責將送入的字符或者圖形數據顯示出來。

2 虛擬LCD顯示數據的處理
2.1顯示緩沖區及數組的建立

    虛擬LCD的分辨率可根據BTF020發送的數據確定并采用分頁縱向顯示。在BTF020中建立一個緩沖區來存放需要顯示的數據,然后將這個緩沖區中的數據發送給PC機,由PC機將接收到的BYTE類型數據還原成8位二進制碼,然后再對該二進制碼進行逐位解析并按順序進行處理和顯示。當虛擬LCD的分辨率確定為256×256,顯示色為單色時,串口傳輸的數據為8位二進制碼,因此建立一個二維數組LCDdata[31][255]作為虛擬LCD的字符顯示緩沖區,共32頁(0~31)、256列(0~255)。該虛擬LCD的顯示緩沖區分布如圖2所示。


2.2 字符的處理與顯示
    虛擬LCD顯示漢字前需先取模。漢字的字模分成上下兩個部分,當顯示規格為16×16點陣的漢字時,取模走向為縱向且高位在前。可先對上半部分從左到右取模,然后對下半部分從左到右取模,再將該漢字所占的像素點標為“1”,其余標為“0”,從左到右開始取字模的結果并以十六進制表示。以同樣的方法,再對下半部分取模,其結果仍以十六進制表示。此時,將這兩次的結果結合起來就可得該漢字的字模。在取完字模后,把該字的字模預先存儲到一個一維數組中,然后確定漢字顯示于屏幕的位置。由于漢字顯示是以頁和列為定位坐標,單個漢字不跨頁顯示,因此可以調用漢字顯示函數來顯示漢字,這樣通過替換顯示緩沖區中的數據就可以達到顯示漢字的目的。該漢字顯示函數為:
    void Write_word(int y,int x, unsigned char  word [ ]
    其中,y代表頁,x代表列,word代表希望顯示的字的字模。圖3為漢字顯示流程。虛擬LCD顯示規格為8×16點陣的數字0~9時,取模走向為縱向,高位在前,點陣格式為陰碼,取模方式為行列式。


    通過調用數字顯示函數進行顯示,這樣通過替換顯示緩沖區中的數據就可以達到顯示數字的目的。該數字顯示函數為:
    void Write_num(int y,int x,int number)
2.3 點、直線和矩形的處理與顯示
    漢字在縱向的顯示處理是按頁計算,而點在縱向的顯示處理是按行計算,其計算方式與列的計算方式相同。把整個虛擬LCD屏幕分成255行、255列,則該虛擬LCD的圖形顯示緩沖區分布如圖4所示。


    按照以上分布規則,通過調用畫點函數可在屏幕上畫點。該畫點函數為:
    void Point(int x,int y)
    該函數中橫坐標可被系統識別,而縱坐標須轉換成頁的表示形式才能被系統識別。將縱坐標轉換成頁地址時先確定畫點所在頁,由于一頁中縱方向上有8個坐標點,因此可用整除的方式得到確定的頁地址。表1表示一頁中點亮像素點的數據與整除y時得到的余數的關系。

    設:點亮像素點的數據為add值,LCDdata [ ][ ]為顯示緩沖區數組,y/8為頁地址,x為列地址,則可得到顯示緩沖區。該顯示緩沖區的數據為:
    LCDdata[y/8][x]=add+LCDdata[y/8][x]
    按上述方法得到畫點的坐標后,再根據虛擬LCD顯示線段的坐標,在確定的方向上依次進行點的顯示。畫橫線的函數定義為:
    void HLine(int x1,int x2,int y)
    式中,x1、x2分別為橫線的橫坐標起始、結束點,y為縱坐標。
    畫豎線的函數定義為:
    void SLine(int x,int y1,int y2)
    式中,x為豎線的橫坐標,y1、y2分別為豎線縱坐標起始、結束點。
 畫矩形的函數定義為:
    void Rectangle(int x1,int y1,int x2,int y2)
    式中,x1為矩形左上角橫坐標,y1為矩形左上角縱坐標,x2為矩形右下角橫坐標,y2為矩形右下角縱坐標。
3 實驗
    進行實驗時采用VB6.0語言編程,圖5是用上述方法虛擬的分辨率為256×256的LCD顯示界面,該虛擬LCD界面的左上角的坐標為(0,0),右下角的坐標為(255,255)。界面中像素點以一個方格表示,初始界面由綠色方格組成,當期望的像素點進行點亮顯示時該位置為黑色方格。

    完成上述界面中字符和圖形顯示功能的語句為
    Rectangle(50,30,200,100);    畫邊框
    Write_word(6,128,peng);      寫“鵬”
    Write_num(8,111,0);            寫“0”
    Write_num(8,119,5);            寫“5”
    Write_num(8,127,2);            寫“2”
    Write_num(8,135,2);            寫“2”
    Write_comm( );                   緩沖區發送到PC
    通過顯示緩沖區的數組存儲虛擬LCD的顯示數據,然后將數據傳送給PC機,再用VB6.0語言對這些數據進行處理并構建虛擬LCD的顯示界面,可以正確顯示字符、點、線和矩形等圖形。所建的虛擬LCD顯示模塊具有開發簡便、快速、通用性強的特點。
參考文獻
[1] 劉冬生,曾曉雁. 液晶顯示控制器SED1330/SED1335/SED1336/E1330的應用[J].電子技術應用,2004,30(2):
71-73.
[2] 吳捷,陸鋒,左劍. 圖形液品顯示控制器SI D13503在單片機系統中的應用[J].信息化研究,2009,35(11):54-56.
[3] 潘敏,焦生杰,翁寅生. 基于DSP和ST7920的液晶顯示模塊的實現. 電子技術應用, 2007,33(6):48-50.
[4] 王震, 謝丁龍. 點陣LCD 顯示模塊通用驅動程序的開發[J]. 許昌學院學報, 2005,24(5):84-87.

此內容為AET網站原創,未經授權禁止轉載。
主站蜘蛛池模板: 亚洲精品无码久久久久去Q| 国产成人精品视频福利app| 久久天堂成人影院| 波多野结衣同性系列698| 国产一区二区不卡老阿姨| 18禁男女爽爽爽午夜网站免费| 性xxxxx大片免费视频| 久久综合九色综合欧美就去吻| 浮力国产第一页| 啊轻点灬大ji巴太粗太长了h | 国产喷水女王在线播放| 夜色资源网站www| 中文字幕一区二区三区久久网站 | 影音先锋男人天堂| 久久精品99国产精品日本| 欧美日韩在线视频专区免费| 公车上的奶水嗯嗯乱hnp| 蜜桃视频无码区在线观看| 国产激情з∠视频一区二区| 99久久免费看国产精品| 性调教室高h学校| 久久亚洲精品无码AV红樱桃| 欧美亚洲国产精品久久| 亚洲精品无码精品mV在线观看| 绿巨人晚上彻底放飞自己| 国产卡一卡二卡三卡四| 日批视频网址免费观看| 坐公交车弄了2个小时小视频| 一级毛片a免费播放王色| 日产精品久久久久久久性色 | 亚洲一区二区三区亚瑟| 毛片亚洲AV无码精品国产午夜 | 99热99在线| 婷婷六月天在线| 中文字幕侵犯一色桃子视频| 日韩三级免费电影| 亚欧洲精品在线视频免费观看 | bt天堂在线最新版在线| 性欧美vr高清极品| 久久99精品久久只有精品| 日韩爱爱小视频|