国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

基于ST7920控制器的液晶顯示波形方案研究

2015-11-07 06:22:14四川職業(yè)技術(shù)學(xué)院電子電氣工程系四川遂寧629000
關(guān)鍵詞:豎線液晶顯示液晶

劉 宸(四川職業(yè)技術(shù)學(xué)院電子電氣工程系,四川 遂寧 629000)

基于ST7920控制器的液晶顯示波形方案研究

劉宸
(四川職業(yè)技術(shù)學(xué)院電子電氣工程系,四川遂寧629000)

文章詳細(xì)介紹了以ST7920為控制器的中小尺寸12864液晶實現(xiàn)波形顯示的多種方案,提出了兩種改進(jìn)算法,并討論各方案的優(yōu)缺點.總結(jié)出應(yīng)根據(jù)不同應(yīng)用場合的需求來選擇對應(yīng)的方案.

ST7920;12864;液晶;波形

由于LCD液晶顯示器件具有電壓低、功耗小、顯示信息量大、使用壽命長等優(yōu)點,被廣泛應(yīng)用于儀器儀表的人機(jī)交互界面.同時,在很多領(lǐng)域中使用的便攜式數(shù)字化設(shè)備越來越多以單片機(jī)為控制核心、用LCD作為顯示終端.12864點陣液晶是中小尺寸液晶的典型代表,應(yīng)用廣泛.而運用12864液晶顯示動態(tài)波形,在近幾年的電子設(shè)計大賽中有這樣的題目要求,在發(fā)明杯和創(chuàng)新創(chuàng)業(yè)大賽中的一些項目也有這樣的實際需求,比如:心率監(jiān)測儀、數(shù)控電源、甚至數(shù)字示波器等.利用液晶顯示動態(tài)波形能觀察各種不同信號的幅度隨時間變化的波形曲線,還可以用它顯示各種不同的電量,如電壓、電流、頻率、相位、幅度等.

1 點陣液晶的種類

12864液晶種類繁多,從液晶的顏色來分,有黃綠底黑字屏,藍(lán)底白字屏,灰底黑字屏等,從顯示方式來分有STN、FSTN、DFSTN等.但對于開發(fā)者而言,最重要的是液晶控制器的類型.常用的控制器有四種,每一種都有自己的特點,當(dāng)然指令也各不相同.開發(fā)者不搞明白液晶類型,肯定是無從下手.

ST7920類:這種控制器帶中文字庫,為用戶免除了編制字庫的麻煩,該控制器的液晶還支持畫圖方式.該類液晶支持68時序8位和4位并行通信以及串行通信.在電子市場中占有較大比例,但在仿真軟件PROTEUS中沒有該類液晶的仿真模型,因而不支持仿真.常見的QC12864B就屬于ST7920 類.

KS0108類:這種控制器指令簡單,但不帶字庫,需用戶自己編制字庫.支持68時序8位并行通信.支持在PROTEUS中仿真運行.

T6963C類:這種控制器帶西文字庫.有文本和圖形兩個圖層,并且支持兩個圖層的疊加顯示.支持80時序8位并行通信.

COG類:常見的控制器有S6B0724和ST7565,這兩個控制器指令兼容.支持68時序8位并行通信,80時序8位并行通信和串行通信.COG封裝類液晶的特點是結(jié)構(gòu)輕便.

其中PSB是ST7920類液晶的標(biāo)志性引腳;CS1 和 CS2是 KS0108類引腳的標(biāo)志性引腳;FS是T6963C類液晶的標(biāo)志性引腳.可以根據(jù)這些引腳來判斷液晶的類型.

2 液晶顯示波形的方案

實時顯示采集信號的波形,就是根據(jù)時間軸和采集值幅度在液晶上畫點和畫線,隨著時間的推移,每隔單位時間就需要顯示采集信號的一個點.顯示的點在時間軸上是連續(xù)的,但信號的幅值不一定是連續(xù)的,當(dāng)前后兩個連續(xù)時間點的幅值不連續(xù)時,為了顯示效果更優(yōu),則需要開發(fā)者人為地把這兩個點之間的空白以豎線顯示出來.

2.1KS0108控制器液晶方案

從程序的簡化來說,最好選擇KS0108控制器的液晶方案,雖然ST7920控制器的也有畫圖方式,但是用它顯示動態(tài)波形會浪費很多數(shù)據(jù)處理的時間。究其原因,是因為KS0108控制器的顯示RAM字節(jié)是縱向排列,對應(yīng)液晶點陣的列,顯示波形時,時間軸對應(yīng)液晶的128列,信號幅值對應(yīng)縱向排列的8個字節(jié),畫點程序處理就相當(dāng)簡單,算法是先定位頁(63-DATA)/8,再輸出數(shù)據(jù)0X01<<(DATA%8)即可.但缺點是采用KS0108控制器的液晶不帶字庫,顯示字符不方便,而且只能并行傳輸數(shù)據(jù),如果應(yīng)用場合的處理器引腳資源有限,則不能實現(xiàn).因此本文主要研究支持串行模式的ST7920控制器液晶方案.

