按鍵開關(guān)控制液晶顯示器進行十進制數(shù)字顯示_第1頁
按鍵開關(guān)控制液晶顯示器進行十進制數(shù)字顯示_第2頁
按鍵開關(guān)控制液晶顯示器進行十進制數(shù)字顯示_第3頁
按鍵開關(guān)控制液晶顯示器進行十進制數(shù)字顯示_第4頁
按鍵開關(guān)控制液晶顯示器進行十進制數(shù)字顯示_第5頁
已閱讀5頁,還剩5頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

1、目錄1、課程設(shè)計目的.2 2、課程設(shè)計內(nèi)容和要求.22.1、設(shè)計內(nèi)容.22.2、設(shè)計要求.23、 設(shè)計方案及實現(xiàn)情況.23.1、設(shè)計思路.23.2、工作原理及框圖23.3、各模塊功能描述.33.4、仿真結(jié)果.93.5、實驗箱驗證情況.94、課程設(shè)計總結(jié)105、參考文獻101 課程設(shè)計目的n 學習操作數(shù)字電路設(shè)計實驗開發(fā)系統(tǒng),掌握液晶顯示模塊的工作原理及應(yīng)用;n 掌握組合邏輯電路、時序邏輯電路的設(shè)計方法;n 學習掌握可編程器件設(shè)計的全過程。2 課程設(shè)計內(nèi)容和要求2.1、設(shè)計內(nèi)容n 學習掌握按鍵開關(guān)控制模塊、液晶顯示模塊的工作原理及應(yīng)用;n 熟練掌握VHDL編程語言,編寫按鍵開關(guān)控制模塊

2、的控制邏輯;n 仿真所編寫的程序,模擬驗證所編寫的模塊功能;n 下載程序到芯片中,硬件驗證所設(shè)置的功能,能夠?qū)崿F(xiàn)十進制數(shù)字的顯示;n 整理設(shè)計內(nèi)容,編寫設(shè)計說明書。2.2、設(shè)計要求n 本課程設(shè)計說明書;n VHDL源程序及內(nèi)部原理圖;n 該設(shè)計可以在實驗箱上正常工作并演示。3 設(shè)計方案及實現(xiàn)情況3.1、設(shè)計思路由于是按鍵控制十進制顯示,所以采用十個按鍵K0-K9表示09十個數(shù)字;設(shè)計三位數(shù)顯示,則可以顯示000-999范圍內(nèi)的任意整數(shù),而百位、十位、個位的選擇則由分別由按鍵K10、K11、K12控制。若按下K11,則顯示器光標跳到百位上,然后按下K1K10中的任意一按鍵,顯示器則在百位處顯示與

3、之對應(yīng)的數(shù)值;十位、個位數(shù)值的改變的過程與之相同。3.2、工作原理及框圖液晶顯示的工作原理1、 基本操作時序:讀狀態(tài):輸入:RS=L,RW=H,E=H 輸出:D0D7=狀態(tài)字寫指令:輸入:RS=L,RW=L,D0D7=指令碼,E=H 輸出:無讀數(shù)據(jù):輸入:RS=H,RW=H,E=H 輸出:D0D7=數(shù)據(jù)寫數(shù)據(jù):輸入:RS=H,RW=L,D0D7=數(shù)據(jù),E=H 輸出:無2、顯示位置及顯示字符的選擇 該液晶顯示器內(nèi)置了DDRAM、CGROM和CGRAM三種存儲器。其中DDRAM就是顯示數(shù)據(jù)RAM,用來寄存待顯示的字符代碼;CGROM是液晶模塊內(nèi)部的字符發(fā)生存儲器;CGRAM 是控制芯片留給用戶,用

4、以存儲用戶自己設(shè)計的字模編碼存儲器。DDRAM地址與顯示位置的對應(yīng)關(guān)系如表1  表1 DDRAM地址與顯示位置的對應(yīng)關(guān)系而設(shè)定DDRAM地址指令為 表2 DDRAM地址指令這里我們送地址的時候應(yīng)該是0x80+Address,、所以寫地址命令的時候要加上0x80的原因)。如果你要想在DDRAM的00H地址處顯示數(shù)據(jù),則必須將00H加上80H,即80H,若要在DDRAM的01H處顯示數(shù)據(jù),則必須將01H加上80H即81H。依次類推。數(shù)據(jù)寫入DDRAM或CGRAM指令如表3 表3 數(shù)據(jù)寫入指令其功能:<1> 將字符碼寫入DDRAM,以使液晶顯示屏顯示出相對應(yīng)的字符; 

5、  <2> 將使用者自己設(shè)計的圖形存入CGRAM。3.3、各模塊功能描述 圖1 系統(tǒng)電路圖1) 按鍵輸入譯碼模塊 圖2按鍵輸入譯碼模塊功能:Clk和Key_in為輸入端,Key_out為輸出端。Clk為時鐘輸入,Key_in為按鍵輸入,Key_out為譯碼輸出端。在每次時鐘的上升沿掃描K0-K9十個按鍵的狀態(tài),一旦有按鍵Ki的電平為低,則Key_out輸出二進制表示的i值。若無按鍵按下則Key_out保持之前的狀態(tài)不變。Key_out連接到液晶顯示器控制模塊的輸入端Data_in,來選擇要顯示的字符i。程序代碼:LIBRARY ieee;ENTITY KEY IS por

