圖形點(diǎn)陣式液晶顯示模塊在沖擊力監(jiān)測系統(tǒng)中
摘要:介紹了圖形點(diǎn)陣式液晶控制模塊(STN3224-2A)在沖擊力監(jiān)測系統(tǒng)中的應(yīng)用方法,給出了用該液晶顯示模塊與凌陽單片機(jī)通過硬件接口和軟件設(shè)計來實(shí)現(xiàn)沖擊力監(jiān)測的沖擊力曲線實(shí)時顯示實(shí)現(xiàn)方案。
關(guān)鍵詞:圖形點(diǎn)陣式 LCD 凌陽單片機(jī) 沖擊力 實(shí)時曲線 STN3224-2A
由于點(diǎn)陣式液晶顯示模塊功耗低、體積小,且可以顯示各種字符、漢字以及圖形,因而可廣泛應(yīng)用于數(shù)字式儀表和各種低功耗監(jiān)測系統(tǒng)中。筆者利用該模塊設(shè)計的沖擊力監(jiān)測系統(tǒng)能夠?qū)崟r顯示沖擊力的大小、速度、峰值及平均值,且操作界面友好。同時在每次測試的開始,都有語音提示;此外,還可根據(jù)需要選擇資料的存儲和打印。本文將重點(diǎn)介紹圖形點(diǎn)陣式液晶控制模塊與凌陽單片機(jī)之間的硬件設(shè)計電路和軟件編程方法。
1 沖擊力監(jiān)測系統(tǒng)的組成和功能
圖1 所示是一個沖擊力監(jiān)測系統(tǒng)的功能框圖。本系統(tǒng)由信號采集、信號處理和信號輸出三部分組成。其中信號采集部分由力傳感器(BK-2Y)和光電編碼器(ZKX-6-50BM7.5-G05E)組成。BK-2Y是一款高精度力傳感器,主要測量作用力的大小,測量范圍最大可達(dá)500kg,其輸出信號經(jīng)TS-2放大器放大后,輸出電壓范圍為-5V~+5V;光電編碼器是高精度角位移傳感器,其工作原理是采用圓光柵經(jīng)光電轉(zhuǎn)換將軸的角度位移轉(zhuǎn)換成電脈沖信號,然后直接用于測量角位移和角速度,或間接用于測量直線位移和直線速度。
中央處理器選用凌陽單片機(jī)SPCE061A。由于沖擊力監(jiān)測系統(tǒng)要求CPU響應(yīng)速度快、處理能力強(qiáng)并能夠?qū)崟r處理信息,所以本設(shè)計選用功能強(qiáng)大的凌陽16位單片機(jī)。SPCE061A在2.6V~3.6V工作電壓范圍內(nèi)的工作速度為0.32MHz~49.152MHz。SPCE061A自帶2kB flash、32位可編程的多功能I/O端口、兩個16位定時器/計數(shù)器、32768Hz實(shí)時時鐘低壓復(fù)位/監(jiān)測電路、8通道10位模 - 數(shù)轉(zhuǎn)換輸入等。
輸出部分選用320240點(diǎn)陣的LCD液晶顯示屏,顯示控制器選用STN3224-2A。由于STN3224-2A是針對圖形顯示而設(shè)計的,因此編程十分簡單。
2 系統(tǒng)顯示部分的硬件設(shè)計
本監(jiān)測系統(tǒng)的顯示屏采用LFUBK911A,與之配套的顯示控制器STN3224-2A具有以下特點(diǎn):
●適用于圖形顯示較多的環(huán)境,可顯示數(shù)字、字母、漢字和特殊字符;
●每一次寫一點(diǎn),8bit色彩深度,共256色;
●總共8頁顯示緩沖,可以設(shè)定顯示頁和寫入面;
●每次寫入或讀出后,X方向或Y方向的自動加1、均加1或不變可通過參數(shù)設(shè)定;
STN3224-2A顯示控制器的接口線包括數(shù)據(jù)D0~D7,地址線A0和A1、片選線CS、讀信號RD、寫信號WR、電源VCC、地GND以及背光信號等。SPCE061A與STN3224-2A有兩種接口方法,一種是在兩者之間加一個鎖存器,另一種是直接連接。硬件接法不同會影響到軟件的設(shè)計。本文采用直接連接的方法,其接口電路如圖2所示。其中CPU垢端口IOA2~I(xiàn)OA6和IOA8~I(xiàn)OA15將被初始化為輸出口,端口IOA0、IOA1(輸入力信號)和IOA7將被初始化為輸入口。
圖2
3 系統(tǒng)顯示軟件設(shè)計
3.1 軟件設(shè)計流程
STN3224-2A分四步完成一個點(diǎn)的操作,筆者在編寫曲線程序時,先定義了一個寫點(diǎn)的子程序(Write-dot),以便于主程序的操作。程序如下:
寫參數(shù)
A> 寫參數(shù)到端口1(A0=1,A1=0),其定義為:
bit7=1,Y方向在讀/寫后自動加1;
bit6=1,X方向在讀/寫后自動加1;
bit[5……3],顯示頁號(0~7);
bit[2……0],讀/寫頁號(0~7);
B> 讀一次端口1以鎖存參數(shù)(這一步很重要,如果沒有讀Port1,系統(tǒng)將把剛才輸入的數(shù)據(jù)默認(rèn)為X值)。
(2)分兩次寫入X(0~511,只顯示0~319);
A> 寫bit8到端口1(對應(yīng)關(guān)系X8→D0);
B> 寫bit[7……0]到端口1(如果僅為讀數(shù)據(jù),則寫到端口3)。
(3)寫Y(0~255,只顯示0~319)
寫bit[7……0]到端口2(A0=0,A1=1)。
(4)數(shù)據(jù)到端口0(A0=0,A1=0),bit8O數(shù)據(jù)表示顏色灰度。圖3所示是其寫數(shù)據(jù)流程。
3.2 軟件實(shí)現(xiàn)方法
液晶顯示控制器的軟件部分包括初始化程序和應(yīng)用程序。初始化包括清屏和初始化參數(shù)。應(yīng)用程序分為顯示背景和顯示實(shí)時曲線兩部分。背景部分是指預(yù)先建立的(x,y)坐標(biāo)軸以及相關(guān)的說明(漢字)。本控制器不帶漢字庫,顯示漢字時,首先根據(jù)漢字字形編出字模數(shù)據(jù)塊,用戶可以根據(jù)要求編寫任意大小的漢字,本文采用的漢字大小為1616點(diǎn)陣。
顯示實(shí)時光滑曲線是本監(jiān)測系統(tǒng)顯示部分的關(guān)鍵。結(jié)點(diǎn)陣式液晶屏的操作實(shí)際是對點(diǎn)的操作,曲線是由一系列不連續(xù)的點(diǎn)組成的。本系統(tǒng)主要測試沖擊力,而沖擊力作為輸入數(shù)據(jù)必然有著很大的跳躍性,這就造成了曲線的不連續(xù)。為了美觀和實(shí)用,本方利用編程技巧來對曲線進(jìn)行了修飾。
子程序write-y-line (x,l,h,color)是修飾曲線的一個子函數(shù),其中x表示點(diǎn)的x坐標(biāo),1表示前一個點(diǎn)的y坐標(biāo),h表示后一個點(diǎn)的y坐標(biāo),color表示點(diǎn)的顏色。在子程序中,先比較前后兩個點(diǎn)的y坐標(biāo)的大小。如果1小于h,則以點(diǎn)(x,l)為終點(diǎn)畫一直線。這樣就把不連續(xù)的點(diǎn)連成了曲線。Write-y-line(x,l,h,color)程序流程圖如圖4所示。其顯示實(shí)時曲線主程序(C語言)如下:
p=0x0010; //采集數(shù)據(jù)存儲區(qū)首地址
for(x=280;x>0;x- -) //坐標(biāo)原點(diǎn)在液晶上對應(yīng)的坐標(biāo)是(280,40)
{
ad_one(280-x); //ad_one是A/D轉(zhuǎn)換子程序,這是將采集的第0個力信號進(jìn)行轉(zhuǎn)換
l=*p; //取前一個數(shù)據(jù)
p + + ;
h= * p; //取后一個數(shù)據(jù)
if((1 - h>2) | | (h - 1>2)) //判斷前一個數(shù)據(jù)與后一個數(shù)據(jù)間隔是否大于2,若大于將在兩點(diǎn)之間畫一直線。
{set_option(m,m,2) //設(shè)置操作參數(shù),讀/寫后Y自動加一
write_y_line(x,l,h,0xlc); //調(diào)子程序,畫直線
set_option(m,m,0) //設(shè)置操作參數(shù),讀/寫后X、Y均不加一
write_dot(x,h,0xlc) //在(x,h)描點(diǎn),點(diǎn)的顏色為綠色
}
else //判斷前一個數(shù)據(jù)與后一個數(shù)據(jù)間隔是否大于2,若小于將在(x,h)描點(diǎn)
{
set_option(m,m,0);
write_dot(x,h,0xlc);
}
}
4 結(jié)束語
針對圖形顯示而設(shè)計的STN3224-2A具有編程簡單,應(yīng)用靈活等特點(diǎn)。它與功能強(qiáng)大的凌陽單片機(jī)配合使用可現(xiàn)對沖擊力曲線的實(shí)時顯示。目前,該系統(tǒng)已在實(shí)驗(yàn)過程中取得良好的效果。
評論