




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、江西理工大學應用科學學院SOPC/EDA綜合課程設(shè)計報告設(shè)計題目: 液晶顯示屏LCD顯示接口設(shè)計設(shè) 計 者: 肖小龍 學 號: 08060209114 班 級: 自動化091班 指導老師: 王忠鋒 完成時間: 2012年1月6日 設(shè)計報告綜合測試總評格式(10)內(nèi)容(40)圖表(10)答辯(20)平時(20)摘 要 如今,科技進步給我們的生活帶來了很大的變化。液晶顯示設(shè)備越來越多,各種各樣的液晶顯示產(chǎn)品走進我們生活中。從手機到電腦顯示器,從掌上電腦到平板電視。無處沒有液晶顯示技術(shù)的身影。液晶顯示器由于具有低壓、微功耗、顯示信息量大、體積小等特點,在移動通信終端、便攜計算機、GPS衛(wèi)星定位系統(tǒng)等
2、領(lǐng)域有廣泛用途,成為使用量最大的顯示器件。液晶顯示控制器作為液晶驅(qū)動電路的核心部件通常由集成電路組成,通過為液晶顯示系統(tǒng)提供時序信號和顯示數(shù)據(jù)來實現(xiàn)液晶顯示。本設(shè)計是一種基于FPGA(現(xiàn)場可編程門陣列)的液晶顯示控制器。與集成電路控制器相比,F(xiàn)PGA更加靈活,可以針對不同的液晶顯示模塊更改時序信號和顯示數(shù)據(jù)。FPGA的集成度、復雜度和面積優(yōu)勢使得其日益成為一種頗具吸引力的高性價比ASIC替代方案。本文選用GW48系列的SOPC/EDA實驗開發(fā)系統(tǒng),利用硬件描述語言VHDL設(shè)計了液晶顯示控制器,實現(xiàn)了替代專用集成電路驅(qū)動控制LCD的作用。關(guān)鍵詞: EDA(電子設(shè)計自動化),VHDL(硬件描述語言
3、),液晶控制器接口設(shè)計,LCD(液晶顯示器)。目 錄第1章 預備知識.11.1 12864點陣型液晶顯示屏的基本原理與使用方法11.1.1 12864點陣型LCD簡介11.1.2 點陣LCD的顯示原理21.1.3 字模提取軟件的應用31.1.4 12864液晶顯示模塊接口時序41.1.5 有關(guān)FPGA的知識61.2 課程設(shè)計題目:液晶顯示屏LCD顯示接口設(shè)計71.2.1 課程設(shè)計目的及基本要求71.3 設(shè)計要求9第2章 設(shè)計內(nèi)容提要及說明.102.1 元件原理圖102.2 12864指令系統(tǒng)122.2.1 12864用戶指令集122.2.2 FPGA與LCD連接方式14第3章 系統(tǒng)硬件設(shè)計.1
4、5第4章 設(shè)計過程.184.1 初始化部分的狀態(tài)機設(shè)計184.2 時鐘模塊的設(shè)計184.3 中文字符部分的數(shù)據(jù)模塊204.4 圖形的數(shù)據(jù)模塊23第5章 實習總結(jié).28致謝.29參考文獻.30第1章 預備知識1.1 12864點陣型液晶顯示屏的基本原理與使用方法1.1.1 12864點陣型LCD簡介圖1 12864實物圖LCD液晶顯示器是 Liquid Crystal Display 的簡稱,LCD 的構(gòu)造是在兩片平行的玻璃當中放置液態(tài)的晶體,兩片玻璃中間有許多垂直和水平的細小電線,透過通電與否來控制桿狀水晶分子改變方向,將光線折射出來產(chǎn)生畫面。比CRT要好的多,但是價錢較其它顯示器貴。 128
5、64是一種圖形點陣液晶顯示器,它主要由行驅(qū)動器/列驅(qū)動器及12864全點陣液晶顯示器組成??赏瓿蓤D形顯示,也可以顯示84個(1616點陣)漢字。實物如上圖所示。引腳號引腳名稱方向功能說明1VSS-模塊的電源地2VDD-模塊的電源正端3V0-LCD驅(qū)動電壓輸入端4RS(CS)H/L并行的指令/數(shù)據(jù)選擇信號;串行的片選信號5R/W(SID)H/L并行的讀寫選擇信號;串行的數(shù)據(jù)口6E(CLK)H/L并行的使能信號;串行的同步時鐘7DB0H/L數(shù)據(jù)08DB1H/L數(shù)據(jù)19DB2H/L數(shù)據(jù)210DB3H/L數(shù)據(jù)311DB4H/L數(shù)據(jù)412DB5H/L數(shù)據(jù)513DB6H/L數(shù)據(jù)614DB7H/L數(shù)據(jù)715
6、PSBH/L并/串行接口選擇:H-并行;L-串行16NC空腳17/RETH/L復位 低電平有效18NC空腳19LED_A-背光源正極(LED+5V)20LED_K-背光源負極(LED-OV)表1 12864引腳說明邏輯工作電壓(VDD):4.55.5V電源地(GND):0V工作溫度(Ta):060(常溫) / -2075(寬溫)1.1.2 點陣LCD的顯示原理在數(shù)字電路中,所有的數(shù)據(jù)都是以0和1保存的,對LCD控制器進行不同的數(shù)據(jù)操作,可以得到不同的結(jié)果。對于顯示英文操作,由于英文字母種類很少,只需要8位(一字節(jié))即可。而對于中文,常用卻有6000以上,于是我們的DOS前輩想了一個辦法,就是將
7、ASCII表的高128個很少用到的數(shù)值以兩個為一組來表示漢字,即漢字的內(nèi)碼。而剩下的低128位則留給英文字符使用,即英文的內(nèi)碼。那么,得到了漢字的內(nèi)碼后,還僅是一組數(shù)字,那又如何在屏幕上去顯示呢?這就涉及到文字的字模,字模雖然也是一組數(shù)字,但它的意義卻與數(shù)字的意義有了根本的變化,它是用數(shù)字的各位信息來記載英文或漢字的形狀,如英文的A在字模的記載方式如圖2所示:圖2 “A”字模圖而中文的“你”在字模中的記載卻如圖3所示:圖3 “你”字模圖1.1.3 字模提取軟件的應用對于我們需要顯示的一兩個字符來說,用手工的方法去取模是可以的,但是隨著我們需要顯示的字符的數(shù)量增加以及多樣化,手工取模就顯的很吃力
8、,并且效率底下,所以我們需要一個取模工具,網(wǎng)上流傳的一個字模提取軟件可以讓我們高效的得到我們需要顯示的字符的代碼。隨著電子行業(yè)的發(fā)展,很多研發(fā)機構(gòu)把漢字以代碼的形式固化在液晶顯示屏中,形成了帶字庫的液晶顯示屏,方便了我們使用液晶顯示屏,但是對于復雜多變的圖形,他就顯得就無能為力了,只能用取模軟件去取得顯示代碼,因此學會字摸軟件的使用,會使我們的工作效率事半功倍的。字模軟件界面如下:圖4 字模提取軟件1.1.4 12864液晶顯示模塊接口時序模塊有并行和串行兩種連接方法(時序如下):1、8位并行連接時序圖5 MPU寫資料到模塊圖6 MPU從模塊讀出資料2、串行連接時序圖圖7 串行連接時序圖1.1
9、.5 有關(guān)FPGA的知識圖8 FPGA芯片F(xiàn)PGA是英文FieldProgrammable Gate Array的縮寫,即現(xiàn)場可編程門陣列,它是在PAL、GAL、CPLD等可編程器件的基礎(chǔ)上進一步發(fā)展的產(chǎn)物。它是作為專用集成電路(ASIC)領(lǐng)域中的一種半定制電路而出現(xiàn)的,既解決了定制電路的不足,又克服了原有可編程器件門電路數(shù)有限的缺點。FPGA采用了邏輯單元陣列LCA(Logic Cell Array)這樣一個概念,內(nèi)部包括可配置邏輯模塊CLB(Configurable Logic Block)、輸出輸入模塊IOB(Input Output Block)和內(nèi)部連線(Interconnect)三
10、個部分。FPGA的基本特點主要有: 1)采用FPGA設(shè)計ASIC電路,用戶不需要投片生產(chǎn),就能得到合用的芯片。 2)FPGA可做其它全定制或半定制ASIC電路的中試樣片。 3)FPGA內(nèi)部有豐富的觸發(fā)器和IO引腳。 4)FPGA是ASIC電路中設(shè)計周期最短、開發(fā)費用最低、風險最小的器件之一5) FPGA采用高速CHMOS工藝,功耗低,可以與CMOS、TTL電平兼容。1.2 課程設(shè)計題目:液晶顯示屏LCD顯示接口設(shè)計1.2.1 課程設(shè)計目的及基本要求 液晶顯示屏已廣泛應用于人們的日常生活中,在各種領(lǐng)域中起到越來越重要的位置。因此,掌握和控制液晶顯示屏是非常重要的技能。進行課程設(shè)計是加 強實踐,提
11、高動手能力的重要環(huán)節(jié),通過課程設(shè)計,同時在軟件編程,排錯調(diào)試,相關(guān)儀器設(shè)備的使用技術(shù)等方面得到全面的提高。掌握液晶顯示屏實現(xiàn)的相關(guān)方法,為將來的實際工作打下一定的基礎(chǔ)。本課程設(shè)計是以SED1520控制器為基礎(chǔ),基本要求是: 1、掌握SED1520控制器基本結(jié)構(gòu)2、掌握液晶顯示屏的工作原理及使用方法3、掌握用VHDL語言編寫程序 4、掌握Quartus II的使用方法 5、掌握GW48系列SOPC/EDA實驗開發(fā)系統(tǒng):a:閑置不用GW48系統(tǒng)時,必須關(guān)閉電源,拔下電源插頭! b:在實驗中,當選中某種模式后,要按一下右側(cè)的復位鍵,以使系統(tǒng)進入該結(jié)構(gòu)模式工作。c:換目標芯片時要特別注意,不要插反或插
12、錯,也不要帶電插拔,確信插對后才能開電源。其它接口都可帶電插拔。請?zhí)貏e注意,盡可能不要隨意插拔適配板,及實驗系統(tǒng)上的其他芯片。d:并行口工作模式設(shè)置在“EPP”模式!e: 跳線座“SPS” 默認向下短路(PIO48);右側(cè)開關(guān)默認撥向“TO MCU”。f: 對于GW48-PK2系統(tǒng),左下角撥碼開關(guān)除第4檔“DS8使能”向下?lián)埽?數(shù)碼管顯示)外,其余皆默認向上1.3 設(shè)計要求使用FPGA設(shè)計一個液晶顯示屏LCD顯示的控制器,使其能夠顯示文字、數(shù)字或圖形(根據(jù)需要選擇LCD屏),至少需要顯示“江西理工大學應用科學學院課程設(shè)計”字樣,另外需要顯示班級姓名和日期。其它功能可自行增加! (型號GW48-
13、PK2)第2章 設(shè)計內(nèi)容提要及說明2.1 元件原理圖一般在把程序固化到配置芯片之前,一般先使用JTAG模式去調(diào)試程序,也就是把程序下載到FPGA芯片上運行。雖然這種方式在斷電以后會程序丟失,但是充分利用了PFGA的無限擦寫性。所以一般FPGA有兩個下載接口:JTAG調(diào)試接口和AS模式下載接口。所不同的是前者是下載至FPGA后者是編程配置芯片(如EPCSx),然后再配置FPGA。JTAG模式和AS模式的電路原理圖如下: 圖9 下載/編程接口電路圖FPGA的EP1C3T144C8芯片與LCD 12864的連接示意圖:圖10 液晶顯示屏與FPGA芯片連接示意圖2.2 12864指令系統(tǒng)2.2.1 1
14、2864用戶指令集指令表1:(RE=0:基本指令集)指 令指令碼說明執(zhí)行時間(540KHZ)RSRWDB7DB6DB5DB4DB3DB2DB1DB0清除顯示0000000001將DDRAM填滿“20H”,并且設(shè)定DDRAM的地址計數(shù)器(AC)到“00H”4.6ms地址歸位000000001X設(shè)定DDRAM的地址計數(shù)器(AC)到“00H”,并且將游標移到開頭原點位置;這個指令并不改變DDRAM的內(nèi)容4.6ms進入點設(shè)定00000001I/DS指定在資料的讀取與寫入時,設(shè)定游標移動方向及指定顯示的移位72us顯示狀態(tài)開/關(guān)0000001DCBD=1:整體顯示ONC=1:游標ONB=1:游標位置ON
15、72us游標或顯示移位控制000001S/CR/LXX設(shè)定游標的移動與顯示的移位控制位元;這個指令并不改變DDRAM的內(nèi)容72us功能設(shè)定00001DLX0REXXDL=1 (必須設(shè)為1)RE=1: 擴充指令集動作RE=0: 基本指令集動作72us設(shè)定CGRAM地址0001AC5AC4AC3AC2AC1AC0設(shè)定CGRAM地址到地址計數(shù)器(AC)72us設(shè)定DDRAM地址001AC6AC5AC4AC3AC2AC1AC0設(shè)定DDRAM地址到地址計數(shù)器(AC)72us讀取忙碌標志(BF)和地址01BFAC6AC5AC4AC3AC2AC1AC0讀取忙碌標志(BF)可以確認內(nèi)部動作是否完成,同時可以讀
16、出地址計數(shù)器(AC)的值0us寫資料到RAM10D7D6D5D4D3D2D1D0寫入資料到內(nèi)部的RAM(DDRAM/CGRAM/IRAM/GDRAM)72us讀出RAM的值11D7D6D5D4D3D2D1D0從內(nèi)部RAM讀取資料(DDRAM/CGRAM/IRAM/GDRAM)72us表2指令表2:(RE=1:擴充指令集)指令指令碼說 明執(zhí)行時間(540KHZ)RSRWDB7DB6DB5DB4DB3DB2DB1DB0待命模式0000000001將DDRAM填滿“20H”,并且設(shè)定DDRAM的地址計數(shù)器(AC)到“00H”72us卷動地址或IRAM地址選擇000000001SRSR=1:允許輸入垂
17、直卷動地址SR=0:允許輸入IRAM地址72us反白選擇00000001R1R0選擇4行中的任一行作反白顯示,并可決定反白與否72us睡眠模式0000001SLXXSL=1:脫離睡眠模式SL=0:進入睡眠模式72us擴充功能設(shè)定000011X1REG0RE=1: 擴充指令集動作RE=0: 基本指令集動作G=1 :繪圖顯示ONG=0 :繪圖顯示OFF72us設(shè)定IRAM地址或卷動地址0001AC5AC4AC3AC2AC1AC0SR=1:AC5AC0為垂直卷動地址SR=0:AC3AC0為ICON IRAM地址72us設(shè)定繪圖RAM地址001AC6AC5AC4AC3AC2AC1AC0設(shè)定CGRAM地
18、址到地址計數(shù)器(AC)72us表32.2.2 FPGA與LCD連接方式FPGA與LCD連接方式:(僅PK2型含此)。由實驗電路結(jié)構(gòu)圖COM可知,默認情況下,F(xiàn)PGA是通過89C51單片機控制LCD液晶顯示的,但若FPGA中有Nios嵌入式系統(tǒng),則能使FPGA直接控制LCD顯示。方法是拔去此單片機(在右下側(cè)),用連線將座JP22/JP21(LCD顯示器引腳信號)各信號分別與座JP19/JP20(FPGA引腳信號)相連接即可。圖11 實驗電路結(jié)構(gòu)圖COM第3章 系統(tǒng)硬件設(shè)計本方案采用的FPGA為Alter公司的ACEX1K30芯片,它可提供系統(tǒng)的時鐘及讀寫控制,ACEX系列的FPGA由邏輯數(shù)組塊L
19、AB(Logic array block)、嵌入式數(shù)組塊EAB(embedded arr ay block)、快速互聯(lián)以及IO單元構(gòu)成,每個邏輯數(shù)組塊包含8個邏輯單元LE(logic element)和一個局部互聯(lián)1。每個邏輯單元則由一個4輸入查找表(LUT)、一個可編程觸發(fā)器、快速進位鏈、級連鏈組成,多個LAB和多個EAB則可通過快速通道互相連接。EAB是ACEX系列器件在結(jié)構(gòu)設(shè)計上的一個重要部件,他是輸入埠和輸出埠都帶有觸發(fā)器的一種靈活的RAM塊,其主要功能是實現(xiàn)一些規(guī)模不太大的FIFO、ROM、RAM和雙埠RAM等。在本液晶顯示接口電路中,EAB主要用宏功能模塊實現(xiàn)片上ROM。它通過調(diào)用
20、FPGA上的EAB資源來實現(xiàn)漢字的顯示和字符的存儲,并根據(jù)控制信號產(chǎn)生的地址值從ROM中讀取字符值,然后送LCD顯示器進行顯示。由于所用的圖形點陣液晶塊內(nèi)置有SED1520控制器,所以,其電路特性實際上就是SED1520的電路特性。SED1520的主要特性如下: (1)具有液晶顯示行驅(qū)動器,具有16路行驅(qū)動輸出,并可級聯(lián)實現(xiàn)32行驅(qū)動。(2)具有液晶顯示列驅(qū)動器,共有61路列驅(qū)動輸出。(3)內(nèi)置時序發(fā)生器,其占空比可設(shè)置為1/16和1/32兩種。(4)內(nèi)藏顯示內(nèi)存,顯示內(nèi)存內(nèi)的數(shù)據(jù)可直接顯示,1為顯示,0為不顯示。(5)接口總線時序可適配8080系列或M6800系列,并可直接與計算機接口。(6
21、)操作簡單,有13條控制指令。(7)采用CMOS工藝,可在電壓低至2.4-7.0V時正常工作,功耗僅30W。本設(shè)計所用的字符液晶模塊CM12232由兩塊SED1520級來驅(qū)動,其中一個工作在主工作方式下,另一個工作在從方式下,主工作方式SED1520負責上半屏16行的驅(qū)動和左半屏的61列驅(qū)動,從工作方式的SED1520則負責下半屏16行的驅(qū)動和右半屏的61列驅(qū)動,使能信號E1、E2用來區(qū)分具體控制的是那一片SED1520,其系統(tǒng)的硬件連接圖如圖1所示。由圖1可見,該系統(tǒng)的硬件部分連接十分簡單,其中FPGA部分沒畫出,而液晶與FPGA的接口則可直接以網(wǎng)表的形式給出,將它們直接與FPGA的普通I/
22、O引腳相連即可。系統(tǒng)的軟件接口實現(xiàn)具體實現(xiàn)的重點是如何從存放有字符的ROM塊中讀出數(shù)據(jù),并按照液晶的時序正確的寫入,在介紹具體實現(xiàn)方法前,首先要熟悉SED1520的指令。SED1520的控制指令表:指令名稱控制信號控制代碼 A0 R/WD7 D6 D5 D4 D3 D2 D1 D0復位0 01 1 1 0 0 0 1 0顯示開關(guān)設(shè)置0 01 0 1 0 1 1 1 Di地址排序設(shè)置0 01 0 1 0 0 0 0 A體閑狀態(tài)設(shè)置0 01 0 1 0 0 1 0 S占空比設(shè)置0 01 0 1 0 1 0 0 Du顯示起始行設(shè)置0 01 1 0 L4 L3 L2 L1 L0頁面地址設(shè)置0 01 0
23、 1 1 1 0 P1 P0列地址設(shè)置0 00 C6 C5 C4 C3 C2 C1 C0啟動改寫方式0 01 1 1 0 0 0 0 0結(jié)束改寫方式0 01 1 1 0 1 1 1 0讀取狀態(tài)字0 1BUSY ADC ON/OFF RESET 0 0 0 0寫顯示數(shù)據(jù)1 0數(shù) 據(jù)讀顯示數(shù)據(jù)1 1數(shù) 據(jù)表4圖12 系統(tǒng)硬件連接圖第4章 設(shè)計過程4.1 初始化部分的狀態(tài)機設(shè)計執(zhí)行時間字符模塊初始化的流程圖72us72us72us72us4.6ms4.6ms72us游標和顯示控制顯示狀態(tài)開設(shè)定DDRAM地址功能設(shè)定地址歸位清除顯示點設(shè)定圖13 LCD初始化流程圖4.2 時鐘模塊的設(shè)計由于FPGA開發(fā)
24、板上自帶的晶振頻率為50MHZ,而所需要的時鐘頻率則需要小于13.9K。因此需要一個分頻器對其進行分頻。這里采用簡單的計數(shù)器對其進行分頻,通過分頻器將外部輸入的32 MHZ的信號分成頻率為153600HZ的信號。在分頻之后由于時鐘信號需要同時控制LCD模塊以及FPGA的模塊,因此需要編寫一個程序,使得兩者之間同步。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity baud is port(clk,resetb:in std_lo
25、gic; bclk:out std_logic);end baud;architecture behavioral of baud isbeginprocess(clk,resetb)variable cnt:integer;beginif resetb=1 thencnt:=0;bclk=208 then cnt:=0;bclk=1;else cnt:=cnt+1;bclk=0;end if;end if;end process;end behavioral;圖14 時鐘模塊圖15 時鐘模塊的仿真圖形4.3 中文字符部分的數(shù)據(jù)模塊中文部分由于VHDL中無法識別中文,使用時需要參照中文字符表,
26、將需要的字符所對應的數(shù)據(jù)輸入RAM,然后通過和英文模塊不重復的符號來實現(xiàn)對其的調(diào)用。如 “肖”這個中文字符,所對應國標碼”D0A4”,因此在函數(shù)部分應為:constant data_buf : data buffer := (xD0,xA4);本程序驅(qū)動液晶顯示“江西理工大學應用科學學院課程設(shè)計” “自動化”“091”“肖小龍”“2012.1.3”。library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity lcd isgeneric(d
27、ivide_to_100k :integer:=1000);port(clk, rst:in std_logic;rw, rs, e, lcd_rst :out std_logic;lcd_data:out std_logic_vector(7 downto 0); end lcd;architecture behavioral of lcd issignal clk_100k:std_logic;type state is(s0,s1,s2,s3,s4);signal current_s: state ;type data_buffer is array (0 to 65) of std_l
28、ogic_vector ( 7 downto 0 ) ;constant data_buf : data_buffer := (xBD,xAD,xCE,xF7, -江西xC0,xED,xB9,xA4, -理工xB4,xF3,xD1,xA7, -大學xD3,xA6,xD3,xC3, -應用xBF,xC6,xD1,xA7, -科學 xD1,xA7,xD4,xBA, -學院xBF,xCE,xB3,xCC, -課程xC9,xE8,xBC,xC6, -設(shè)計 xD7,xD4,xB6,xAF,xBB ,xAF , -自動化 xA3,xB0,xA3,xB9, xA3 ,xB1, -091xD0,xA4,xD0
29、, xA1,xC1, xFA, -肖小龍 xA3,xB2,xA3,xB0,xA3,xB1,xA3,xB2,xA3,xAE,xA3,xB1,xA3,xAE,xA3,xB3); -2012.1.3beginprocess(clk)variable cnt:integer range 0 to divide_to_100k;beginif rising_edge(clk)then cnt:=cnt+1;if cnt=divide_to_100k then cnt:=0;end if;if cntdivide_to_100k/2 then clk_100k= 0;else clk_100k = 1;e
30、nd if;end if;end process;process(clk_100k)variable cnt1:integer range 0 to 500;variable cnt1_1:integer range 0 to 100;variable code_cnt:integer range 0 to 13;variable data_cnt:integer range 0 to 48; beginif rising_edge(clk_100k)thenif rst = 1 then current_s = s0 ; cnt1 := 0 ;cnt1_1 := 0;code_cnt :=
31、0 ; data_cnt := 0 ; lcd_rst rw= 1;rs = 1;e = 1;cnt1:=cnt1+1;if cnt1 250 then lcd_rst = 0;elsif cnt1 500 then lcd_rst = 1;elsif cnt1=500 then lcd_rst = 1;cnt1 := 0;current_s cnt1_1:=cnt1_1+1; if cnt1_1 1*3 then e = 1;rs = 0;rw = 0;elsif cnt1_12*3 then lcd_data=x0c;elsif cnt1_110*3 then e=0;elsif cnt1
32、_1=10*3 then cnt1_1:=0;current_scnt1_1:=cnt1_1+1; if cnt1_11*3 then e=1;rs=0;rw=0;elsif cnt1_12*3 then lcd_data=x80;elsif cnt1_110*3 then e=0;elsif cnt1_1=10*3 then cnt1_1:=0;current_s if cnt1_11*3 then e=1;rs=1;rw=0;elsif cnt1_12*3 then lcd_data=data_buf(data_cnt);elsif cnt1_1=2*3 then data_cnt:= d
33、ata_cnt+1;elsif cnt1_1100 then e=0;end if;cnt1_1:=cnt1+1;if cnt1_1=100 then cnt1_1:=0;if data_cnt=16 then current_scurrent_s=s0;end case;end if;end if;end process;end Behavioral;圖16 文字顯示模塊圖17 文字顯示模塊仿真圖4.4 圖形的數(shù)據(jù)模塊library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity lcdlineh
34、ozi is port( clk,key3: in std_logic; ck0,disp,hsync,vsync:out std_logic; rgb:out std_logic_vector(0 to 23); end;architecture wx of lcdlinehozi issignal clk_temp1,clk_temp2,ck :std_logic ;signal cnt1,cnt2:std_logic_vector(2 downto 0);signal cnt:std_logic_vector(1 downto 0);signal hs_cnt,vs_cnt:intege
35、r range 0 to 525;signal rgbx,rgby: std_logic_vector(0 to 23);constant thp:integer :=41;constant thb:integer :=2;constant thf:integer :=2;constant tvp:integer :=10;constant tvb:integer :=2;constant tvf:integer :=2;constant thd:integer :=480;constant tvd:integer :=272;beginprocess(key3) begin if key3e
36、vent and key3=1 then if cnt=10 then cnt=00; else cnt=cnt+1; end if; end if; end process; process(cnt) begin if cnt=00 then rgb=111111111111111111111111; elsif cnt=01then rgb=rgbx; elsif cnt=10then rgb=rgby; else rgb=000000000000000000000000; end if;end process; process(hs_cnt,vs_cnt) begin if hs_cnt
37、102 then rgbx=000000000000000000000000; elsif hs_cnt162 then rgbx=000000000000000011111111; elsif hs_cnt222 then rgbx=111111110000000000000000; elsif hs_cnt282 then rgbx=000000001111111111111111; elsif hs_cnt342 then rgbx=000000001111111100000000; elsif hs_cnt402 then rgbx=111111110000000011111111;
38、elsif hs_cnt462 then rgbx=111111111111111100000000; elsif hs_cnt522 then rgbx=111111111111111111111111; else rgbx=101010101010101010101010; end if; if vs_cnt43 then rgby=000000000000000000000000; elsif vs_cnt75 then rgby=000000000000000011111111; elsif vs_cnt107 then rgby=111111110000000000000000; e
39、lsif vs_cnt139 then rgby=000000001111111111111111; elsif vs_cnt171 then rgby=000000001111111100000000; elsif vs_cnt203 then rgby=111111110000000011111111; elsif vs_cnt235 then rgby=111111111111111100000000; elsif vs_cnt267 then rgby=111111111111111111111111; else rgby=101010101010101010101010; end i
40、f; end process; clock:process(clk) begin if clkevent and clk=1then if cnt1=2 then cnt1=000; else cnt1=cnt1+1;end if; end if; end process; process (clk) begin if clkevent and clk=0 then if cnt2=2 then cnt2=000; else cnt2=cnt2+1;end if; end if; end process; process(clk) begin if clkevent and clk=1 then if cnt1=0 then clk_temp1=1; elsif cnt1=1 then clk_temp1=0; end if; end if; end process; process (clk) begin if clkevent and clk=0then if cnt2=0 then clk_temp2=1; el
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 商業(yè)投資計劃書(匯編15篇)
- 機械設(shè)計 第11章 蝸桿傳動學習課件
- 2025年甘肅省白銀市單招職業(yè)適應性測試題庫及答案1套
- 二零二五年度手電動車進出口代理與售后服務合同
- 2025年度車輛安全性能檢測與責任認定協(xié)議
- 二零二五年度家教保密協(xié)議及家長滿意度提升
- 互換性第4.1章 學習教材
- 二零二五年度實習生轉(zhuǎn)正聘用合同模板
- 第18課《 我的白鴿》教學設(shè)計 2024-2025學年統(tǒng)編版語文七年級上冊
- 南京市2025年度政府機關(guān)勞務派遣服務協(xié)議書
- 病毒性腦炎患者的護理查房ppt課件
- TPU材料項目可行性研究報告寫作參考范文
- 第二編 債權(quán)總論
- 試用期考核合格證明表
- 常見八種疾病
- 膠粘劑基礎(chǔ)知識及產(chǎn)品詳解(課堂PPT)
- 鐵路總公司近期處理的七起突出質(zhì)量問題的通報
- 常用洪水預報模型介紹
- 援外項目鋼結(jié)構(gòu)運輸包裝作業(yè)指導書(共13頁)
- 髖關(guān)節(jié)置換術(shù)男性患者留置尿管最佳時機探析和對策
- [爆笑小品校園劇本7人]爆笑小品校園劇本
評論
0/150
提交評論