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