《電子技術(shù)應(yīng)用》
您所在的位置:首頁 > 嵌入式技術(shù) > 設(shè)計應(yīng)用 > 虛擬LCD顯示模塊的設(shè)計
虛擬LCD顯示模塊的設(shè)計
來源:電子技術(shù)應(yīng)用2011年第2期
江曉軍, 瞿丹晨, 徐 潔, 劉正國
上海第二工業(yè)大學(xué) 電子與電氣工程學(xué)院, 上海201209
摘要: 通過在BTF020單片機的RAM中建立緩沖區(qū)數(shù)組并對虛擬LCD的顯示數(shù)據(jù)進行存儲,然后通過單片機的串口將該數(shù)據(jù)傳送給PC機,再用VB6.0語言對這些數(shù)據(jù)進行處理并構(gòu)建虛擬LCD的界面,使其能夠正確顯示字符或者圖形。實驗結(jié)果表明,所建的虛擬LCD顯示模塊具有開發(fā)簡便、快速、通用性強的特點。
關(guān)鍵詞: LCD BTF020 顯示模塊
中圖分類號: TH85
文獻標(biāo)識碼: 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在人們生活中的應(yīng)用越來越廣泛,手機、車載系統(tǒng)及工業(yè)測量設(shè)備等都把LCD作為重要的人機接口,將使用者需要的信息顯示出來。這種方法是通過微處理器如單片機輸出圖形數(shù)據(jù),再由LCD顯示模塊根據(jù)該圖形數(shù)據(jù)進行顯示[1-3]。其缺點是需要在LCD的像素排列和程序邏輯設(shè)計中花費大量的時間,而且在進行不同LCD顯示模塊的驅(qū)動設(shè)計時,要根據(jù)該LCD的驅(qū)動模塊重寫驅(qū)動程序,導(dǎo)致系統(tǒng)開發(fā)周期長、成本增加[4]。
    本文介紹一種使用虛擬技術(shù)實現(xiàn)LCD顯示模塊的方法以彌補前述方法的不足。該方法通過在單片機的RAM中建立緩沖區(qū)數(shù)組并對虛擬LCD的顯示數(shù)據(jù)進行存儲后,將顯示數(shù)據(jù)傳遞給PC機,再對這些數(shù)據(jù)進行處理后構(gòu)建虛擬LCD以顯示字符或者圖形。
1 虛擬LCD顯示模塊的結(jié)構(gòu)
    虛擬LCD顯示模塊的功能結(jié)構(gòu)如圖1所示。虛擬LCD顯示模塊主要由4×4按鍵輸入單元、緩沖區(qū)單元、串口通信單元、數(shù)據(jù)接收單元、顯示數(shù)據(jù)處理單元、虛擬LCD界面組成。其中,4×4按鍵輸入單元負(fù)責(zé)選擇需要的虛擬LCD界面的大小及輸入顯示數(shù)據(jù),這些信息由BTF020單片機存儲在緩沖區(qū)單元中;緩沖區(qū)單元通過所建的二維數(shù)組將數(shù)據(jù)分配給不同的存儲單元;串口通信單元根據(jù)BTF020單片機的命令負(fù)責(zé)將緩沖區(qū)單元中的數(shù)據(jù)發(fā)送給PC機;PC機中的數(shù)據(jù)接收單元負(fù)責(zé)接收串口通信單元發(fā)出的數(shù)據(jù);顯示數(shù)據(jù)處理單元根據(jù)數(shù)據(jù)接收單元送出的數(shù)據(jù)進行數(shù)據(jù)轉(zhuǎn)換和處理,以便構(gòu)建虛擬LCD界面;虛擬LCD界面負(fù)責(zé)將送入的字符或者圖形數(shù)據(jù)顯示出來。

