LCD1602顯示控制器設(shè)計(jì)_第1頁(yè)
LCD1602顯示控制器設(shè)計(jì)_第2頁(yè)
LCD1602顯示控制器設(shè)計(jì)_第3頁(yè)
LCD1602顯示控制器設(shè)計(jì)_第4頁(yè)
LCD1602顯示控制器設(shè)計(jì)_第5頁(yè)
已閱讀5頁(yè),還剩11頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

1、-作者xxxx-日期xxxxLCD1602顯示控制器設(shè)計(jì)【精品文檔】 EDA技術(shù) 課 程 設(shè) 計(jì) 題 目 LCD1602顯示控制器設(shè)計(jì) 系 (部) 班 級(jí) 姓 名 學(xué) 號(hào) 指導(dǎo)教師 2014 年06 月 30 日至 07 月 06 日 共 1 周2014年07月02日課程設(shè)計(jì)成績(jī)?cè)u(píng)定表出勤情況出勤天數(shù) 缺勤天數(shù)成績(jī)?cè)u(píng)定出勤情況及設(shè)計(jì)過(guò)程表現(xiàn)(20分)課設(shè)答辯(20分)設(shè)計(jì)成果(60分)硬件調(diào)試設(shè)計(jì)說(shuō)明書總成績(jī)(100分)提問(wèn)(答辯)問(wèn)題情況綜合評(píng)定 指導(dǎo)教師簽名: 年 月 日目 錄目 錄31 引言42 VHDL/ QuartusII簡(jiǎn)介53 系統(tǒng)設(shè)計(jì)63.1 整體功能63.2 各模塊功能設(shè)計(jì)6

2、3.2.1 功能63.2.2 模塊引腳63.2.3 程序73.2.4 仿真圖124 系統(tǒng)調(diào)試及下載135 設(shè)計(jì)總結(jié)141 引言通過(guò)對(duì)LCD1602LCD12864顯示模塊控制時(shí)序和指令集的對(duì)比分析,利用Verilog HDL描述語(yǔ)言完成了多功能LCD顯示控制模塊的IP核設(shè)計(jì),所設(shè)計(jì)的LCD顯示控制器具有很好的可移植性,只需通過(guò)端口的使能參數(shù)配置便可以驅(qū)動(dòng)LCD1602LCD12864模塊實(shí)現(xiàn)字符或圖形的實(shí)時(shí)顯示,并且該多功能LCD控制器的可行性也在Cyclone系列的EP2C5T144C8 FPGA芯片上得到了很好的驗(yàn)證?;贔PGA設(shè)計(jì) LCD顯示控制器 ,關(guān)鍵在于采用硬件描述語(yǔ)言設(shè)計(jì)有限狀

3、態(tài)機(jī)(FSM)來(lái)控制LCD模塊的跳轉(zhuǎn),文獻(xiàn)中就是使用FSM實(shí)現(xiàn)了對(duì)LCD模塊的顯示控制,但是它們都是針對(duì)一種類型LCD模塊的某種顯示模式,不具有多模式的顯示控制能力。因此,多功能LCD顯示控制器的有限狀態(tài)機(jī)就需要設(shè)置更多的條件轉(zhuǎn)換,來(lái)實(shí)現(xiàn)多種控制模式。系統(tǒng)上電后,首先完成持續(xù)大約0.1 s(根據(jù)時(shí)鐘頻率配置)的自動(dòng)復(fù)位,然后才根據(jù)模塊的端口參數(shù)選擇不同顯示模式所對(duì)應(yīng)的初始化命令,在狀態(tài)機(jī)中設(shè)置有初始化命令、起始行地址和屏顯示數(shù)據(jù)3條轉(zhuǎn)換路徑來(lái)適應(yīng)LCD屏的工作狀態(tài),同時(shí)也在關(guān)鍵轉(zhuǎn)換路徑上設(shè)置有可以配置的延時(shí)循環(huán),這樣既能方便LCD模塊的工作調(diào)試,又能使LCD模塊一直工作在寫屏模式(RW=0)。

