<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          關(guān) 閉

          新聞中心

          EEPW首頁(yè) > 工控自動(dòng)化 > 設(shè)計(jì)應(yīng)用 > 彩色液晶智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          彩色液晶智能控制系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)

          ——
          作者: 時(shí)間:2010-01-25 來(lái)源:中國(guó)IT實(shí)驗(yàn)室 收藏

            

          本文引用地址:http://www.ex-cimer.com/article/104758.htm

           

            系統(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)?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)的使用無(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)用要求。

          p2p機(jī)相關(guān)文章:p2p原理



          上一頁(yè) 1 2 下一頁(yè)

          評(píng)論


          相關(guān)推薦

          技術(shù)專(zhuān)區(qū)

          關(guān)閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();