《電子技術應用》
您所在的位置:首頁 > 顯示光電 > 設計應用 > 基于液晶模塊的動態曲線顯示
基于液晶模塊的動態曲線顯示
韋小華 電子科技大學
摘要: 以中文液晶顯示模塊CM320240-7為例,給出了使用LCD顯示模塊CM320240-7來實現文本、圖形和實時曲線顯示的系統設計方法。
Abstract:
Key words :

0 引言
    為了提高顯示程序的可讀性和可維護性,軟件程序通常采用C語言來編寫。從總體上說,液晶顯示軟件的編程主要分為主程序、液晶顯示模塊、鍵盤輸入模塊和通信模塊等。其中主程序主要完成初始化、鍵盤掃描等;鍵盤輸入模塊主要完成各功能鍵的按鍵響應;液晶模塊主要完成菜單界面的切換顯示;通信模塊主要實現數據的接收與發送。本文重點介紹液晶顯示部分的內容。
    液晶顯示的內容主要是一些用戶關心的實時參數和狀態,其基本操作流程為:初始化、清屏、顯示。初始化主要是復位液晶,等待對液晶進行操作;清屏主要是清除掉液晶屏上所顯示的內容,為下一次顯示的內容做準備;顯示主要是顯示當前想要顯示的內容。

1 中文液晶顯示模塊CM320240-7
    中文液晶顯示模塊CM320240-7是一個中英文文字與繪圖模式的點矩陣液晶顯示模塊,其內建有12Kbyte的ROM字型碼,可以顯示中文字型,數字符號,英日歐文等字母。同時,該模塊還內建雙圖層的顯示內存,可支持文字與繪圖兩種混合顯示模式。并可提供全角(16x16)與半角(×8)文字顯示模式。CM320240-7的最大特點就是在強光照射下,用戶依然可以清晰地看到屏幕上顯示的內容,因而非常適合在戶外使用。
    CM320240-7可以很方便地與ARM9相連接。它具有24個管腳,其中有8位數據線(DB0~DB7),6位控制線(RS-數據/命令控制,WR-讀寫控制,CS2-片選2,CS1-片選1,EN-使能端,/RST-復位端,),4位電源線(AVSS,AVDD,VSS,VDD),2位狀態線(BUSY-用以回應模塊內部的執行使用狀況,INT-用以回應模塊內部的中斷狀況),同時包括背光源正、負端(LED+、LED-),LCD驅動電源輸入端和輸出端(V0、VEE)。

2 字符和漢字的顯示
    對于點陣液晶顯示器來說,漢顯菜單的設計就是如何通過編程將漢字按一定的格式在屏幕上顯示出來。
    在LCD上顯示字符和漢字之前,通常都需要先提取點陣碼。由于要顯示的漢字和字符非常多,而且它們是任意的,因而必須要有常用的字
符和漢字字庫。由于ASCⅡ字符字庫比較小,一般的字模軟件就可以生成,故筆者使用的軟件是任意點陣字體生成器,其操作界面如圖1所示。

a.JPG


    任意點陣字體生成器軟件界面風格簡潔,操作簡便。常用漢字和字符的ASCⅡ碼保存在以.dat為后綴的文件里。故以打開文件的方式就可取得漢字和字符的ASCⅡ碼,其操作語句如下:
    fp_ST_16_08_ASC=fopen(“/mnt/Nand1/ST_16_08_ASC.Dat”,“r”)
    有關在文本和圖形顯示方式下寫入字符和漢字的方法,在與顯示有關的相關資料中已經介紹得很清楚。這里給出的是一個在本程序中用到的顯示漢字的函數。通過這個函數,可以將想要顯示的任意漢字和字符顯示在液晶屏幕的任意位置上。具體如下:
    static void HanZi(U32 x,U8 y,U8*data,U8size,U8 reverse_log)
    其中,x為橫坐標,y為縱坐標,*data為數據內容,size為字體,reverse_log為反白標記。