6、t( Clk:in std_logic;Key_in : in std_logic_vector(9 downto 0);Key_out : out std_logic_vector(3 downto 0);END KEY;ARCHITECTURE YIMA OF KEY ISSIGNAL cnt1: std_logic_vector(3 downto 0);BEGINKey_out<=cnt1;process(clk)beginif rising_edge( Clk ) thencase key_in iswhen "1111111110"=>cnt1<

7、="0000"when "1111111101"=>cnt1<="0001"when "1111111011"=>cnt1<="0010"when "1111110111"=>cnt1<="0011"when "1111101111"=>cnt1<="0100"when "1111011111"=>cnt1<="0101&quo

8、t;when "1110111111"=>cnt1<="0110"when "1101111111"=>cnt1<="0111"when "1011111111"=>cnt1<="1000"when "0111111111"=>cnt1<="1001"when others=>null;end case;end if;end process;END YIMA;2) 按鍵選位模塊 圖3

9、 按鍵輸入選位模塊功能:Clk為時鐘輸入端,Sel_in為選位按鍵輸入端,Sel_out為輸出端。選位按鍵共有三個,Sel_in2、 Sel_in1、 Sel_in0分別對應(yīng)液晶顯示位置02H、01H、00H,也就是百位、十位、個位。Sel_out接液晶顯示控制模塊的Sel輸入端。程序代碼:LIBRARY ieee;ENTITY SEL IS port(Clk:in std_logic;SEL_in : in std_logic_vector(2 downto 0);SEL_out : out std_logic_vector(1 downto 0);END SEL;ARCHITECTURE

10、SELAD OF SEL ISsignal addr :std_logic_vector(1 downto 0);BEGINSEL_out<=addr;process(clk)beginif rising_edge( Clk ) then case SEL_in iswhen "110"=>addr<="00"when "101"=>addr<="01"when "011"=>addr<="10"when others=>nul

11、l;end case;end if;end process;END SELAD;3) 液晶顯示控制模塊 圖4 液晶顯示控制模塊功能:Clk為時鐘輸入端,Reset為復位輸入端,Data_in接按鍵輸入譯碼模塊的Key_out端,Sel接按鍵選位模塊的Sel_out端,LCD_RS為寄存器選擇信號,LCD_RW為液晶讀寫信號,LCD_EN為液晶時鐘信號,LED申請信號, LCD_Data為液晶顯示數(shù)據(jù)和命令字輸出端。程序代碼:LIBRARY ieee;ENTITY LCD ISPORT( Clk : in std_logic; -狀態(tài)機時鐘信號,同時也是液晶時鐘信號,-其周期應(yīng)該滿足液晶數(shù)據(jù)的建

12、立時間 Reset : in std_logic; Data_in : in std_logic_vector(3 downto 0); Sel : in std_logic_vector(1 downto 0); LCD_RS : out std_logic; -寄存器選擇信號 LCD_RW : out std_logic; -液晶讀寫信號 LCD_EN : out std_logic; -液晶時鐘信號 LED : out std_logic; LCD_Data : out std_logic_vector(7 downto 0); END LCD;ARCHITECTURE Behavior

13、al OF LCD IStype state is (set_dlnf,set_cursor,set_dcb,set_ddram,write_LCD_Data); signal Current_State:state; signal Count : std_logic_vector(18 downto 0);signal Clk_Out : std_logic;signal LCD_Clk : std_logic;beginLCD_EN <= Clk_Out ; LED <= Clk_Out;LCD_RW <= '0' ;process( Reset, Clk

14、 )begin if Reset = '0' then Count <= (others => '0');elsif rising_edge( Clk ) thenCount <= Count + 1;if(Count = 0)thenClk_Out<= not Clk_Out;end if;end if;LCD_Clk<= Clk_Out;end process ;control:process(LCD_Clk,Reset,Current_State,Data_in,Sel) -液晶驅(qū)動控制器beginif Reset='

15、0'thenCurrent_State<=set_dlnf;LCD_RS<='0'elsif rising_edge(LCD_Clk)thenCurrent_State<= Current_State ;LCD_RS <= '0'case Current_State iswhen set_dlnf=> LCD_Data<="00110000"-30HCurrent_State<=set_cursor;when set_cursor=>LCD_Data<="00000110

16、"-06HCurrent_State<=set_dcb;when set_dcb=>LCD_Data<="00001111"-0fHCurrent_State<=set_ddram;when set_ddram=>LCD_RS<='0'LCD_Data<="10000000"+Sel;-80H or 81H or 82HCurrent_State<=write_LCD_Data;when write_LCD_Data=> LCD_RS<='1'LCD_D

17、ata<="00110000"+Data_in;Current_State<=set_ddram;when others => null;end case;end if;end process;END Behavioral; 3.4、仿真結(jié)果 圖5 系統(tǒng)仿真波形3.5、實驗箱驗證情況 圖6 兩位顯示03 圖7 三位顯示999 4、課程設(shè)計總結(jié) 在此次系統(tǒng)設(shè)計中,自己對可VHDL語言的應(yīng)用和相應(yīng)程序的編寫有了更深的掌握和加強,對狀態(tài)機的使用和設(shè)計思路有了更深的理解,同時應(yīng)用也更加熟練了。同時由于設(shè)計要求模塊設(shè)計,我對模塊設(shè)計系統(tǒng)的方法也有了更深次的掌握。在此次設(shè)計之前我還沒有接觸過液晶顯示器,通過本次系統(tǒng)設(shè)計我對液晶顯示器的工作原理、工作方式及其相應(yīng)的程序編寫有了一定的理解和掌握,也認識到液晶顯示器在日常生活中的應(yīng)用十分廣泛。在設(shè)計的過程中,我遇到了鍵盤消抖問題,自己也查找了一些相應(yīng)的消抖程序,但由于應(yīng)用的時鐘頻率很高,所以消抖效果不是很好,最終選擇了一按鍵對應(yīng)一數(shù)字的方案。在系統(tǒng)設(shè)計的過程中

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論