由于其亮度調節方便快捷,故可廣泛地應用在嵌入式系統和單片機控制的儀表、儀器和飛行模擬設備領域中,本文介紹了HCMS2964的顯示原理和顯示屏的驅動方式、亮度調節以及基層軟件的設計方案。
1 HCMS 2964顯示屏
HCMS2964模塊為雙列直插封裝,每一個HCMS2964都有12個引腳以及內部晶陣和寄存器。HCMS2964它通過CMOS刷新電路來驅動四個發光的字符塊,每個字符的尺寸是1.8 cm×1 cm,這些字符是由5column×8row共40 bit點寄存器首尾相連而成的,其中row0沒有用到,因而不會發光,所以,每個字符實際由35個點像素組成。
HCMS2964有兩個獨立的控制寄存器,可通過改變寄存器的內容來設置HCMS2964模塊的屬性。其中控制寄存器0用于PWM亮度脈寬調節、峰值電流強度設定(亮度調節)以及睡眠模式控制等。控制寄存器1則用于設置數據輸出方式和晶陣選擇模式(選擇為品陣頻率或晶陣頻率的1/8)。每個顯示模塊中的160bit點寄存器的內容和驅動LED的關系是對應且對應的,故可直接對點寄存器置1或0,并通過內部IC電路來控制點陣上燈像素的亮或暗,從而形成相應的字符。
HCMS2964的輸入引腳應經過上拉后與單片機的I/O口相連,其中主要的控制引腳有RS、CE、CLK,設計時可分別與C8051F00x的P1.0、P1.1、P1.2相對應,其中RS用于選擇點陣顯示寄存器(L)或命令寄存器(H),具體的時序是在寫顯示數據之前須將CE拉低,由RS選擇相應的寄存器。輸入時鐘用于寫點陣寄存器或命令寄存器,可在上升沿觸發數據讀入。在數據傳人的整個過程中,CE要始終保持低電平,通過CLK時鐘為低電平、CE為高(點寄存器)或上升沿(命令寄存器)來鎖存數據顯示輸出。上述三條引腳的功能見表1所列,其相應的時序圖如圖1所示。
3 級聯
級聯主要用于擴展系統的顯示部分,以便把更多的顯示設備掛在串行擴展接口線上。設計時可以通過單片機來控制片選信號輸入端,通常把多個片選信號接在一起統一控制。每個顯示模塊的輸出引腳連接下一個顯示屏的輸入引腳,便可實現多個顯示模塊的級聯,具體連接如圖2所示。一般地,在多模塊級聯顯示系統中,個顯示模塊用于控制左端的四個字符,一個顯示模塊用于控制右端的四個字符,數據轉換寄存器的長度是160位×N(N的個數為級聯的個數),每個模塊的位置0都是(N-1)×160位,依次順延。
CE、RS、BL、RST、CLK五根控制總線終應連接到C8051f00×的I/O線。從口線出來的DIN連接到左端的模塊,DOUT線則連接下一個顯示模塊的DIN,一個模塊的DOUT空閑。每個模塊均可用內部晶陣或外部晶陣。本系統左端模塊的SEL高電平就是由IC內部晶陣(MASTER)產生的,其它模塊的SEL低電平則接受來自左端模塊的晶陣(SLAVE),本系統可通過OCS總線完成晶陣傳輸。
4 40級亮度調節
點陣式HCMS2964系列IC提供有兩種改變亮度的方式,分別是16級和4級的亮度調解,它們都是通過改變控制寄存器0來實現的。圖3是其亮度改變模式示意圖。其中PWM亮度控制是利用控制字0的DO~D3并通過實時脈寬調節來改變點陣的亮度。一般PWM都通過調節晶體振動的時鐘周期來調節脈寬大小,從而改變亮度。而峰值像素電流控制則是利用控制字0的D4和D5并通過改變四種峰值像素電流來改變點陣的亮度。
由于D4-D5位(峰值像素電流)與D0-D3(PWM調亮)共占了控制字0的低六位,因此設計時可以想到把所有控制亮度的因素考慮進來,并按照亮度打亂排序,重新組成4×16=64級階(即64個亮度等級)來改善調亮效果。
在這里要說明的是,由于從000000H~111111H采集出來的亮度不是遞增的,故不要采集模擬量直接送入控制字的低六位,也不能將脈寬值與像素電流峰值簡單的累加計算來進行亮度的對比,實驗證明:MX=亮度這一公式只有當M和X的其中一個作為常量,另一個為變量才成立,而不能應用于兩個變量相乘。筆者已通過光學儀器的分析,把它們的光能從小到大排列起來,并篩選掉突變和相近的能量值,從而形成了一個40級軟件調光方案。為方便讀者使用,現將該40級調光方案列于表2。
本系統軟件設計可分為顯示模塊、模擬量采集模塊、串口通信模塊三部分。其軟件流程如圖4所示。其點陣系統控制字和顯示子程序如下
本文給出的嵌入式處理器與點陣芯片進行的串行數據傳輸顯示系統硬件結構簡單,無需增加引腳,系統易于擴展,但通過對該系統的實際應用發現:串行器件存在兩大問題:一是串行傳輸的速度要比并行更慢,二是串行傳輸要有一定的通訊協議,包括設備的迅通、數據的格式及數據傳輸的啟動與停止等。