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

          新聞中心

          EEPW首頁 > 嵌入式系統(tǒng) > 設(shè)計應(yīng)用 > 基于NiosⅡ處理器的TFT-LCD圖形顯示設(shè)計

          基于NiosⅡ處理器的TFT-LCD圖形顯示設(shè)計

          作者: 時間:2010-11-24 來源:網(wǎng)絡(luò) 收藏

            系統(tǒng)初始化,調(diào)用HAL的各模塊初始化程序,并定義在后面程序當(dāng)中要用到的各個對LCD顯示屏背景顏色、字體顏色設(shè)置的函數(shù)。

            本設(shè)計采用總線方式[6]對LCD控制器(TCB8000A)的時序進行控制,利用 Builder添加完一個掛接在三態(tài)橋上的接口,將TCB8000A的控制引腳與Avalon總線相關(guān)聯(lián)。由于TCB8000A的控制時序與Avalon總線三態(tài)接口的時序吻合,因此只需在定制接口時調(diào)整等待、建立時間便可以達(dá)到控制目的。在Nios程序內(nèi)用簡單的寫操作產(chǎn)生Avalon總線時序,需要注意的是TCB8000A只需一個地址控制線A1,且與總線的A1相連,因此寫操作應(yīng)使總線上的地址線A1符合TCB8000A對A1管腳的時序要求。即在并行模式下,MPU首先把完整的命令包送入地址為F004H的只寫寄存器(A1=0),然后將“1”送到地址為F006H的寄存器(A1=1),結(jié)束一個命令包,并打開顯示。對于地址線A0,A2~A17使用的控制板已經(jīng)設(shè)定好了,所以只需要控制A1便可完成命令的送入。流程圖如圖4所示。

          基于NiosⅡ處理器的TFT-LCD圖形顯示設(shè)計

            代碼如下:

            void SdCmd(alt_u8 Command) //send command

            {

            IOWR(GX_TFT_LCD_BASE, 0, Command); //A1=0

            }

            void CmdEnd() //send command

            {

            IOWR(GX_TFT_LCD_BASE, 2, 1); //A1=1

            }

            在控制時序的基礎(chǔ)上,程序中的顯示圖片部分[7]首先把要顯示的圖片用Bmp2HexPro.exe軟件工具轉(zhuǎn)換成數(shù)據(jù)信息, 把圖片的數(shù)據(jù)信息以頭文件的形式(picture.h)添加在工程中。

            對儲存的多張圖片進行分類標(biāo)號(例如picx1、picx2、picx3等),然后在C主程序中用switch語句[8]來分別調(diào)用表示該圖片信息的索引號碼,示例程序如下:

            void ShowBMP160(alt_u32 X,alt_u32 Y, alt_u8 picIndex)

            {

            alt_u8 i,j,k,Buffer[5],*pic;

            alt_u16 p;

            alt_u32 addr;

            switch(picIndex){

            case 1: pic=picx1;break;

            case 2: pic=picx2; break;

            case 3: pic=picx3; break;

            default: break;

            }



          關(guān)鍵詞: TFT-LCD NiosⅡFPGA SoPC

          評論


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