3 圖形曲線的顯示
3.1 描點
    對屏幕上每一個點進行繪制是繪圖的基本條件。在用液晶顯示器顯示圖形曲線時,首先要給屏幕上的每一個點分配一個二維的坐標。對于CM320240-7所用的320x240點陣液晶,其左上角第一個點的坐標為(0,0),右下角最后一個點的坐標為(319,239)。這樣,根據二維坐標就可以計算出各點所對應的內存單元,并給其賦值“1”。而中文液晶顯示模塊在顯示圖形的時候,一般是以字符映像(Bit Map)的方式寫入RAM,若RAM的某個位置被填滿為“1”,其LCD面板相對應的位置就會被顯示出黑點。因此,在RAM上所存儲的像素資料,就會對應到顯示屏幕(LCD)上,從而構成文字、符號或圖形等顯示效果。為了便于運算,可將每8個點的狀態存放在一個字節的內存單元中,圖2給出了顯示數據從RAM到LCD顯示的映射方式。由此可見,全屏的320x240個點的狀態將存放在(320/8)x240=40x240個字節的內存單元中。

d.JPG


    填充某一矩形區域的函數為Box_full(U16x_l, U16 y_1,U16 x_2, U16 y_2), 其中,(x_1,y_1),(x_2,y_2)為所填充的矩形區域的左上角和右下角的坐標。描一個點就相當于填充一個點陣區域。
    清除某矩形區域的函數為Box_eraser(U16x_1,U16 y_1,U16 x_2,U16 y_2),其中,(x_1,y_1), (x_2,y_2)分別為所清除的矩形區
域的左上角和右下角的坐標。消除一個點即清除一個點陣區域。通過這個函數可以很方便地清空某個矩形區域的內容,例如清除圖形區域,或清除需要改變的數據區域等。
3.2 畫線
    曲線可以視為是由若干直線段首尾相連而成。繪制直線是繪制曲線的基礎,所以首先考慮直線的繪制方法。一般的斜線段也可以看作是由若干水平或垂直的線段首尾連接而成的,而對于水平直線和垂直直線這兩種特殊情況,則相當于填充某矩形區域,這可以用前面提到的Box_full0函數來完成。因此,曲線的繪制全部都可以轉換為直線的繪制,而其關鍵就在于確定各個水平或垂直線段首尾兩個端點的坐標。下面將重點介紹繪制直線的算法。
    處理曲線段首尾兩個端點的方法相對比較簡單,即每個端點都沿X軸正向繪制2個相同Y值的像素點,Y為當前點所對應的縱坐標。對于兩端點之間剩余的3個像素點,可分以下三種情況進行討論。
    首先,當y_0等于y_past時,很顯然,兩端點之間是一條水平線,其線形如圖3(1)所示。其函數描述為:Box_full(x_0-3,y_0,x_0+1,y_0)。
    其次,如果y_0大于y_past,此時將分為以下4種情況進行討論:
b.jpg
c.jpg

e.JPG


    而當y_0小于y_past時,其分析方法與y_0大于y_past時相似,這里不再重復。 


3.3 動態曲線的顯示
    圖4所示是實現動態曲線顯示的顯示界面。實際上,該界面可劃分為以下3種顯示區域:文本區、數字區、圖形區。文本區是指圖中的文字部分,用于說明和提示;數字區是指圖中的數字部分,用于顯示一些實時的數據,例如時間、直流值、交流值、存儲器容量等;圖形區則是指界面中間顯示波形的部分,主要用于顯示實時動態波形。

f.JPG


    在確定實時曲線點地址時,其二維坐標的任意一點都是由橫坐標和縱坐標來確定的。對于橫坐標,它們是一組等間隔的整數,因此,每畫完當前一個點后,再在其水平坐標加上某一固定的整數,即可得到下一個要畫的點的水平坐標。例如,若橫坐標間隔為5,則橫坐標X就依次加5。對于縱坐標則相對復雜些,假設A/D轉換后得到的數據為y,Y為所求點在動態顯示區中所在的行,橫軸所在的行為H,則Y=H-(int)(yx20)。20實際上是為了方便運算而取的一個幅值,該值可以根據不同的數據情況來設定其大小。
    為了在液晶屏幕上實時動態地顯示曲線,刷新是一個很重要的環節。傳統的刷新方法是不斷地刷新每個顯示單元。顯示的控制過程實際上就是對圖形區RAM數據的控制過程,從左到右按單位掃描時間逐一置動態圖形區RAM中的顯示數據,直到掃描到LCD最右邊時,再清除所有動
