在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            EEPW首頁 > 設(shè)計(jì)應(yīng)用 > 基于Nios在液晶屏和觸摸屏顯示實(shí)驗(yàn)

            基于Nios在液晶屏和觸摸屏顯示實(shí)驗(yàn)

            作者: 時(shí)間:2025-01-22 來源:EEPW編譯 收藏

            通過本實(shí)驗(yàn)了解的觸摸原理和顯示原理,能夠在液晶屏上開發(fā)應(yīng)用。
            本實(shí)驗(yàn)要求:
            1. 將存儲(chǔ)在Flash中的一幅圖像顯示在液晶屏上。
            2. 將用戶在上觸摸的坐標(biāo)顯示在8段數(shù)碼管上。

            本文引用地址:http://www.biyoush.com/article/202501/466542.htm

            2.1 液晶屏的基本原理

            液晶顯示是目前最常用的顯示方式,無論是簡單的黑白顯示還是高清晰度的數(shù)字電視,大量使用了液晶顯示。液晶屏的基本物理原理是:液晶分子在不通電時(shí)排列混亂,阻止光線通過;當(dāng)液晶上加一定電壓時(shí),分子便會(huì)重新垂直排列,使光線能直射出去,從而可以在液晶陣列上顯示不同的圖形。

            本實(shí)驗(yàn)使用的液晶屏分辨率為400×240,其控制芯片為ILI9326。對于液晶屏顯示的操作主要體現(xiàn)在對控制芯片ILI9326的操作上。

            對ILI9326進(jìn)行的操作可以分為讀、寫兩種操作,本實(shí)驗(yàn)中主要用到寫操作,在此簡要介紹FPGA如何向ILI9326進(jìn)行寫操作。具體到寫操作又可以分為兩種操作模式:第一是對芯片ILI9326中寄存器的設(shè)置操作,第二是對ILI9326中存儲(chǔ)像素值的GRAM的操作。本實(shí)驗(yàn)使用的液晶屏分辨率為400×240,一共有96000個(gè)像素點(diǎn),而每一個(gè)像素點(diǎn)對應(yīng)于一位16位寬的GRAM,也就是說通過控制ILI9326內(nèi)部的GRAM即可以控制液晶屏的顯示內(nèi)容。

            對ILI9326中控制寄存器的設(shè)置操作時(shí)序?yàn)椋菏紫容敵黾拇嫫鞯木幪?,然后輸出要向該寄存器寫入的?shù)據(jù),其時(shí)序如圖 20-1所示。在nWR的上升沿和RS信號為低時(shí)FPGA向從設(shè)備ILI9326送出寄存器的編號,而在下一個(gè)nWR的上升沿和RS信號為高時(shí)FPGA輸出要寫入數(shù)據(jù)。

            圖20-1 設(shè)置控制寄存器時(shí)序

            圖20-1 設(shè)置控制寄存器時(shí)

            對ILI9326中GRAM的寫操作時(shí)序?yàn)椋菏紫仍趎WR的上升沿和RS為低電平的時(shí)FPGA向ILI9326發(fā)送0202h,然后在nWR的上升沿和RS為高電平期間FPGA逐次向ILI9326發(fā)送需要顯示的圖像像素?cái)?shù)據(jù)(圖 20 2)。在每寫完一個(gè)圖像像素?cái)?shù)據(jù)后,ILI9326內(nèi)部的計(jì)數(shù)器會(huì)自動(dòng)加一,使下一個(gè)寫入的數(shù)據(jù)對于下一個(gè)像素,以此類推達(dá)到控制液晶屏顯示內(nèi)容的目的。圖20-2 寫入需要顯示的圖像信號

            圖20-2 寫入需要顯示的圖像信號

            2.2 的基本原理

            觸摸屏(Touch panel)是可以接收觸頭等輸入訊號的感應(yīng)式顯示裝置,當(dāng)觸頭接觸了屏幕時(shí),屏幕上的觸覺反饋系統(tǒng)就可以感應(yīng)到觸頭接觸的位置。

            從技術(shù)原理上,觸摸屏可以分為五類:矢量壓力傳感技術(shù)觸摸屏、電阻技術(shù)觸摸屏、電容技術(shù)觸摸屏、紅外線技術(shù)觸摸屏、表面聲波技術(shù)觸摸屏。其中矢量壓力傳感技術(shù)觸摸屏已退出歷史舞臺(tái);紅外線技術(shù)觸摸屏價(jià)格低廉,但其外框易碎,容易產(chǎn)生光干擾,曲面情況下失真;電容技術(shù)觸摸屏設(shè)計(jì)構(gòu)思合理,但其圖像失真問題很難得到根本解決;電阻技術(shù)觸摸屏的定位準(zhǔn)確,但其價(jià)格頗高,且怕刮易損;表面聲波觸摸屏解決了以往觸摸屏的各種缺陷,清晰不容易被損壞,適于各種場合,缺點(diǎn)是屏幕表面如果有水滴和塵土?xí)褂|摸屏變的遲鈍,甚至不工作。按照觸摸屏的工作原理和傳輸信息的介質(zhì),我們把觸摸屏分為四種,它們分別為電阻式、電容感應(yīng)式、紅外線式以及表面聲波式。每一類觸摸屏都有其各自的優(yōu)缺點(diǎn),要了解那種觸摸屏適用的場合,關(guān)鍵就在于要理解每一類觸摸屏技術(shù)的工作原理和特點(diǎn)。下面對實(shí)際中應(yīng)用較多的電容和電阻式觸摸屏進(jìn)行簡要介紹一下。

            1. 電容式觸摸屏  

            電容技術(shù)觸摸屏是利用人體的電流感應(yīng)進(jìn)行工作的。電容式觸摸屏是是一塊四層復(fù)合玻璃屏,玻璃屏的內(nèi)表面和夾層各涂有一層ITO(氧化銦),最外層是一薄層矽土玻璃保護(hù)層,夾層ITO涂層作為工作面,四個(gè)角上引出四個(gè)電極,內(nèi)層ITO為屏蔽層以保證良好的工作環(huán)境。 當(dāng)手指觸摸在金屬層上時(shí),由于人體電場,用戶和觸摸屏表面形成以一個(gè)耦合電容,對于高頻電流,電容是直接導(dǎo)體,于是手指從接觸點(diǎn)吸走一個(gè)很小的電流。這個(gè)電流分從觸摸屏的四角上的電極中流出,并且流經(jīng)這四個(gè)電極的電流與手指到四角的距離成正比,控制器通過對這四個(gè)電流比例的精確計(jì)算,得出觸摸點(diǎn)的位置。

            1. 電阻式觸摸屏

            這種觸摸屏利用壓力感應(yīng)進(jìn)行控制。電阻觸摸屏的主要部分是一塊與顯示器表面非常配合的電阻薄膜屏,這是一種多層的復(fù)合薄膜,它以一層玻璃或硬塑料平板作為基層,表面涂有一層透明氧化金屬(透明的導(dǎo)電電阻)導(dǎo)電層,上面再蓋有一層外表面硬化處理、光滑防擦的塑料層、它的內(nèi)表面也涂有一層涂層、在他們之間有許多細(xì)小的(小于1/1000英寸)的透明隔離點(diǎn)把兩層導(dǎo)電層隔開絕緣。 當(dāng)手指觸摸屏幕時(shí),兩層導(dǎo)電層在觸摸點(diǎn)位置就有了接觸,電阻發(fā)生變化,在X和Y兩個(gè)方向上產(chǎn)生信號,然后送觸摸屏控制器。控制器偵測到這一接觸并計(jì)算出(X,Y)的位置。

            而本實(shí)驗(yàn)中使用的TSC2046是一種典型的電阻式觸摸屏,其采用的是逐次逼近型模數(shù)轉(zhuǎn)換器(SAR ADC),包含了采樣/保持、模數(shù)轉(zhuǎn)換、串口數(shù)據(jù) 輸出等功能。同時(shí)芯片集成有一個(gè)2.5V的內(nèi)部參考電壓源、溫度檢測電路,工作時(shí)使用外部時(shí)鐘。TSC2046可以單電源供電,電源電壓范圍為 2.7V~5.5V。參考電壓值直接決定ADC 的輸入范圍,參考電壓可以使用內(nèi)部參考電壓,也可以從外部直接輸入1V~VCC 范圍內(nèi)的參考電壓(要求外部參考電壓源輸出阻抗低)。X、Y、Z、VBAT、Temp和 AUX模擬信號經(jīng)過片內(nèi)的控制寄存器選擇后進(jìn)入ADC,ADC可以配置為單端或差分模式。選擇VBAT、Temp和AUX時(shí)應(yīng)該配置為單端模式;作為觸摸屏應(yīng)用時(shí),應(yīng)該配置為差分模式,這可有效消除由于驅(qū)動(dòng)開關(guān)的寄生電阻及外部的干擾帶來的測量誤差,提高轉(zhuǎn)換精度。

            其基本控制方式為:
            首先通過SSI串行接口向TSC2046發(fā)送8位控制字(DIN),設(shè)置需要數(shù)模轉(zhuǎn)換的信號(X、Y、Z、VBAT、Temp和 AUX等)和精度等,延時(shí)一個(gè)時(shí)鐘周期后可以通過SSI接口讀取相應(yīng)的模擬信號數(shù)字化后的數(shù)數(shù)值,具體時(shí)序如圖20-3所示。

            發(fā)送給TSC2046的8位控制字的設(shè)置方式可以根據(jù)具體情況進(jìn)行選擇。通過8位控制字可以選擇ADC的分辨率,即選擇是8位分辨率還是12位分辨率。當(dāng)設(shè)置為12位分辨率時(shí)得SSI數(shù)字接口如圖20-3所示,而8位分辨率的傳輸時(shí)序基本類似。圖20-3 SSI數(shù)字接口時(shí)序

            圖20-3 SSI數(shù)字接口時(shí)序

            3.1 總體架構(gòu)

            整個(gè)程序有5個(gè)模塊構(gòu)成,如圖 20 4所示: 1. TFT是頂層模塊,實(shí)例化各子模塊并連接各子模塊。 2. ping模塊主要負(fù)責(zé)液晶屏的控制與顯示。 3. touch模塊負(fù)責(zé)控制和讀取觸摸屏上面的坐標(biāo)值。 4. data2disp模塊負(fù)責(zé)輸入鍵值的譯碼,因?yàn)橐謩e對X坐標(biāo)和Y坐標(biāo)進(jìn)行譯碼,而每一個(gè)坐標(biāo)均需要2個(gè)七段數(shù)碼管,所以程序中使用了4個(gè)data_2_disp模塊。 5. U1模塊是PLL模塊,產(chǎn)生屏幕顯示所需要的10MHz和5MHz的時(shí)鐘。圖20-4 程序總體架構(gòu)

            圖20-4 程序總體架構(gòu)

            3.2 液晶顯示模塊ping (ping.v)

            Ping模塊的基本思路為:首先對顯示控制芯片ILI9326進(jìn)行初始設(shè)置,然后將存儲(chǔ)在Flash內(nèi)的圖像數(shù)據(jù)寫入ILI9326中,將圖像顯示在液晶屏上。

            該程序的接口主要分為兩個(gè)部分,一部分是液晶屏接口部分,另一部分是Flash接口部分。 Ping模塊的接口如下:

             
            iRst         //全局異步復(fù)位iClk50       //全局時(shí)鐘 50Mhz//液晶屏接口oRst        //液晶屏異步復(fù)位oCs_TFT    //液晶屏片選信號,低電平有效,只有在片選信號有效時(shí),//才能對液晶屏進(jìn)行操作oRs         //在對液晶屏控制芯片進(jìn)行配置期間,該信號用于區(qū)分?jǐn)?shù)據(jù)線上是寄//存器編號還是要向該寄存器寫入的數(shù)據(jù)oWr        //操作液晶屏控制芯片的時(shí)鐘信號,上升沿有效oData       //16位寬的數(shù)據(jù)線 //Flash接口FL_DQ //Flash 數(shù)據(jù)接口FL_CE_N   //Flash片選信號FL_ADDR  //Flash地址信號FL_OE_N   //Flash輸出使能FL_WE_N //Flash輸入使能FL_RST_N  //Flash復(fù)位FL_RY_BY  //Flash忙指示信號

            Ping模塊中的主要狀態(tài)機(jī)為State,state的狀態(tài)轉(zhuǎn)移圖如圖 20 5所示。圖20-5 ping模塊內(nèi)的State狀態(tài)機(jī)

            圖20-5 ping模塊內(nèi)的State狀態(tài)機(jī)

            狀態(tài)機(jī)的跳轉(zhuǎn)主要由計(jì)數(shù)器counter來進(jìn)行控制。在counter的不同數(shù)值對應(yīng)不同時(shí)間整個(gè)程序進(jìn)入不同狀態(tài),具體跳轉(zhuǎn)條件見程序。

            程序一共有3個(gè)狀態(tài):WAIT、CONFIG和WRITEDATA:

            WAIT狀態(tài):有兩個(gè)可能程序處于WAIT狀態(tài)時(shí)間,第一是上電后需要延時(shí),因?yàn)橐壕咙c(diǎn)亮等操作需要對電容等充電,在上電后程序出WAIT狀態(tài)等待系統(tǒng)充電穩(wěn)定。第二就是在配置ILI9326周期內(nèi),如果某些配置后同樣需要ILI9326穩(wěn)定一段時(shí)間后才能接著向下配置,此時(shí)程序也需要進(jìn)入WAIT狀態(tài)。

            CONFIG狀態(tài):當(dāng)程序處于CONFIG狀態(tài),程序從保存配置文件的內(nèi)部ROM中讀取配置數(shù)據(jù),對ILI9326進(jìn)行配置。配置內(nèi)容參看文件displayData.hex。

            WRITEDATA狀態(tài):主要是在配置完成后,從FLASH內(nèi)讀取待顯示的數(shù)據(jù)寫入ILI9326的GRAM內(nèi),控制液晶屏的顯示內(nèi)容。完成顯示數(shù)據(jù)的讀寫后,程序進(jìn)入WAIT,直至手動(dòng)復(fù)位。具體程序如下所示:

             always@(posedge clk_sys) beginif(counter<=start_size + 1000) begin
            State <= WAIT;     //在start_size + 1000個(gè)時(shí)鐘周期內(nèi),為上電延時(shí)
            color <= 1'b0;
            end
            else if(
                 ((start_size + 1000<counter)&(counter<=start_size + 1008))
                 |
                 ((start_size + 1108<counter)&(counter<=start_size + 1150))
                 |
                 ((start_size + 2150<counter)&(counter<=start_size + 2182))
                 |
                 ((start_size + 3182<counter)&(counter<=start_size + 3184))
                 |
                 ((start_size + 4184<counter)&(counter<=start_size + 4189))
                 ) //Write_Register(0x00,  0x00000);
            beginState <= CONFIG;  //在start_size + 1000到start_size + 4190時(shí)鐘周//期內(nèi)狀態(tài)在不停在WAIT和CONFIG之間跳轉(zhuǎn)
                            //而在處于CONFIG狀態(tài)時(shí)間,程序?qū)σ壕吝M(jìn)//行配置color <= 1'b0;
            end
            else if(
              ((start_size + 1008<counter)&(counter<=start_size + 1208))
              |
              ((start_size + 1150<counter)&(counter<=start_size + 2150))
              |
              ((start_size + 2182<counter)&(counter<=start_size + 3182))
              |
              ((start_size + 3184<counter)&(counter<=start_size + 3184))
              ) //delayms(20);//{time, 0010, ms);
            beginState <= WAIT; //在start_size + 1000到start_size + 4190時(shí)鐘周//期內(nèi)狀態(tài)在不停在WAIT和CONFIG之間跳轉(zhuǎn)
                           //而在處于WAIT狀態(tài)時(shí)間,程序在等待液晶屏//的延時(shí)動(dòng)作。
                  color <= 1'b0;
            end
            else if( (counter > start_size + 4190) & (counter<All_Size)) beginState <= WRITEDATA;//在此期間程序從FLASH內(nèi)讀取數(shù)據(jù),//GRAM內(nèi)寫入數(shù)據(jù)color <= 1'b1;
            end
            else  begin
            State <= WAIT;//進(jìn)入最后的休眠狀態(tài)。
              color <= 1'b0;
            endend
            end
            end
            當(dāng)處于CONFIG狀態(tài)時(shí),程序從內(nèi)部ROM(registerData)存儲(chǔ)器中讀取出配置文件,該ROM地址生成程序如下所示:always@(negedge clk_sys or negedge oRst)begin
            if(!oRst)
            address <= 7'b0;
            else if(State == CONFIG)//處于CONFIG狀態(tài),ROM地址自動(dòng)增加
            address <= address + 1'b1;
            else
            address <= address; end 
            Flash接口時(shí)序控制程序如下所示:assign FL_WE_N = 1'b1;    //實(shí)驗(yàn)僅僅需要讀取Flash,所以該信號一直拉高assign FL_RST_N = iRst;    //Flash復(fù)位信號assign FL_CE_N = 1'b0;     //片選信號總是有些assign FL_OE_N = 1'b0;     //讀輸出總是有效
            而當(dāng)程序處于WRITEDATA狀態(tài),也就是讀取存儲(chǔ)在FLASH內(nèi)部的圖像數(shù)據(jù)向TFT屏寫入的狀態(tài)時(shí),其FLASH地址需要不斷增加,程序如下所示:always@(negedge flashclk or negedge oRst) begin //生成Flash地址信號
            if(!oRst) begin
            FL_ADDR <= 25'b0;
            end
            else begin if(color_d == 1'b1) // color_d 為color的一個(gè)時(shí)鐘延時(shí),而color在WRITEDATA//狀態(tài)被拉低,也就是程序處于WRITEDATA狀態(tài)時(shí)//Flash地址自動(dòng)增加begin FL_ADDR <= FL_ADDR + 1'b1;
            end
            else
            FL_ADDR <= FL_ADDR;
            endend reg [7:0] FL_DQ_d;always@(negedge flashclk or negedge oRst) begin //讀取Flash信號
            if(!oRst) begin
            FL_DQ_d <= 8'b0;
            end
            else
            FL_DQ_d <= FL_DQ;end

            程序中有一點(diǎn)時(shí)序需要注意,那就是GRAM位寬為16位,而Flash的位寬為8位,所以讀取Flash的時(shí)鐘需要是寫入GRAM的時(shí)鐘速率的兩倍。將讀取出來的兩個(gè)8位Flash數(shù)據(jù)合并寫入GRAM內(nèi)。

            其對應(yīng)的時(shí)鐘信號生成程序如下所示:

             //分頻以產(chǎn)生系統(tǒng)時(shí)鐘wire clk_sys;//5MHz	wire flashclk;//10MHz 
            Pll U1(.inclk0(iClk50),
            .c0(flashclk),
            .c1(clk_sys));

            3.3 觸摸屏touch模塊(touch.v)

            觸摸屏touch模塊檢測觸點(diǎn)坐標(biāo)的基本原理是:等待觸摸屏送出IRQ終端信號,在檢測到終端信號后,向觸摸屏控制芯片TSC2046寫入控制字,在寫入控制字后通過SSI接口讀取相應(yīng)觸點(diǎn)的x、y坐標(biāo)位置,并將坐標(biāo)位置顯示在7段數(shù)碼管上。

            觸摸屏主要有六個(gè)信號:CS、DCLK、DIN、BUSY、DOUT和IRQ,在檢測到中斷IRQ后,通過DOUT輸出控制字,然后通過DIN接收坐標(biāo)位置;CS為片選信號,DCLK為訪問時(shí)鐘;在輸出控制字后,觸摸屏置BUSY為高一個(gè)時(shí)鐘周期,表示觸摸屏正忙。 觸摸屏模塊touch的數(shù)據(jù)流如圖20-6所示。圖20-6 觸摸屏程序框圖

            圖20-6 觸摸屏程序框圖

            Ping模塊的接口分兩部分:一部分是與觸摸屏控制芯片的接口,一部分是與顯示坐標(biāo)數(shù)據(jù)的8段數(shù)碼管接口。與觸摸屏的接口如下:

             input 	IRQ;  	//觸摸屏產(chǎn)生的中斷信號,有觸摸時(shí)IRQ為低。input 	iBusy; 	//觸摸屏工作中指示信號,為高時(shí)表示觸摸屏忙。input 	Din;  	//從觸摸屏輸入到FPGA的坐標(biāo)位置數(shù)據(jù)。output 	Dclk;	//接口時(shí)鐘。output 	Dout; 	//FPGA向觸摸屏發(fā)送的控制信號。output 	oCs; 	//觸摸屏片選信號。與顯示坐標(biāo)數(shù)據(jù)的7段數(shù)碼管有關(guān)的引腳如下:                                                    
            output [7:0]HEX_sel; //七段數(shù)碼管片選信號線。output [7:0]HEX_seg; //數(shù)碼管顯示的數(shù)據(jù)。

            Touch模塊主要受狀態(tài)機(jī)State控制,其狀態(tài)轉(zhuǎn)移圖如圖 20-7所示。

            圖20-7 觸摸屏程序狀態(tài)機(jī)

            圖20-7 觸摸屏程序狀態(tài)機(jī)

            State有XCONFIG、XDATA、YCONFIG和YDATA4個(gè)狀態(tài):

            X_CONFIG狀態(tài):對TSC2046進(jìn)行設(shè)置,以測試X方向的坐標(biāo)。

            X_DATA狀態(tài):讀取TSC2046送來的X方向坐標(biāo)值。

            Y_CONFIG狀態(tài):對TSC2046進(jìn)行設(shè)置,以測試Y方向的坐標(biāo)。

            Y_DATA狀態(tài):讀取TSC2046送來的Y方向坐標(biāo)值。

            狀態(tài)機(jī)的狀態(tài)轉(zhuǎn)移由計(jì)數(shù)器counter來進(jìn)行控制。在初始時(shí),State處于Y_DATA,而當(dāng)IRQ被拉低期間,counter每個(gè)時(shí)鐘自動(dòng)增加,從而驅(qū)動(dòng)狀態(tài)機(jī)發(fā)生跳轉(zhuǎn)以讀取x、y坐標(biāo),并將坐標(biāo)顯示在八段數(shù)碼管上。當(dāng)觸摸屏受到觸發(fā)時(shí)IRQ信號被拉低,一般情況下拉低的周期足夠完成狀態(tài)機(jī)的跳轉(zhuǎn)(因?yàn)镕PGA運(yùn)轉(zhuǎn)很快,而人的操作則相對緩慢),完成坐標(biāo)位置的讀寫。具體程序如下:

              reg [2:0] state;
            reg [11:0] counter;
            always@(negedge Dclk or negedge iRst) begin
            if(!iRst)
                    counter <= 12'b0;
               else beginif(IRQ==1'b1)
            counter <= 12'b0;
            else //在IRQ為低時(shí),表示有觸摸,counter開始工作。
                    counter <= counter + 1'b1;  
            end
            end always@(posedge Dclk or negedge iRst) begin
            if(!iRst) begin
                    state <= Y_DATA;
            end
            else begin
                 if((counter>=3000) && (counter < 3008))
                    state <= X_CONFIG;  //發(fā)送命令:讀取x坐標(biāo)值
                 else if((counter >=3008) && (counter <3024))
                    state <= X_DATA;    //讀取x坐標(biāo)值
                 else if((counter >=3024) && (counter <3032))
                    state <= Y_CONFIG;  //發(fā)送命令:讀取y坐標(biāo)值
                 else
                    state <= Y_DATA; //讀取y坐標(biāo)值
            endend

            需要說明的是,因?yàn)樵摻涌跁r(shí)鐘為百K量級,所以觸摸屏程序的時(shí)鐘是通過內(nèi)部觸發(fā)器產(chǎn)生,沒有統(tǒng)一到整個(gè)系統(tǒng)時(shí)鐘域內(nèi)。

            從SignalTap中觀測觸摸屏程序中讀取坐標(biāo)值的信號如圖 20 8所示,其中在XCONFIG、XDATA、YCONFIG、和YDATA 有效期間,Din和Dout在Dclk時(shí)鐘控制下對TSC2046進(jìn)行配置和讀取。其中在XCONFIG有效期間程序向TSC2046發(fā)送的數(shù)據(jù)為8'b00011011,而在YCONFIG有效時(shí)程序向TSC2046發(fā)送的數(shù)據(jù)為8' b00011001。圖20-8 運(yùn)行結(jié)果

            圖20-8 運(yùn)行結(jié)果



            文件名功能
            TFT.v頂層模塊。
            ping.v液晶屏控制模塊。
            touch.v控制和讀取觸摸屏上面的坐標(biāo)值。
            data_2_display.v顯示觸點(diǎn)坐標(biāo)。
            displayData.hex該文件存儲(chǔ)液晶屏芯片ILI9326的配置數(shù)據(jù), 16位寬,奇數(shù)地址存儲(chǔ)ILI9326的寄存器地址,偶數(shù)地址存儲(chǔ)待向該地址寫入配置數(shù)據(jù)。


            演示設(shè)備:核心板、擴(kuò)展板。

            演示方法:首先需要用Nios將圖像“tft屏顯示圖像.bmp”燒到Flash中,起始地址為0x0。然后把程序下載到開發(fā)板上之后,液晶屏上將顯示燒入的圖像。如果FLASH內(nèi)沒有燒入圖像,液晶屏上將液晶花屏。用手指觸摸液晶屏,可以看到在8段數(shù)碼上顯示當(dāng)前觸點(diǎn)的坐標(biāo)值。



            關(guān)鍵詞: Nios II Verilog 觸摸屏

            評論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