彩色液晶智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
介紹了一種彩色液晶智能控制系統(tǒng)的實(shí)現(xiàn)方案,該系統(tǒng)封裝了彩色液晶的所有外圍電路,增加了智能控制功能。
它通過(guò)通信端口和外設(shè)相連,使對(duì)液晶的各種繁瑣控制過(guò)程簡(jiǎn)化為接收外設(shè)指令的過(guò)程;還可通過(guò)配套軟件和微機(jī)通信,實(shí)現(xiàn)漢字庫(kù)更新和預(yù)置畫(huà)面等功能。
彩色液晶顯示器是現(xiàn)代高新技術(shù)產(chǎn)品,它具有體積小、功耗低、無(wú)輻射、壽命長(zhǎng)、超薄、防震防爆等特點(diǎn)。彩色液晶顯示器的出現(xiàn),有力地推動(dòng)了工控儀表、系統(tǒng)設(shè)備的微型化、節(jié)能化進(jìn)程,為單片機(jī)等微處理器系統(tǒng)提供了完善的人機(jī)對(duì)話(huà)界面,具有LED和CRT顯示器所無(wú)法比擬的優(yōu)點(diǎn)。但在開(kāi)發(fā)帶有液晶顯示設(shè)備的系統(tǒng)的過(guò)程中,用點(diǎn)陣操作顯示漢字和圖形圖像是非常繁瑣的工作,工作量很大、周期較長(zhǎng)。為了減輕開(kāi)發(fā)人員的負(fù)擔(dān),提高開(kāi)發(fā)效率,設(shè)計(jì)了彩色液晶智能控制系統(tǒng),把繁瑣的顯示操作封裝起來(lái),簡(jiǎn)化為一套簡(jiǎn)單易用的指令系統(tǒng),只需通過(guò)接口向本系統(tǒng)發(fā)送簡(jiǎn)單的指令,就可控制液晶顯示器的顯示,如畫(huà)曲線(xiàn)、顯示漢字和圖形圖像等。本系統(tǒng)為全數(shù)字化設(shè)計(jì),顯示穩(wěn)定可靠,抗強(qiáng)電磁干擾,可用于機(jī)電、冶金、船舶、航空、鐵路、電力、通訊導(dǎo)航等領(lǐng)域的系統(tǒng)設(shè)備和智能儀表中。
1 系統(tǒng)硬件組成及工作原理
系統(tǒng)采用工業(yè)級(jí)AVR高速微處理器,內(nèi)置二級(jí)字庫(kù),通過(guò)串口或三態(tài)數(shù)據(jù)總線(xiàn)口接收控制命令數(shù)據(jù), 自行對(duì)接收的命令和數(shù)據(jù)進(jìn)行處理,實(shí)時(shí)顯示所需的各種曲線(xiàn)、中西文和圖形圖像。硬件原理框圖如圖1所示。
1.1 微處理器系統(tǒng)
微處理器是實(shí)現(xiàn)智能控制功能的核心部分,為了有效控制液晶顯示圖像的失真度,微處理器采用高速單片機(jī)AT90S8515(如果對(duì)顯示速度要求很高,例如顯示動(dòng)畫(huà)等,可采用DSP芯片)。單片機(jī)系統(tǒng)上電后便處于實(shí)時(shí)接收命令狀態(tài),可完成和外設(shè)通信、對(duì)外設(shè)發(fā)送的命令進(jìn)行解釋并執(zhí)行命令(如從漢字庫(kù)中取字模并在相應(yīng)的位置顯示出來(lái))、在適當(dāng)位置畫(huà)線(xiàn)、顯示預(yù)置圖形和畫(huà)面等。
1.2 電源部分
外部+12V電源由電源接口引入,分為兩路,一路經(jīng)過(guò)DC/DC變換后,產(chǎn)生直流偏置電源,為彩色液晶模塊提供所需電源;另一路經(jīng)DC/AC變換后,產(chǎn)生高壓交流電,為液晶屏背光燈CCFL供電。
1.3 通信端口
通信端口包括總線(xiàn)口和串行口,外部設(shè)備通過(guò)通信端口和本控制系統(tǒng)進(jìn)行電氣溝通,并發(fā)送相關(guān)指令,從而達(dá)到對(duì)液晶顯示的各種控制??偩€(xiàn)口是一個(gè)并行口;串行口采用RS232電平標(biāo)準(zhǔn),單片機(jī)的串行TTL電平經(jīng)過(guò)SIO轉(zhuǎn)換后,變?yōu)镽S232標(biāo)準(zhǔn)電平(負(fù)邏輯),這里高電平變?yōu)?8V,低電平變?yōu)?V。它可以和微機(jī)等標(biāo)準(zhǔn)串口直接相連,進(jìn)行串行通信。如果其它控制系統(tǒng)通過(guò)串行口和本系統(tǒng)相連,只需三條線(xiàn)就可控制液晶的顯示。
1.4 FLASH閃存
閃存由4片Am29F040B組成,每片Am29F040B包括512K字節(jié),共2M字節(jié)。第一片Am29F040B用來(lái)存儲(chǔ)漢字點(diǎn)陣和圖形數(shù)據(jù),后三片共1.5M字節(jié)用來(lái)存儲(chǔ)圖像數(shù)據(jù)。液晶采用320×240分辨率的16位數(shù)字彩色液晶,RGB分量各包含5位,每點(diǎn)占用兩個(gè)字節(jié),1.5M可以存儲(chǔ)的滿(mǎn)屏圖像約10幅。由于Am29F040B的地址線(xiàn)多于微處理器的地址線(xiàn),因此采用分頁(yè)技術(shù)進(jìn)行處理,即把多出的地址線(xiàn)通過(guò)鎖存器與數(shù)據(jù)線(xiàn)相連,讀取數(shù)據(jù)前先向鎖存器寫(xiě)入頁(yè)面地址數(shù)據(jù),即選中該地址對(duì)應(yīng)的頁(yè),然后讀取該頁(yè)。用同樣的方法可以讀取其它頁(yè),不同片子之間可以利用微處理器的空閑端口,通過(guò)控制Am29F040B的片選信號(hào)加以區(qū)分。應(yīng)用這種方法可以擴(kuò)充FLASH閃存達(dá)數(shù)G之多。
1.5 液晶驅(qū)動(dòng)電路及顯存
液晶驅(qū)動(dòng)電路主要對(duì)液晶點(diǎn)陣完成讀寫(xiě)操作,并產(chǎn)生液晶接口所需要的行場(chǎng)掃描信號(hào)、時(shí)鐘信號(hào)及其它控制信號(hào)。由于時(shí)序邏輯關(guān)系相當(dāng)復(fù)雜,這里采用了復(fù)雜可編程邏輯芯片CPLD進(jìn)行編程控制。外部總線(xiàn)對(duì)顯存進(jìn)行讀寫(xiě)操作,就可以對(duì)屏幕相應(yīng)象素的顏色與亮度進(jìn)行控制。
2 系統(tǒng)軟件
軟件實(shí)質(zhì)上是一個(gè)通信程序,實(shí)時(shí)接收和執(zhí)行串口和總線(xiàn)口發(fā)來(lái)的命令。接收程序用匯編語(yǔ)言編寫(xiě)。串口通信采用一位起始位、一位停止位、8位數(shù)據(jù)位、無(wú)較驗(yàn)位的異步串行通信方式;總線(xiàn)口為并行口,數(shù)據(jù)發(fā)來(lái)時(shí),引起中斷,在中斷子程序中,讀取總線(xiàn)口數(shù)據(jù)。主程序和中斷程序流程圖如圖2所示。[!--empirenews.page--]
系統(tǒng)上電后,首先進(jìn)行初始化,接著循環(huán)讀取緩沖區(qū)指針。若有數(shù)據(jù),則讀取緩沖區(qū)數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行分析;若為命令就讀取完整的命令信息,并執(zhí)行命令。否則,就將讀取內(nèi)容作為中西文字符顯示。命令主要有:畫(huà)線(xiàn)、畫(huà)矩形、畫(huà)橢圓、畫(huà)曲線(xiàn)、畫(huà)填充區(qū)域、中西文切換、光標(biāo)跳轉(zhuǎn)、字庫(kù)更新及圖形圖像下載及顯示等。若有中斷發(fā)生,就進(jìn)行中斷處理。外設(shè)引起的中斷共有兩個(gè):串行中斷和總線(xiàn)口中斷,當(dāng)有一個(gè)串行數(shù)據(jù)或總線(xiàn)口數(shù)據(jù)到達(dá)時(shí),就會(huì)引發(fā)相應(yīng)的中斷。這兩種中斷雖然入口地址不同,但它們實(shí)現(xiàn)的功能是完全一樣的,都是讀取外設(shè)傳來(lái)的數(shù)據(jù),并將其放入緩沖區(qū)中。
從微機(jī)下載字庫(kù)或圖像文件時(shí),數(shù)據(jù)量較大,在對(duì)板載接收程序編程時(shí)應(yīng)注意對(duì)128字節(jié)緩沖區(qū)的操作要合理,否則會(huì)導(dǎo)致軟件系統(tǒng)的崩潰。緩沖區(qū)是作為環(huán)形隊(duì)列來(lái)使用的,主要應(yīng)注意兩點(diǎn):一是不要等緩沖區(qū)滿(mǎn)時(shí)才置DTR(見(jiàn)圖3)為“忙”狀態(tài),因?yàn)檫@樣正在傳輸?shù)淖止?jié)會(huì)丟失;二是當(dāng)DTR出現(xiàn)一次“忙”后,緩沖區(qū)有較多空閑時(shí),應(yīng)使DTR信號(hào)變?yōu)椤伴e”,否則會(huì)因DTR信號(hào)變化太頻繁而使程序失控。這里的算法是,當(dāng)緩沖區(qū)還有6個(gè)字節(jié)空閑時(shí),置DTR有效(CPU“忙”),暫停通信;之后,當(dāng)緩沖區(qū)降到64字節(jié)的閑余時(shí),置DTR為“閑”,恢復(fù)通信。這樣,雖然下載速度稍微受點(diǎn)影響,但通信的可靠性大大增強(qiáng)了;另一方面,下載完數(shù)據(jù)后,本系統(tǒng)要脫機(jī)和其它微處理器連接使用,下載速度對(duì)本系統(tǒng)的使用無(wú)任何影響。
3 預(yù)置功能的實(shí)現(xiàn)
預(yù)置功能主要是通過(guò)微機(jī)的通訊程序,為液晶顯示器預(yù)先儲(chǔ)存漢字字庫(kù)、圖形或圖像,并可隨時(shí)更新漢字字庫(kù)、圖形或圖像,以便系統(tǒng)脫機(jī)和其它微處理器連用時(shí),可以利用這些資源。當(dāng)其它微處理器系統(tǒng)發(fā)送顯示預(yù)置資源命令時(shí),本系統(tǒng)就會(huì)控制液晶顯示器來(lái)顯示相應(yīng)的漢字點(diǎn)陣、圖形或圖像。存儲(chǔ)器采用非易失FLASH閃存,分為字庫(kù)、圖形和圖像三個(gè)區(qū)域。字庫(kù)存儲(chǔ)的是漢字字模的點(diǎn)陣,圖形存儲(chǔ)的是液晶圖形方式下的一些命令,圖像存儲(chǔ)的是BMP位圖點(diǎn)陣數(shù)據(jù)。
預(yù)置軟件是智能控制系統(tǒng)的配套軟件,用來(lái)下載PC機(jī)的圖形圖像到智能控制系統(tǒng)中,實(shí)現(xiàn)預(yù)置功能。它基于MSComm通信控件,采用VC++的MFC類(lèi)庫(kù)編程,控件工作方式為查詢(xún)方式,可運(yùn)行于Windows的所有操作系統(tǒng)中,通過(guò)微機(jī)串行口和本系統(tǒng)通信。連接關(guān)系如圖3所示。
由于通信距離較近,采用串行口直接相連方式。微機(jī)通信端口選擇COM1或COM2,它們是標(biāo)準(zhǔn)的RS232異步通訊接口。微機(jī)向智能控制系統(tǒng)發(fā)送數(shù)據(jù),進(jìn)行單工串行通信,在智能界面板載128字節(jié)的緩沖區(qū),采用了DSR硬件握手程序。在通訊過(guò)程中,如果智能控制系統(tǒng)的微處理器忙,它就會(huì)置DTR(微機(jī)的DSR)為RS232標(biāo)準(zhǔn)的低電平,微機(jī)暫停發(fā)送;等智能控制系統(tǒng)的微處理器閑時(shí),它又置DSR為高,微機(jī)繼續(xù)發(fā)送數(shù)據(jù)。
字庫(kù)預(yù)置是把漢字字庫(kù)點(diǎn)陣下載到FLSH的字庫(kù)區(qū);圖形預(yù)置時(shí),軟件會(huì)根據(jù)選擇的液晶屏型號(hào),使預(yù)置視區(qū)和液晶屏分辨率相同。此時(shí)菜單項(xiàng)包括畫(huà)線(xiàn)、畫(huà)矩形、畫(huà)橢圓、畫(huà)曲線(xiàn)、畫(huà)填充區(qū)域及寫(xiě)漢字等。用戶(hù)可選擇在視區(qū)繪制圖形或?qū)憹h字的命令,然后按下發(fā)送命令,程序會(huì)在后臺(tái)把用戶(hù)繪制的圖形轉(zhuǎn)換為相應(yīng)的智能控制系統(tǒng)能識(shí)別的命令傳送出去,之后智能控制系統(tǒng)的接收程序會(huì)把這些命令存儲(chǔ)到FLASH的圖形區(qū)內(nèi);圖像預(yù)置時(shí),程序可以打開(kāi)一副BMP無(wú)壓縮圖像,在圖像上有一個(gè)大小和位置可改變的矩形框,用來(lái)選定傳送圖像的區(qū)域,按下發(fā)送命令后,程序提取矩形框內(nèi)圖像的寬高和點(diǎn)陣數(shù)據(jù),傳送出去。
在對(duì)BMP圖像數(shù)據(jù)進(jìn)行提取時(shí),應(yīng)注意以下幾點(diǎn):第一,大多數(shù)BMP圖像點(diǎn)陣都是倒置的,起始點(diǎn)在左下角。第二,現(xiàn)在Windows操作系統(tǒng)下的位圖多為與設(shè)備無(wú)關(guān)的位圖,256色及以下位圖都帶有調(diào)色板,調(diào)色板每個(gè)顏色表示的三字節(jié)RGB分量按相反的順序排列,要注意調(diào)色板與位圖數(shù)據(jù)的正確對(duì)應(yīng)關(guān)系。第三,要把顏色信息轉(zhuǎn)化為本系統(tǒng)能識(shí)別的信息。系統(tǒng)采用的液晶屏為16位色(用兩字節(jié)表示),對(duì)于24位真彩色,要把RGB分量由256個(gè)等級(jí)轉(zhuǎn)化為32個(gè)等級(jí),即把每點(diǎn)的RGB分量分別除以8,再合為兩個(gè)字節(jié);對(duì)于256色及以下位圖,要先找到每點(diǎn)對(duì)應(yīng)的調(diào)色板顏色表示的信息,然后按上面介紹的方法處理即可。這種方法雖然引入一些失真,但失真不大,完全滿(mǎn)足應(yīng)用要求。