EDA技術(shù)課程設(shè)計(jì)基于EDA的課程設(shè)計(jì)脈沖按鍵電話(huà)顯示器_第1頁(yè)
EDA技術(shù)課程設(shè)計(jì)基于EDA的課程設(shè)計(jì)脈沖按鍵電話(huà)顯示器_第2頁(yè)
EDA技術(shù)課程設(shè)計(jì)基于EDA的課程設(shè)計(jì)脈沖按鍵電話(huà)顯示器_第3頁(yè)
EDA技術(shù)課程設(shè)計(jì)基于EDA的課程設(shè)計(jì)脈沖按鍵電話(huà)顯示器_第4頁(yè)
EDA技術(shù)課程設(shè)計(jì)基于EDA的課程設(shè)計(jì)脈沖按鍵電話(huà)顯示器_第5頁(yè)
已閱讀5頁(yè),還剩12頁(yè)未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡(jiǎn)介

1、東 北 石 油 大 學(xué)課 程 設(shè) 計(jì)課 程 eda技術(shù)課程設(shè)計(jì) 題 目 脈沖按鍵電話(huà)顯示器 院 系 電子科學(xué)學(xué)院 專(zhuān)業(yè)班級(jí) 學(xué)生姓名 學(xué)生學(xué)號(hào) 指導(dǎo)教師 2012年 3 月2日東北石油大學(xué)課程設(shè)計(jì)任務(wù)書(shū)課程 eda技術(shù)課程設(shè)計(jì)題目 脈沖按鍵電話(huà)顯示器專(zhuān)業(yè) 姓名 學(xué)號(hào) 主要內(nèi)容、基本要求、主要參考資料等主要內(nèi)容:設(shè)計(jì)一個(gè)準(zhǔn)確地反映按鍵數(shù)字具有8位顯示的電話(huà)按鍵顯示器,該電話(huà)顯示器要求具有重?fù)艿墓δ?,?dāng)按下重?fù)苕I時(shí),能夠顯示最后一次輸入的電話(huà)號(hào)碼?;疽螅?、設(shè)計(jì)一個(gè)具有8位顯示的電話(huà)按鍵顯示器;2、能準(zhǔn)確地反映按鍵數(shù)字;3、顯示器顯示從低位向高位前移,逐位顯示按鍵數(shù)字,最低位為當(dāng)前輸入位;4、

2、設(shè)置一個(gè)“重?fù)堋辨I,按下此鍵,能顯示最后一次輸入的電話(huà)號(hào)碼;5、掛機(jī)2秒后或按熄滅按鍵,熄滅顯示器顯示。主要參考資料:1 潘松著.eda技術(shù)實(shí)用教程(第二版). 北京:科學(xué)出版社,2005.2 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.3 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.完成期限 2012.3.2 指導(dǎo)教師 專(zhuān)業(yè)負(fù)責(zé)人 2012年 3月2日 一、總體設(shè)計(jì)思想1.基本原理本題目是用vhdl語(yǔ)言實(shí)現(xiàn)一個(gè)能準(zhǔn)確地反映按鍵數(shù)字、具有8位顯示 的電話(huà)按鍵顯示器。摘機(jī)時(shí)開(kāi)始工作,顯示器顯示從低位向高位前移,逐位顯示按鍵數(shù)字,最低位為當(dāng)前輸入位;設(shè)置一個(gè)“重

3、撥”鍵,按下此鍵能顯示最后一次輸入的電話(huà)號(hào)碼;掛機(jī)2秒后或按熄滅鍵,熄滅顯示器顯示。脈沖按鍵電話(huà)顯示器由五個(gè)模塊組成:按鍵電路、譯碼器、移位寄存、鎖存器和數(shù)碼管顯示電路,其中移位寄存、鎖存器和數(shù)碼管譯碼顯示電路為系統(tǒng)的主要組成部分。(1)按鍵電路模塊。提供“0”到“9”數(shù)字按鍵的輸入,同時(shí)設(shè)置有撥號(hào) 鍵,清除鍵,掛機(jī)鍵和重?fù)苕I。(2)譯碼電路模塊。譯碼器有兩個(gè)功能。第一,把輸入的一位鍵值轉(zhuǎn)換成 四位 bcd 碼;第二,把四位二進(jìn)制碼譯成相應(yīng)的數(shù)碼管輸出顯示碼。(3)移位寄存器、鎖存模塊。移位寄存器分為三個(gè)部分。當(dāng)按下?lián)芴?hào)鍵時(shí), 數(shù)字按鍵值依次由數(shù)碼管的低位向高位移動(dòng),同時(shí)送入鎖存器中;當(dāng)按下刪