2 虛擬LCD顯示數(shù)據(jù)的處理
2.1顯示緩沖區(qū)及數(shù)組的建立

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


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


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


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

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

    完成上述界面中字符和圖形顯示功能的語句為
    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( );                   緩沖區(qū)發(fā)送到PC
    通過顯示緩沖區(qū)的數(shù)組存儲虛擬LCD的顯示數(shù)據(jù),然后將數(shù)據(jù)傳送給PC機,再用VB6.0語言對這些數(shù)據(jù)進行處理并構(gòu)建虛擬LCD的顯示界面,可以正確顯示字符、點、線和矩形等圖形。所建的虛擬LCD顯示模塊具有開發(fā)簡便、快速、通用性強的特點。
參考文獻
[1] 劉冬生,曾曉雁. 液晶顯示控制器SED1330/SED1335/SED1336/E1330的應(yīng)用[J].電子技術(shù)應(yīng)用,2004,30(2):
71-73.
[2] 吳捷,陸鋒,左劍. 圖形液品顯示控制器SI D13503在單片機系統(tǒng)中的應(yīng)用[J].信息化研究,2009,35(11):54-56.
[3] 潘敏,焦生杰,翁寅生. 基于DSP和ST7920的液晶顯示模塊的實現(xiàn). 電子技術(shù)應(yīng)用, 2007,33(6):48-50.
[4] 王震, 謝丁龍. 點陣LCD 顯示模塊通用驅(qū)動程序的開發(fā)[J]. 許昌學(xué)院學(xué)報, 2005,24(5):84-87.