收稿日期:2015-05-25

作者簡介:劉宸(1982-),男,四川遂寧人,四川職業(yè)技術(shù)學(xué)院講師.研究方向:電子系統(tǒng)設(shè)計.

2.2ST7920控制器液晶方案

2.2.1讀取舊顯示數(shù)據(jù)

ST7920控制器的液晶顯示器,顯示RAM是橫向排列的,液晶更改GDRAM只能橫向16位改,即寫數(shù)據(jù)必須橫向?qū)憙蓚€字節(jié)的數(shù)據(jù),高8位和低8位. ST7920控制器型液晶圖形顯示坐標(biāo)如圖1.

圖1 ST7920控制器型液晶圖形顯示坐標(biāo)

為了不把當(dāng)前點附近的16位數(shù)據(jù)丟失,要畫點和畫線,就必須讀取當(dāng)前點所在位置的舊顯示數(shù)據(jù),再與當(dāng)前點合成為新數(shù)據(jù).而讀取舊顯示數(shù)據(jù),大體上分兩種方案:

方案A:讀取液晶中的數(shù)據(jù),當(dāng)前點所在位置的舊顯示數(shù)據(jù)(16位).

方案B:在單片機(jī)內(nèi)存中開辟1K字節(jié)的空間(128*64/8bit=1024字節(jié)),用作虛擬LCD12864的GDRAM,所以不用讀液晶,讀的是內(nèi)存中的備份數(shù)據(jù).

ST7920繪圖時候一般都選擇在并行模式,因為繪圖時需要回讀液晶中GDRAM的數(shù)據(jù),在串行模式下,經(jīng)試驗不能回讀數(shù)據(jù).因此要選擇方案A則必須選擇并行模式.并行模式下需占用11個I/O引腳(RS、RW、E和8個引腳的并行端口),然而在串行模式下繪圖只占用 3個 I/O引腳(CS、SID和SCLK),其中CS可以直接硬件連接VCC保持高電平,則甚至只用2個I/O引腳.所以,如果應(yīng)用場合受限于I/O口資源,則應(yīng)該選擇方案B,但缺點是需要開辟1024個字節(jié)的內(nèi)存空間,增加了內(nèi)存開銷,真所謂魚與熊掌難以兼得.

方案A的缺點是:(1)采用并行模式,占用引腳資源比方案B多;(2)當(dāng)要補充畫豎線時,該列的幅度差值有N個點,則需要畫點N次,導(dǎo)致每列畫點的耗時不同.

此外還可以采用Bresenham畫線算法,畫出任意兩點間連成的直線,但對于我們這里的需求,畫波形而言,只需要畫豎線,因此還是面對同樣的缺點,即每列畫點的耗時不同。若在慢速采集的場合,采集速度慢于顯示速度,每列畫點耗時不同的影響就可以忽略不計.

2.2.2針對方案B的優(yōu)化

在特定應(yīng)用場合,比如單片機(jī)使用的是MSP430 G2553,它的RAM只有512字節(jié),或者AT89S52單片機(jī),僅有256字節(jié),根本不夠開辟1K字節(jié)內(nèi)存空間來備份數(shù)據(jù).以下針對方案B的優(yōu)化方案可以解決此問題.

方案B-1:虛擬LCD12864的GDRAM時,不需要在單片機(jī)內(nèi)存中開辟1K字節(jié)的空間,只需要存儲當(dāng)前點位置的16位寬和64行的舊顯示數(shù)據(jù),即64 行*16列/8=128字節(jié).為什么是所有行,因為豎線最多可能有64行,要輸出的數(shù)據(jù)就應(yīng)該包含所有行的數(shù)據(jù).程序中,由于要留一行顯示必要的文字,因此只剩48行供波形顯示,其程序要點是:

b=0x8000;//16位數(shù)據(jù)首位置

x&=0x70;//得到顯示的數(shù)據(jù)的首位在數(shù)組中的位置,因為液晶是在0,16,32,48,64,80,96,112列寫數(shù)據(jù),所以在這8個點開始改t[48]數(shù)據(jù),也可寫成:x=x/16;x=x*16;或者x=x>>4<<4;均可實現(xiàn),獲得數(shù)據(jù)首位置

for(i=0;i<16;i++)//t[48]為16位存儲空間,根據(jù)ad采集值數(shù)組wave[x]更改t[48]數(shù)據(jù),打點且連了兩點間的豎線