態圖形區RAM的數據,之后,又按單位掃描時間從左到右繼續逐一置動態圖形區RAM中的顯示數據,并以逐點顯示方式來實現整幅圖形的刷
新。由于圖形顯示數據的運算量大、讀寫次數較多,液晶屏的讀操作要連續進行兩次,第一次讀操作將地址輸出讀到一個無效數據,第二次讀操作才讀到有效數據。所以,用這種方法實現的顯示會感到刷新不及時、視覺效果較差。本文采用靜態隨機存取存儲器(SRAM)的映射方式,即在(SRAM)中開辟一個與液晶屏動態圖形變化區域相同容量的存儲區域,并使圖形的刷新全部在(SRAM)中進行,然后重新寫屏。由于采用的是相同的地址指針,從而減少了ARM地址指針切換所帶來的延遲,這樣就使得圖形曲線更新的動態性能大大提高。除此之外,本文還采用了指定有變化的部分刷新的方法,即讓沒有變化的部分保留原樣,而不采取任何操作,只改變有變化的部分。因此,刷新的效率也大大地提高了。刷新操作的具體程序如下:
    g.JPG
h.JPG
    i.jpg
    對于波形動態顯示的效果,現假設一整屏波形顯示56個數據,那么第一屏應依次描點,即從X軸最左邊起,一個單位時間描一個點且描一個點刷新一次。當第一屏描滿,即56個點全部描完時,圖形區域將顯示一個完整的波形。之后從第二屏開始,將一次性顯示滿屏的56個點。然后再刷新。其中第56個點,即最新的點顯示在圖形區域的最右邊,它的縱坐標是最新讀到的數據轉換值。左邊的55個點的縱坐標是之前顯示的舊的55個點的縱坐標。之后,繪制每一屏的方法都與繪制第二屏的相同。通過這種方法,波形將呈現不斷往前平移的效果,從而實現一個連續波形的動態顯示。

4 結束語
    本文所討論的液晶顯示應用技術的實現方法,已在工程實踐中表明是可行的,并且運行比較穩定。