4、除 鍵時(shí),鍵值由高位向低位移除,高位數(shù)碼管熄滅;當(dāng)按下重?fù)苕I時(shí),鎖存器中 存儲(chǔ)的鍵值輸入到移位寄存器中,并通過(guò)數(shù)碼管顯示出來(lái)。(4)數(shù)碼管顯示模塊。數(shù)碼管顯示用于將設(shè)置好的每個(gè)按鍵的鍵值在數(shù)碼 管上顯示出來(lái)。由于實(shí)驗(yàn)過(guò)程中需要使用8個(gè)數(shù)碼管,因此數(shù)碼管顯示模塊必須加上數(shù)碼管片選及移位得程序,從而實(shí)現(xiàn)數(shù)據(jù)輸入以后從低位向高位移動(dòng)、顯示。2.設(shè)計(jì)框圖數(shù)字鍵入控制電路1譯碼顯示器移位寄存器脈沖產(chǎn)生電路控制電路2計(jì)時(shí)電路譯碼顯示電路圖1 整體設(shè)計(jì)框圖二、設(shè)計(jì)步驟和調(diào)試過(guò)程1、總體設(shè)計(jì)電路圖2總體設(shè)計(jì)電路2、模塊設(shè)計(jì)和相應(yīng)模塊程序(1) 頂層文件程序library ieee; use ieee.std_

