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

          新聞中心

          EEPW首頁 > 光電顯示 > 設(shè)計應(yīng)用 > 基于DSP的液晶顯示若干問題的探討

          基于DSP的液晶顯示若干問題的探討

          作者: 時間:2007-06-28 來源:網(wǎng)絡(luò) 收藏

          1 引言

          信息時代,信息的獲取最終要通過顯示來實現(xiàn)人機交換,隨著電子產(chǎn)品集成化的發(fā)展趨勢,液晶顯示屏在便攜式儀器中實現(xiàn)圖形和文本混合顯示應(yīng)用愈加廣泛[1,2]。DSP作為處理器以其高速、高精度性能廣泛應(yīng)用于數(shù)據(jù)采集系統(tǒng)。因此采用DSP器實現(xiàn)液晶顯示越來越普遍。但是在實際應(yīng)用中常會出現(xiàn)電壓匹配、抗干擾、PCB布線和響應(yīng)速度、時序匹配等諸多問題,本文針對出現(xiàn)的這些問題提出具體解決方案,并給出編程實例。

          2 硬件結(jié)構(gòu)

          TMS320LF2407A是TI公司推出的一款高性能定點DSP器。液晶顯示模塊采用的驅(qū)動控制器為KS0108B及其兼容顯示控制驅(qū)動器。圖1為液晶顯示模塊與DSP的硬件電路,系統(tǒng)主要由DSP控制器、電路和液晶顯示模塊3部分組成。電路由兩片74LS245組成。調(diào)節(jié)滑動R1可以調(diào)節(jié)液晶顯示對比度。

          3 相關(guān)問題及解決方案

          3.1 電壓匹配

          DSP的數(shù)據(jù)、地址、控制總線通過接口信號線連接至液晶顯示模塊。DSP的I/O端口工作電壓為3.3 V,由于DSP有時將數(shù)據(jù)寫入控制器,有時又從控制器讀數(shù)據(jù),因此數(shù)據(jù)總線是雙向的。如果直接把兩者連接,數(shù)據(jù)的流向可能會對3.3 V系統(tǒng)造成損害,所以本設(shè)計中DSP和液晶模塊通過兩片74LS245進行連接,74LS245具有作用。74LS245(1)連接DSP對液晶輸出模塊的控制信號.信號為單向,引腳DIR始終置為"1",使得控制信號由741S245的A口流向B口。而74LS245(2)連接DSP與液晶模塊的數(shù)據(jù)線,數(shù)據(jù)為雙向,因此引腳DIR則由DSP的IS的反來控制數(shù)據(jù)的流向。由于DSP輸出的信號電壓均為3.3 V,而液晶模塊的驅(qū)動電壓為5 V,所以需要在74LS245和液晶模塊之間加入上拉,這樣才能與LCD控制器準(zhǔn)備接收的數(shù)據(jù)相匹配。

          3.2 抗干擾

          LCD顯示屏常置于儀表的面板上,通過一條扁平電纜連接至主控板。測控儀表內(nèi)部的電磁干擾對LCD的工作有一定的影響[3,4],如果該儀表工作于工業(yè)生產(chǎn)過程,惡劣的環(huán)境對于液晶屏的工作更為不利,這就需要在設(shè)計中采用各種抗干擾措施。本系統(tǒng)采取的主要抗干擾措施如下:

          (1)設(shè)計LCD模塊的接口時,在VSS和VDD之間接一只0.1μF的去耦電容,接10μF或20μF電容濾波,提高電源輸入的穩(wěn)定性。

          (2)LCD模塊的工作電流很小,為幾毫安,但其背光部分所需要的電流遠大于其工作電流,因此在設(shè)計中需將工作電源和背光電源分別布線。

          (3)為避免其他不明干擾源對液晶顯示的影響,采用軟件掩飾顯示不正常的問題,即定期對液晶屏復(fù)位(通過RES的反引腳),保證液晶顯示屏長期工作的穩(wěn)定性。如果不允許液晶屏定期復(fù)位,可以檢測LCD內(nèi)部工作寄存器和顯示RAM,一旦發(fā)現(xiàn)LCD不正常,可以對LCD復(fù)位。

          3.3 PCB布線

          所有電路設(shè)計的最后一步就是印制電路板(PCB)的布線,如果這部分設(shè)計不當(dāng),PCB會發(fā)射出過量的電磁干擾(EMI),使整個電路工作不正常。在電能質(zhì)量監(jiān)控裝置中,DSP輸出的信號頻率高達幾兆赫茲甚至幾十兆赫茲,因此任何一條PCB布線都可能成為天線。布線的長和寬都會影響線路和電感量,進而影響系統(tǒng)的響應(yīng)速度。同時高頻信號傳輸線路過長會引起信號失真,導(dǎo)致顯示不正常。因此在布線時,液晶模式和DSP之間所有傳輸信號的布線都應(yīng)盡可能的短且寬,這樣可以減少其分布參數(shù)和相互間的電磁干擾,保證高頻信號高質(zhì)量傳輸,從而保證電路正常工作。

          3.4響應(yīng)速度

          在傳統(tǒng)液晶顯示控制電路的軟件編程中,由于液晶顯示模塊的上電復(fù)位過程遲于控制器的復(fù)位時間,所以在程序上電執(zhí)行液晶模塊初始化程序之前需要先運行一段延時程序,而且一般每次對液晶模塊控制器的控制端口、數(shù)據(jù)端口進行讀、寫操作時,必須調(diào)用延時子程序,否則將無法正常顯示。筆者在進行初步開發(fā)時,遵循了上述開發(fā)經(jīng)驗,增加了一定的延時程序,這時便出現(xiàn)了響應(yīng)速度的問題。雖然DSP的運行速度相當(dāng)快,但是每段延時程序累積起來,再加上循環(huán)程序的運行需要,整個系統(tǒng)響應(yīng)速度將會很慢,甚至?xí)徽`認(rèn)為顯示不成功,這樣對于電能質(zhì)量實時監(jiān)控系統(tǒng)而言是不允許的,因此在設(shè)計過程中不斷地縮短延時時間,最后不需要添加任何延時程序也能進行正常的顯示,所以在對液晶模塊編程時要根據(jù)實際情況設(shè)計延時程序,以保證系統(tǒng)的響應(yīng)速度。

          3.5時序匹配

          在顯示系統(tǒng)中,由于DSP控制器的運算速度非??欤瑱C器周期很短(25 ns,工作頻率40 MHz)。在這種情況下,液晶的控制器難與其同步(0CM12864模塊讀寫數(shù)據(jù)的時序如圖2所示,時序參數(shù)如表1所示)。本系統(tǒng)采用的解決方案是在DSP數(shù)據(jù)接口與LCD數(shù)據(jù)接口之間使用三態(tài)總線收發(fā)器74LS245進行數(shù)據(jù)。同時在軟件設(shè)計方面根據(jù)兩者時序關(guān)系,在程序中加入DSP等待狀態(tài)周期(根據(jù)工作頻率的不同改變程序中的參數(shù)來滿足時序要求),延長DSP輸出信號的持續(xù)時間。

          4 字符顯示軟件設(shè)計

          字符顯示函數(shù)DISP的形參ARRAY、PAGE、COL及TYPE分別代表定義的字模數(shù)組、頁面物理地址、列物理地址及顯示類型(漢字TYPE=16,數(shù)字字母TYPE=8)。程序中PAGE的范圍為0~7。使用物理地址,該值與第0頁指令代碼0xOB8相"或"后。就可得到期望頁面的指令代碼,從而提高了編程效率。同樣的,COL范圍0~127也使用了物理地址,在每寫一列數(shù)據(jù)前,軟件都會判斷當(dāng)列所在的物理位置,以調(diào)用左屏或右屏的驅(qū)動子程序,與第0列指令代碼0x40相"或"后即可得到設(shè)置列地址的指令代碼。至于寫反顯字符只需將DATA取反(即~DATA)寫入相應(yīng)I/O口即可。字符顯示流程如圖3所示,下面給出具體程序:





          5 結(jié)束語

          本文提出基于DSP的液晶顯示設(shè)計過程中出現(xiàn)的問題及其解決方案,并給出具體的電路設(shè)計和編程實例,論證了所提出的解決方案的有效性。

          光敏電阻相關(guān)文章:光敏電阻工作原理




          關(guān)鍵詞: 緩沖 控制 電阻 隔離

          評論


          相關(guān)推薦

          技術(shù)專區(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); })();