版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、目錄設(shè)計功能要求3方案分析選擇與系統(tǒng)框圖4模塊功能分析6仿真下載結(jié)果9主要經(jīng)驗10操作指南11相關(guān)代碼12設(shè)計功能要求一.設(shè)計任務(wù)數(shù)字鐘不僅可以通過數(shù)字直觀地顯示日歷,時間,用音樂及語言報時,還可以定時發(fā)出各種聲,光,電信號,以及啟動各種設(shè)備實現(xiàn)實時控制,時間順序控制.如作息時間自動打鈴,家電設(shè)備自動定時啟動/停止,生產(chǎn)過程順序控制等,用途很廣.本課題的要求是:1/設(shè)計一個具有時,分,秒計時,6位數(shù)字顯示的時鐘電路.2/具有快速校準時,分的校時功能.3/具有仿電臺的自動整點報時功能或者發(fā)出與整點數(shù)目相等的音響聲.4/具有一定的擴展功能二.設(shè)計要求1/分析設(shè)計任務(wù),擬定多種設(shè)計方案,根據(jù)當時的制
2、作條件選擇其中一種方案繪制系統(tǒng)框圖和設(shè)計流程.2/設(shè)計各部分單元電路或編寫VHDL描述程序,計算元器件參數(shù),確定元器件型號和數(shù)量,提出元件清單.3/安裝調(diào)試硬件電路或制作CPLD/FPGA為基礎(chǔ)的專用集成芯片ASIC.4/對制作的電路進行功能測試,分析各項技術(shù)指標,或?qū)HDL描述進行功能仿真,對ASIC作硬件測試或脫機運行.5/總結(jié)設(shè)計各環(huán)節(jié)的資料,整理打印出設(shè)計報告(含原理電路,仿真波形).交驗并演示設(shè)計制作的電路裝置.方案分析選擇與系統(tǒng)框圖方案分析選擇1/使用的是開發(fā)板,故選擇編寫VHDL描述程序,并結(jié)合AltiumDesigner中提供的元件繪制原理圖,下載到開發(fā)板上.2/開發(fā)板上的資
3、源包括:LCD顯示屏,蜂鳴器,鍵盤,撥盤開關(guān),各種頻率的方波信號,各種對外接口,LED燈等.根據(jù)板上資源和需要實現(xiàn)的功能,我選擇了使用以下板上資源,并實現(xiàn)以下功能:LCD顯示屏-用于顯示時分秒計時蜂鳴器-用于整點報時與鬧鈴功能撥盤開關(guān)-用于時間設(shè)定,鬧鈴設(shè)定與聲音開關(guān)方波信號-經(jīng)過分頻后作為時鐘信號輸入和蜂鳴器發(fā)聲系統(tǒng)原理框圖整點報時模塊聲音模塊蜂鳴器存儲器模塊控制模塊撥盤開關(guān)信號發(fā)生器時鐘顯示模塊LCD顯示屏計時模塊硬件原理圖模塊功能分析計時模塊計時模塊具有時,分,秒的計時功能,每收到一個時鐘信號,秒個位計算加一,在各個位加滿時,重新置零,并向下一位進一.同時,輸出端口會把秒個位,秒十位,分
4、個位,分十位,時個位,時十位的8位數(shù)字信號輸出到各個模塊.顯示模塊LCD顯示模塊需要將顯示代碼與位置代碼輸入控制模塊并給與脈沖,就會在相應(yīng)的位置顯示相應(yīng)的字符,為了使得顯示沒有滯后,因此給較高的脈沖頻率.因為我們要顯示時分秒一共6位數(shù)字,因此需要寫一個LCD掃描輸出模塊,時刻顯示變化的時間. LCD掃描輸出需要把計時模塊輸出的8位BCD碼加上48轉(zhuǎn)化為ASC2碼.并且在時分秒之間加入冒號區(qū)分.存儲器模塊存儲器模塊的地址信號為計時模塊的分個位,分十位,時個位,時十位有效位,寫入的信號由撥盤開關(guān)sw4控制,輸出的信號到聲音模塊的使能.寫入開關(guān)由撥盤開關(guān)sw3控制.在需要鬧鈴的時間寫入一,那么就會讀
5、出一,對聲音模塊使能,使其發(fā)聲.整點報時模塊整點報時模塊的輸入取上圖的幾個關(guān)鍵數(shù)據(jù),當這些數(shù)據(jù)都為1時,此時為整點報時的時間,則對聲音模塊使能,使其發(fā)聲.聲音模塊聲音模塊包括音調(diào)選擇以及開關(guān)整點報時與鬧鈴的模塊.用來實現(xiàn)不同的要求與功能.仿真下載結(jié)果計時模塊仿真圖下載結(jié)果第一次下載的時候,因為很多地方都不知道,不是沒接好線就是沒有改名字,造成編譯正常但是無法下載的結(jié)果.后來通過自己的摸索與請教他人,終于實現(xiàn)了下載.但是下載后又發(fā)現(xiàn)了許多意想不到的錯誤.用了很長的時間,我才把這些都弄清楚并且解決掉.最后終于實現(xiàn)了自己的預定功能.主要經(jīng)驗 在電子技術(shù)課程設(shè)計之前,我先做了單片機課程設(shè)計.做單片機課
6、程設(shè)計的時候,是一邊拿著板子一邊不斷下載測試,一點點完善程序的,但是當我做電子技術(shù)課程設(shè)計時,因為板子不在身邊,所以自己在寢室寫的程序無法驗證.因此在這些地方浪費了很多時間,直到我在實驗室待了兩天時間,才把問題解決掉.所以我明白,做這種設(shè)計,必須不斷的實踐測試,才能知道自己不足在哪里,才知道設(shè)計有什么不完善的地方.無論做什么事,如果你手邊有實驗的條件,那么做什么事,學習什么東西都可以事半功倍.還有,經(jīng)驗很重要.如果是一開始什么都沒有做過,那么各種各樣的問題會接踵而來,而且你不知道從何解決.但是當你有了經(jīng)驗后,就可以很快知道究竟在什么地方出現(xiàn)了問題.在開始階段,如果有一個老師,那一定是無比幸運的
7、事情.他能夠告訴你你需要知道什么,能夠告訴你如何發(fā)現(xiàn)錯誤,那樣就節(jié)省了很多自己摸索的時間.最后一點,要知道規(guī)則,如果連語言規(guī)則和軟件規(guī)則都不知道,那么怎么能好好地設(shè)計呢?靠自己的摸索想要摸索規(guī)則不是不可以,但是也會花太多的時間.所以如果在開始階段能夠看幾本基礎(chǔ)的書,不需要記住,只要有印象,那么以后在碰到問題的時候就知道在哪里可以找到解決方法,就可以容易地學習好這個課程.總結(jié)起來,電子技術(shù)課程設(shè)計的學習,如果有3點條件,就可以比較簡單的入門了.1/看關(guān)于語言規(guī)則,軟件操作的書.熟悉基礎(chǔ).2/多做實驗,從實驗中獲得豐富的經(jīng)驗.3/多向別人請教.操作指南本設(shè)計使用撥盤開關(guān)作為控制輸入.sw0為LCD
8、燈開關(guān),打上為關(guān),打下為開.sw1為鬧鈴開關(guān),打上為關(guān),打下開.sw2為整點報時開關(guān), 打上為關(guān),打下開.sw3為鬧鈴寫入開關(guān),打上為關(guān),打下為RAM寫入模式,此時可以利用sw4設(shè)定鬧鈴.sw4為鬧鈴設(shè)定開關(guān),在sw3為寫入時有效,打上為取消鬧鈴,打下為設(shè)定鬧鈴.sw5為時調(diào)整,打上為關(guān),打下為開始時調(diào)整,此時分秒均置為零,時以每秒1的速度增加.sw6為分十位調(diào)整, 打上為關(guān),打下為開始分十位調(diào)整,此時分個位和秒均置為零,分十位以每秒1的速度增加.sw7為分十位調(diào)整, 打上為關(guān),打下為開始分個位調(diào)整,此時秒均置為零,分個位以每秒1的速度增加.提醒,調(diào)整時間時,應(yīng)按一下順序調(diào)整.時-分十位-分個
9、位相關(guān)代碼整點報時音調(diào)選擇模塊chose.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity chose is port ( en,chosein,clkin1,clkin2: in std_logic; clkout: out std_logic );end chose;architecture change of chose isbegin process(clkin1,clkin2,en,chosein) begin
10、if en='1' then if chosein='1' then clkout<=clkin1; else clkout<=clkin2; end if; else clkout<='1' end if; end process;end change;計時模塊counter.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity counter is port
11、 ( clk,changemint,changemino,changeh: in std_logic; so,st,mino,mint,ho,ht: buffer std_logic_vector(7 downto 0) );end counter;architecture add of counter isbegin process(clk,so,st,mino,mint,ho,ht,changemint,changemino,changeh) begin if rising_edge(clk) then so<=so+1; if so=x"09" then st&
12、lt;=st+1; so<=x"00" end if; if (st=x"05" and so=x"09") or changemino='1' then mino<=mino+1; st<=x"00" so<=x"00" end if; if (mino=x"09" and st=x"05" and so=x"09") or changemint='1'or (changemin
13、o='1' and mino=x"09") then mint<=mint+1; mino<=x"00" st<=x"00" so<=x"00" end if; if (mint=x"05" and mino=x"09" and st=x"05" and so=x"09") or changeh='1' or (changemint='1' and mint=x&q
14、uot;05") or (changemino='1' and mino=x"09" and mint=x"5") then ho<=ho+1; mint<=x"00" mino<=x"00" st<=x"00" so<=x"00" end if; if( ho=x"09" and mint=x"05" and mino=x"09" and st=x"
15、05" and so=x"09") or (changeh='1' and ho=x"09") then ht<=ht+1; ho<=x"00" mino<=x"00" st<=x"00" so<=x"00" mint<=x"00" end if; if(ht=x"02" and ho=x"03" and mint=x"05" and
16、mino=x"09" and st=x"05" and so=x"09") or (changeh='1' and ht=x"02" and ho=x"03") then ht<=x"00" ho<=x"00" mino<=x"00" st<=x"00" so<=x"00" end if; end if; end process;end add;聲音開
17、關(guān)模塊onoff.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity onoff is port ( en,clkin: in std_logic; clkout: out std_logic );end onoff;architecture en of onoff isbegin process(clkin,en) begin if en='1' then clkout<=clkin; else cl
18、kout<='1' end if; end process;end en;鬧鈴音樂模塊ring.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.std_logic_arith.all;use ieee.std_logic_unsigned.all;entity ring is port ( clkin1,clkin2,clkin3,clkin4,clk,en: in std_logic; clkout: out std_logic );end ring;architecture change of ring iss
19、ignal num : integer;begin process(clk,num,clkin1,clkin2,clkin3,clkin4,en) begin if en='1' then if rising_edge(clk) then num<=num+1; end if; if num=9 then num<=0; end if; if num=1 then clkout<=clkin1; elsif num=2 then clkout<=clkin2; elsif num=3 then clkout<=clkin3; elsif num=4
20、 then clkout<=clkin4; elsif num=5 then clkout<=clkin4; elsif num=6 then clkout<=clkin3; elsif num=7 then clkout<=clkin2; elsif num=8 then clkout<=clkin1; end if; else clkout<='1' end if; end process;end change;顯示掃屏模塊show.vhdlibrary ieee;use ieee.std_logic_1164.all;use ieee.
21、std_logic_arith.all;use ieee.std_logic_unsigned.all;entity show is port ( clk: in std_logic; data1,data2,data3,data4,data5,data6: in std_logic_vector(7 downto 0); add: out std_logic_vector(3 downto 0); dataout: out std_logic_vector(7 downto 0) );end show;architecture change of show issignal num : in
22、teger;begin process(clk,data1,data2,data3,data4,data5,data6,num) begin if rising_edge(clk) then num<=num+1; if num=7 then num<=0; end if; end if; if num=0 then add<=x"1" dataout<=data1+x"30" elsif num=1 then add<=x"2" dataout<=data2+x"30" elsif num=2 then add<=x"3" dataout<=x"3a" elsif num=3 then add<=x"
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 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. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 道路景觀設(shè)施承諾書
- 煙草產(chǎn)品收款流程
- 印刷廠門窗施工合同協(xié)議書
- 健身房墻面裝修合同協(xié)議
- 可持續(xù)發(fā)展成品油市場管理辦法
- 基坑降水施工合同:文物保護工程
- 廣告公司合同管理方案
- 建筑公司工程車輛司機聘用合同
- 通信設(shè)備維護服務(wù)合同
- 流行病的特征
- 馬克思主義基本原理全套課件
- 動物生產(chǎn)新技術(shù)與應(yīng)用課件
- 三年級上冊道德與法治教案-《平安出行》 部編版
- 植物營養(yǎng)學課件:植物的鈣鎂硫營養(yǎng)
- 小學英語工作室個人年度總結(jié)5篇
- 呼市回民區(qū)萬達廣場強條紅線黃線專項培訓考試
- 電力二次系統(tǒng)安全監(jiān)控日志規(guī)范
- 迎檢工作注意事項
- 二進制與十進制的互換課件
- 干細胞精品課件
- 點直線與圓的位置關(guān)系說課稿 完整版課件
評論
0/150
提交評論