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

          關 閉

          新聞中心

          EEPW首頁 > 工控自動化 > 設計應用 > 基于CPLD的雙屏結構液晶控制器的研究與設計

          基于CPLD的雙屏結構液晶控制器的研究與設計

          作者: 時間:2011-06-20 來源:網(wǎng)絡 收藏

           1.引言

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

            隨著集成電路技術的發(fā)展, 在現(xiàn)代電子中,可編程邏輯器件的運用越來越多,原因在于其規(guī)模大,體積小,功能強,價格便宜。可擦寫上萬次,使得硬件像軟件一樣靈活方便。Verilog HDL語言作為硬件描述語言有其獨特的優(yōu)勢:在門級描述的底層,描述的設計思想、電路和邏輯關系清晰明了,設計語言簡練、易學易用,模塊化分層在大規(guī)模設計時具有優(yōu)勢。如果使用Verilog把控制功能集成在一片芯片里,整個電路將會變得更簡潔、實用。

            2.原理

            用于單片機和屏的接口,一方面不斷地把顯存的數(shù)據(jù)刷新到液晶屏上,另一方面控制單片機對顯存數(shù)據(jù)的更新。

            液晶內部主要的計數(shù)器,分別是4bit時鐘同步字符計數(shù)器、行計數(shù)器和幀計數(shù)器,它們在系統(tǒng)時鐘FCLK的控制下同時計數(shù),主要是用來產生行同步信號LP 和幀同步信號FP ,分別用來控制液晶屏換行和換頁。液晶屏就是在這三個信號的控制下反復地把顯存里的數(shù)據(jù)刷新到屏幕上。

            本設計采用Altera 公司生產的EPM7128S芯片來實現(xiàn)LCD 控制器以及它的外圍

          邏輯時序的全部功能,使用的液晶屏為640×480顯示結構,即上半屏和下半屏同時顯示,RAM為一片SRM20512LLTM78(62512)。

            液晶屏刷新速度的計算公式為FFRP = FCLK/ ( Hn×Nx )。

            其中,F(xiàn)FRP為液晶屏顯示幀掃描頻率,一般要大于70 Hz ,Hn為一行顯示的4bit同步字符數(shù)640/4=160,Nx為一屏幀掃描的行數(shù)480/2=240,F(xiàn)CLK為系統(tǒng)的工作時鐘頻率,采用晶振提供頻率11.05926MHz,將其四分頻得到2.764815MHz即可作為系統(tǒng)時鐘FCLK。

            系統(tǒng)構成如下圖所示:

          系統(tǒng)構成

            3.實現(xiàn)過程

            1)液晶刷新時序產生

            此部分主要產生行同步和幀同步信號,完成行和幀同步。

            由于結構液晶屏以4bit為單位上下同時顯示,可以在CPLD內定義兩個寄存器,行含4bit字符寄存器scp_reg,值為640/4=160, 幀含行寄存器lp_reg,值為480/2=240。字符時鐘同步計數(shù)器scp_count為4bit字符的計數(shù)器,在系統(tǒng)時鐘scp_clk作用下計數(shù)加一,與行含字符寄存器內容比較,若等,表示一行結束,開始下一行,scp_count清零,行計數(shù)器lp_count加一,lp_flag置一,產生行同步信號LP。行計數(shù)器lp_count與幀含行寄存器內容比較,若等,表示一幀結束,開始下一幀,scp_count, lp_count 清零,fp_flag置一,產生幀同步信號FP。實現(xiàn)的程序如下:

             always@(posedge scp_clk)

             begin

             scp_count=scp_count+1;

             if(scp_count==scp_reg)

            begin

             lp_count=lp_count+1;

             lp_flag=1;

             scp_count=0;

             if(lp_count==lp_reg)

             begin

             fp_flag=1;

             lp_count=0;

             scp_count=0;

             end

             else fp_flag=0;

             end

             else lp_flag=0;

             end

            操作lcd時,scp_reg=160,lp_reg=240。仿真時取scp_reg=3,lp_reg=4,如下:

          實現(xiàn)過程代碼

            2) 單片機寫數(shù)據(jù)至RAM

            此部分為單片機通過CPLD更新RAM數(shù)據(jù)。

            單片機寫信號WR有效,CPLD判斷數(shù)據(jù)線上內容為指令還是數(shù)據(jù),若為指令,則將DB內容存入指令寄存器CMDREG,若為數(shù)據(jù),判斷指令寄存器CMDREG內容以指示狀態(tài)。若CMDREG為8’h00或8’h02,表示DB為低或高八位地址,分別存入低高八位地址寄存器addl和addh,若為8’h04,表示DB為要寫入RAM的數(shù)據(jù),存入數(shù)據(jù)寄存器ioreg。

          CMDREG DB內容
          8’h00 低八位地址
          8’h02 高八位地址
          8’h04 數(shù)據(jù)

          if(a0==1) cmdreg=db;

            else begin

             if(cmdreg==8'h00) addl=db;

            nb

          sp; else if(cmdreg==8'h02)

             begin

             addh=db;

             p={addh,addl};

             end

             else if(cmdreg==8'h04) ioreg=db;

             end

            3)顯存的數(shù)據(jù)刷新到液晶屏

            此部分完成RAM數(shù)據(jù)到LCD的正確映射。

            RAM存儲和LCD對應關系如下圖所示:

          RAM存儲和LCD對應關系

            正確的將RAM中的數(shù)據(jù)送入LCD,使液晶屏上下半屏隨著時鐘同時顯示,必須理清RAM存儲和LCD顯示間的地址關系。LCD為640×480,所以下半屏起始地址對應的內容應為640×240/8=19200,即RAM0x4b00中的內容。

            由于4bit字符同步時鐘scp_clk內含四個周期computerclk,可以在computerclk的二三周期,分別將RAM地址0x0000的內容AB和0x4b00的內容EF傳至八位寄存器reg1和reg2,在余下的第四周期,將reg1和reg2的高四位即A和E傳至上下半屏數(shù)據(jù)寄存器ud_reg和ld_reg,lcd將同時顯示上半屏A下半屏E。下一個scp_clk時,只需將reg1和reg2的低四位即B和F傳至ud_reg和ld_reg,則lcd將同時顯示上半屏B下半屏F。以后每兩個scp_clk,RAM地址加一,同樣的方式取數(shù)據(jù)刷新lcd。

            仿真圖中藍線指示為RAM地址加一后上述一個循環(huán)的開始。

          顯存的數(shù)據(jù)刷新到液晶屏代碼

            4) 數(shù)據(jù)選擇器

            單片機對RAM數(shù)據(jù)的更新,CPLD刷新LCD對RAM的讀取,可以通過一個二選一數(shù)據(jù)選擇器完成。

            當單片機寫時,置選擇信號sel為1,存放MCU操作的地址寄存器addl、addh和數(shù)據(jù)寄存器ioreg與RAM地址數(shù)據(jù)總線連接,完成MCU對RAM數(shù)據(jù)的更新;當sel為0,刷新液晶屏的地址寄存器q和數(shù)據(jù)寄存器ud_reg、ld_reg與RAM地址數(shù)據(jù)總線連接,刷新LCD。

            4.結束語

            以上主要介紹了Verilog HDL設計CPLD作為液晶控制器的幾個基本部分,經過驗證,所設計控制器在單片機作用下正確完成液晶的顯示。本設計創(chuàng)新點在于控制器設計使用硬件描述語言Verilog而非傳統(tǒng)設計方法設計,易于理解,易于維護,調試電路速度快,有許多易于掌握的仿真綜合布局布線工具。若使用其他液晶屏,只需修改程序中相關參數(shù),更多功能的擴充,也只需增添CPLD中的模塊即可實現(xiàn)。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁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); })();