此內容為AET網站原創,未經授權禁止轉載。
亚洲一区二区欧美_亚洲丝袜一区_99re亚洲国产精品_日韩亚洲一区二区
午夜天堂精品久久久久| 亚洲精品国产欧美| 在线国产精品一区| 欧美色中文字幕| 欧美xart系列高清| 久久久久久亚洲精品杨幂换脸 | 国产精品嫩草影院av蜜臀| 欧美国产先锋| 麻豆91精品91久久久的内涵| 久久精品男女| 久久精品91| 久久成人精品视频| 欧美一区二区在线播放| 亚洲欧美日韩精品久久久| 中文在线资源观看视频网站免费不卡| 亚洲精品女av网站| 亚洲精品乱码久久久久久蜜桃麻豆 | 欧美激情亚洲一区| 欧美mv日韩mv国产网站| 免费观看国产成人| 欧美成人a∨高清免费观看| 蜜桃av久久久亚洲精品| 免费试看一区| 欧美福利精品| 欧美巨乳在线| 国产精品v日韩精品v欧美精品网站| 欧美三级日本三级少妇99| 欧美日韩亚洲综合| 国产精品久久久久国产精品日日 | 中文日韩在线| 亚洲视频网站在线观看| 日韩亚洲视频| 夜夜嗨av一区二区三区网站四季av| 亚洲激情成人在线| 亚洲精品日韩在线| 洋洋av久久久久久久一区| 99精品久久| 亚洲一区二区三区午夜| 亚洲欧美在线一区二区| 欧美一级艳片视频免费观看| 久久精品国产2020观看福利| 亚洲激情另类| 一本一本久久a久久精品牛牛影视| 亚洲视频狠狠| 久久精精品视频| 巨乳诱惑日韩免费av| 欧美激情精品久久久久久变态| 欧美日韩一区不卡| 国产欧美精品日韩精品| 欧美国产日韩二区| 欧美巨乳波霸| 国产精品亚洲综合久久| 极品少妇一区二区| 亚洲美女视频网| 亚洲免费视频一区二区| 亚洲高清资源| 一区二区三区高清视频在线观看| 性欧美xxxx大乳国产app| 亚洲免费观看| 亚洲免费在线视频一区 二区| 久久se精品一区精品二区| 米奇777在线欧美播放| 欧美三区不卡| 国产主播精品在线| 亚洲免费电影在线观看| 亚洲在线免费| 亚洲欧洲日本在线| 亚洲一区一卡| 麻豆精品视频在线观看| 欧美体内she精视频在线观看| 国产午夜精品一区二区三区视频| 最新亚洲一区| 午夜亚洲一区| 一本色道久久99精品综合 | 亚洲精品在线二区| 欧美一区二区黄| 99精品视频免费全部在线| 欧美亚洲日本一区| 欧美成人视屏| 国产日韩在线看片| 9l国产精品久久久久麻豆| 久久精品一区中文字幕| 亚洲一区二区在线免费观看| 久久一区二区三区四区| 国产精品久久久久久户外露出| 亚洲国产黄色| 欧美一区二区在线播放| 亚洲一级黄色av| 免费久久99精品国产| 国产欧美一区二区精品秋霞影院| 亚洲精品一区二区在线观看| 亚洲第一福利社区| 欧美一区二区三区四区在线观看| 欧美精品在线一区二区| 国内成人在线| 亚洲自拍偷拍一区| 亚洲一二三级电影| 欧美国产日韩一区二区| 国产一区在线看| 亚洲一区二区免费| 中文在线不卡| 欧美另类在线播放| 在线不卡中文字幕| 亚欧成人在线| 欧美亚洲视频在线观看| 欧美色图首页| 亚洲精品视频在线观看免费| 亚洲国产精品日韩| 久久久另类综合| 国产伦理精品不卡| 亚洲一区二区三区久久| 一区二区三区欧美视频| 欧美大片在线观看一区二区| 韩日欧美一区二区| 校园春色国产精品| 亚洲欧美影音先锋| 国产精品扒开腿做爽爽爽软件| 亚洲精品国产精品乱码不99| 最近中文字幕mv在线一区二区三区四区| 久久精品一区二区三区四区 | 午夜视频在线观看一区二区三区 | 噜噜噜躁狠狠躁狠狠精品视频| 国产日本欧美在线观看| 亚洲一区国产视频| 亚洲欧美日韩精品一区二区| 国产精品久久国产精品99gif| 夜夜嗨av一区二区三区| 一区二区三区偷拍| 欧美视频福利| 一区二区三区四区五区精品| 亚洲影院在线| 国产精品美女久久久久久久| 在线一区二区三区做爰视频网站| 在线综合亚洲欧美在线视频| 欧美日韩一区二区高清| 在线视频亚洲欧美| 欧美一区二区黄| 国产日本欧美在线观看| 欧美一区二区三区免费大片| 久久久久久久97| 狠狠久久婷婷| 亚洲日本欧美天堂| 欧美日产一区二区三区在线观看| 亚洲毛片av在线| 亚洲欧美999| 国产视频在线观看一区| 久久国产精品亚洲77777| 久久综合电影一区| 亚洲激情婷婷| 亚洲午夜精品一区二区| 国产精品日韩一区| 欧美在线短视频| 你懂的成人av| 99亚洲一区二区| 欧美一区二区三区在线看 | 一区二区高清在线| 国产精品乱码| 欧美在线观看www| 蜜臀av在线播放一区二区三区| 亚洲福利视频二区| 一本色道久久综合一区| 国产精品视频一区二区高潮| 久久精品国产精品亚洲| 欧美精品一区三区| 亚洲午夜激情免费视频| 久久久爽爽爽美女图片| 亚洲人成欧美中文字幕| 午夜精品福利视频| 韩国一区二区三区在线观看| 一本久道久久综合狠狠爱| 国产欧美日本在线| 亚洲激情网址| 国产精品国产自产拍高清av| 欧美在线免费视屏| 欧美高清在线视频| 亚洲免费中文字幕| 欧美成人黑人xx视频免费观看| 日韩网站在线观看| 久久国产精品久久精品国产| 亚洲高清视频在线观看| 亚洲性视频h| 在线观看三级视频欧美| 亚洲一区日韩在线| 精品av久久707| 亚洲一级片在线观看| 激情校园亚洲| 亚洲午夜女主播在线直播| 国产一区二区看久久| 宅男噜噜噜66一区二区| 国产日韩欧美亚洲一区| 亚洲午夜高清视频| 狠狠色丁香久久综合频道| 亚洲影院在线观看| 亚洲第一福利视频| 欧美一区二区三区在线| 亚洲日本免费| 久久在线精品| 亚洲欧美综合国产精品一区| 欧美日韩精品一区二区| 久久精品成人一区二区三区蜜臀|