




已閱讀5頁(yè),還剩8頁(yè)未讀, 繼續(xù)免費(fèi)閱讀
版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
課 程 設(shè) 計(jì) 課程名稱(chēng) 硬件描述語(yǔ)言與EDA技術(shù)課程設(shè)計(jì) 題目名稱(chēng) 簡(jiǎn)易微波爐控制器 學(xué)生學(xué)院 材料與能源學(xué)院 專(zhuān)業(yè)班級(jí) 學(xué) 號(hào) 學(xué)生姓名 指導(dǎo)教師 陳先朝 2017 年 6 月 11 日目錄設(shè)計(jì)內(nèi)容及功能要求3設(shè)計(jì)思路3(1):要求能控制烹調(diào)的開(kāi)關(guān)3(2):要求要顯示烹調(diào)狀態(tài)的進(jìn)行與結(jié)束3(3):要求設(shè)置固定的烹調(diào)時(shí)間,并顯示烹調(diào)所剩時(shí)間3Verilog源程序4程序分析5(1):端口定義5(2):加數(shù)器和減數(shù)數(shù)器的設(shè)計(jì)5(3):數(shù)碼管的顯示6編譯及配置7硬件驗(yàn)證及現(xiàn)象觀(guān)察8遇到的問(wèn)題及解決方法9(1):9(2):9(3):9總結(jié)設(shè)計(jì)與體會(huì)10參考文獻(xiàn)10設(shè)計(jì)內(nèi)容及功能要求簡(jiǎn)易微波爐:設(shè)計(jì)一個(gè)簡(jiǎn)易微波爐控制器,要求能控制烹調(diào)的開(kāi)關(guān),并顯示烹調(diào)狀態(tài)進(jìn)行結(jié)束。同時(shí),設(shè)置固定烹調(diào)時(shí)間,并顯示烹調(diào)所剩時(shí)間(假設(shè)系統(tǒng)最長(zhǎng)的烹調(diào)時(shí)間為9秒)。設(shè)計(jì)思路要設(shè)計(jì)一個(gè)簡(jiǎn)易微波爐(1):要求能控制烹調(diào)的開(kāi)關(guān)這里可以在模塊里定義一個(gè)輸入變量,然后在always過(guò)程塊中通過(guò)if語(yǔ)句來(lái)實(shí)現(xiàn)微波爐的開(kāi)關(guān),同樣的道理可以再定義一個(gè)變量用來(lái)啟動(dòng)烹調(diào)。(2):要求要顯示烹調(diào)狀態(tài)的進(jìn)行與結(jié)束這里可以通過(guò)控制一個(gè)LED燈的暗亮來(lái)實(shí)現(xiàn),暗代表烹調(diào)結(jié)束,亮代表烹調(diào)進(jìn)行,當(dāng)烹調(diào)啟動(dòng)的時(shí)候LED等就會(huì)亮,當(dāng)烹調(diào)結(jié)束或暫停的時(shí)LED燈就會(huì)暗。(3):要求設(shè)置固定的烹調(diào)時(shí)間,并顯示烹調(diào)所剩時(shí)間這里就要用到數(shù)碼管,用數(shù)碼管來(lái)顯示時(shí)間,然后定義一個(gè)脈沖,通過(guò)九進(jìn)制加數(shù)器來(lái)逐步加一來(lái)設(shè)置固定烹調(diào)時(shí)間,最后通過(guò)一個(gè)九進(jìn)制減數(shù)器來(lái)顯示烹調(diào)所剩時(shí)間。Verilog源程序 module weibolu(open,add,start,clk_1,outa,out_led1);output reg 7:0 outa;output reg 7:0 out_led1;input open,add,start,clk_1;reg 3:0 a,b;always (posedge clk_1) begin if(a=4b1010) a=4b0000; else if(add&!start) a=a+1; else if(start&a!=0) begin a=a-1;out_led1=8b00000001;end else if(a=0| !start) out_led10=0; end always (a) begin if(open) begin case(a) 4b0000:outa=8b00111111; 4b0001:outa=8b00000110; 4b0010:outa=8b01011011; 4b0011:outa=8b01001111; 4b0100:outa=8b01100110; 4b0101:outa=8b01101101; 4b0110:outa=8b01111101; 4b0111:outa=8b00000111; 4b1000:outa=8b01111111; 4b1001:outa=8b01101111; default:outa=8b00000000; endcase end else outa=8b00000000; end endmodule 程序分析(1):端口定義module weibolu(open,add,start,clk_1,outa,out_led1);output reg 7:0 outa;output reg 7:0 out_led1;input open,add,start,clk_1;reg 3:0 a,b;這部分代碼定義了6個(gè)端口,其中open、add、start、clk_1為輸入端口,open用來(lái)控制微波爐的總開(kāi)關(guān),add用來(lái)逐一加數(shù)實(shí)現(xiàn)設(shè)置固定時(shí)間功能,start用來(lái)啟動(dòng)或暫停烹調(diào),clk_1則作為加數(shù)器和減數(shù)器的時(shí)鐘脈沖。outa和out_led1為輸出端,outa作為數(shù)碼管的輸入,用來(lái)顯示時(shí)間,out_led1作為L(zhǎng)ED燈的輸入,用來(lái)控制LED燈的亮暗。a和b是自行定義的寄存器變量,用于存儲(chǔ)數(shù)據(jù)。(2):加數(shù)器和減數(shù)數(shù)器的設(shè)計(jì) always (posedge clk_1) begin if(a=4b1010) a=4b0000; else if(add&!start) a=a+1; else if(start&a!=0) begin a=a-1;out_led1=8b00000001;end else if(a=0| !start) out_led10=0; end 這部分代碼用來(lái)實(shí)現(xiàn)加數(shù)器和減數(shù)器:1、當(dāng)clk_1脈沖上升沿來(lái)臨的時(shí)候,先判斷a是否等于1010(10),如果滿(mǎn)足則清0,實(shí)現(xiàn)九進(jìn)制功能;2、接著判斷(add&!start)是否滿(mǎn)足,滿(mǎn)足則a+1,因?yàn)楫?dāng)按鍵add按下的時(shí)候?yàn)楦唠娖?,松開(kāi)的時(shí)候?yàn)榈碗娖?,按鈕start推上的時(shí)候?yàn)楦唠娖剑葡碌臅r(shí)候?yàn)榈碗娖?,只有?dāng)烹調(diào)結(jié)束或暫停的時(shí)候才能通過(guò)按鍵add來(lái)進(jìn)行設(shè)置固定時(shí)間,按一次計(jì)數(shù)器就+1,所以是(add&!start);3、接著判斷(start&a!=0)是否滿(mǎn)足,滿(mǎn)足則a-1和令out_led1=8b00000001,因?yàn)楫?dāng)start推下的時(shí)候這位暫停狀態(tài),所以就停止倒計(jì)時(shí),當(dāng)a=0的時(shí)候即烹調(diào)結(jié)束,所以也停止倒計(jì)時(shí),所以為(start&a!=0)。同時(shí)這里的out_led1為8位二進(jìn)制輸出,每一位控制一盞LED燈,當(dāng)為高電平時(shí),LED燈才會(huì)亮,這里只需第一盞燈亮,所以第一位賦為1,其余7位賦為0。4、最后當(dāng)滿(mǎn)足(a=0|!start)時(shí),out_led1的第一位賦為0,即當(dāng)烹調(diào)結(jié)束后或當(dāng)按鈕start推下暫停時(shí),LED燈滅,表示烹調(diào)結(jié)束或暫停狀態(tài)。(3):數(shù)碼管的顯示always (a) begin if(open) begin case(a) 4b0000:outa=8b00111111; 4b0001:outa=8b00000110; 4b0010:outa=8b01011011; 4b0011:outa=8b01001111; 4b0100:outa=8b01100110; 4b0101:outa=8b01101101; 4b0110:outa=8b01111101; 4b0111:outa=8b00000111; 4b1000:outa=8b01111111; 4b1001:outa=8b01101111; default:outa=8b00000000; endcase end else outa=8b00000000; end endmodule 這部分代碼用來(lái)實(shí)現(xiàn)數(shù)碼管的顯示,拿來(lái)顯示烹調(diào)的時(shí)間。1、通過(guò)判斷(open)是否為真,即按鈕open是否推上,如果是則數(shù)碼管顯示數(shù)字,否者則將outa賦為8b00000000,即數(shù)碼管不顯示任何數(shù)字,從而實(shí)現(xiàn)了微波爐開(kāi)和關(guān)的功能。2、接著通過(guò)case語(yǔ)句,以a變量作為數(shù)碼管譯碼器的輸入,讓數(shù)碼管顯示相應(yīng)的數(shù)字。編譯及配置代碼寫(xiě)好后進(jìn)行編譯,編譯成功無(wú)錯(cuò)誤后為各個(gè)輸入輸出端口配置管腳如下圖:其中,clk_1分配在一個(gè)1kHz的時(shí)鐘信號(hào)上,即每個(gè)一秒就有一個(gè)時(shí)鐘上升沿,從而實(shí)現(xiàn)每秒倒計(jì)時(shí);add分配在一個(gè)按鍵key1上,每按下一次都會(huì)產(chǎn)生一個(gè)電平信號(hào)1給加數(shù)器,從而實(shí)現(xiàn)計(jì)數(shù)器+1功能;open和start都分配在一個(gè)推動(dòng)按鈕sw1和sw2上,推上則會(huì)產(chǎn)生一個(gè)持續(xù)的高電平,從而實(shí)現(xiàn)開(kāi)關(guān)微波爐和啟動(dòng)暫停烹調(diào)的功能;outa的8位分配在相應(yīng)的數(shù)碼管管腳上,使數(shù)碼管顯示相應(yīng)的數(shù)字;out_led1的8為分配在相應(yīng)的LED燈上,控制LED燈的亮和滅,從而實(shí)現(xiàn)顯示烹調(diào)狀態(tài)的功能。管腳配置完畢后再次編譯,編譯成功無(wú)錯(cuò)誤后便在CPLD/FPGA實(shí)踐系統(tǒng)上下載,進(jìn)行硬件驗(yàn)證情況。硬件驗(yàn)證及現(xiàn)象觀(guān)察管腳配置完畢后再次編譯,編譯成功無(wú)錯(cuò)誤后在CPLD/FPGA實(shí)踐系統(tǒng)上下載,進(jìn)行硬件驗(yàn)證情況。現(xiàn)象:當(dāng)按鈕sw1推上,數(shù)碼管開(kāi)始顯示數(shù)字0,然后每按下按鍵key1一次,數(shù)碼管上的數(shù)字會(huì)加1,滿(mǎn)9會(huì)重新變回0,加到需要的時(shí)間后,將按鈕sw2推上,數(shù)碼管上的數(shù)字則會(huì)開(kāi)始進(jìn)行倒計(jì)時(shí),每秒減1,D1燈也會(huì)亮,若在倒計(jì)時(shí)過(guò)程中將按鈕sw2推下,倒計(jì)時(shí)則會(huì)停止在當(dāng)前的數(shù)字,D2燈也會(huì)隨之而滅,把sw2再次推上,數(shù)碼管從當(dāng)前的數(shù)字繼續(xù)進(jìn)入倒計(jì)時(shí),D1燈也重新亮了起來(lái),當(dāng)數(shù)碼管上的數(shù)字減至0時(shí),停止減數(shù),數(shù)碼管持續(xù)顯示0,D1燈滅,此時(shí)把sw2按鈕推下后則可繼續(xù)通過(guò)按鍵key1來(lái)繼續(xù)讓數(shù)碼管加1,然后重復(fù)以上的步驟即可重復(fù)現(xiàn)象。參考文獻(xiàn)(1) 自編指導(dǎo)書(shū);(2) Verilog與EDA相關(guān)教程:a) 王金明等編著,EDA技術(shù)與Verilog HDL設(shè)計(jì) ,電子工業(yè)出版社,2013年;b) 艾明晶編著,EDA技術(shù)實(shí)驗(yàn)教程,清華大學(xué)出版社,2014年;c) 潘松等編著,EDA技術(shù)與Verilog HDL ,清華大學(xué)出版社,2013年;d) 張春晶等編著,現(xiàn)代數(shù)字
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 名師總結(jié)活動(dòng)方案
- 吐真言談心活動(dòng)方案
- 嬰幼兒健康管理指導(dǎo)師
- 啟動(dòng)創(chuàng)意儀式活動(dòng)方案
- 員工一日游活動(dòng)方案
- 老年人心理護(hù)理個(gè)案分享
- 腫瘤早期篩查講座
- 單位家屬活動(dòng)方案
- 聽(tīng)黨課促提升活動(dòng)方案
- 南城卡丁車(chē)活動(dòng)方案
- 2025至2030中國(guó)LNG運(yùn)輸行業(yè)市場(chǎng)發(fā)展分析及前景預(yù)測(cè)與戰(zhàn)略規(guī)劃報(bào)告
- GM/T 0021-2023動(dòng)態(tài)口令密碼應(yīng)用技術(shù)規(guī)范
- 湘教版七年級(jí)數(shù)學(xué)下冊(cè)期末考試卷(含答案與解析)
- 2025年離婚協(xié)議書(shū)版本
- 店鋪轉(zhuǎn)讓合同協(xié)議書(shū)模板
- 2025遼寧中考:歷史必考知識(shí)點(diǎn)
- 農(nóng)村電商賦能鄉(xiāng)村振興培訓(xùn)課程大綱
- 2025屆重慶康德三診英語(yǔ)+答案
- 耳石癥教學(xué)課件
- 玻璃吊裝施工專(zhuān)項(xiàng)施工方案
- 探尋河北省競(jìng)技體育可持續(xù)發(fā)展的社會(huì)資源密碼:現(xiàn)狀、挑戰(zhàn)與破局之策
評(píng)論
0/150
提交評(píng)論