版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、<p><b> 目錄</b></p><p><b> 設(shè)計功能要求3</b></p><p> 方案分析選擇與系統(tǒng)框圖4</p><p><b> 模塊功能分析6</b></p><p><b> 仿真\下載結(jié)果9</b>&
2、lt;/p><p><b> 主要經(jīng)驗10</b></p><p><b> 操作指南11</b></p><p><b> 相關(guān)代碼12</b></p><p><b> 設(shè)計功能要求</b></p><p><b
3、> 一.設(shè)計任務(wù)</b></p><p> 數(shù)字鐘不僅可以通過數(shù)字直觀地顯示日歷,時間,用音樂及語言報時,還可以定時發(fā)出各種聲,光,電信號,以及啟動各種設(shè)備實現(xiàn)實時控制,時間順序控制.如作息時間自動打鈴,家電設(shè)備自動定時啟動/停止,生產(chǎn)過程順序控制等,用途很廣.本課題的要求是:</p><p> 1/設(shè)計一個具有時,分,秒計時,6位數(shù)字顯示的時鐘電路.</p&
4、gt;<p> 2/具有快速校準(zhǔn)時,分的校時功能.</p><p> 3/具有仿電臺的自動整點報時功能或者發(fā)出與整點數(shù)目相等的音響聲.</p><p> 4/具有一定的擴(kuò)展功能</p><p><b> 二.設(shè)計要求</b></p><p> 1/分析設(shè)計任務(wù),擬定多種設(shè)計方案,根據(jù)當(dāng)時的制作條件
5、選擇其中一種方案繪制系統(tǒng)框圖和設(shè)計流程.</p><p> 2/設(shè)計各部分單元電路或編寫VHDL描述程序,計算元器件參數(shù),確定元器件型號和數(shù)量,提出元件清單.</p><p> 3/安裝調(diào)試硬件電路或制作CPLD/FPGA為基礎(chǔ)的專用集成芯片ASIC.</p><p> 4/對制作的電路進(jìn)行功能測試,分析各項技術(shù)指標(biāo),或?qū)HDL描述進(jìn)行功能仿真,對ASIC作
6、硬件測試或脫機(jī)運行.</p><p> 5/總結(jié)設(shè)計各環(huán)節(jié)的資料,整理打印出設(shè)計報告(含原理電路,仿真波形).交驗并演示設(shè)計制作的電路裝置.</p><p> 方案分析選擇與系統(tǒng)框圖</p><p><b> 方案分析選擇</b></p><p> 1/使用的是開發(fā)板,故選擇編寫VHDL描述程序,并結(jié)合Altiu
7、mDesigner中提供的元件繪制原理圖,下載到開發(fā)板上.</p><p> 2/開發(fā)板上的資源包括:LCD顯示屏,蜂鳴器,鍵盤,撥盤開關(guān),各種頻率的方波信號,各種對外接口,LED燈等.</p><p> 根據(jù)板上資源和需要實現(xiàn)的功能,我選擇了使用以下板上資源,并實現(xiàn)以下功能:</p><p> LCD顯示屏---用于顯示時分秒計時</p>&l
8、t;p> 蜂鳴器---用于整點報時與鬧鈴功能</p><p> 撥盤開關(guān)---用于時間設(shè)定,鬧鈴設(shè)定與聲音開關(guān)</p><p> 方波信號---經(jīng)過分頻后作為時鐘信號輸入和蜂鳴器發(fā)聲</p><p><b> 系統(tǒng)原理框圖</b></p><p><b> 硬件原理圖</b><
9、/p><p><b> 模塊功能分析</b></p><p><b> 計時模塊</b></p><p> 計時模塊具有時,分,秒的計時功能,每收到一個時鐘信號,秒個位計算加一,在各個位加滿時,重新置零,并向下一位進(jìn)一.同時,輸出端口會把秒個位,秒十位,分個位,分十位,時個位,時十位的8位數(shù)字信號輸出到各個模塊.<
10、/p><p><b> 顯示模塊</b></p><p> LCD顯示模塊需要將顯示代碼與位置代碼輸入控制模塊并給與脈沖,就會在相應(yīng)的位置顯示相應(yīng)的字符,為了使得顯示沒有滯后,因此給較高的脈沖頻率.因為我們要顯示時分秒一共6位數(shù)字,因此需要寫一個LCD掃描輸出模塊,時刻顯示變化的時間. LCD掃描輸出需要把計時模塊輸出的8位BCD碼加上48轉(zhuǎn)化為ASC2碼.并且在時分
11、秒之間加入冒號區(qū)分.</p><p><b> 存儲器模塊</b></p><p> 存儲器模塊的地址信號為計時模塊的分個位,分十位,時個位,時十位有效位,寫入的信號由撥盤開關(guān)sw4控制,輸出的信號到聲音模塊的使能.寫入開關(guān)由撥盤開關(guān)sw3控制.在需要鬧鈴的時間寫入一,那么就會讀出一,對聲音模塊使能,使其發(fā)聲.</p><p><b&
12、gt; 整點報時模塊</b></p><p> 整點報時模塊的輸入取上圖的幾個關(guān)鍵數(shù)據(jù),當(dāng)這些數(shù)據(jù)都為1時,此時為整點報時的時間,則對聲音模塊使能,使其發(fā)聲.</p><p><b> 聲音模塊</b></p><p> 聲音模塊包括音調(diào)選擇以及開關(guān)整點報時與鬧鈴的模塊.用來實現(xiàn)不同的要求與功能.</p>&l
13、t;p><b> 仿真\下載結(jié)果</b></p><p><b> 計時模塊仿真圖</b></p><p><b> 下載結(jié)果</b></p><p> 第一次下載的時候,因為很多地方都不知道,不是沒接好線就是沒有改名字,造成編譯正常但是無法下載的結(jié)果.后來通過自己的摸索與請教他人,終于
14、實現(xiàn)了下載.但是下載后又發(fā)現(xiàn)了許多意想不到的錯誤.用了很長的時間,我才把這些都弄清楚并且解決掉.最后終于實現(xiàn)了自己的預(yù)定功能.</p><p><b> 主要經(jīng)驗 </b></p><p> 在電子技術(shù)課程設(shè)計之前,我先做了單片機(jī)課程設(shè)計.做單片機(jī)課程設(shè)計的時候,是一邊拿著板子一邊不斷下載測試,一點點完善程序的,但是當(dāng)我做電子技術(shù)課程設(shè)計時,因為板子不在身邊,所以
15、自己在寢室寫的程序無法驗證.因此在這些地方浪費了很多時間,直到我在實驗室待了兩天時間,才把問題解決掉.所以我明白,做這種設(shè)計,必須不斷的實踐測試,才能知道自己不足在哪里,才知道設(shè)計有什么不完善的地方.無論做什么事,如果你手邊有實驗的條件,那么做什么事,學(xué)習(xí)什么東西都可以事半功倍.</p><p> 還有,經(jīng)驗很重要.如果是一開始什么都沒有做過,那么各種各樣的問題會接踵而來,而且你不知道從何解決.但是當(dāng)你有了經(jīng)驗
16、后,就可以很快知道究竟在什么地方出現(xiàn)了問題.在開始階段,如果有一個老師,那一定是無比幸運的事情.他能夠告訴你你需要知道什么,能夠告訴你如何發(fā)現(xiàn)錯誤,那樣就節(jié)省了很多自己摸索的時間.</p><p> 最后一點,要知道規(guī)則,如果連語言規(guī)則和軟件規(guī)則都不知道,那么怎么能好好地設(shè)計呢?靠自己的摸索想要摸索規(guī)則不是不可以,但是也會花太多的時間.所以如果在開始階段能夠看幾本基礎(chǔ)的書,不需要記住,只要有印象,那么以后在碰到
17、問題的時候就知道在哪里可以找到解決方法,就可以容易地學(xué)習(xí)好這個課程.</p><p> 總結(jié)起來,電子技術(shù)課程設(shè)計的學(xué)習(xí),如果有3點條件,就可以比較簡單的入門了.</p><p> 1/看關(guān)于語言規(guī)則,軟件操作的書.熟悉基礎(chǔ).</p><p> 2/多做實驗,從實驗中獲得豐富的經(jīng)驗.</p><p> 3/多向別人請教.</p
18、><p><b> 操作指南</b></p><p> 本設(shè)計使用撥盤開關(guān)作為控制輸入.</p><p> sw0為LCD燈開關(guān),打上為關(guān),打下為開.</p><p> sw1為鬧鈴開關(guān),打上為關(guān),打下開.</p><p> sw2為整點報時開關(guān), 打上為關(guān),打下開.</p>
19、<p> sw3為鬧鈴寫入開關(guān),打上為關(guān),打下為RAM寫入模式,此時可以利用sw4設(shè)定鬧鈴.</p><p> sw4為鬧鈴設(shè)定開關(guān),在sw3為寫入時有效,打上為取消鬧鈴,打下為設(shè)定鬧鈴.</p><p> sw5為時調(diào)整,打上為關(guān),打下為開始時調(diào)整,此時分秒均置為零,時以每秒1的速度增加.</p><p> sw6為分十位調(diào)整, 打上為關(guān),打下為
20、開始分十位調(diào)整,此時分個位和秒均置為零,分十位以每秒1的速度增加.</p><p> sw7為分十位調(diào)整, 打上為關(guān),打下為開始分個位調(diào)整,此時秒均置為零,分個位以每秒1的速度增加.</p><p> 提醒,調(diào)整時間時,應(yīng)按一下順序調(diào)整.時-分十位-分個位</p><p><b> 相關(guān)代碼</b></p><p>
21、; 整點報時音調(diào)選擇模塊</p><p><b> chose.vhd</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p
22、> use ieee.std_logic_unsigned.all;</p><p> entity chose is</p><p><b> port</b></p><p><b> (</b></p><p> en,chosein,clkin1,clkin2:</p&
23、gt;<p> in std_logic;</p><p><b> clkout:</b></p><p> out std_logic</p><p><b> );</b></p><p> end chose;</p><p> archit
24、ecture change of chose is</p><p><b> begin</b></p><p> process(clkin1,clkin2,en,chosein)</p><p><b> begin</b></p><p><b> if en='1&
25、#39;</b></p><p><b> then</b></p><p> if chosein='1'</p><p><b> then</b></p><p> clkout<=clkin1;</p><p><b&g
26、t; else</b></p><p> clkout<=clkin2;</p><p><b> end if;</b></p><p><b> else</b></p><p> clkout<='1';</p><p>
27、;<b> end if;</b></p><p> end process;</p><p> end change;</p><p><b> 計時模塊</b></p><p> counter.vhd</p><p> library ieee;</p
28、><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity counter is</p><p><b&g
29、t; port</b></p><p><b> (</b></p><p> clk,changemint,changemino,changeh:</p><p> in std_logic;</p><p> so,st,mino,mint,ho,ht:</p><p>
30、 buffer std_logic_vector(7 downto 0)</p><p><b> );</b></p><p> end counter;</p><p> architecture add of counter is</p><p><b> begin</b><
31、/p><p> process(clk,so,st,mino,mint,ho,ht,changemint,changemino,changeh)</p><p><b> begin</b></p><p> if rising_edge(clk)</p><p><b> then</b>&l
32、t;/p><p><b> so<=so+1;</b></p><p> if so=x"09"</p><p><b> then</b></p><p><b> st<=st+1;</b></p><p> s
33、o<=x"00";</p><p><b> end if;</b></p><p> if (st=x"05" and so=x"09") or changemino='1'</p><p><b> then</b></p&g
34、t;<p> mino<=mino+1;</p><p> st<=x"00";</p><p> so<=x"00";</p><p><b> end if;</b></p><p> if (mino=x"09"
35、and st=x"05" and so=x"09") or changemint='1'or (changemino='1' and mino=x"09")</p><p><b> then</b></p><p> mint<=mint+1;</p>
36、<p> mino<=x"00";</p><p> st<=x"00";</p><p> so<=x"00";</p><p><b> end if;</b></p><p> if (mint=x"05
37、" and mino=x"09" and st=x"05" and so=x"09") or changeh='1' or (changemint='1' and mint=x"05") or (changemino='1' and mino=x"09" and mint
38、=x"5")</p><p><b> then</b></p><p><b> ho<=ho+1;</b></p><p> mint<=x"00";</p><p> mino<=x"00";</p&g
39、t;<p> st<=x"00";</p><p> so<=x"00";</p><p><b> end if;</b></p><p> if( ho=x"09" and mint=x"05" and mino=x"
40、;09" and st=x"05" and so=x"09") or (changeh='1' and ho=x"09")</p><p><b> then</b></p><p><b> ht<=ht+1;</b></p>&
41、lt;p> ho<=x"00";</p><p> mino<=x"00";</p><p> st<=x"00";</p><p> so<=x"00";</p><p> mint<=x"00"
42、;</p><p><b> end if;</b></p><p> if(ht=x"02" and ho=x"03" and mint=x"05" and mino=x"09" and st=x"05" and so=x"09") or (
43、changeh='1' and ht=x"02" and ho=x"03")</p><p><b> then</b></p><p> ht<=x"00";</p><p> ho<=x"00";</p><
44、;p> mino<=x"00";</p><p> st<=x"00";</p><p> so<=x"00";</p><p><b> end if;</b></p><p><b> end if;</b&
45、gt;</p><p> end process;</p><p><b> end add;</b></p><p><b> 聲音開關(guān)模塊</b></p><p><b> onoff.vhd</b></p><p> library ie
46、ee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity onoff is</p><p>
47、<b> port</b></p><p><b> (</b></p><p><b> en,clkin:</b></p><p> in std_logic;</p><p><b> clkout:</b></p><
48、p> out std_logic</p><p><b> );</b></p><p> end onoff;</p><p> architecture en of onoff is</p><p><b> begin</b></p><p> pro
49、cess(clkin,en)</p><p><b> begin</b></p><p><b> if en='1'</b></p><p><b> then</b></p><p> clkout<=clkin;</p>&l
50、t;p><b> else</b></p><p> clkout<='1';</p><p><b> end if;</b></p><p> end process;</p><p><b> end en;</b></p>
51、;<p><b> 鬧鈴音樂模塊</b></p><p><b> ring.vhd</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_ar
52、ith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity ring is</p><p><b> port</b></p><p><b> (</b></p><p> clkin1,c
53、lkin2,clkin3,clkin4,clk,en:</p><p> in std_logic;</p><p><b> clkout:</b></p><p> out std_logic</p><p><b> );</b></p><p><b&g
54、t; end ring;</b></p><p> architecture change of ring is</p><p> signal num : integer;</p><p><b> begin</b></p><p> process(clk,num,clkin1,clkin2,
55、clkin3,clkin4,en)</p><p><b> begin</b></p><p><b> if en='1'</b></p><p><b> then</b></p><p> if rising_edge(clk)</p>
56、;<p><b> then</b></p><p> num<=num+1;</p><p><b> end if;</b></p><p><b> if num=9</b></p><p><b> then</b>&
57、lt;/p><p><b> num<=0;</b></p><p><b> end if;</b></p><p><b> if num=1</b></p><p><b> then</b></p><p> c
58、lkout<=clkin1;</p><p> elsif num=2</p><p><b> then</b></p><p> clkout<=clkin2;</p><p> elsif num=3</p><p><b> then</b>&l
59、t;/p><p> clkout<=clkin3;</p><p> elsif num=4</p><p><b> then</b></p><p> clkout<=clkin4;</p><p> elsif num=5</p><p><b
60、> then</b></p><p> clkout<=clkin4;</p><p> elsif num=6</p><p><b> then</b></p><p> clkout<=clkin3;</p><p> elsif num=7<
61、/p><p><b> then</b></p><p> clkout<=clkin2;</p><p> elsif num=8</p><p><b> then</b></p><p> clkout<=clkin1;</p><
62、p><b> end if;</b></p><p><b> else</b></p><p> clkout<='1';</p><p><b> end if;</b></p><p> end process;</p>
63、<p> end change;</p><p><b> 顯示掃屏模塊</b></p><p><b> show.vhd</b></p><p> library ieee;</p><p> use ieee.std_logic_1164.all;</p>
64、<p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity show is</p><p><b> port</b></p><p><b> (</b>
65、;</p><p><b> clk:</b></p><p> in std_logic;</p><p> data1,data2,data3,data4,data5,data6:</p><p> in std_logic_vector(7 downto 0);</p><p>&l
66、t;b> add:</b></p><p> out std_logic_vector(3 downto 0);</p><p><b> dataout:</b></p><p> out std_logic_vector(7 downto 0)</p><p><b> );&l
67、t;/b></p><p><b> end show;</b></p><p> architecture change of show is</p><p> signal num : integer;</p><p><b> begin</b></p><p
68、> process(clk,data1,data2,data3,data4,data5,data6,num)</p><p><b> begin</b></p><p> if rising_edge(clk)</p><p><b> then</b></p><p> num&
69、lt;=num+1;</p><p><b> if num=7</b></p><p><b> then</b></p><p><b> num<=0;</b></p><p><b> end if;</b></p>&
70、lt;p><b> end if;</b></p><p><b> if num=0</b></p><p><b> then</b></p><p> add<=x"1";</p><p> dataout<=data1+x
71、"30";</p><p> elsif num=1</p><p><b> then</b></p><p> add<=x"2";</p><p> dataout<=data2+x"30";</p><p>
72、 elsif num=2</p><p><b> then</b></p><p> add<=x"3";</p><p> dataout<=x"3a";</p><p> elsif num=3</p><p><b>
73、 then</b></p><p> add<=x"4";</p><p> dataout<=data3+x"30";</p><p> elsif num=4</p><p><b> then</b></p><p>
74、 add<=x"5";</p><p> dataout<=data4+x"30";</p><p> elsif num=5</p><p><b> then</b></p><p> add<=x"6";</p>&
75、lt;p> dataout<=x"3a";</p><p> elsif num=6</p><p><b> then</b></p><p> add<=x"7";</p><p> dataout<=data5+x"30"
76、;</p><p> elsif num=7</p><p><b> then</b></p><p> add<=x"8";</p><p> dataout<=data6+x"30";</p><p><b> end
77、if;</b></p><p> end process;</p><p> end change;</p><p> 整點報時聲音使能模塊</p><p><b> sound.vhd</b></p><p> library ieee;</p><p&
78、gt; use ieee.std_logic_1164.all;</p><p> use ieee.std_logic_arith.all;</p><p> use ieee.std_logic_unsigned.all;</p><p> entity sound is</p><p><b> port</b
79、></p><p><b> (</b></p><p><b> timein:</b></p><p> in std_logic_vector(7 downto 0);</p><p><b> enout:</b></p><p>
80、 out std_logic</p><p><b> );</b></p><p> end sound;</p><p> architecture en of sound is</p><p><b> begin</b></p><p> process(
81、timein)</p><p><b> begin</b></p><p> if timein=x"ff"</p><p><b> then</b></p><p> enout<='1';</p><p><b&
溫馨提示
- 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. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 可編程序控制器應(yīng)用技術(shù)課程設(shè)計
- 可編程放大器設(shè)計(模擬電子技術(shù)課程設(shè)計)
- 可編程放大器設(shè)計(模擬電子技術(shù)課程設(shè)計)
- 可編程彩燈控制器課程設(shè)計報告
- 電子技術(shù)課程設(shè)計---彩燈控制器
- 電子技術(shù)課程設(shè)計---路燈控制器設(shè)計
- 電子技術(shù)課程設(shè)計——水位控制器設(shè)計
- 可編程控制器課程設(shè)計報告
- 電子技術(shù)課程設(shè)計報告---彩燈控制器
- 課程設(shè)計-可編程作息時間控制器
- 電子課程設(shè)計---可編程彩燈控制
- 模擬電子技術(shù)課程設(shè)計-彩燈控制器設(shè)計
- 電子技術(shù)課程設(shè)計報告--控制器設(shè)計報告
- 電子技術(shù)課程設(shè)計-智能電梯控制器設(shè)計
- 電子技術(shù)課程設(shè)計-----數(shù)字時鐘
- 電子技術(shù)課程設(shè)計---數(shù)字時鐘
- 電子技術(shù)課程設(shè)計--數(shù)字時鐘
- 電子技術(shù)課程設(shè)計--數(shù)字時鐘
- 數(shù)字時鐘電子技術(shù)課程設(shè)計
- 電子技術(shù)課程設(shè)計---數(shù)字時鐘
評論
0/150
提交評論