![微波爐控制器設(shè)計_第1頁](http://file4.renrendoc.com/view11/M03/1F/32/wKhkGWW16meABgRUAAFtxBAejUA557.jpg)
![微波爐控制器設(shè)計_第2頁](http://file4.renrendoc.com/view11/M03/1F/32/wKhkGWW16meABgRUAAFtxBAejUA5572.jpg)
![微波爐控制器設(shè)計_第3頁](http://file4.renrendoc.com/view11/M03/1F/32/wKhkGWW16meABgRUAAFtxBAejUA5573.jpg)
![微波爐控制器設(shè)計_第4頁](http://file4.renrendoc.com/view11/M03/1F/32/wKhkGWW16meABgRUAAFtxBAejUA5574.jpg)
![微波爐控制器設(shè)計_第5頁](http://file4.renrendoc.com/view11/M03/1F/32/wKhkGWW16meABgRUAAFtxBAejUA5575.jpg)
版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
定時器集成電路的設(shè)計根本功能復(fù)位開關(guān):reset啟動開關(guān):start_cook烹調(diào)時間設(shè)置:set_time烹調(diào)時間顯示:min;sec七段碼測試:test啟動輸出:cook信號描述CLK:外部時鐘。std_logic;RESET:復(fù)位信號,“1〞有效。std_logic;TEST:測試信號“1〞有效。std_logic;SET—TIME:時間設(shè)置“1〞有效。std_logic;DATA[15..0]:4*4BCD數(shù)碼設(shè)置〔59分59秒〕std_logic_vector(15..0);STRT—COOK:烹調(diào)開始“1〞有效。std_logic;1、cook:烹調(diào)進行信號,接繼電器“1〞有效。std_logic;2、min_msb:std_logic_vector(1to7);3、min_lsb:std_logic_vector(1to7);4、sec_msb:std_logic_vector(1to7);5、sec_lsb:std_logic_vector(1to7);設(shè)計分析控制狀態(tài)機:工作狀態(tài)狀態(tài)轉(zhuǎn)換。數(shù)據(jù)裝入電路:根據(jù)控制信號選擇定時時間、測試數(shù)據(jù)或完成信號的裝入。定時器電路:負責(zé)完成烹調(diào)過程中的時間遞減計數(shù)和數(shù)據(jù)譯碼供應(yīng)七段數(shù)碼顯示,同時還可以提供烹調(diào)完成時間的狀態(tài)信號供控制狀態(tài)機產(chǎn)生完成信號。四、模塊設(shè)計控制狀態(tài)機設(shè)計輸入輸出信號ENTITYstate_countrolIS PORT( clk ,done,reset,test,set_time,start_cook :IN std_logic; cook,load_8888,load_clk,load_done :OUT std_logic);END;根據(jù)輸入信號和自身當(dāng)時的狀態(tài)完成狀態(tài)轉(zhuǎn)換和輸出相應(yīng)的信號。Cook:指示烹調(diào)進行中,同時提示計時器減數(shù)。load_8888:指示LOADER裝入完成測試數(shù)據(jù)。load_clk:指示LOADER裝入設(shè)置烹調(diào)時間數(shù)據(jù)。load_done:指示LOADER裝入完成信息數(shù)據(jù)。狀態(tài)分析idle:復(fù)位狀態(tài)。lamp_test:數(shù)碼管測試狀態(tài)。set_clock:烹調(diào)時間設(shè)置狀態(tài)。Timer:減數(shù)定時狀態(tài)。done_msg:完成信息顯示狀態(tài)。程序設(shè)計libraryIEEE;useIEEE.std_logic_1164.all;ENTITYstate_countrolIS PORT( clk ,done,reset,test,set_time,start_cook :IN std_logic; cook,load_8888,load_clk,load_done :OUT std_logic);END;ARCHITECTUREaOFstate_countrolIS TYPESTATE_TYPEIS(idle,lamp_test,set_clock,timer,done_msg); SIGNALnext_state,current_state :STATE_TYPE;BEGIN PROCESS(clk,reset) BEGIN IFreset='1'THEN current_state<=idle; ELSIF(clk'EVENTANDclk='1')THENcurrent_state<=next_state;endif;endPROCESS;PROCESS(current_state,set_time,start_cook,test,done)beginnext_state<=idle;load_8888<='0';load_clk<='0';load_done<='0';cook<='0'; CASEcurrent_stateIS WHENlamp_test=>load_8888<='1';next_state<=idle;WHENset_clock=>load_clk<='1';next_state<=idle;WHENdone_msg=>load_done<='1';next_state<=idle;WHENidle=>iftest='1'thennext_state<=lamp_test;load_8888<='1';elsifset_time='1'thennext_state<=set_clock;load_clk<='1';elsifstart_cook='1'anddone='0'thennext_state<=timer;cook<='1';endif;WHENtimer=>ifdone='1'thennext_state<=done_msg;load_done<='1';elsenext_state<=timer;cook<='1';endif; ENDCASE; ENDPROCESS; ENDa;數(shù)據(jù)裝入電路設(shè)計輸入輸出信號PORT(load_8888,load_clk,load_done:IN std_logic;data:IN std_logic_vector(15downto0); load :OUT std_logic;load_val:OUT std_logic_vector(15downto0));END;數(shù)據(jù)裝入電路根據(jù)輸入信號的描述是組合邏輯電路,類似多路選擇器。數(shù)據(jù)裝入和輸出均為BCD編碼。load_8888:“1〞時,輸出測試數(shù)據(jù)。load_clk:輸出設(shè)置烹調(diào)時間數(shù)據(jù)。load_done:“1〞輸出完成信息數(shù)據(jù)。load:指示TIMER處于數(shù)據(jù)裝入狀態(tài)并裝入有效數(shù)據(jù)。程序設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;ENTITYloaderIS PORT( load_8888,load_clk,load_done:IN std_logic;data:IN std_logic_vector(15downto0); load :OUT std_logic;load_val:OUT std_logic_vector(15downto0));END;ARCHITECTUREaOFloaderIS BEGIN PROCESS(data,load_8888,load_clk,load_done)variabletemp:std_logic_vector(2downto0); BEGIN load<=load_8888orload_doneorload_clk;temp:=load_8888&load_done&load_clk; CASEtempIS WHEN"100"=>load_val<=all_8;WHEN"010"=>load_val<=done;WHEN"001"=>load_val<=data;WHENothers=>null; ENDCASE; ENDPROCESS; ENDa;定時電路設(shè)計輸入輸出信號ENTITYtimerIS PORT(clk:IN std_logic; data:IN std_logic_vector(15downto0);down:IN std_logic;load:IN std_logic;done:out std_logic;min_msb:out std_logic_vector(1to7);min_lsb:out std_logic_vector(1to7);sec_msb:out std_logic_vector(1to7);sec_lsb:out std_logic_vector(1to7));END;定時電路根據(jù)輸入信號的描述是時序邏輯電路,主要由計數(shù)器構(gòu)成。設(shè)計方法采用例化設(shè)計法。電路具有裝入功能、逆計數(shù)功能及數(shù)據(jù)譯碼功能。Load:“1〞時,完成裝入功能。down:“1〞時,執(zhí)行逆計數(shù)功能。Done:表示烹調(diào)完成。min_msbmin_lsbsec_msbsec_lsb:用于驅(qū)動七段數(shù)碼管顯示。注意:需要4個計數(shù)器〔counter4〕,每個計數(shù)器寬度為4。分、秒在個位“10〞進制,在十位上“6〞進制。如“59分:59秒〞。程序設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;ENTITYtimerIS PORT(clk:IN std_logic; data:IN std_logic_vector(15downto0);down:IN std_logic;load:IN std_logic;done:out std_logic;min_msb:out std_logic_vector(1to7);min_lsb:out std_logic_vector(1to7);sec_msb:out std_logic_vector(1to7);sec_lsb:out std_logic_vector(1to7));END;ARCHITECTUREaaOFtimerIScomponentcounter4PORT(clk:IN std_logic; cnt_f_5:IN std_logic;data_in:IN std_logic_vector(3downto0);down:IN std_logic;load:IN std_logic;zero :OUT std_logic; segs :OUT std_logic_vector(1to7));endcomponent;signalzer0,zer1,zer2,zer3:std_logic;signaldown0,down1,down2,down3:std_logic;signaldata0,data1,data2,data3:std_logic_vector(3downto0);signalis_five,is_nine:std_logic;beginis_five<='1';is_nine<='0';data3<=data(15downto12);data2<=data(11downto8);data1<=data(7downto4);data0<=data(3downto0);process(zer0,zer1,zer2,zer3,down)begindone<=zer3andzer2andzer1andzer0;down3<='0';down2<='0';down1<='0';down0<='0';if(down='1')thendown0<='1';endif;if(zer0='1')thendown1<='1';endif;if(zer1='1')thendown2<='1';endif;if(zer2='1')thendown3<='1';endif;endprocess;u3:counter4portmap(clk=>clk,cnt_f_5=>is_five,data_in=>data3,down=>down3,load=>load,zero=>zer3,segs=>min_msb);u2:counter4portmap(clk=>clk,cnt_f_5=>is_nine,data_in=>data2,down=>down2,load=>load,zero=>zer2,segs=>min_lsb);u1:counter4portmap(clk=>clk,cnt_f_5=>is_five,data_in=>data1,down=>down1,load=>load,zero=>zer1,segs=>sec_msb);u0:counter4portmap(clk=>clk,cnt_f_5=>is_nine,data_in=>data0,down=>down0,load=>load,zero=>zer0,segs=>sec_lsb);ENDaa;計數(shù)電路設(shè)計輸入輸出信號ENTITYcounter4IS PORT(clk:IN std_logic; IN std_logic;data_in:IN std_logic_vector(3downto0);down:IN std_logic;load:IN std_logic;zero :OUT std_logic; segs :OUT std_logic_vector(1to7));END;計數(shù)電路根據(jù)輸入信號的描述是時序邏輯電路。電路設(shè)計采用“例化〞設(shè)計方法。具體包括4個需要例化的元件模塊:零指示模塊〔zero_detect〕、譯碼器模塊〔bcd7〕、減法器模塊〔dec4〕、雙端口裝入存放器模塊〔dual_reg4〕。cok:“同步時鐘信號。 Load:“1〞時,且在時鐘為高電平,數(shù)據(jù)data_in被裝入到計數(shù)器;否那么,當(dāng)down為高電平,計數(shù)器開始減數(shù)。cnt_f_5:進制設(shè)置?!?〞執(zhí)行六進制、“0〞執(zhí)行十進制。down:驅(qū)動一個7段數(shù)碼管。計數(shù)器的4位輸出經(jīng)過譯碼器得到。程序設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;ENTITYcounter4IS PORT(clk:IN std_logic; cnt_f_5:IN std_logic;data_in:IN std_logic_vector(3downto0);down:IN std_logic;load:IN std_logic;zero :OUT std_logic; segs :OUT std_logic_vector(1to7));END;ARCHITECTUREaOFcounter4IScomponentzero_detectport(a:IN std_logic_vector(3downto0);zero :OUT std_logic);endcomponent;componentbcd7PORT( q:IN std_logic_vector(3downto0); segments :OUT std_logic_vector(1to7));endcomponent;componentdec4PORT( cnt_f_5:IN std_logic;dec_in:IN std_logic_vector(3downto0); dec_out :OUT std_logic_vector(3downto0));endcomponent;componentdual_reg4PORT( a:IN std_logic_vector(3downto0);b:IN std_logic_vector(3downto0);clk:IN std_logic;lda:IN std_logic;ldb:IN std_logic; q :OUT std_logic_vector(3downto0));endcomponent;signalcount:std_logic_vector(3downto0);signaltemp:std_logic_vector(3downto0); BEGINu0:zero_detectportmap(a=>count,zero=>zero);u1:bcd7portmap(q=>count,segments=>segs);u2:dec4portmap(cnt_f_5=>cnt_f_5,dec_in=>count,dec_out=>temp);u3:dual_reg4portmap(a=>data_in,b=>temp,clk=>clk,lda=>load,ldb=>down,q=>count);ENDa;零指示模塊〔zero_detect〕設(shè)計輸入輸出信號ENTITYzero_detectIS PORT(a:IN std_logic_vector(3downto0); zero :OUT std_logic);END;該電路根據(jù)輸入信號的描述是組合電路。程序設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;ENTITYzero_detectIS PORT( a:IN std_logic_vector(3downto0); zero :OUT std_logic);END;ARCHITECTUREaOFzero_detectIS BEGIN zero<='1'WHENa="0000"else'0';ENDa;譯碼器模塊〔bcd7〕設(shè)計輸入輸出信號ENTITYbcd7IS PORT(q:IN std_logic_vector(3downto0); segments :OUT std_logic_vector(1to7));END;該電路根據(jù)輸入信號的描述是組合電路。程序設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;ENTITYbcd7IS PORT(q:IN std_logic_vector(3downto0); segments :OUT std_logic_vector(1to7));END;ARCHITECTUREaOFbcd7IS BEGINprocess(q)BEGINcaseqisWHEN"0000"=>segments<="1111110";WHEN"0001"=>segments<="1100000";WHEN"0010"=>segments<="1011011";WHEN"0011"=>segments<="1110011";WHEN"0100"=>segments<="1100101";WHEN"0101"=>segments<="0110111";WHEN"0110"=>segments<="0111111";WHEN"0111"=>segments<="1100010";WHEN"1000"=>segments<="1111111";WHEN"1001"=>segments<="1110111";WHEN"1010"=>segments<="1111001";WHEN"1011"=>segments<="0111001";WHEN"1100"=>segments<="0101001";WHEN"1101"=>segments<="0011111";WHENothers=>segments<="0000000";endcase;endprocess;ENDa;減法器模塊〔dec4〕設(shè)計輸入輸出信號ENTITYdec4IS PORT( cnt_f_5:IN std_logic;dec_in:IN std_logic_vector(3downto0); dec_out :OUT std_logic_vector(3downto0));END;該電路根據(jù)輸入信號的描述是組合電路。程序設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;ENTITYdec4IS PORT( cnt_f_5:IN std_logic;dec_in:IN std_logic_vector(3downto0); dec_out :OUT std_logic_vector(3downto0));END;ARCHITECTUREaOFdec4ISsignalmaxval:std_logic_vector(3downto0); BEGINmaxval<="0101"WHENcnt_f_5='1'else"1001";dec_out<=maxvalWHENdec_in="0000"elsemaxval-1;ENDa;雙端口裝入存放器模塊〔dual_reg4〕設(shè)計輸入輸出信號ENTITYdual_reg4IS PORT( a:IN std_logic_vector(3downto0);b:IN std_logic_vector(3downto0);clk:IN std_logic;lda:IN std_logic;ldb:IN std_logic; q :OUT std_logic_vector(3downto0));END;該電路根據(jù)輸入信號的描述是時序電路。程序設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;ENTITYdual_reg4IS PORT( a:IN std_logic_vector(3downto0);b:IN std_logic_vector(3downto0);clk:IN std_logic;lda:IN std_logic;ldb:IN std_logic; q :OUT std_logic_vector(3downto0));END;ARCHITECTUREaOFdual_reg4IS BEGINprocess(clk)beginifclk'eventandclk='1'thenif(lda='1')thenq<=a;elsif(ldb='1')thenq<=b;endif;endif;endprocess;ENDa;主電路microwave_timer設(shè)計輸入輸出信號ENTITYmicrowave_timerIS PORT(clk:IN std_logic;reset:IN std_logic; data:IN std_logic_vector(15downto0);test:IN std_logic;set_time:IN std_logic;start_cook:IN std_logic;cook:out std_logic;min_msb:out std_logic_vector(1to7);min_lsb:out std_logic_vector(1to7);sec_msb:out std_logic_vector(1to7);sec_lsb:out std_logic_vector(1to7));END;總體電路根據(jù)輸入信號的描述是時序電路。由三大模塊構(gòu)成:控制狀態(tài)機〔state_countrol〕:工作狀態(tài)狀態(tài)轉(zhuǎn)換。數(shù)據(jù)裝入電路〔loader〕:根據(jù)控制信號選擇定時時間、測試數(shù)據(jù)或完成信號的裝入。定時器電路〔timer〕:負責(zé)完成烹調(diào)過程中的時間遞減計數(shù)和數(shù)據(jù)譯碼供應(yīng)七段數(shù)碼顯示,同時還可以提供烹調(diào)完成時間的狀態(tài)信號供控制狀態(tài)機產(chǎn)生完成信號??傮w設(shè)計方法:時序電路設(shè)計、組合電路設(shè)計。狀態(tài)機電路設(shè)計、多層例化電路設(shè)計。主程序microwave_timer設(shè)計LibraryIEEE;useIEEE.std_logic_1164.all;useIEEE.std_logic_arith.all;useIEEE.std_logic_unsigned.all;ENTITYmicrowave_timerIS PORT(clk:IN std_logic;reset:IN std_logic; data:IN std_logic_vector(15downto0);test:IN std_logic;set_time:IN std_logic;start_cook:IN std_logic;cook:out std_logic;min_msb:out std_logic_vector(1to7);min_lsb:out std_logic_vector(1to7);sec_msb:out std_logic_vector(1to7);sec_lsb:out std_logic_vector(1to7));END;ARCHITECTUREaaOFmicrowave_timerIScomponentstate_countrolPORT( clk ,done,reset,test,set_time,start_cook :IN std_logic; cook,load_8888,load_clk,load_done :OUT std_logic);endcomponent;componentloaderPORT( load_8888,load_clk,load_done:IN std_logic;data:IN std_logic_vector(15downto0); load :OUT std_logic;
溫馨提示
- 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)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度環(huán)保設(shè)備研發(fā)項目委托合同
- 遼寧2025年遼寧中醫(yī)藥大學(xué)附屬醫(yī)院招聘42人筆試歷年參考題庫附帶答案詳解
- 蘇州江蘇蘇州大學(xué)科研助理崗位招聘9人筆試歷年參考題庫附帶答案詳解
- 百色2025年廣西百色學(xué)院招聘195人筆試歷年參考題庫附帶答案詳解
- 溫州浙江溫州市司法局招聘行政復(fù)議輔助人員筆試歷年參考題庫附帶答案詳解
- 杭州浙江杭州市余杭區(qū)良渚杭行幼兒園招聘合同制教師19人筆試歷年參考題庫附帶答案詳解
- 2025年中國多功能數(shù)字功放式調(diào)音臺市場調(diào)查研究報告
- 2025至2031年中國頂置式沙缸行業(yè)投資前景及策略咨詢研究報告
- 2025至2031年中國編織纏繞耐熱膠管行業(yè)投資前景及策略咨詢研究報告
- 2025年生命體癥檢測儀項目可行性研究報告
- 中建安裝公司成本管理相關(guān)制度講解
- 2024-2025學(xué)年外研版九年級英語上學(xué)期考點 專題03 首字母填空(10篇)【考題猜想】
- 2024秋期國家開放大學(xué)本科《納稅籌劃》一平臺在線形考(形考任務(wù)一至五)試題及答案
- 2023年西安經(jīng)濟技術(shù)開發(fā)區(qū)管委會招聘考試真題
- 排水管網(wǎng)溯源排查項目專項培訓(xùn)
- 教育案例評選細則(3篇模板)
- 數(shù)字孿生水利工程建設(shè)技術(shù)導(dǎo)則(試行)
- 2024年山東化工職業(yè)學(xué)院單招職業(yè)技能測試題庫及答案解析
- 方案偏離處理措施
- (2024年)剪映入門教程課件
- 《寵物飼養(yǎng)》課程標(biāo)準
評論
0/150
提交評論