版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、東 北 石 油 大 學(xué)課 程 設(shè) 計課 程 eda技術(shù)課程設(shè)計 題 目 脈沖按鍵電話顯示器 院 系 電子科學(xué)學(xué)院 專業(yè)班級 學(xué)生姓名 學(xué)生學(xué)號 指導(dǎo)教師 2012年 3 月2日東北石油大學(xué)課程設(shè)計任務(wù)書課程 eda技術(shù)課程設(shè)計題目 脈沖按鍵電話顯示器專業(yè) 姓名 學(xué)號 主要內(nèi)容、基本要求、主要參考資料等主要內(nèi)容:設(shè)計一個準(zhǔn)確地反映按鍵數(shù)字具有8位顯示的電話按鍵顯示器,該電話顯示器要求具有重?fù)艿墓δ埽?dāng)按下重?fù)苕I時,能夠顯示最后一次輸入的電話號碼?;疽螅?、設(shè)計一個具有8位顯示的電話按鍵顯示器;2、能準(zhǔn)確地反映按鍵數(shù)字;3、顯示器顯示從低位向高位前移,逐位顯示按鍵數(shù)字,最低位為當(dāng)前輸入位;4、
2、設(shè)置一個“重?fù)堋辨I,按下此鍵,能顯示最后一次輸入的電話號碼;5、掛機2秒后或按熄滅按鍵,熄滅顯示器顯示。主要參考資料:1 潘松著.eda技術(shù)實用教程(第二版). 北京:科學(xué)出版社,2005.2 康華光主編.電子技術(shù)基礎(chǔ) 模擬部分. 北京:高教出版社,2006.3 閻石主編.數(shù)字電子技術(shù)基礎(chǔ). 北京:高教出版社,2003.完成期限 2012.3.2 指導(dǎo)教師 專業(yè)負(fù)責(zé)人 2012年 3月2日 一、總體設(shè)計思想1.基本原理本題目是用vhdl語言實現(xiàn)一個能準(zhǔn)確地反映按鍵數(shù)字、具有8位顯示 的電話按鍵顯示器。摘機時開始工作,顯示器顯示從低位向高位前移,逐位顯示按鍵數(shù)字,最低位為當(dāng)前輸入位;設(shè)置一個“重
3、撥”鍵,按下此鍵能顯示最后一次輸入的電話號碼;掛機2秒后或按熄滅鍵,熄滅顯示器顯示。脈沖按鍵電話顯示器由五個模塊組成:按鍵電路、譯碼器、移位寄存、鎖存器和數(shù)碼管顯示電路,其中移位寄存、鎖存器和數(shù)碼管譯碼顯示電路為系統(tǒng)的主要組成部分。(1)按鍵電路模塊。提供“0”到“9”數(shù)字按鍵的輸入,同時設(shè)置有撥號 鍵,清除鍵,掛機鍵和重?fù)苕I。(2)譯碼電路模塊。譯碼器有兩個功能。第一,把輸入的一位鍵值轉(zhuǎn)換成 四位 bcd 碼;第二,把四位二進制碼譯成相應(yīng)的數(shù)碼管輸出顯示碼。(3)移位寄存器、鎖存模塊。移位寄存器分為三個部分。當(dāng)按下?lián)芴栨I時, 數(shù)字按鍵值依次由數(shù)碼管的低位向高位移動,同時送入鎖存器中;當(dāng)按下刪
4、除 鍵時,鍵值由高位向低位移除,高位數(shù)碼管熄滅;當(dāng)按下重?fù)苕I時,鎖存器中 存儲的鍵值輸入到移位寄存器中,并通過數(shù)碼管顯示出來。(4)數(shù)碼管顯示模塊。數(shù)碼管顯示用于將設(shè)置好的每個按鍵的鍵值在數(shù)碼 管上顯示出來。由于實驗過程中需要使用8個數(shù)碼管,因此數(shù)碼管顯示模塊必須加上數(shù)碼管片選及移位得程序,從而實現(xiàn)數(shù)據(jù)輸入以后從低位向高位移動、顯示。2.設(shè)計框圖數(shù)字鍵入控制電路1譯碼顯示器移位寄存器脈沖產(chǎn)生電路控制電路2計時電路譯碼顯示電路圖1 整體設(shè)計框圖二、設(shè)計步驟和調(diào)試過程1、總體設(shè)計電路圖2總體設(shè)計電路2、模塊設(shè)計和相應(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è)計圖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è)計圖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ù)期所想,實現(xiàn)了
19、預(yù)期的電話號碼移位設(shè)計電路是通過按不同的按鍵來控制電話號碼的撥打情況,通過一個清零端可以控制(當(dāng)輸入錯誤號碼后,清除當(dāng)前號碼,再重新輸入一組新的號碼時)電話號碼的輸入,這樣可以自如的輸入和更改電話號碼。鎖存器記錄最后一次所撥號碼可以進行重?fù)懿僮?,顯示時間過長可以進行掛機操作。4、實驗調(diào)試結(jié)果為驗證所設(shè)計的程序是否正確,將程序下載進行硬件測試。在quartus開發(fā)環(huán)境中進行管腳鎖定,連接好數(shù)碼管驅(qū)動電路,然后將目標(biāo)文件下載到器件中。最終可以看到鍵入的數(shù)字在數(shù)碼管上進行顯示。重?fù)?、清楚、掛機等均能夠正常使用,達到設(shè)計要求。三、結(jié)論及心得體會課程設(shè)計是培養(yǎng)學(xué)生綜合運用所學(xué)知識,發(fā)現(xiàn),提出,分析和解決實際問題,鍛煉實踐能力的重要環(huán)節(jié),是對學(xué)生實際工作能力的具體訓(xùn)練和考察過程。通過這次的eda課設(shè),加深了對電子電路理論知識的理解,并鍛煉了實踐動手能力,具備了電子電路的基本設(shè)計能力和基本調(diào)試能力 ,能夠正確的使用實驗儀器。回顧起此次eda課程設(shè)計,至今我仍感慨頗多。的確,從選題到定稿,從理論到實踐,在整整一星期的日子里,可以說得是苦多于甜,但是可以學(xué)到很多很多的東西,同時不僅可以鞏固了以前所學(xué)過的知識,通過這次課程設(shè)計使我懂得了理論與實際相結(jié)合是很重要的,只有理論知識是遠遠不夠
溫馨提示
- 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)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五年葵花籽種植戶互助合作社合同3篇
- 2025年度旅游主題公園運營管理合同4篇
- 二零二五年度煤炭清潔利用技術(shù)研發(fā)與應(yīng)用合同4篇
- 二零二五年度航空航天零部件生產(chǎn)加工合作協(xié)議4篇
- 2025版旅游交通車輛租賃及保險合同4篇
- 二零二五年度高新技術(shù)企業(yè)稅收優(yōu)惠政策申請合同3篇
- 二零二五年度鋁單板市場調(diào)研采購合同3篇
- 2025年豬圈修建及糞污處理系統(tǒng)合同模板3篇
- 2025年無證房產(chǎn)轉(zhuǎn)讓合同范本專業(yè)版3篇
- 2024版規(guī)范二手車買賣協(xié)議服務(wù)版B版
- GB/T 15593-2020輸血(液)器具用聚氯乙烯塑料
- 2023年上海英語高考卷及答案完整版
- 西北農(nóng)林科技大學(xué)高等數(shù)學(xué)期末考試試卷(含答案)
- 金紅葉紙業(yè)簡介-2 -紙品及產(chǎn)品知識
- 《連鎖經(jīng)營管理》課程教學(xué)大綱
- 《畢淑敏文集》電子書
- 頸椎JOA評分 表格
- 員工崗位能力評價標(biāo)準(zhǔn)
- 定量分析方法-課件
- 朱曦編著設(shè)計形態(tài)知識點
- 110kV變電站工程預(yù)算1
評論
0/150
提交評論