{

m=wave[x+i];n=wave[(x+i+1)%128];//得到前后兩點的高度

if(m>n){j=m;m=n;n=j;}

j=0;

while(j

while(j<=n){t[j]|=b;j++;}//從小值到大值,m到n打黑點,連成豎線

while(j<48){t[j]&=~b;j++;}//高于ad值,打白點,不顯示

b>>=1;//指向16位數(shù)據(jù)的下一位

}

程序中合成數(shù)組t[48]的過程中,要改48行16位中的全部點,所以要改寫16*48次數(shù)據(jù),處理數(shù)據(jù)較多.再此基礎(chǔ)上進(jìn)一步優(yōu)化,提出以下方案.

方案B-2:先計算該點在16位數(shù)據(jù)的相對位置,根據(jù)ad值,只改寫t[48]的16位數(shù)據(jù)中的當(dāng)前這一位,改寫48行數(shù)據(jù),只改當(dāng)前點這一列.再將數(shù)組t[48]輸出.程序要點是:

if(x%16==0){for(i=0;i<48;i++)t[i]=0;}//每隔16點,清空數(shù)據(jù)

i=x%16;//取得相對位置

b>>=i;//指向該列

m=wave[x-1];n=wave[x];//得到前后兩點的高度

if(m>n){j=m;m=n;n=j;}

j=0;

while(j

while(j<=n){t[j]|=b;j++;}//從小值到大值,m到n打黑點,連成豎線

while(j<48){t[j]&=~b;j++;}//打白點,不顯示

此方案改寫數(shù)組的次數(shù)是方案B-1的16分之1,速度更快,單片機(jī)處理耗時減少,但由于單片機(jī)的耗時比寫數(shù)據(jù)到液晶的耗時相對小得多,所以實際顯示效果優(yōu)化有限.但對于快速采集的場合,顯示速度慢于采集速度,此時方案B-1也有優(yōu)勢,寫當(dāng)前點時會附帶著把之前未顯示出來的點顯示出來了,而方案B-2則只改寫顯示當(dāng)前列,之前若未來得及顯示的點則無法再顯示出來.基于此,提出以下方案.

方案B-3:可以每當(dāng)夠16位點時才寫一次液晶,優(yōu)點是寫液晶的次數(shù)減少,顯示速度約為方案B-2的16倍,但缺點是觀看示波效果時會有頓挫感.程序示例:

if(x%16==0)outwave(x-1);//每當(dāng)夠16位時才寫一次液晶顯示16列*48行,但也需要根據(jù)ad暫存數(shù)組wave[x]的值改16位t[48]數(shù)據(jù).

3 結(jié)語

在選擇波形顯示方案時,要綜合考慮:控制器是否支持串行模式、處理器的I/O引腳資源、內(nèi)存占用量、信號頻率、AD采集速度等,所以開發(fā)者應(yīng)該根據(jù)不同應(yīng)用場合的需求結(jié)合各方案的特點來舍取,選擇對應(yīng)的方案.

[1]李明生.電子測量與儀器[M].北京:電子工業(yè)出版社,2010.

[2]謝興紅,林凡強,吳雄英.MSP430單片機(jī)基礎(chǔ)與實踐[M].北京:北京航天大學(xué)出版社,2008.

責(zé)任編輯:張隆輝

TN 141.9

A

1672-2094(2015)04-0158-03

猜你喜歡
豎線液晶顯示液晶
不可壓液晶方程組的Serrin解
可自動消除NG豎線缺陷的Mura檢測機(jī)設(shè)計探究
《液晶與顯示》征稿簡則
液晶與顯示(2020年8期)2020-08-08 07:01:46
TFT-LCD彩膜工藝宏觀缺陷自動化修補的探究
象形文字走走看
122×32 點陣液晶顯示漢字原理實驗
象形文字走走看
液晶與顯示2015年第30卷第1期 目錄
液晶與顯示(2015年1期)2015-02-28 21:15:54
液晶與顯示2014年第29卷第2期 目錄
液晶與顯示(2014年2期)2014-02-28 21:11:05
界面致穩(wěn)型柔性膽甾相液晶顯示器件的制備與性能
凤阳县| 虞城县| 布尔津县| 龙里县| 且末县| 龙口市| 临泽县| 柳河县| 新竹市| 双牌县| 潼关县| 高陵县| 浦县| 东明县| 寿宁县| 虹口区| 岳西县| 西乌珠穆沁旗| 宜兴市| 大理市| 益阳市| 尚义县| 松潘县| 宁河县| 安达市| 陆丰市| 白城市| 郧西县| 大邑县| 运城市| 漳州市| 常宁市| 凤山市| 长乐市| 杭锦旗| 龙川县| 连州市| 镇康县| 通城县| 航空| 工布江达县|