5、logic_1164.all; use ieee.std_logic_unsigned.all; entity upkey isport(din1:in std_logic_vector(9downto 0); clk1,clear,dial,re_dial:in std_logic;keyout:out std_logic; seg71:out std_logic_vector(6 downto 0); seg8:out std_logic_vector(7 downto 0); end entity; architecture one of upkey is component show

6、is port(din:in std_logic_vector(9 downto 0);clk,clear,dial,re_dial:in std_logic; keyout:out std_logic; set:out std_logic_vector(3 downto 0); seg8:out std_logic_vector(7 downto 0);end component;component tra isport(bcd1:in std_logic_vector(3 downto 0);seg7:out std_logic_vector(6 downto 0); end compon

7、ent; signal set_1:std_logic_vector(3 downto 0);begin u1:show port map( din1,clk1,clear,dial,re_dial,keyout,set_1,seg8); u2:tra port map(set_1,seg71); end architecture one; (2)譯碼器譯碼部分的設(shè)計(jì)圖3 bcd譯碼電路圖bcd譯碼子程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;entity tra is port( bc

8、d1:in std_logic_vector(3 downto 0); seg7:out std_logic_vector(6 downto 0); end entity; architecture one of tra is begin process(bcd1)is begin case bcd1 is when 0000=seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7seg7=0000000; end case;end process; end architecture;(3)鍵值顯示部分設(shè)計(jì)圖4按鍵顯示控制電路圖按鍵顯示控制子程序:library ie

9、ee; use ieee.std_logic_1164.all; use ieee.std_logic_unsigned.all; entity show is port(din:in std_logic_vector(9 downto 0);clk,clear,dial,re_dial:in std_logic; keyout:out std_logic; set:out std_logic_vector(3 downto 0); seg8:out std_logic_vector(7 downto 0); end entity; architecture one of show is su

10、btype ten is std_logic_vector(3 downto 0); signal bcd :ten; type number1 is array(7 downto 0) of std_logic_vector(3 downto 0); signal number : number1; signal key,key1,clk1,dial1,re_dial1:std_logic; signal count:std_logic_vector(3 downto 0); signal count1:std_logic_vector(3 downto 0); signal count2:

11、std_logic_vector(2 downto 0); signal din1: std_logic_vector(9 downto 0); signal lock: std_logic_vector(31 downto 0); beginprocess(clk)is begin if rising_edge(clk) then count1=count1+1;end if; end process; clk1=0 when count11100 else 1; process(clk1)is begin if rising_edge(clk1) then din1(9 downto 0)

12、=din(9 downto 0); dial1=dial; re_dial1=re_dial; end if; end process; key=(din1(0) or din1(1) or din1(2) or din1(3) or din1(4) or din1(5) or din(6) or din1(7) or din1(8) or din1(9); process(clk1)is begin if falling_edge(clk1) then if count2=100 then if clear=0and re_dial=0 then key1=key; elsif clear

13、=1 and re_dial=0 then key1=clk; else key1=re_dial1;end if; count2=000; else count2=count2+1; end if; end if;end process;process(din1)is begin if din1(6)=1 then bcd=0110; elsif din1(1)=1 then bcd=0001; elsif din1(2)=1 then bcd=0010;elsif din1(3)=1 then bcd=0011; elsif din1(4)=1 then bcd=0100; elsif d

14、in1(5)=1 then bcd=0101; elsif din1(0)=1 then bcd=0000; elsif din1(7)=1 then bcd=0111; elsif din1(8)=1 then bcd=1000; elsif din1(9)=1 then bcd=1001; else bcd=0000; end if;end process;keyout=key1; process(key1)is begin if rising_edge(key1) then if clear=0 and re_dial1=0 then number(7)=number(6); numbe

15、r(6)=number(5); number(5)=number(4); number(4)=number(3); number(3)=number(2); number(2)=number(1); number(1)=number(0); number(0)=bcd; elsif clear=1 and re_dial1=0 then number(0)=number(1); number(1)=number(2);number(2)=number(3); number(3)=number(4);number(4)=number(5); number(5)=number(6); number

16、(6)= number(7); number(7)=1111; else number(7)= lock(31 downto 28); number(6)= lock(27 downto 24); number(5)= lock(23 downto 20); number(4)= lock(19 downto 16); number(3)= lock(15 downto 12); number(2)= lock(11 downto 8); number(1)= lock(7 downto 4); number(0)= lock(3 downto 0); end if; end if; end

17、process; process(clk)is begin if rising_edge(clk) then countset=number(7);seg8set=number(6);seg8set=number(5);seg8set=number(4);seg8set=number(3);seg8set=number(2);seg8set=number(1);seg8set=number(4);seg8null; end case; end process; process(dial1)is begin if rising_edge(dial1) then lock(31 downto 28

18、)=number(7); lock(27 downto 24)=number(6);lock(23 downto 20)=number(5); lock(19 downto 16)=number(4); lock(15 downto 12)=number(3); lock(11 downto 8)=number(2); lock(7 downto 4)=number(1); lock(3 downto 0)=number(0); end if; end process;end architecture;3、仿真及仿真結(jié)果分析輸入8位數(shù)字以后顯示結(jié)果如圖所示:圖5仿真圖仿真結(jié)果如預(yù)期所想,實(shí)現(xiàn)了

19、預(yù)期的電話(huà)號(hào)碼移位設(shè)計(jì)電路是通過(guò)按不同的按鍵來(lái)控制電話(huà)號(hào)碼的撥打情況,通過(guò)一個(gè)清零端可以控制(當(dāng)輸入錯(cuò)誤號(hào)碼后,清除當(dāng)前號(hào)碼,再重新輸入一組新的號(hào)碼時(shí))電話(huà)號(hào)碼的輸入,這樣可以自如的輸入和更改電話(huà)號(hào)碼。鎖存器記錄最后一次所撥號(hào)碼可以進(jìn)行重?fù)懿僮?,顯示時(shí)間過(guò)長(zhǎng)可以進(jìn)行掛機(jī)操作。4、實(shí)驗(yàn)調(diào)試結(jié)果為驗(yàn)證所設(shè)計(jì)的程序是否正確,將程序下載進(jìn)行硬件測(cè)試。在quartus開(kāi)發(fā)環(huán)境中進(jìn)行管腳鎖定,連接好數(shù)碼管驅(qū)動(dòng)電路,然后將目標(biāo)文件下載到器件中。最終可以看到鍵入的數(shù)字在數(shù)碼管上進(jìn)行顯示。重?fù)?、清楚、掛機(jī)等均能夠正常使用,達(dá)到設(shè)計(jì)要求。三、結(jié)論及心得體會(huì)課程設(shè)計(jì)是培養(yǎng)學(xué)生綜合運(yùn)用所學(xué)知識(shí),發(fā)現(xiàn),提出,分析和解決實(shí)際問(wèn)題,鍛煉實(shí)踐能力的重要環(huán)節(jié),是對(duì)學(xué)生實(shí)際工作能力的具體訓(xùn)練和考察過(guò)程。通過(guò)這次的eda課設(shè),加深了對(duì)電子電路理論知識(shí)的理解,并鍛煉了實(shí)踐動(dòng)手能力,具備了電子電路的基本設(shè)計(jì)能力和基本調(diào)試能力 ,能夠正確的使用實(shí)驗(yàn)儀器。回顧起此次eda課程設(shè)計(jì),至今我仍感慨頗多。的確,從選題到定稿,從理論到實(shí)踐,在整整一星期的日子里,可以說(shuō)得是苦多于甜,但是可以學(xué)到很多很多的東西,同時(shí)不僅可以鞏固了以前所學(xué)過(guò)的知識(shí),通過(guò)這次課程設(shè)計(jì)使我懂得了理論與實(shí)際相結(jié)合是很重要的,只有理論知識(shí)是遠(yuǎn)遠(yuǎn)不夠的,

溫馨提示

  • 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
  • 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ì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論