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