4、對(duì)于LCD屏的顯示數(shù)據(jù)存儲(chǔ)可以完全采用FPGA內(nèi)嵌的ROM/RAM單元實(shí)現(xiàn),如果使用雙口RAM(存儲(chǔ)器讀寫?yīng)毩?就能實(shí)現(xiàn)LCD模塊的動(dòng)態(tài)實(shí)時(shí)顯示。2 VHDL/ QuartusII簡(jiǎn)介VHDL 的英文全名是 Very-High-Speed Integrated Circuit Hardware Description Language,誕生于 1982 年。1987 年底,VHDL被 IEEE 和美國(guó)國(guó)防部確認(rèn)為標(biāo)準(zhǔn)硬件描述語(yǔ)言。VHDL主要用于描述數(shù)字系統(tǒng)的結(jié)構(gòu),行為,功能和接口。除了含有許多具有硬件特征的語(yǔ)句外,VHDL的語(yǔ)言形式和描述風(fēng)格與句法是十分類似于一般的計(jì)算機(jī)高級(jí)語(yǔ)言。VHDL的

5、程序結(jié)構(gòu)特點(diǎn)是將一項(xiàng)工程設(shè)計(jì),或稱設(shè)計(jì)實(shí)體(可以是一個(gè)元件,一個(gè)電路模塊或一個(gè)系統(tǒng))分成外部(或稱可視部分,及端口)和內(nèi)部(或稱不可視部分),既涉及實(shí)體的內(nèi)部功能和算法完成部分。在對(duì)一個(gè)設(shè)計(jì)實(shí)體定義了外部界面后,一旦其內(nèi)部開發(fā)完成后,其他的設(shè)計(jì)就可以直接調(diào)用這個(gè)實(shí)體。這種將設(shè)計(jì)實(shí)體分成內(nèi)外部分的概念是VHDL系統(tǒng)設(shè)計(jì)的基本點(diǎn)。Quartus II 是Altera公司的綜合性PLD/FPGA開發(fā)軟件,支持原理圖、VHDL、VerilogHDL以及AHDL(Altera Hardware Description Language)等多種設(shè)計(jì)輸入形式,內(nèi)嵌自有的綜合器以及仿真器,可以完成從設(shè)計(jì)輸入到

6、硬件配置的完整PLD設(shè)計(jì)流程。Quartus II可以在XP、Linux以及Unix上使用,除了可以使用Tcl腳本完成設(shè)計(jì)流程外,提供了完善的用戶圖形界面設(shè)計(jì)方式。具有運(yùn)行速度快,界面統(tǒng)一,功能集中,易學(xué)易用等特點(diǎn)。Quartus II支持Altera的IP核,包含了LPM/MegaFunction宏功能模塊庫(kù),使用戶可以充分利用成熟的模塊,簡(jiǎn)化了設(shè)計(jì)的復(fù)雜性、加快了設(shè)計(jì)速度。對(duì)第三方EDA工具的良好支持也使用戶可以在設(shè)計(jì)流程的各個(gè)階段使用熟悉的第三方EDA工具。此外,Quartus II 通過(guò)和DSP Builder工具與Matlab/Simulink相結(jié)合,可以方便地實(shí)現(xiàn)各種DSP應(yīng)用系統(tǒng)

7、;支持Altera的片上可編程系統(tǒng)(SOPC)開發(fā),集系統(tǒng)級(jí)設(shè)計(jì)、嵌入式軟件開發(fā)、可編程邏輯設(shè)計(jì)于一體,是一種綜合性的開發(fā)平臺(tái)。3 系統(tǒng)設(shè)計(jì)3.1 整體功能使用VHDL語(yǔ)言通過(guò)FPGA實(shí)現(xiàn)對(duì)LCD1602字符型液晶顯示器的控制。在LCD1602字符型液晶顯示器上面顯示個(gè)人信息,包括姓名和學(xué)號(hào)。在LCD1602字符型液晶顯示器上面顯示動(dòng)態(tài)字符,通過(guò)按鍵輸入相應(yīng)的數(shù)字和字符。3.2 各模塊功能設(shè)計(jì)3.2.1 功能1、分頻模塊 應(yīng)用時(shí)鐘分頻,滿足其工作需求。2、鍵盤模塊 輸入字母和數(shù)字用來(lái)實(shí)現(xiàn)動(dòng)態(tài)字符,進(jìn)行動(dòng)態(tài)顯示。3、消抖模塊 消除抖動(dòng),使顯示平穩(wěn)進(jìn)行。4、LCD模塊 實(shí)現(xiàn)靜態(tài)顯示,顯示個(gè)人信息。

