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