版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、裝 訂 線2012-2013學年第 一 學期 物電 學院期末考試卷 eda大作業(yè) 設計制作電子表 (課程論文等試卷樣式)學號: 姓名: 班級: 成績:評語:(考試題目及要求)利用vhdl語言設計一個電子時鐘,可以顯示時、分、秒,具有時間設置功能,要求走時誤差不大于每天10秒??刹捎脭荡a管或液晶顯示,最好設計出個性化顯示界面。注意事項:1.上述三題任選一題,采用標準的作業(yè)考核類封面,a4打印。2.第一題40分,液晶+3分,個性化界面+3分。3.第二題45分,幅度調整+3分,頻率測量及顯示+5分。4.第三題48分,頻率分段設置+3分,頻率微調+5分,頻率范圍酌情加分。5.雷同的程序和算法滿分值只計
2、原題分值的三分之二,將依據設計報告的質量和實驗結果的描述計分。設計上的創(chuàng)新會酌情加分,實現(xiàn)上的偏離會酌情扣分。6.本門課程成績中,實驗操作和實驗報告占50%,本次作業(yè)考核占50%。目 錄一、設計要求1二、設計思路1三、程序設計21.置數還是計數22.在哪一位置數23.計數單位24.秒35.分46.時47.數碼管顯示5四、仿真結果6五、實驗結果81.連線82.設計結果8六、實驗心得9電子表源程序10設計制作電子表一、設計要求利用vhdl語言設計一個電子時鐘,可以顯示時、分、秒,具有時間設置功能,要求走時誤差不大于每天10秒。可采用數碼管或液晶顯示,最好設計出個性化顯示界面。二、設計思路電子表其實
3、質為計數器,計數單位為1秒。由秒,分,時組成,秒和分是60進制,用十進制和六進制組成,時是24進制,直接設計一個24進制計數器即可。要讓結果顯示出來,則用七段式數碼管輸出顯示計數值。此電子表需要有置數功能,加一個控制開關,當開關為低電平時計數,當開關為高電平時置數。設計思路如下圖所示:三、程序設計1.置數還是計數電子表有計數和指數兩種狀態(tài),工作時執(zhí)行計數還是執(zhí)行置數則由一控制使能端en決定,當en為低電平時,電子表計數,當en為高電平時,電子表置數。2.在哪一位置數該電子表有秒低位,秒高位,分低位,分高位,時低位,時高位組成,共有六位,置數由位選決定給哪一位置數。設置一個三位的二進制開關p2,
4、p1,p0,通過編碼電路實現(xiàn)選擇置數位。 當p2p1p0為“000”時,不選擇任何位,此時電子表只是停止計數,不置數。 當p2p1p0為“001”時,秒低位置數。 當p2p1p0為“010”時,秒高位置數。 當p2p1p0為“011”時,分低位置數。 當p2p1p0為“100”時,分高位置數。 當p2p1p0為“101”時,時低位置數。 當p2p1p0為“110”時,時高位置數。關鍵程序:if tevent and t=1 then if en=0 then 計數語句 elsif en=1 and p=001 then s0=num; end if; end if;3.計數單位首先脈沖頻率要足
5、夠大,提供一個較快的掃描頻率,時數碼管穩(wěn)定地顯示計數值。計數單位為1秒,對脈沖clk 進行分頻,得到周期為1秒的計數單位t。程序中對clk進行512分頻,所以需要一個相近的脈沖,試驗箱上的clk4的頻率范圍為625khz19.5hz,通過跳線帽選擇可以調出624hz的頻率。所以脈沖頻率選用624hz。關鍵程序:if clkevent and clk=1 then count:=count+1; end if; t=count(9);4.秒秒是60進制的,可以用一個十進制計數器和一個六進制計數器實現(xiàn)。秒的低位為十進制,當第10個計數單位到達時,計數值清零,并產生一個進位信號,用以更高位的計數,而
6、其他時候進位信號為低電平,既沒有進位輸出。秒的高位為六進制,每一個來自低位的進位信號高電平到達時計一次數,當第六個進位信號到達時,計數值清零,同樣的產生一個進位信號。關鍵程序:-秒低位-ss0:process(t) is begin if tevent and t=1 then if en=0 then if s0=9 then s0=0; c0=1; -進位 else s0=s0+1; c0=0; end if; elsif en=1 and p=001 then s0=num; end if; end if; end process;-秒高位-ss1:process(c0) is begi
7、n if c0event and c0=1 then if en=0 then if s1=5 then s1=0; c1=1; -進位 else s1=s1+1; c1=0; end if; elsif en=1 and p=010 then s1=num; end if; end if; end process;5.分分與秒類似,也是一個60進制的計數器,可用十進制和六進制組合實現(xiàn)。這里不再贅述。6.時時位不同于秒和分,因為時的低位不是任何進制的計數器,因此不能像上面那樣用兩個計數器組合,而只能將時的高低位作為一個整體,為一個二十四進制計數器,接受來自分位的進位信號,計數滿24時清零。由于
8、數碼管只能顯示09的數字,所以數碼管顯示時仍然要分高低位分別顯示。對于如何用兩個數碼管顯示著24個數,用分段的方法解決。h表示時位的計數值 ,h1表示時的高位,h0表示時的低位 h在09范圍內,則h1=0,h0=h; h在1019范圍內,則h1=1,h0=h-10; h在2023范圍內,則h1=2,h0=h-20;關鍵程序:hh:process(c3,h) is begin if c3event and c3=1 then if h=23 then h=0; else hh1=0;h0h1=1;h0h1=2;h0null; end case; end process;7.數碼管顯示秒分時個兩位
9、,分與秒,時與分之間用短線隔開,所以需要用8個數碼管,從右到左分別為秒低位,秒高位,短線,分低位,分高位,短線,時低位,時高位。時高位h1時低位h0分高位m1分低位m0秒高位s1秒低位s0關鍵程序:process(clk,w) isbegin if clkevent and clk=1 then if w=111 then w=000; else wnnnnnnnnnull; end case; end process; sel=w;四、仿真結果1.clk分頻后用以計數,s0為十進制,仿真結果如下:2.s1為六進制3m0為十進制4m1為六進制5h為二十四進制 五、實驗結果1.連線設定器件為ep
10、m7128lc84-6,按分配好的引腳在試驗箱上連線。輸入管腳有:脈沖clk,使能控制端en,置數選擇p2p1p0,置數端x3x2x1x0。輸出管腳有:數碼管位選輸出selsel0,數碼管段選輸出d6d0。連線照片如下:2.設計結果電子表實物照片如下:從左到右為時,分,秒。六、實驗心得本次實驗花費了較長時間,剛開始想電子表就是一個計數器,之前實驗做過計數器,應該很快能做出來,但當開始寫程序時發(fā)現(xiàn)有很多不同,也遇到了比較困難的問題,要讓計數單位為1秒,脈沖還要比較快,脈沖的選擇和分頻就是一個重要問題。還有時的高低位如何在數碼管上顯示出來的問題,因為時是二十四進制的,自己想了很久也沒有辦法解決,后
11、來請教同學,經同學點撥,采用分段賦值的方法讓時的地高位分別顯示。覺得自己還是思維方式太狹窄,解決問題的方法太單一,以后要擴展思維,一條路行不通就換另一種方法,也許會更簡單??偟膩碚f,本次設計受益匪淺,一方面鞏固了所學知識,另一方面對自己的思維方式也有一些反思。七、附錄電子表源程序:library ieee;use ieee.std_logic_1164.all;use ieee.std_logic_unsigned.all;use ieee.std_logic_arith.all;entity dzb is port (clk:in std_logic; en:in std_logic; -置
12、數開關 p:in std_logic_vector(2 downto 0);-置數選擇 x:in std_logic_vector(3 downto 0);-置數值 sel:out std_logic_vector(2 downto 0); -掃描 d:out std_logic_vector(6 downto 0); end dzb;architecture behaver of dzb issignal t:std_logic; -計數單位,即1秒signal num:integer range 0 to 9;-置數值signal n:integer range 0 to 10; -數碼管
13、顯示值signal s0,s1,m0,m1,h0,h1:integer range 0 to 10;-秒,分,時signal h:integer range 0 to 23; signal c0,c1,c2,c3:std_logic; -進位信號signal w:std_logic_vector(2 downto 0); -位選begin-分頻-fenpin:process(clk) is variable count:std_logic_vector(9 downto 0); begin if clkevent and clk=1 then count:=count+1; end if; t
14、=count(9); end process; -秒低位-ss0:process(t) is begin if tevent and t=1 then if en=0 then if s0=9 then s0=0; c0=1; -進位 else s0=s0+1; c0=0; end if; elsif en=1 and p=001 then s0=num; end if; end if; end process;-秒高位-ss1:process(c0) is begin if c0event and c0=1 then if en=0 then if s1=5 then s1=0; c1=1;
15、 -進位 else s1=s1+1; c1=0; end if; elsif en=1 and p=010 then s1=num; end if; end if; end process;-分低位-mm0:process(c1) is begin if c1event and c1=1 then if en=0 then if m0=9 then m0=0; c2=1; -進位 else m0=m0+1; c2=0; end if; elsif en=1 and p=011 then m0=num; end if; end if; end process;-分高位-mm1:process(c
16、2) is begin if c2event and c2=1 then if en=0 then if m1=5 then m1=0; c3=1; -進位 else m1=m1+1; c3=0; end if; elsif en=1 and p=100 then m1=num; end if; end if; end process;-時-hh:process(c3,h) is begin if c3event and c3=1 then if h=23 then h=0; else hh1=0;h0h1=1;h0h1=2;h0null; end case; end process;-置數-zhizhu:process(x) is begin case x is when 000
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2024物業(yè)公司承擔住宅小區(qū)垃圾清運的合同
- 2025年度留置車輛處置借款合同4篇
- 2025年grc構件生產線投資建設與運營合同3篇
- 年度PAPTFE競爭策略分析報告
- 年度童書產業(yè)分析報告
- 2024-2025學年新教材高中語文基礎過關訓練15諫逐客書含解析部編版必修下冊
- 二零二五版白糖倉儲物流服務合同范本2篇
- 2025年理療項目合作協(xié)議范本:特色理療項目合作框架協(xié)議3篇
- 2025年度中小企業(yè)間資金周轉互助合同范本
- 二零二五年度商業(yè)地產租賃合同中情勢變更處理辦法及責任劃分4篇
- 骨科手術后患者營養(yǎng)情況及營養(yǎng)不良的原因分析,骨傷科論文
- GB/T 24474.1-2020乘運質量測量第1部分:電梯
- GB/T 12684-2006工業(yè)硼化物分析方法
- 定崗定編定員實施方案(一)
- 高血壓患者用藥的注意事項講義課件
- 特種作業(yè)安全監(jiān)護人員培訓課件
- (完整)第15章-合成生物學ppt
- 太平洋戰(zhàn)爭課件
- 封條模板A4打印版
- T∕CGCC 7-2017 焙烤食品用糖漿
- 貨代操作流程及規(guī)范
評論
0/150
提交評論