




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、Hunan Institute of Science and Technology自動打鈴系統(tǒng)設(shè)計說明書學生姓名:口號班級:電子09-2BF報告提交日期:2011-11-28湖南理工學院物電學院一、題目及要求簡介1. 設(shè)計題目2.總體要求簡介二、設(shè)計方案說明三、各部分功能介紹及程序1. 系統(tǒng)框圖2.選擇的FPGA芯片及配置3.各模塊(元件)說明四、仿真結(jié)果1. 計時進位2. 手動校時3. 六點整鬧鈴五、說明 1.輸入激勵信號說明2.輸出結(jié)果說明六、源程序1.頂層模塊2.模式控制子模塊3.計時及調(diào)整子模塊4.鬧鈴及調(diào)整子模塊5. 顯示子模塊七、參考文獻 101114、設(shè)
2、計題目及要求簡介1. 設(shè)計題目基于FPGA的自動打鈴系統(tǒng)的設(shè)計與實現(xiàn)2. 總體要求簡介(1) 基本計時和顯示功能 24小時制顯示 動態(tài)掃描顯示 顯示格式:88-88-88(2) 能設(shè)置當前時間(含時、分)(3) 能實現(xiàn)基本打鈴功能,上午06:00起床鈴,打鈴5秒二、設(shè)計方案說明本系統(tǒng)采用自頂向下的模塊化設(shè)計方法,將數(shù)字鬧鐘按照功能實現(xiàn)分為模 式控制模塊、計時及調(diào)整模塊、鬧鈴及調(diào)整模塊、顯示模塊。系統(tǒng)調(diào)整部分軟件 控制流程示意圖如圖2-1所示。開始mode校時功能鬧鈴功能1調(diào)整小時1調(diào)整f?小時LD hour 亮切?turn 1切換調(diào)整分鐘1調(diào)整分鐘LD min 亮change/返回計時返回計時
3、LD_alert 亮/2-1三、各部分功能介紹及程序1. 系統(tǒng)框圖頂層電路主要由FPGA實現(xiàn),輸出信號接到八位數(shù)碼管、LED指示燈及揚聲器上,系統(tǒng)框圖如圖3-1所示。1clk : Altera sL.Alertclk_1k頂LD_alertLD_hourmode層LD minturn模selchange塊decodeout八位數(shù)碼管顯示模塊圖3-12. 選擇的FPGA芯片及配置本系統(tǒng)選擇ACEX1I系列的EP1K10TC100-芯片,由于FPGA器件是基于SRAM吉構(gòu)的,具有易失性,在此采用被動串行配置(PS)方式,由外部的計算 機控制配置過程,使用USB-Blaster下載電纜下載程序。3.
4、 各模塊(元件)說明3.1頂層文件端口說明module alarmclock(clk,clk_1k,mode,cha nge,tur n, sel,decodeout,alert.LD_alert,LD_hour,LD_mi n);input clk,clk_1k,mode,cha nge,tu rn;out put alert,LD_alert,LD_hour,LD_mi n;out put2:0sei;out pu t7:0 decodeout;reg7:0 hour,m in, sec,hour1, min 1,sec1,ahour,am in;reg1:0 m,fm, nu m1, n
5、u m2, num3,nu m4;reg1:0 l oop 1,lo op 2,lo op 3,lo op4 ,so und;reg LD_alert,LD_hour,LD_mi n;reg clk_1HZ,clk_2H Z,min clk,hclk;reg alert1,ear;reg coun t1,co un t2,co un ta,co untb;wire ct1,ct2,cta,ctb,m_clk,h_clk;reg 2:0 sel;reg 7:0 decodeout;3.2頂層文件引腳映射說明輸入引腳5個,輸出引腳15個,映射關(guān)系如圖3-2所示。Named: RNode Namer
6、ecton|1Locator|1a LD alertOtitpu:PIIN 202aLD hourOutputPIN 2IALDjninOutputPHM Z214a眺rt(Xitputpin 235» changeInputPIM工6A dKInput|PIIN 277dk IkInput卩酮 233a decodeoutfOOutputPirC299EF decodeoutflOutputPIM-301Q廿 dccodeout20OutputP112decodeout3jOutputRDM 3312e decodeoutOutputP1SOutputPIN斗14e decodeo
7、ut6OutputPIIN 4515 1CF decodeoutnOutputpirj i616M modeInputPIN 4717a sel 01OutputPDMJI3毎e selElOutputPirc%19e更1國OutputPirj 5020AturnInputPirj 55圖3-23.23各子模塊說明 模式控制子模塊此模塊通過mode信號0、1、2三種狀態(tài)的控制,使系統(tǒng)分別在計時、鬧鈴、校時三種模式下工作。 計時及調(diào)整子模塊當mode信號為0時,在基準時鐘信號elk下,系統(tǒng)按60進制加1計時;當mode信號為2時,若檢測到turn信號的脈沖時,在校對小時和分鐘之間作切換,當前的調(diào)
8、整狀態(tài)可通過LD_hour或LD_min指示燈查看, change信號每來一個脈沖,計數(shù)器加1,這樣可以將系統(tǒng)當前的時間調(diào)到任意時刻。 鬧鈴及調(diào)整子模塊此模塊下,mode信號為2,當檢測到turn信號的脈沖時,鬧鈴定時在小時和分鐘之間作切換,當前的調(diào)整狀態(tài)可通過LD_hour或LD_min指示燈查看,ehange信號每來一個脈沖,計數(shù)器加1,這樣可以給系統(tǒng)設(shè)置任意時刻的鬧鈴,設(shè)置完成之后 LD_alert指示燈會常亮(注:此模塊程 序中已經(jīng)加入了六點整鬧鈴控制語句)。 顯示子模塊此模塊用于將實時時間(包括調(diào)整過程中時鐘的狀態(tài))輸出到八位數(shù)碼管中,通過sel信號位選的控制動態(tài)掃描顯示當前時鐘。四
9、、仿真結(jié)果1. 計時進位(以23:59:59為例)當秒計時滿59時,向分鐘進位并重新開始計時;當分鐘計時滿59時,向小時進位并重新開始計時;當小時計時滿 23時,清零并重新開始計時,23:59:592. 手動校時(以06:05為例)給mode輸入2個連續(xù)的高脈沖使系統(tǒng)進入校時模式,再給change輸入6個連續(xù)高脈沖使小時調(diào)到六點,此過程中LD_hour指示燈亮,再給turn 一個高 脈沖切換到調(diào)分鐘狀態(tài),再給 change輸入5個連續(xù)高脈沖使小時調(diào)到五分鐘,此過程中LD_min指示燈亮,再給mode個高脈沖回到計時模式,此后系統(tǒng)從06:05分開始計時,仿真波形如圖4-2所示。elk clk_l
10、k mode tiirnH hourQ limS secLD.hgLD min_rL_rLd_rL_rLd_rL_rLd_rL_rLC_rT_rL_rL_ 而了 oe 冥加可X巧®廠copgoTVoFVTTydZXZ105)01圖4-23. 六點整鬧鈴鬧鈴指示燈LD_alert常亮表明已經(jīng)設(shè)置鬧鈴,06:00開始鬧鈴5秒,仿真波形如圖4-3所示。mTi_R_RrL_RrLJ"LRTirLrL_rLR_rL_rLR_rLiMinimninHnmnimmnuininmiHiuiininMiunniinimI_i_:I;一i_I:elk clk_lk ntdt turn chan
11、ge hour minEtc alsrtLD alertroQc10(00. y-JULILJUIUlUIUlLJLJnJIUlUUlLJILJIUlUILJnJn!f061! ! ' 00 山! iQg 、乂陽 J : X04ry05圖4-3五、說明1.輸入激勵信號說明elk :標準時鐘信號;clk_1k :數(shù)碼管掃描時鐘;mode功能模式控制信號,為0:計時功能;為1:鬧鈴功能;為2:校時功能;cha nge:接按鍵,手動調(diào)整時,每按一次,計數(shù)器加1;2.輸出結(jié)果說明alert :輸出到揚聲器的信號,用于產(chǎn)生鬧鈴聲;sel :數(shù)碼管位選信號,選擇當前要顯示的位置;decodeout
12、 :數(shù)碼管段選信號,顯示當前數(shù)字;LD_alert :接LED,燈亮表示設(shè)置了鬧鈴;LD_hour:接LED燈亮表示正在調(diào)整小時;LD_min:接LED,燈亮表示正在調(diào)整分鐘。六、源程序1、頂層電路模塊 module alarmclock(clk,clk_1k,mode,cha nge,tum,sel,decodeout,alert,LD_alert,LD_hour,LD_min);input clk,clk_1k,mode,change,turn;output alert,LD_alert,LD_hour,LD_min;output2:0 sel;output7:0 decodeout;re
13、g7:0 hour,min,sec,hour1,min1,sec1,ahour,amin;reg1:0 m,fm,num1,num2,num3,num4;reg1:0 loop1,loop2,loop3,loop4,sound;reg LD_alert,LD_hour,LD_min;reg clk_1HZ,clk_2HZ,minclk,hclk;reg alert1,ear;reg count1,count2,counta,countb;wire ct1,ct2,cta,ctb,m_clk,h_clk;reg 2:0 sel;reg 7:0 decodeout;/調(diào)用子模塊 modecontr
14、ol modecontrol(mode,change,turn,m,count1,count2,counta,countb);timer timer(m,clk,count1,counta,turn,hour1,min1,sec1);bell bell(clk,ear,ct2,ctb,alert1,hour1,min1,sec1,ahour,amin);display display(m,hour1,min1,sec1,ahour,amin,sel,decodeout);endmodule2.模式控制子模塊 module modecontrol(mode,change,turn,m,count
15、1,count2,counta,countb);input mode,change,turn;output m,count1,count2,counta,countb;reg count1,count2,counta,countb;reg LD_hour,LD_min;reg fm,m;always (posedge mode)/控制系統(tǒng)在三種功能間轉(zhuǎn)換begin if(m = 2) m <= 0;else m <= m+1; end always (posedge turn)fm<= fm;always/產(chǎn)生 count1,count2,counta,countb四個信號b
16、egin/校時模式case(m) 2:begin if(fm)begin count1 <= change; LD_min,LD_hour <= 2; endelsebegin counta <= change; LD_min,LD_hour <= 1; endcounta,countb <= 0;/鬧鈴模式end1:begin if(fm)begin count2 <= change; LD_min,LD_hour <= 2; end else begin countb <= change; LD_min,LD_hour <= 1; en
17、d count1,countb <= 2'b00;enddefault:count1,count2,counta,countb,LD_min,LD_hour <= 0;/計時模式endcaseend endmodule3. 計時及調(diào)整子模塊 module timer(m,clk,count1,counta,turn,hour1,min1,sec1);input m,clk,count1,counta,turn;output7:0 hour1,min1,sec1;reg1:0 num3,num4,loop3,loop4;reg ct1,cta;reg clk_1HZ,clk_
18、2HZ,minclk,hclk,m_clk,h_clk;always (posedge clk)clk_2HZ<=clk_2HZ;always (posedge clk_2HZ)clk_1HZ<=clk_1HZ;if(count1) beginalways (negedge clk)if(loop3 = 3) num3 <= 1;else begin loop3 <= loop3+1;num3 <= 0; end endelse begin loop3 <= 0; num3 <= 0; end always (negedge clk)if(counta
19、) beginif(loop4 = 3) num4 <= 1;else begin loop4 <= loop4 + 1; num4 <= 0; end endelse begin loop4 <= 0;num4 <= 0; end assign ct1=(num3&clk)|(!num3&m_clk);/ct1 用于及計時、較時中的分鐘計數(shù)assign cta=(num4&clk)|(!num3&h_clk);/秒計時和秒調(diào)整進程/cta 用于及計時、較時中的小時計數(shù)always (posedge clk_1HZ)if(!(sec
20、1A8'h59)|tum&(!m)begin sec1 <= 0; if(!(turn&(!m) minclk <= 1; end/按住"turn"秒信號清0else beginif(sec13:0 = 4'b1001)begin sec13:0 <= 4'b0000; sec17:4 <= sec17:4 + 1;endelse sec13:0 <= sec13:0 + 1; minclk <= 0;endassign m_clk = minclk | count1;beginalways (po
21、sedge ct1)/分計時和分調(diào)整進程if(min1 = 8'h59) begin min1 <= 0;hclk <= 1; endelse begin if(min13:0 = 9)begin min13:0 <= 0; min17:4 <= min17:4 + 1; end else min13:0 <= min13:0 + 1; hclk <= 0;endendassign h_clk = hclk | counta;always (posedge cta)/小時計時和小時調(diào)整進程if(hour1 = 8'h23) hour1 <
22、;= 0;else if(hour13:0 = 9)begin hour17:4 <= hour17:4 + 1; hour13:0 <= 0; end else hour13:0 <= hour13:0 + 1;endmodule4. 鬧鈴及調(diào)整子模塊 module bell(clk,ear,ct2,ctb,alert1,hour1,min1,sec1,ahour,amin);input clk,ct2,ctb,count2,countb;output alert,ahour,amin;reg1:0 num1,num2,loop1,loop2;reg7:0 ahour,am
23、in;reg ct2,ctb;reg alert,alert1,ear,sound;always (posedge clk)beginif(sound = 3) begin sound <= 0;ear<=1; end/ear用于產(chǎn)生或屏蔽聲音信號else begin sound <= sound + 1;ear <= 0; endend always (negedge clk)如果長按"change"信號,則生成num1信號用于連續(xù)快速加1if(count2) beginif(loop1 = 3) num1 <= 0;else begin l
24、oop1 <= loop1 + 1;num1 <= 0; endelseendbegin loop1 <= 0; num1 <= 0; endalways (negedge clk)if(countb) beginif(loop2 = 3) num2 <= 1;else begin loop2 <= loop2+1;num2 <= 0;end endelse begin loop2 <= 0; num2 <= 0; end assign ct2 = (num1&clk)|(!num1&count2);/ct2 用于定時狀態(tài)下
25、調(diào)整分鐘信號assign ctb = (num2&clk)|(!num2&countb);/ctb 用于定時狀態(tài)下調(diào)整小時信號always (posedge ct2)/鬧鐘定時功能中的分鐘調(diào)整進程always (posedge ctb)/鬧鐘定時功能中的小時調(diào)整進程if(amin = 8'h59) amin <= 0;else if(amin3:0 = 9)begin amin7:4 <= amin7:4 + 1; amin3:0 <= 0; end else amin3:0 <= amin3:0 + 1;if(ahour = 8'h23
26、) ahour <= 0;else if(ahour3:0 = 9)begin ahour7:4 <= ahour7:4 + 1; ahour3:0 <= 0; end else ahour3:0 <= ahour3:0 + 1;alwaysbeginahour=8'h06;amin=8'h00;asec=8'h00;endalways/ 六點鐘鬧鈴,持續(xù) 5 秒beginif(hour1=ahour)&&(min1=8'h00)&&(sec1<8'h05)alert1<=1;else
27、alert1<=0;/產(chǎn)生鬧鈴音end assign alert=(alert1)?clk_1k&clk:0);Endmodule5. 顯示子模塊 module display(m,hour1,min1,sec1,ahour,amin,sel,decodeout);input7:0 hour1,min1,sec1,ahour,amin;input clk_1k;output2:0 sel;output decodeout;reg7:0 hour,min,sec,hour1,min1,sec1,ahour,amin;reg23:0 din;reg2:0 sel;reg3:0 dec
28、;reg7:0 decodeout;alwayscase(m)3'b00: begin hour <= hour1; min <= min1; sec <= sec1; end/計時狀態(tài)下的時、分、秒顯示3'b01: begin hour <= ahour; min <= amin; sec <= 8'hzz; end/定時狀態(tài)下的時、分、秒顯示3'b10: begin hour <= hour1; min <= min1; sec <= 8'hzz; endendcaseassign LD_alert = (ahour|amin)?1:0;always (posedge clk_1k)sel<=sel+1;assign din=hour,min,sec;always (sel,din)begincase(sel)end/校時
溫馨提示
- 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)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 上海護膚美業(yè)加盟合同范例
- 主機租賃服務(wù)合同范例
- 公租房租戶購買合同范例
- 保險中介合同范例
- 小學教育工作總結(jié)
- 一年級的探索之旅
- 一年級數(shù)學(上)計算題專項練習集錦
- 2025年城南舊事考試題及答案
- 2025年玉林職校面試試題及答案
- 2025年百麗運營面試題及答案
- 2025年阜陽幼兒師范高等專科學校單招職業(yè)技能考試題庫學生專用
- 2025年安徽工業(yè)經(jīng)濟職業(yè)技術(shù)學院單招職業(yè)適應(yīng)性測試題庫附答案
- 2025湖北市政建設(shè)集團有限公司管理崗位公開競聘14人筆試參考題庫附帶答案詳解
- 2024年07月江蘇銀行招考筆試歷年參考題庫附帶答案詳解
- 2023中華護理學會團體標準-注射相關(guān)感染預(yù)防與控制
- 生命科學引論:遺傳學的魅力
- 北京市建設(shè)工程造價管理協(xié)會 京價協(xié)2015011
- 小學數(shù)學人教四年級下冊圖形的運動軸對稱教案詳案
- 招貼設(shè)計 課件完整版
- 住宅房屋樓層修正系數(shù)表
- 高層住宅采暖施工方案有地暖
評論
0/150
提交評論