彩色液晶智能控制系統(tǒng)的設(shè)計與實現(xiàn)
本文引用地址:http://2s4d.com/article/104758.htm
系統(tǒng)上電后,首先進行初始化,接著循環(huán)讀取緩沖區(qū)指針。若有數(shù)據(jù),則讀取緩沖區(qū)數(shù)據(jù),并對數(shù)據(jù)進行分析;若為命令就讀取完整的命令信息,并執(zhí)行命令。否則,就將讀取內(nèi)容作為中西文字符顯示。命令主要有:畫線、畫矩形、畫橢圓、畫曲線、畫填充區(qū)域、中西文切換、光標跳轉(zhuǎn)、字庫更新及圖形圖像下載及顯示等。若有中斷發(fā)生,就進行中斷處理。外設(shè)引起的中斷共有兩個:串行中斷和總線口中斷,當(dāng)有一個串行數(shù)據(jù)或總線口數(shù)據(jù)到達時,就會引發(fā)相應(yīng)的中斷。這兩種中斷雖然入口地址不同,但它們實現(xiàn)的功能是完全一樣的,都是讀取外設(shè)傳來的數(shù)據(jù),并將其放入緩沖區(qū)中。
從微機下載字庫或圖像文件時,數(shù)據(jù)量較大,在對板載接收程序編程時應(yīng)注意對128字節(jié)緩沖區(qū)的操作要合理,否則會導(dǎo)致軟件系統(tǒng)的崩潰。緩沖區(qū)是作為環(huán)形隊列來使用的,主要應(yīng)注意兩點:一是不要等緩沖區(qū)滿時才置DTR(見圖3)為“忙”狀態(tài),因為這樣正在傳輸?shù)淖止?jié)會丟失;二是當(dāng)DTR出現(xiàn)一次“忙”后,緩沖區(qū)有較多空閑時,應(yīng)使DTR信號變?yōu)?ldquo;閑”,否則會因DTR信號變化太頻繁而使程序失控。這里的算法是,當(dāng)緩沖區(qū)還有6個字節(jié)空閑時,置DTR有效(CPU“忙”),暫停通信;之后,當(dāng)緩沖區(qū)降到64字節(jié)的閑余時,置DTR為“閑”,恢復(fù)通信。這樣,雖然下載速度稍微受點影響,但通信的可靠性大大增強了;另一方面,下載完數(shù)據(jù)后,本系統(tǒng)要脫機和其它微處理器連接使用,下載速度對本系統(tǒng)的使用無任何影響。
3 預(yù)置功能的實現(xiàn)
預(yù)置功能主要是通過微機的通訊程序,為液晶顯示器預(yù)先儲存漢字字庫、圖形或圖像,并可隨時更新漢字字庫、圖形或圖像,以便系統(tǒng)脫機和其它微處理器連用時,可以利用這些資源。當(dāng)其它微處理器系統(tǒng)發(fā)送顯示預(yù)置資源命令時,本系統(tǒng)就會控制液晶顯示器來顯示相應(yīng)的漢字點陣、圖形或圖像。存儲器采用非易失FLASH閃存,分為字庫、圖形和圖像三個區(qū)域。字庫存儲的是漢字字模的點陣,圖形存儲的是液晶圖形方式下的一些命令,圖像存儲的是BMP位圖點陣數(shù)據(jù)。
預(yù)置軟件是智能控制系統(tǒng)的配套軟件,用來下載PC機的圖形圖像到智能控制系統(tǒng)中,實現(xiàn)預(yù)置功能。它基于MSComm通信控件,采用VC++的MFC類庫編程,控件工作方式為查詢方式,可運行于Windows的所有操作系統(tǒng)中,通過微機串行口和本系統(tǒng)通信。連接關(guān)系如圖3所示。
由于通信距離較近,采用串行口直接相連方式。微機通信端口選擇COM1或COM2,它們是標準的RS232異步通訊接口。微機向智能控制系統(tǒng)發(fā)送數(shù)據(jù),進行單工串行通信,在智能界面板載128字節(jié)的緩沖區(qū),采用了DSR硬件握手程序。在通訊過程中,如果智能控制系統(tǒng)的微處理器忙,它就會置DTR(微機的DSR)為RS232標準的低電平,微機暫停發(fā)送;等智能控制系統(tǒng)的微處理器閑時,它又置DSR為高,微機繼續(xù)發(fā)送數(shù)據(jù)。
字庫預(yù)置是把漢字字庫點陣下載到FLSH的字庫區(qū);圖形預(yù)置時,軟件會根據(jù)選擇的液晶屏型號,使預(yù)置視區(qū)和液晶屏分辨率相同。此時菜單項包括畫線、畫矩形、畫橢圓、畫曲線、畫填充區(qū)域及寫漢字等。用戶可選擇在視區(qū)繪制圖形或?qū)憹h字的命令,然后按下發(fā)送命令,程序會在后臺把用戶繪制的圖形轉(zhuǎn)換為相應(yīng)的智能控制系統(tǒng)能識別的命令傳送出去,之后智能控制系統(tǒng)的接收程序會把這些命令存儲到FLASH的圖形區(qū)內(nèi);圖像預(yù)置時,程序可以打開一副BMP無壓縮圖像,在圖像上有一個大小和位置可改變的矩形框,用來選定傳送圖像的區(qū)域,按下發(fā)送命令后,程序提取矩形框內(nèi)圖像的寬高和點陣數(shù)據(jù),傳送出去。
在對BMP圖像數(shù)據(jù)進行提取時,應(yīng)注意以下幾點:第一,大多數(shù)BMP圖像點陣都是倒置的,起始點在左下角。第二,現(xiàn)在Windows操作系統(tǒng)下的位圖多為與設(shè)備無關(guān)的位圖,256色及以下位圖都帶有調(diào)色板,調(diào)色板每個顏色表示的三字節(jié)RGB分量按相反的順序排列,要注意調(diào)色板與位圖數(shù)據(jù)的正確對應(yīng)關(guān)系。第三,要把顏色信息轉(zhuǎn)化為本系統(tǒng)能識別的信息。系統(tǒng)采用的液晶屏為16位色(用兩字節(jié)表示),對于24位真彩色,要把RGB分量由256個等級轉(zhuǎn)化為32個等級,即把每點的RGB分量分別除以8,再合為兩個字節(jié);對于256色及以下位圖,要先找到每點對應(yīng)的調(diào)色板顏色表示的信息,然后按上面介紹的方法處理即可。這種方法雖然引入一些失真,但失真不大,完全滿足應(yīng)用要求。
p2p機相關(guān)文章:p2p原理
評論