版權說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權,請進行舉報或認領
文檔簡介
1、 課 程 設 計課 程 EDA技術課程設計 題 目 脈沖按鍵電話顯示器 院 系 工學院 專業(yè)班級 13通信 學生姓名 胡瀟予 學生學號 201301031040 指導教師 楊永福 2016年 6 月10日 課程設計任務書課程 EDA技術課程設計題目 脈沖按鍵電話顯示器專業(yè) 通信工程 姓名 胡瀟予 學號 201301031040主要內(nèi)容、基本要求、主要參考資料等主要內(nèi)容:設計一個準確地反映按鍵數(shù)字具有8位顯示的電話按鍵顯示器,該電話顯示器要求具有重撥的功能,當按下重撥鍵時,能夠顯示最后一次輸入的電話號碼?;疽螅?、設計一個具有8位顯示的電話按鍵顯示器;2、能準確地反映按鍵數(shù)字;3、顯示器顯示
2、從低位向高位前移,逐位顯示按鍵數(shù)字,最低位為當前輸入位;4、設置一個“重撥”鍵,按下此鍵,能顯示最后一次輸入的電話號碼;5、掛機2秒后或按熄滅按鍵,熄滅顯示器顯示。主要參考資料:1 潘松著.EDA技術實用教程(第二版). 北京:科學出版社,2005.2 康華光主編.電子技術基礎 模擬部分. 北京:高教出版社,2006.3 閻石主編.數(shù)字電子技術基礎. 北京:高教出版社,2003.完成期限 2016.6.10 指導教師 楊永福 專業(yè)負責人 楊永福 2016年 6月10日 一、總體設計思想1.基本原理本題目是用VHDL語言實現(xiàn)一個能準確地反映按鍵數(shù)字、具有8位顯示 的電話按鍵顯示器。摘機時開始工作
3、,顯示器顯示從低位向高位前移,逐位顯示按鍵數(shù)字,最低位為當前輸入位;設置一個“重撥”鍵,按下此鍵能顯示最后一次輸入的電話號碼;掛機2秒后或按熄滅鍵,熄滅顯示器顯示。脈沖按鍵電話顯示器由五個模塊組成:按鍵電路、譯碼器、移位寄存、鎖存器和數(shù)碼管顯示電路,其中移位寄存、鎖存器和數(shù)碼管譯碼顯示電路為系統(tǒng)的主要組成部分。(1)按鍵電路模塊。提供“0”到“9”數(shù)字按鍵的輸入,同時設置有撥號 鍵,清除鍵,掛機鍵和重撥鍵。(2)譯碼電路模塊。譯碼器有兩個功能。第一,把輸入的一位鍵值轉換成 四位 BCD 碼;第二,把四位二進制碼譯成相應的數(shù)碼管輸出顯示碼。(3)移位寄存器、鎖存模塊。移位寄存器分為三個部分。當按
4、下?lián)芴栨I時, 數(shù)字按鍵值依次由數(shù)碼管的低位向高位移動,同時送入鎖存器中;當按下刪除 鍵時,鍵值由高位向低位移除,高位數(shù)碼管熄滅;當按下重撥鍵時,鎖存器中 存儲的鍵值輸入到移位寄存器中,并通過數(shù)碼管顯示出來。(4)數(shù)碼管顯示模塊。數(shù)碼管顯示用于將設置好的每個按鍵的鍵值在數(shù)碼 管上顯示出來。由于實驗過程中需要使用8個數(shù)碼管,因此數(shù)碼管顯示模塊必須加上數(shù)碼管片選及移位得程序,從而實現(xiàn)數(shù)據(jù)輸入以后從低位向高位移動、顯示。2.設計框圖數(shù)字鍵入控制電路1譯碼顯示器移位寄存器脈沖產(chǎn)生電路控制電路2計時電路譯碼顯示電路圖1 整體設計框圖二、設計步驟和調(diào)試過程1、總體設計電路圖2總體設計電路2、模塊設計和相應模
5、塊程序(1) 頂層文件程序LIBRARY IEEE; USE IEEE.STD_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; ARCH
6、ITECTURE ONE OF UPKEY IS COMPONENT 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 COMPONENT;COMPONENT TRA ISPORT(BCD1:IN STD_LOGIC_VECTOR(3 DOWNTO 0);SEG7:OUT
7、STD_LOGIC_VECTOR(6 DOWNTO 0); END COMPONENT; 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)譯碼器譯碼部分的設計圖3 BCD譯碼電路圖BCD譯碼子程序:LIBRARY IEEE;USE IEEE.STD_LOGIC_1164.ALL;USE IEEE.STD_L
8、OGIC_UNSIGNED.ALL;ENTITY TRA IS PORT( BCD1: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"=>SEG7<="0111111"WHEN "0001"=>SEG7<="0000110&qu
9、ot; WHEN "0010"=>SEG7<="1011011" WHEN "0011"=>SEG7<="1001111"WHEN "0100"=>SEG7<="1100110" WHEN "0101"=>SEG7<="1101101" WHEN "0110"=>SEG7<="1111101" WHEN "0111"=
10、>SEG7<="0000111" WHEN "1000"=>SEG7<="1111111" WHEN "1001"=>SEG7<="1101111" WHEN OTHERS=>SEG7<="0000000" END CASE;END PROCESS; END ARCHITECTURE;(3)鍵值顯示部分設計圖4按鍵顯示控制電路圖按鍵顯示控制子程序:LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL
11、; 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 SUBTYPE TEN IS STD_LOGIC_VECTOR(3
12、 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:STD_LOGIC_VECTOR(2 DOWNTO 0); S
13、IGNAL 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 COUNT1<"1100" ELSE '1' PROCESS(CLK1)IS BEGIN IF RISING_EDGE(CLK1) THEN DIN1
14、(9 DOWNTO 0)<=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=
15、39;0'AND RE_DIAL='0' THEN KEY1<=KEY; ELSIF CLEAR ='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&
16、quot; 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 DIN1(5)='1' THEN BCD<="0101" ELSIF DIN1(0)=&
17、#39;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
18、RISING_EDGE(KEY1) THEN IF CLEAR='0' AND RE_DIAL1='0' THEN NUMBER(7)<=NUMBER(6); NUMBER(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_D
19、IAL1='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(6)<= NUMBER(7); NUMBER(7)<="1111" ELSE NUMBER(7)<= LOCK(31 DOWNTO 28); NUMBER(6)<= LOCK(27 DOWNTO 24)
20、; 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 PROCESS; PROCESS(CLK)IS BEGIN IF RISING_EDGE(CLK) THEN COUNT<=COUNT+1;
21、END IF;END PROCESS; PROCESS(COUNT)IS BEGIN CASE COUNT IS WHEN "0001"=>SET<=NUMBER(7);SEG8<="00000001" WHEN "0011"=>SET<=NUMBER(6);SEG8<="00000010" WHEN "0101"=>SET<=NUMBER(5);SEG8<="00000100" WHEN "0111"
22、=>SET<=NUMBER(4);SEG8<="00001000" WHEN "1001"=>SET<=NUMBER(3);SEG8<="00010000" WHEN "1011"=>SET<=NUMBER(2);SEG8<="00100000" WHEN "1101"=>SET<=NUMBER(1);SEG8<="01000000" WHEN "1111"=>
23、;SET<=NUMBER(4);SEG8<="10000000" WHEN OTHERS=>NULL; END CASE; END PROCESS; PROCESS(DIAL1)IS BEGIN IF RISING_EDGE(DIAL1) THEN LOCK(31 DOWNTO 28)<=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;4、實驗調(diào)試結果為驗證所設計的程序是否正確,將程序下載
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年廈門演藝職業(yè)學院單招職業(yè)技能測試題庫附答案解析
- 2025年青海省海南藏族自治州單招職業(yè)適應性測試題庫附答案解析
- 2025年新邵縣招教考試備考題庫附答案解析(必刷)
- 2025年湖北工業(yè)大學工程技術學院馬克思主義基本原理概論期末考試模擬題附答案解析
- 2026年武漢民政職業(yè)學院單招綜合素質考試題庫帶答案解析
- 2025年南陽職業(yè)學院單招綜合素質考試題庫附答案解析
- 2025年邯鄲科技職業(yè)學院單招職業(yè)適應性考試題庫附答案解析
- 2026年六安職業(yè)技術學院單招職業(yè)適應性考試模擬測試卷帶答案解析
- 2024年滇池學院馬克思主義基本原理概論期末考試題帶答案解析(奪冠)
- 2025年陜西工運學院馬克思主義基本原理概論期末考試模擬題帶答案解析(必刷)
- 2026廣東惠州市博羅縣城鄉(xiāng)管理和綜合執(zhí)法局招聘編外人員55人考試參考試題及答案解析
- 2026臺州三門金鱗招商服務有限公司公開選聘市場化工作人員5人備考考試題庫及答案解析
- 江西省南昌市2025-2026學年上學期期末九年級數(shù)學試卷(含答案)
- 低空智能-從感知推理邁向群體具身
- 北方工業(yè)集團 筆試題目
- 環(huán)境監(jiān)測機構質量保證制度
- 酒店消殺方案
- 當前消費者權益保護工作中出現(xiàn)的新情況新問題與對策建議百度文剖析
- 【船舶污染問題研究國內(nèi)外文獻綜述2300字】
- 管道壁厚計算表
- 內(nèi)鏡進修匯報
評論
0/150
提交評論