8、3.2.2 模塊引腳1、分頻模塊引腳如圖所示2、鍵盤模塊引腳如圖所示3、消抖模塊引腳如圖所示4、LCD模塊引腳如圖所示3.2.3 程序1、分頻模塊程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;entity fenpin is Port ( clk : in std_logic; lcd_clk:out std_logic);end fenpin;architecture bhv of fenpin isbeginprocess(clk)-分頻進(jìn)程,CLK輸入,CLK_Out輸出,50MHz輸入,125Hz輸出,8ms constant m:integer

9、:=500000; variable cout:integer range 0 to 50000000:=0; begin if clkevent and clk=0 then cout:=cout+1; if coutm/2 then lcd_clk=1; elsif coutm then lcd_clk=0; else cout:=0; end if;end if;end process;end bhv;2、鍵盤模塊程序library ieee;use ieee.std_logic_1164.all;.all;entity jianpan isport(clk:in std_logic;

10、reset:in std_logic; col:in std_logic_vector(3 downto 0); row:out std_logic_vector(3 downto 0); key_code:out std_logic_vector(7 downto 0);end jianpan;architecture bhv of jianpan issignal cnt: std_logic_vector(1 downto 0);signal key: std_logic;beginkey = col(3) and col(2) and col(1) and col(0);p2:proc

11、ess(clk) begin if clkevent and clk=1 then if key = 1 then cnt = cnt + 1; end if; end if; end process;P3:process(col, cnt,reset) begin if reset=0 then row=1111; elsif cnt = 00 then row key_code key_code key_code key_code key_code = 11111111; end case; elsif cnt = 01 then row key_code key_code key_cod

12、e key_code key_code = 11111111; end case; elsif cnt = 10 then row key_code key_code key_code key_code key_code = 11111111; end case; elsif cnt = 11 then row key_code key_code key_code key_code key_code = 11111111; end case;end if;end process;end architecture;3、消抖模塊程序library ieee;use ieee.std_logic_1

13、164.all;use ieee.std_logic_arith.all;entity xiaodou isport(clk:in std_logic; reset:in std_logic; din:in std_logic_vector(7 downto 0); dout:out std_logic_vector(7 downto 0);end xiaodou;architecture bhv of xiaodou isbeginprocess(clk,reset,din)variable cnt:integer range 0 to 2;variable store:std_logic_

14、vector(7 downto 0);variable d1,d2,d3:std_logic:=1;begin if reset=0then doutstore:=din; cnt:=cnt+1; when 1= if din=store then cnt:=cnt+1; else store:=din; cnt:=0; end if; when 2= if din=store then dout data=00111000;-/*設(shè)置8位格式,2行,5*7*/ rs=0; state data=00001100; -/*整體顯示,關(guān)光標(biāo),不閃爍*/ rs=0; state data=0000

15、0001; rs=0; state data=00000110; -/*顯示移動(dòng)格式,看最后兩位,10表示光標(biāo)右移 rs=0; state data=10000000; rs=0; state rs=1;data=dout; end case; end if; end process;end bhv;3.2.4 仿真圖4 系統(tǒng)調(diào)試及下載程序編寫完,仿真成功后,引腳設(shè)置對(duì)應(yīng)好,在實(shí)驗(yàn)箱上連接好線,最后可以進(jìn)行下載了,然后就可以在實(shí)驗(yàn)箱上觀察實(shí)驗(yàn)結(jié)果了。5 設(shè)計(jì)總結(jié)這次EDA課程設(shè)計(jì)歷時(shí)一周,學(xué)到很多很多的東西,不僅可以鞏固以前所學(xué)過(guò)的知識(shí),而且學(xué)到了很多在書本上所沒(méi)有學(xué)到過(guò)的知識(shí)。通過(guò)這次設(shè)計(jì),

16、進(jìn)一步加深了對(duì)EDA的了解,讓我對(duì)它有了更加濃厚的興趣。特別是當(dāng)每一個(gè)子模塊編寫調(diào)試成功時(shí),心里特別的開心。但是在編寫頂層文件的程序時(shí),遇到了不少問(wèn)題,可以說(shuō)是錯(cuò)誤百出,系統(tǒng)不停報(bào)錯(cuò),特別是各元件之間的連接,以及信號(hào)的定義,總是有錯(cuò)誤,在細(xì)心的檢查和請(qǐng)教同學(xué)后,終于找出了錯(cuò)誤和警告,排除困難后,程序編譯就通過(guò)了,心里終于舒了一口氣。其次,在連接各個(gè)模塊的時(shí)候一定要注意各個(gè)輸入、輸出引腳的線寬,因?yàn)槊總€(gè)線寬是不一樣的,只要讓各個(gè)線寬互相匹配,才能得出正確的結(jié)果,否則,出現(xiàn)任何一點(diǎn)小的誤差就會(huì)導(dǎo)致整個(gè)文件系統(tǒng)的編譯出現(xiàn)錯(cuò)誤提示,在器件的選擇上也有一定的技巧,只有選擇了合適當(dāng)前電路所適合的器件,編譯

17、才能得到完滿成功。通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,只有把所學(xué)的理論知識(shí)與實(shí)踐相結(jié)合起來(lái),從理論中得出結(jié)論,才能真正學(xué)到東西,從而提高自己的實(shí)際動(dòng)手能力和獨(dú)立思考的能力。在設(shè)計(jì)的過(guò)程中遇到問(wèn)題,可以說(shuō)得是困難重重,這畢竟第一次做的,難免會(huì)遇到過(guò)各種各樣的問(wèn)題,同時(shí)在設(shè)計(jì)的過(guò)程中發(fā)現(xiàn)了自己的不足之處,對(duì)以前所學(xué)過(guò)的知識(shí)理解得不夠深刻,掌握得不夠牢固??偟膩?lái)說(shuō),這次設(shè)計(jì)的報(bào)時(shí)和時(shí)間調(diào)整還是比較成功的,在設(shè)計(jì)中遇到了很多問(wèn)題,最后在老師的辛勤的指導(dǎo)下,終于游逆而解,有點(diǎn)小小的成就感,終于覺得平時(shí)所學(xué)的知識(shí)有了實(shí)用的價(jià)值,達(dá)到了理論與實(shí)際相結(jié)合的目的。本次課程設(shè)計(jì)是我們倆人一起努力完成的,通過(guò)合作,我們的合作意識(shí)得到加強(qiáng)。合作能力得到提高。上大學(xué)后,很多同學(xué)都沒(méi)有過(guò)深入的交流,在設(shè)計(jì)的過(guò)程中,我們用了分工與合作的方式,每個(gè)人負(fù)責(zé)一定的部分,同時(shí)在一定的階段共同討論,以解決分工中個(gè)人不能解決的問(wèn)題,在交流中大家積極發(fā)言,和提出意見,同時(shí)我們還向別的同學(xué)請(qǐng)教。在此過(guò)程中,每個(gè)人都想自己的方案得到實(shí)現(xiàn),積極向同學(xué)說(shuō)明自己的想法。能過(guò)比較選出最好的方案。在這過(guò)程也提高了我們的表現(xiàn)能力。在學(xué)習(xí)的過(guò)程中,不是每一個(gè)問(wèn)題都能自己解決,向老師請(qǐng)教或向同學(xué)討論是一個(gè)很好的方法,不是有句話叫

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論