999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

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

2015-11-07 06:22:14四川職業技術學院電子電氣工程系四川遂寧629000
四川職業技術學院學報 2015年4期
關鍵詞:單片機

劉 宸(四川職業技術學院電子電氣工程系,四川 遂寧 629000)

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

劉宸
(四川職業技術學院電子電氣工程系,四川遂寧629000)

文章詳細介紹了以ST7920為控制器的中小尺寸12864液晶實現波形顯示的多種方案,提出了兩種改進算法,并討論各方案的優缺點.總結出應根據不同應用場合的需求來選擇對應的方案.

ST7920;12864;液晶;波形

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

1 點陣液晶的種類

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

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

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

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

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

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

2 液晶顯示波形的方案

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

2.1KS0108控制器液晶方案

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

收稿日期:2015-05-25

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

2.2ST7920控制器液晶方案

2.2.1讀取舊顯示數據

ST7920控制器的液晶顯示器,顯示RAM是橫向排列的,液晶更改GDRAM只能橫向16位改,即寫數據必須橫向寫兩個字節的數據,高8位和低8位. ST7920控制器型液晶圖形顯示坐標如圖1.

圖1 ST7920控制器型液晶圖形顯示坐標

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

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

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

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

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

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

2.2.2針對方案B的優化

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

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

b=0x8000;//16位數據首位置

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

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

{

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位數據的下一位

}

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

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

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

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++;}//打白點,不顯示

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

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

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

3 結語

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

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

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

責任編輯:張隆輝

TN 141.9

A

1672-2094(2015)04-0158-03

猜你喜歡
單片機
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的多功能智能插排
電子制作(2019年11期)2019-07-04 00:34:48
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
小議PLC與單片機之間的串行通信及應用
電子制作(2018年12期)2018-08-01 00:48:04
MSP430單片機在仿真中要注意的幾點問題
電子制作(2017年9期)2017-04-17 03:00:53
基于單片機的平衡控制系統設計
電子制作(2017年19期)2017-02-02 07:08:27
基于單片機的三維LED點陣設計
電子制作(2016年21期)2016-05-17 03:52:51
Microchip推出兩個全新PIC單片機系列
基于Proteus的單片機控制系統的仿真設計
主站蜘蛛池模板: 国产成人精品无码一区二 | 国产精品视频导航| 免费一级毛片在线观看| 毛片手机在线看| 国产男女免费完整版视频| 亚洲无码熟妇人妻AV在线| 国产真实乱子伦精品视手机观看 | 色135综合网| 亚洲视频欧美不卡| 久久婷婷六月| 草草影院国产第一页| 亚洲成AV人手机在线观看网站| 亚洲日韩国产精品无码专区| 在线日韩日本国产亚洲| 五月综合色婷婷| 亚洲成在线观看 | 9久久伊人精品综合| 国产jizzjizz视频| 夜夜操国产| 日韩欧美国产成人| 久久综合五月婷婷| 免费国产黄线在线观看| 亚洲精选无码久久久| 成人在线第一页| 中文字幕久久精品波多野结| 91视频青青草| 国产成人区在线观看视频| 55夜色66夜色国产精品视频| 99热国产这里只有精品9九| 国产91丝袜在线播放动漫| 中文国产成人精品久久一| 亚洲av无码专区久久蜜芽| 欧美福利在线观看| 2020亚洲精品无码| 精品少妇人妻无码久久| 99热亚洲精品6码| 亚洲欧美日韩中文字幕在线一区| 制服无码网站| 91麻豆精品国产高清在线| 一级一毛片a级毛片| 亚洲精品少妇熟女| 波多野结衣亚洲一区| 亚洲福利一区二区三区| 中文字幕在线观| 国产精品粉嫩| 国产在线精彩视频论坛| 人人澡人人爽欧美一区| 久久99久久无码毛片一区二区| 国产手机在线小视频免费观看| 国产精品大白天新婚身材| 亚洲国产看片基地久久1024| 国国产a国产片免费麻豆| 欧美国产精品不卡在线观看| 国产精品999在线| 国产成人区在线观看视频| 亚洲天堂伊人| 99草精品视频| 在线欧美日韩国产| 久久人妻xunleige无码| 国产视频大全| 第九色区aⅴ天堂久久香| 国产草草影院18成年视频| 日韩不卡高清视频| 亚洲人成色在线观看| 欧美日本在线一区二区三区| 国产精品va免费视频| 午夜丁香婷婷| 六月婷婷综合| 午夜丁香婷婷| 91亚洲视频下载| 国产不卡在线看| 成色7777精品在线| 日本AⅤ精品一区二区三区日| 中文字幕 91| 男人的天堂久久精品激情| 色婷婷成人网| 亚洲伊人久久精品影院| 日韩大乳视频中文字幕| 久久中文字幕av不卡一区二区| 国产精品久久精品| 一本大道在线一本久道| 国产噜噜在线视频观看|