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

          新聞中心

          EEPW首頁 > 設(shè)計應(yīng)用 > 液晶顯示控制器SED1330與DSP的接口應(yīng)用

          液晶顯示控制器SED1330與DSP的接口應(yīng)用

          ——
          作者:焦生杰,翁寅生 長安大學(xué)工程機械學(xué)院 田貞富 西安電子科技大學(xué)微電子學(xué)院 時間:2007-01-26 來源:《電子元器件應(yīng)用》 收藏

          dsp與模塊sed1330的接口設(shè)計

          tms320lf2407a對sed1330接口控制板的訪問有直接訪問和間接訪問兩種方式。直接訪問方式是將dsp的讀寫信號線與sed1330接口控制板引出的讀寫信號線直接相連,其時序由dsp內(nèi)部讀寫邏輯控制,但是由于模塊是dsp的一個慢速外設(shè),要使兩者的速度達到匹配,還必須加入一定的等待狀態(tài)才能滿足要求,考慮到dsp內(nèi)部等待狀態(tài)發(fā)生器所能插入的等待周期非常有限(只能給指定的存儲空間插入一個等待狀態(tài)),在不添加額外的硬件設(shè)備的情況下,很難滿足設(shè)備的要求,所以設(shè)計中只采用間接訪問方式,即用dsp的i/o口來控制seed1330,而通過軟件編程來模擬sed1330的接口時序。

          在此設(shè)計中,dsp的主頻一般為30mhz,模塊接口控制時序采用m8080時序,它與dsp之間的接口電路如圖2所示,其中,tms320lf2407的iopb0-iopb7用作數(shù)據(jù)接口,與液晶顯示模塊的數(shù)據(jù)線db0-db7相連,以完成與sed1330間的數(shù)據(jù)傳送,iopa6與wr相連時,可在寫sed1330時置為低,iopa7則與rd相連時,則在讀sed1330時置為低;cs接地將時鐘使能sed1330,iopa5與a0相連可決定是數(shù)據(jù)(a0=0),還是指令(a0=1)。背光電壓由逆變器提供,調(diào)節(jié)電位器可以調(diào)節(jié)液晶顯示屏的對比度。

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

          dsp與sed1330的軟件接口設(shè)計

          為了使液晶屏能夠正常工作,還必須編寫硬件驅(qū)動程序,軟件設(shè)計的關(guān)鍵是對液晶顯示模塊的初始化,以及對dsp與sed1330間接口時序的匹配。

          液晶顯示模塊的初始化

          初始化程序的主要任務(wù)是根據(jù)所控制的液晶顯示模塊的特性和用戶的顯示要求,寫入適當(dāng)?shù)拿詈蛥?shù),通常以參數(shù)表的形式送入,這些命令和參數(shù)必須首先寫入,如果指令設(shè)置出現(xiàn)錯誤,則顯示必定不正常,圖3所示為sed1330的初始化流程,其參數(shù)分別有:system set(30h、87h、07h、28h、42h、0f0h、28h、00h),scroll(00h、00h、0f0h、80h、25h、0f0h、00h、4bh、00h、00h),hdot scr(00h),ovlay (1ch),csrform(5dh、07h),csrw(02h、00h),csrdir(指令4ch),disp on(指令59h)。其中system set的驅(qū)動系統(tǒng)結(jié)構(gòu)設(shè)置為單屏,選用外部字符發(fā)生器,字符格式為8×8,字符代碼為80h-9fh,內(nèi)部cgram有效,顯示字符寬度和高度都是8,lcd每行需要的字節(jié)數(shù)為40,點行數(shù)為240,lcd的工作頻率為70hz,顯示內(nèi)存內(nèi)分配給一個顯示行的單元數(shù)為40字節(jié)。

          若需要把文本和圖形混合顯示,則只能設(shè)為二重合成顯示,而三重合成顯示只能用于圖形方式。在雙屏結(jié)構(gòu)下,四個顯示區(qū)同時參加二重合成顯示時,一、二顯示區(qū)位于上半屏,三、四顯示區(qū)位于下半屏,并且此時一、三顯示區(qū)合成為第一層,二、四顯示區(qū)合成為第二層。

          sed1330的讀寫時序

          由于本設(shè)計中的液晶顯示沒有用dsp的數(shù)據(jù)線,而是用dsp的io口來模擬液晶控制器的時序,因此,在設(shè)計中,用io口來模擬sed1330的讀寫時序是重中之重。

          sed1330的讀寫時序有m8080和m6800兩種,本設(shè)計選用m8080時序,其時序如圖4所示,其中的時間限定如表1所列。


          由于dsp的處理速度遠遠快于sed1330的顯示速度,所以每次向sed1330送出待顯示的數(shù)據(jù)后,dsp應(yīng)產(chǎn)生一定的延遲以等待響應(yīng)sed1330的顯示,所以在讀寫子程序中,要利用軟件來產(chǎn)生如上時序才能對液晶進行正確操作,否則液晶將來不及顯示而導(dǎo)致錯誤,在設(shè)計過程中,dsp的讀寫時序使用軟件模擬,而不是靠dsp的引腳r/w、rd、we與地址數(shù)據(jù)線的定來保證時序,這一點在設(shè)計中應(yīng)特別注意,下面給出筆者在設(shè)計過程中縮寫的讀寫子程序:

          wr_command:;入口參數(shù)為command
          ldp #mcra>>7
          lacl padatdir;配置iopa5--a0=1
          or #0e020h
          sacl padatdir
          ldp #4h
          lacl command
          or #0ff00h
          sacl pbdatdir
          ;iopa6--/wr=0(寫使能)
          ldp #mcra>>7
          lacl padatdir
          or #0e000h
          and #0e0b0h
          sacl padatdir
          rpt #10
          nop
          ;iopa6--/wr=1(寫不使能)
          lacl padatdir
          or #0e40h
          sacl padatdir
          ldp #4h
          splk #100,yanshi1
          call delays1;延時100us
          ret
          wr_data:入口參數(shù)為data
          ldp #mcra>>7
          lacl padatdir;配置iopa5--a0=0
          or #0e000h
          and #0e0d0h
          sacl padatdir
          ldp #4h
          lacl data1
          or #0ff00h
          ldp #mcra>>7
          sacl pbdatdir
          ;iopa6--/wr=0(寫使能)
          lacl padatdir
          or #0e000h
          and #0e0b0h
          sacl padatdir
          rpt #10
          nop
          ;iopa6--/wr=1(寫不使能)
          lacl padatdir
          or #0e40h
          sacl padatdir
          ldp #4h
          splk #100,yanshi1
          call delays1;延時100us
          ret
          rd_data;
          ldp #mcra>>7
          lacl padatdir;配置iopa5--a0=1
          or #0e020h
          sacl padatdir
          ;iopa7--/rd=0(讀使能)
          lacl padatdir
          or #0e000h
          and #0e070h
          sacl padatdir
          lacl pbdatdir
          ldp #4h
          sacl data2
          rpt #10
          nop
          ;iopa7--/rd=1(讀不使能)
          ldp #mcra>>7
          lacl padatdir
          or #0e80h
          sacl padatdir
          ldp #4h
          splk #100,yanshi1
          call delaysi;延時100us
          ret
          rd_busy:
          ldp #mcra>>7
          lacl padatdir;配置iopa5--a0=0
          or #0e000h
          and #0e0d0h
          sacl padatdir
          ;iopa7--/rd=0(讀使能)
          lacl padatdir
          or #0e000h
          and #0e070h
          sacl padatdir
          lacl pbdatdir
          ldp #4h
          sacl data3
          ;iopa7--/rd=1(讀使能)
          ldp #mcra>>7
          lacl padatdir
          or #0e80h
          sacl padatdir
          ldp #4h
          splk #100.yanshi1
          call delays1;延時100us
          ;判斷是否忙
          ldp #4h
          bit data2,9
          bcnd rd_busy,tc
          ret

          顯示軟件設(shè)計程序流程

          圖形顯示方式可以顯示數(shù)字、漢字以及各種能繪制出來的圖形,但是事先必須生成相應(yīng)的點陣文件,實際上,顯示字符、漢字和圖形都是對液晶屏上的特定區(qū)域?qū)懭胂鄳?yīng)的數(shù)據(jù),本質(zhì)上沒有區(qū)別,這些數(shù)據(jù)都存儲在程序中,待顯示時再將這些數(shù)據(jù)寫入顯示ram中,不過,在顯示漢字字符時,可以將需要顯示的字模提取出來存儲,進行顯示時再直接調(diào)用更為簡單,想要顯示一幅圖畫時,可以通過windows附帶的畫圖工具制作一幅320×240象素的黑白位圖,并先將位圖反色,再將處理過的圖片以16進制文件的形式和程序一起燒入外部24lc256中,注意:位圖應(yīng)存入一個起始地址。設(shè)置三層圖形疊加方式顯示的方法是一樣的,圖5所示是一個軟件設(shè)計程序流程圖。需要說明的是,當(dāng)dsp上電后,sed1330要能正確復(fù)位,否則將不能正確顯示。

          結(jié)束語

          sed1330控制器有64kb大容量緩存區(qū),能適用多種規(guī)格的顯示屏,其內(nèi)部固化的字符發(fā)生器可產(chǎn)生160種字模并可外擴字符發(fā)生器,而且通過改變指令參數(shù)可以實現(xiàn)圖像的閃爍、翻轉(zhuǎn)、移動等,從總體性能方面而言,sed1330大大強于同類型的其他控制器,非常適用于各種液晶顯示屏控制系統(tǒng)的設(shè)計需求。

          本文介紹的由該控制器構(gòu)成的液晶顯示方案已成功地通過了調(diào)試,它與同類型的其他圖形點陣液晶顯示模塊相比,其硬件電路結(jié)構(gòu)簡單,顯示功能強大,同時這對于其他型號的接口芯片,也有很好的參考價值。



          關(guān)鍵詞: 液晶顯示 LCD

          評論


          相關(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); })();