此內(nèi)容為AET網(wǎng)站原創(chuàng),未經(jīng)授權(quán)禁止轉(zhuǎn)載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
亚洲高清影视| 99香蕉国产精品偷在线观看| 在线免费观看欧美| 国产日韩欧美中文| 国产欧美一区二区三区国产幕精品| 欧美日韩综合视频网址| 欧美久久在线| 欧美理论电影在线观看| 欧美精品久久99| 欧美久久久久久蜜桃| 欧美精品自拍| 欧美日韩视频一区二区| 欧美日韩一区成人| 欧美特黄一级大片| 国产精品国产三级国产普通话99 | 欧美日本久久| 欧美另类专区| 欧美性猛片xxxx免费看久爱| 国产精品美女主播在线观看纯欲| 国产精品人成在线观看免费| 国产欧美1区2区3区| 国产亚洲精品自拍| 影音先锋中文字幕一区| 亚洲韩国青草视频| 99精品国产在热久久下载| 亚洲午夜成aⅴ人片| 午夜一区二区三视频在线观看| 久久精品国产一区二区三| 亚洲国产乱码最新视频| 99精品国产99久久久久久福利| 亚洲性视频网址| 欧美在线观看日本一区| 美女日韩欧美| 欧美三区不卡| 国产午夜精品美女毛片视频| 在线观看日韩www视频免费 | 亚洲国产精品久久久久| 99亚洲精品| 欧美在线二区| 欧美二区不卡| 国产精品美女在线观看| 国外精品视频| 亚洲免费不卡| 欧美在线高清视频| 日韩一区二区电影网| 香蕉乱码成人久久天堂爱免费| 久久欧美中文字幕| 欧美日韩午夜| 国内精品一区二区| 亚洲精品乱码久久久久久按摩观| 亚洲天堂第二页| 亚洲国产91精品在线观看| 亚洲精品国产精品乱码不99| 亚洲欧美美女| 欧美fxxxxxx另类| 国产精品一区毛片| 亚洲丰满少妇videoshd| 亚洲综合大片69999| 亚洲人成毛片在线播放| 亚洲综合国产激情另类一区| 麻豆成人在线播放| 国产精品久久久久久久久久久久久 | 久久精品在线| 欧美日韩国产欧美日美国产精品| 国产精品一区免费观看| 亚洲欧洲视频在线| 欧美在线黄色| 亚洲自啪免费| 欧美成人高清视频| 国产精品一区在线观看| 亚洲精品一区二区三区不| 欧美亚洲日本国产| 一本色道久久综合亚洲精品婷婷 | 亚洲黄色视屏| 久久成人精品电影| 亚洲一区二区三区在线| 免费一级欧美片在线播放| 国产伦精品一区二区三区照片91| 亚洲剧情一区二区| 亚洲第一精品夜夜躁人人爽| 亚洲欧美国产高清| 欧美啪啪一区| 18成人免费观看视频| 欧美一级淫片aaaaaaa视频| 亚洲专区在线视频| 欧美日韩精品不卡| 亚洲大胆女人| 久久精品亚洲一区二区三区浴池 | 欧美午夜一区| 最新中文字幕亚洲| 亚洲国产一区二区三区在线播| 欧美专区第一页| 国产精品日韩一区二区三区| 夜夜嗨av一区二区三区四季av| 99re成人精品视频| 欧美大片免费观看| 永久555www成人免费| 欧美在线视频不卡| 欧美在线视频观看免费网站| 国产精品二区三区四区| 日韩视频在线永久播放| 亚洲看片免费| 欧美国产视频一区二区| 永久免费视频成人| 亚洲春色另类小说| 久久资源在线| 一区二区在线观看视频在线观看 | 亚洲日本成人在线观看| 免费在线欧美黄色| **欧美日韩vr在线| 亚洲全部视频| 欧美激情黄色片| 亚洲精品乱码久久久久| 日韩一区二区精品| 欧美日韩国产成人高清视频| 亚洲肉体裸体xxxx137| 日韩亚洲在线观看| 欧美日韩高清区| 日韩视频一区二区| 亚洲伊人伊色伊影伊综合网| 欧美亚洲第一页| 亚洲婷婷综合色高清在线 | 欧美日韩精品中文字幕| av成人天堂| 亚洲欧美亚洲| 国产情人节一区| 久久精品二区| 欧美成人在线免费观看| 亚洲精品久久嫩草网站秘色| 亚洲视频免费在线| 国产精品欧美激情| 亚洲与欧洲av电影| 久久久福利视频| 亚洲第一页自拍| 9l国产精品久久久久麻豆| 欧美色中文字幕| 亚洲欧美一区二区激情| 久久久免费av| 伊人男人综合视频网| 9国产精品视频| 国产精品男人爽免费视频1| 午夜日韩在线观看| 免费在线观看成人av| 日韩视频永久免费观看| 性欧美xxxx视频在线观看| 国产真实乱偷精品视频免| 亚洲精品视频二区| 国产精品国产亚洲精品看不卡15| 香蕉久久夜色精品国产| 久久一二三四| 99精品久久久| 久久久99国产精品免费| 亚洲国产精品成人综合色在线婷婷 | 欧美精品日韩综合在线| 亚洲一级一区| 免播放器亚洲| 亚洲午夜免费视频| 久久综合九色综合欧美狠狠| 亚洲精品久久久久| 欧美专区第一页| 亚洲日本在线视频观看| 亚洲欧美视频一区| 在线国产欧美| 亚洲欧美在线一区二区| 激情小说另类小说亚洲欧美| 一本大道av伊人久久综合| 国产乱肥老妇国产一区二| 亚洲日本欧美| 国产美女精品免费电影| 亚洲精品在线视频| 国产日韩欧美视频| 亚洲最新视频在线| 国产一区二区三区视频在线观看| 一本久久青青| 一区二区在线观看视频在线观看| 亚洲视屏一区| 精品成人在线视频| 亚洲欧美日韩一区二区三区在线观看| 在线播放一区| 欧美在线高清视频| 亚洲伦理在线| 免费试看一区| 性久久久久久久| 欧美日韩综合另类| 亚洲黄色性网站| 国产精品人人做人人爽| 亚洲精品黄网在线观看| 国产亚洲福利社区一区| 亚洲一区成人| 亚洲人成小说网站色在线| 久久久亚洲人| 亚洲欧美中文字幕| 欧美日韩专区在线| 亚洲区国产区| 国内精品福利| 欧美中文字幕不卡| 亚洲私人影院| 欧美理论视频| 亚洲美女av黄| 亚洲国产精品成人一区二区|