


下載本文檔
版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、EDA技術 課程設計題目LCD1602顯示控制器設計系(部)班級姓名學號指導教師2014年06月30日至07月06 日 共1周2014年07月02日課程設計成績評定表出勤情況出勤天數缺勤天數成績 評 疋出勤情況與設計過程表現20分課設辯論20分設計成果60分硬件調試設計說明書總成績100分提問辯論問題情況綜合 評 疋指導教師簽名:年月日目錄31引言32 VHDL/ Quartusll 簡介 43系統設計53.1整體功能53.2各模塊功能設計5功能5模塊引腳5程序6仿真圖114系統調試與下載錯誤!未定義書簽。5設計總結131引言通過對LCD160夕LCD12864顯示模塊控制時序和指令集的比照分
2、析,利用 Verilog HDL描述語言完成了多功能LCD顯示控制模塊的IP核設計,所設計的 LCD顯示控制器具有很好的可移植性, 只需通過端口的使能參數配置便可以驅動 LCD1602/ LCD12864模塊實現字符或圖形的實時顯示,并且該多功能LCD控制器的可行性也在 Cyclone U系列的EP2C5T144C8 FPG芯片上得到了很好的驗證。 基于FPGA設計LCD顯示控制器,關鍵在于采用硬件描述語言設計有限狀態機 (FSM)來控制LCD模塊的跳轉,文獻中就是使用 FSM實現了對LCD模塊的顯示控 制,但是它們都是針對一種類型LCD模塊的某種顯示模式,不具有多模式的顯示 控制能力。因此,
3、多功能LCD顯示控制器的有限狀態機就需要設置更多的條件轉 換,來實現多種控制模式。系統上電后,首先完成持續大約0.1 s(根據時鐘頻率配置)的自動復位,然后才根據模塊的端口參數選擇不同顯示模式所對應的初 始化命令,在狀態機中設置有初始化命令、起始行地址和屏顯示數據3條轉換路 徑來適應LCD屏的工作狀態,同時也在關鍵轉換路徑上設置有可以配置的延時循 環,這樣既能方便LCD模塊的工作調試,又能使 LCD模塊一直工作在寫屏模式 (RW=0對于LCD屏的顯示數據存儲可以完全采用 FPGA內嵌的ROM/RA單元實 現,如果使用雙口 RAM存儲器讀寫獨立)就能實現LCD模塊的動態實時顯示。2 VHDL/
4、Quartusll 簡介VHDL 的英文全名是 Very-High-Speed In tegratedCircuit HardwareDescription Language,誕生于 1982 年。1987 年底,VHDL被 IEEE 和美國國 防部確認為標準硬件描述語言。VHDL主要用于描述數字系統的結構,行為,功 能和接口。除了含有許多具有硬件特征的語句外,VHDL的語言形式和描述風格與句法是十分類似于一般的計算機高級語言。VHDL的程序結構特點是將一項工程設計,或稱設計實體可以是一個元件,一個電路模塊或一個系統分成外部或稱可視局部,與端口和內部或稱不可視局部,既涉與實體的內部功能 和算法
5、完成局部。在對一個設計實體定義了外部界面后,一旦其內部開發完成后, 其他的設計就可以直接調用這個實體。這種將設計實體分成內外局部的概念是 VHDLS統設計的根本點。Quartus II 是Altera公司的綜合性PLD/FPG/開發軟 件,支持原理圖、VHDL VerilogHDL 以與 AHDLAltera Hardware Description Language等多種設計輸入形式,內嵌自有的綜合器以與仿真器,可以完成從設 計輸入到硬件配置的完整 PLD設計流程。Quartus II可以在XP、Linux以與Unix 上使用,除了可以使用Tel腳本完成設計流程外,提供了完善的用戶圖形界面設
6、 計方式。具有運行速度快,界面統一,功能集中,易學易用等特點。Quartus II支持Altera的IP核,包含了 LPM/MegaFunction宏功能模塊庫,使用戶可以充 分利用成熟的模塊,簡化了設計的復雜性、加快了設計速度。對第三方EDA工具的良好支持也使用戶可以在設計流程的各個階段使用熟悉的第三方EDA工具。此外,Quartus II 通過和DSP Builder工具與 Matlab/Simulink 相結合,可以方 便地實現各種DSP應用系統;支持Altera的片上可編程系統SOPC開發,集 系統級設計、嵌入式軟件開發、可編程邏輯設計于一體,是一種綜合性的開發平 臺。3系統設計3.1
7、整體功能使用VHDL語言通過FPGA實現對LCD1602?符型液晶顯示器的控制。在LCD1602?符型液晶顯示器上面顯示個人信息,包括某某和學號。在LCD1602?符型液晶顯示器上面顯示動態字符,通過按鍵輸入相應的數字 和字符。3.2各模塊功能設計功能1、分頻模塊 應用時鐘分頻,滿足其工作需求。2、鍵盤模塊輸入字母和數字用來實現動態字符,進展動態顯示。3、消抖模塊 消除抖動,使顯示平穩進展。4、LCD模塊實現靜態顯示,顯示個人信息。模塊引腳2、鍵盤模塊引腳如下列圖 J!nil aaniBHM j restr kty_wxte7,.D' »l3- .0:j instT3、消抖模
8、塊引腳如下列圖.j XMDdOJ T ck二:“:"二- :!r«*4i卜i-iL .Ei J1>4;! irjt2 -L . J4、LCD模塊引腳如下列圖程序1、分頻模塊程序library IEEE;use IEEE.STD_LOGIC_1164.ALL;en tity fenpin isPort ( elk : in std_logic;lcd_clk:out std_logic);end fenpin;architecture bhv of fen pi n isbeg inprocess(clk)- 分頻進程,CLK輸入,CLK_Out輸出,50MHZ輸入,1
9、25Hz輸出,8mscon sta nt m:i nteger:=500000;variable cout:integer range 0 to 50000000:=0;beg inif clk'eve nt and clk='0' the n cout:=cout+1;if cout<m/2 then lcd_clk<='1'elsif cout<m the n lcd_clk<='0'else cout:=0;end if;end if;end process;end bhv;2、鍵盤模塊程序library i
10、eee;use ieee.stdo gic_1164.all;use ieee.std_logic_ un sig ned.all;en tity jia npan isport(clk:in std_logic;reset:in std_logic;col:i n std_logic_vector(3 dow nto 0); row:out std_logic_vector(3 dow nto 0); key_code:out stdogic_vector(7 downto 0);end jia npan;architecture bhv of jia npan issignal t: st
11、dogic_vector(1 downto 0);sig nal key: std_logic;beg inkey <= col(3) and col(2) and col(1) and col(0); p2:process(clk)beg inif clk'event and clk='1' thenif key = '1' thent <= t + 1;end if;end if;end process;P3:process(col, t,reset)beg inif reset='0' the nrow<=&quo
12、t;1111"elsif t <= "00" thenrow <= "1110"case col iswhe n "1110"=>whe n "1101"=>whe n "1011"=>when "0111"=>whe n others => end case;elsif t <= "01" thenrow <= "1101"case col iswhe n "1
13、110"=>whe n "1101"=>whe n "1011"=>when "0111"=>whe n others => end case;elsif t <= "10" the nrow <= "1011"case col iswhe n "1110"=>whe n "1101"=>whe n "1011"=>when "0111"=>
14、whe n others => end case;elsif t <= "11" thenrow <= "0111"case col iswhe n "1110"=>whe n "1101"=>whe n "1011"=>key_code <= "11101110"key_code <= "11011110"key_code <= "10111110"key_code <= &
15、quot;01111110"key_code <= "11111111"key_code <= "11101101"key_code <= "11011101"key_code <= "10111101"key_code <= "01111101"key_code <= "11111111"key_code <= "11101011"key_code <= "11011011"k
16、ey_code <= "10111011"key_code <= "01111011"key_code <= "11111111"key_code <= "11100111"key_code <= "11010111"key_code <= "10110111"when "0111" => key_code <= "01110111"whe n others => key_code
17、<= "11111111" end case;end if;end process;end architecture;3、消抖模塊程序library ieee;use ieee.std_logic_1164.all;use ieee.stdo gic_arith.all;en tity xiaodou is port(clk:in std_logic;reset: in std_logicdin:in stdogic_vector(7 downto 0);dout:out std_logic_vector(7 downto 0); end xiaodou;archit
18、ecture bhv of xiaodou isbeg inprocess(clk,reset,d in)variable t:i nteger range 0 to 2;variable store:std_logic_vector(7 dow nto 0);variable d1,d2,d3:std_logic:='1'beg inif reset='0'the ndout<="11111111"elsif clk'event and clk='1'thencase t iswhe n 0=>store
19、:=d in; t:=t+1;whe n 1=>if din=store the nt:=t+1;elsestore:=d in;t:=0;end if;whe n 2=>if din=store the ndout<=store;d1:=store(7) and store(6) and store(5) and store(4);d2:=store(3) and store(2) and store(1) and store(0);d3:=d1 or d2;if d3='0' the nend if;elsestore:=d in;t:=0;end if;
20、end case;end if;end process;end bhv;4、LCD模塊程序library ieee;use ieee.stdo gic_1164.all;use ieee.std_logic_ un sig ned.all;en tity lcd isport( lcd_clk : in std_logic;dout:in std_logic_vector(7 downto 0);rs: out std_logic;-存放器選擇信號rw : out stdo gic;-液晶讀寫信號en: out std_logic;-液晶時鐘信號data: out std_logic_vect
21、or(7 dow nto 0);-液晶數據信號end lcd;isarchitecture bhv of lcd istapestates(set_fu nctio n,set_cursor,set_display,clear_display,set_ddram1,write_d ata1);sig nal state:states;beg inprocess(lcd_clk,state)-狀態機控制顯示beg inif lcd_clk'eve nt and lcd_clk='1' the ncase state iswhe n set_fu nctio n=>
22、data<="00111000"-/*rs<='0'state<=set_display;whe n set_display=> data<="00001100" -/* rs<='0'state<=clear_display;whe n clear_display=> data<="00000001" rs<='0'state<=set_cursor;whe n set_cursor=> data<=&quo
23、t;00000110" -/*位,10表示光標右移rs<='0'state<=set_ddram1;when set_ddram1=> data<="10000000"rs<='0'state<=write_data1;whe n write_data1=> rs<='1'data<=dout;end case;end if;end process;end bhv;324仿真圖設置8位格式,2行,5*7*/整體顯示,關光標,不閃爍*/顯示移動格式,看最后兩ElkS
24、 iin+j loiatI .ss«dreset3L-T :oX 1"L_m_i13Q3C147X196SXIXI31_(136Xia5X23W71X L X )妙哲四* j廠25511ii1丨1ii1iiiiiiiiAlA復!A i0 dataled.clkIEIJ7QCA :AhAMiMrLrLn_mTrLrLnrLnrLRnLanrLnIIJ=LhAIlliniL國colA 【門 X匚i YC E X M X 【叮 K X M x 8 X 【幻 XI3 CoJek L»匚眥l話r熾匸LS5Gr*-bS#tX 13 r dtk 1-R51.<mirUS4
25、系統調試與下載程序編寫完,仿真成功后,引腳設置對應好,在實驗箱上連接好線,最后可 以進展下載了,然后就可以在實驗箱上觀察實驗結果了。5設計總結這次EDA課程設計歷時一周,學到很多很多的東西,不僅可以鞏固以前所學 過的知識,而且學到了很多在書本上所沒有學到過的知識。通過這次設計,進一步加深了對EDA勺了解,讓我對它有了更加濃厚的興趣。 特別是當每一個子模塊 編寫調試成功時,心里特別的開心。但是在編寫頂層文件的程序時,遇到了不少 問題,可以說是錯誤百出,系統不停報錯,特別是各元件之間的連接,以與信號 的定義,總是有錯誤,在細心的檢查和請教同學后,終于找出了錯誤和警告,排 除困難后,程序編譯就通過了,心里終于舒了一口氣。其次,在連接各個模塊的 時候一定要注意各個輸入、輸出引腳的線寬,因為每個線寬是不一樣的,只要讓各個線寬互相匹配,才能得出正確的結果,否如此,出現任何一點小的誤差就會 導致整個文件系統的編譯出現錯誤提示, 在器件的選擇上也有一定的技巧,只有 選擇了適宜當前電路所適合的器件,編譯才能得到完滿成功。通過這次課程設計 使我
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 企業內部審計財務代理合同標準文本
- 零售業采購計劃編制及目標優化合同
- 住宅小區車位租賃合同標準范本
- 財產分割及子女撫養權糾紛調解協議書
- 房地產項目前期開發手續一站式代辦與專業咨詢協議
- 消費者金融代收款代理合同
- 不可壓縮流體的一元流動課件
- 車輛駕駛與智能駕駛系統承包合同范本
- 文化創意產業廠房轉租合同書
- 餐飲企業股東權益保障與合伙經營合同
- 警察政治培訓課件
- 2025-2030中國疏浚工程行業發展態勢與前景規劃分析報告
- 科室vte管理制度
- 2025年中國舒適眼鏡白皮書-艾瑞咨詢-202506
- 中小學美術教學評價構建及實施策略
- 2025-2030玉石行業風險投資發展分析及運作模式與投融資研究報告
- 江蘇省揚州市2024-2025學年四年級下學期6月數學期末試題一(有答案)
- (2025)發展對象培訓考試題和答案
- 2024年西南醫科大學招聘專職輔導員真題
- 2025年經濟學基礎理論考試試卷及答案
- 建筑施工項目支付流程及管理
評論
0/150
提交評論