電風(fēng)扇控制邏輯電路課程設(shè)計_第1頁
電風(fēng)扇控制邏輯電路課程設(shè)計_第2頁
電風(fēng)扇控制邏輯電路課程設(shè)計_第3頁
電風(fēng)扇控制邏輯電路課程設(shè)計_第4頁
電風(fēng)扇控制邏輯電路課程設(shè)計_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

一、設(shè)計目的通過對FPGA(現(xiàn)場可編程門陣列)芯片的設(shè)計實踐,使學(xué)生掌握一般的PLD(可編程邏輯器件)的設(shè)計過程、設(shè)計要求、設(shè)計內(nèi)容、設(shè)計方法,能根據(jù)用戶的要求及工藝需要進行電子芯片設(shè)計并制定有關(guān)技術(shù)文件。培養(yǎng)學(xué)生綜合運用已學(xué)知識解決實際工程技術(shù)問題的能力、查閱圖書資料和各種工具書的能力、工程繪圖能力、撰寫技術(shù)報告和編制技術(shù)資料的能力,受到一次電子設(shè)計自動化方面的基本訓(xùn)練。培養(yǎng)學(xué)生利用EDA技術(shù)知識,解決電子設(shè)計自動化中常見實際問題的能力,使學(xué)生積累實際EDA編程。通過本課程設(shè)計的學(xué)習(xí),學(xué)生將復(fù)習(xí)所學(xué)的專業(yè)知識,使課堂學(xué)習(xí)的理論知識應(yīng)用于實踐,通過本課程設(shè)計的實踐使學(xué)生具有一定的實踐操作能力。二、設(shè)計要求1.以EDA技術(shù)的基本理論為指導(dǎo),將設(shè)計實驗分為基本功能電路和較復(fù)雜的電子系統(tǒng)兩個層次,要求利用數(shù)字電路或者EDA方法去設(shè)計并完成特定功能的電子電路的仿真、軟硬件調(diào)試;2.熟悉掌握常用仿真開發(fā)軟件,比如:QuartusII或XilinxISE的使用方法。3.能熟練運用上述開發(fā)軟件設(shè)計并仿真電路并下載到FPGA中進行調(diào)試;4.學(xué)會用EDA技術(shù)實現(xiàn)數(shù)字電子器件組成復(fù)雜系統(tǒng)的方法;學(xué)習(xí)電子系統(tǒng)電路的安裝調(diào)試技術(shù)。5.用EDA技術(shù)實現(xiàn)電風(fēng)扇控制器的控制功能,具體要求如下:(1)用三個按鍵來實現(xiàn)?!帮L(fēng)速”、“風(fēng)種”、“停止”的不同選擇。(2)用六個發(fā)光二報管分別表示“風(fēng)速”(強、中、弱)、“風(fēng)種”(睡眠、自然、正常)的三種狀態(tài)。(3)電扇在停轉(zhuǎn)狀態(tài)時,只有按“風(fēng)速”鍵才有效.按其余兩鍵不響應(yīng)。電風(fēng)扇啟動后,再按動“風(fēng)速”鍵可循環(huán)選擇弱、中或強三種狀態(tài)中的任一種狀態(tài),“風(fēng)速”的弱、中、強對應(yīng)電扇的轉(zhuǎn)動由慢到快;按動“風(fēng)種”鍵可循環(huán)選擇正常、自然或睡眠三種狀態(tài)的某—種狀態(tài)?!帮L(fēng)種”在正常位置是指電扇連續(xù)運轉(zhuǎn);“自然”位置,是表示電扇模擬產(chǎn)生自然風(fēng),即運轉(zhuǎn)4秒,間斷4秒的方式;在“睡眠”位置,是產(chǎn)生輕柔的微風(fēng),電扇運轉(zhuǎn)8秒,間斷8秒的方式。(4)電風(fēng)扇在任意狀態(tài)下,按“停止”鍵電扇停止工作,所有指示燈熄滅。三、總體設(shè)計原理與內(nèi)容1、設(shè)計的總體原理首先用脈沖信號CLK1的上升沿表示按鍵1,其控制風(fēng)速,同時它還做電扇的啟動鍵。當(dāng)電扇處于關(guān)閉狀態(tài)時,按一下按鍵1(即給一個上升脈沖CLK1),電扇即處于待機狀態(tài),同時電扇風(fēng)速處于“弱”狀態(tài)(即LED1亮),若再按一次按鍵1,則風(fēng)速處于“中”狀態(tài)(即LED2亮),再按一次按鍵1,風(fēng)速處于“強”狀態(tài)(即LED3亮),依次循環(huán)。用脈沖信號CLK2的上升沿表示按鍵2,其控制風(fēng)種,當(dāng)電扇處于待機狀態(tài)時,按一下按鍵2(即給一個上升脈沖CLK2),電扇即開始運轉(zhuǎn),同時風(fēng)種處于“正常”狀態(tài)(即LED4亮),電扇持續(xù)運轉(zhuǎn)(即LED7常亮),連續(xù)按按鍵2,則風(fēng)種依次處于“正常,自然,睡眠”狀態(tài),電扇依次持續(xù)運轉(zhuǎn),轉(zhuǎn)四秒停四秒(即LED7亮四秒不亮四秒),轉(zhuǎn)八秒停八秒(即LED7亮八秒不亮八秒)。用脈沖信號RS的上升沿表示按鍵3,它做電扇的關(guān)閉鍵,當(dāng)電扇處于運轉(zhuǎn)狀態(tài)時,按一下按鍵3(即給一個上升脈沖RS),電扇即停止運轉(zhuǎn)(即所有發(fā)光二極管不亮)。2、設(shè)計內(nèi)容圖1設(shè)計總體框圖如圖1,在關(guān)閉狀態(tài)給一個觸發(fā)脈沖CLK1(即按一下鍵1),即啟動電風(fēng)扇,風(fēng)速為默認“弱”狀態(tài),則電扇處于待機狀態(tài),此時按下風(fēng)種選擇鍵鍵2,風(fēng)扇即開始運轉(zhuǎn),且風(fēng)種為“正?!?。逐次按鍵1,則可實現(xiàn)風(fēng)速轉(zhuǎn)換;逐次按鍵2,則可實現(xiàn)風(fēng)種轉(zhuǎn)換。四、EDA設(shè)計及仿真1、電風(fēng)扇控制邏輯電路設(shè)計源程序LIBRARYIEEE;USEIEEE.STD_LOGIC_1164.ALL;entitydianfengshanisport(clk1,clk2,rs:inbit;按鍵clk1風(fēng)速clk2風(fēng)種rs代表停止鍵clk:instd_logic;亮滅時鐘1hzledx:bufferbit;自然風(fēng)ledy:bufferbit;睡眠風(fēng)ledA,ledB,ledC,ledD,ledE,ledF,ledG:outbit);ledA-C風(fēng)速ledD-F風(fēng)種ledG狀態(tài)enddianfengshan;architecturesimpleofdianfengshanissignalm:integerrange0to9;自然風(fēng)延時signaln:integerrange0to17;睡眠風(fēng)延時beginprocess(clk1,clk2,rs,clk)clk1風(fēng)速clk2風(fēng)種variablecounter,counter1,counter2:integer;variableled1,led2,led3,led4,led5,led6,led7:bit;beginif(rs=‘1’)thenrs代表停止鍵狀態(tài)counter:=0;counter1:=0;counter2:=0;--按下關(guān)閉鍵所有發(fā)光二極管不亮;else if(clk1'eventandclk1=‘1')then--按下風(fēng)速鍵,ledA亮; counter:=counter+1; counter1:=counter1+1;風(fēng)速變量 if(counter1=4)thencounter1:=1; endif; endif; if(counter>0)then if(clk2'eventandclk2=‘1')then counter2:=counter2+1;風(fēng)種變量 if(counter2=4)then counter2:=1; endif; endif; endif;endif; if(counter1=0)then led1:=‘0';led2:=‘0';led3:=‘0';led7:=‘0';風(fēng)速選擇 elsif(counter1=1)then led1:=‘1';led2:=‘0'; led3:=‘0';led7:=‘1'; elsif(counter1=2)then led1:=‘0';led2:=‘1'; led3:=‘0';led7:=‘1'; elsif(counter1=3)then led1:=‘0';led2:=‘0'; led3:=‘1';led7:=‘1'; endif; if(counter2=0)then風(fēng)種選擇 led4:=‘0';led5:=‘0'; led6:=‘0';led7:=‘0'; elsif(counter2=1)then led4:=‘1';led5:=‘0'; led6:=‘0';led7:=‘1'; elsif(counter2=2)then led4:=‘0';led5:=‘1';led6:=‘0'; if(clk'eventandclk=‘1')then當(dāng)自然風(fēng)亮4S滅4S由CLK控制 m<=m+1; if(m=4)then ledx<=notledx; m<=0; endif; endif; led7:=ledx; elsif(counter2=3)then led4:=‘0';led5:=‘0';led6:=‘1'; if(clk'eventandclk=‘1')then當(dāng)睡眠風(fēng)亮8S滅8S由CLK控制 n<=n+1; if(n=8)then ledy<=notledy; n<=0; endif; endif; led7:=ledy; endif; ledA<=led1; ledB<=led2; ledC<=led3; ledD<=led4; ledE<=led5; ledF<=led6; ledG<=led7;endprocess;endsimple;2、電風(fēng)扇控制邏輯電路設(shè)計仿真結(jié)果及數(shù)據(jù)分析圖2軟件仿真圖如圖2,首先用脈沖信號CLK1的上升沿表示按鍵1,其控制風(fēng)速,同時它還做電扇的啟動鍵。當(dāng)電扇處于關(guān)閉狀態(tài)時,按一下按鍵1(即給一個上升脈沖CLK1),電扇即處于待機狀態(tài),同時電扇風(fēng)速處于“弱”狀態(tài)(即LED1亮),若再按一次按鍵1,則風(fēng)速處于“中”狀態(tài)(即LED2亮),再按一次按鍵1,風(fēng)速處于“強”狀態(tài)(即LED3亮),依次循環(huán)。rs代表停止鍵狀態(tài),ledA,B,C,D,E,F,G代表所有二極管,其中六個為狀態(tài)指示燈,一個代表電風(fēng)扇運轉(zhuǎn)狀態(tài),在剛開始1.4s處,按下停止鍵,ledA,B,C,D,E,F,G全為低電平,即所有二極管全部熄滅,clk1,clk2,代表“風(fēng)速”、“風(fēng)種”按鍵狀態(tài),當(dāng)clk1為高電平時,ledA為高電平,代表電風(fēng)扇風(fēng)速為強等風(fēng);當(dāng)clk1第二次變?yōu)楦唠娖綍r,ledB為高電平,代表電風(fēng)扇風(fēng)速為中等風(fēng);當(dāng)clk1第三次變?yōu)楦唠娖綍r,ledC為高電平,代表電風(fēng)扇風(fēng)速為弱等風(fēng);,當(dāng)clk2為高電平時,ledD為高電平,代表電風(fēng)扇風(fēng)速為正常風(fēng);當(dāng)clk2第二次變?yōu)楦唠娖綍r,ledE為高電平,代表電風(fēng)扇風(fēng)速為自然風(fēng);當(dāng)clk2第三次變?yōu)楦唠娖綍r,ledF為高電平,代表電風(fēng)扇風(fēng)速為睡眠風(fēng);當(dāng)電風(fēng)扇風(fēng)速為自然風(fēng)時,ledG循環(huán)4秒鐘為高電平,4秒鐘為低電平;當(dāng)電風(fēng)扇風(fēng)速為睡眠風(fēng)時,ledG循環(huán)8秒鐘為高電平,8秒鐘為低電平。clk為輸入時鐘信號,選擇不同的時鐘頻率,決定ledG循環(huán)點亮與熄滅的時間;當(dāng)電風(fēng)扇為停轉(zhuǎn)狀態(tài)時,只有按下“風(fēng)速鍵”,電風(fēng)扇才啟動,波形圖中,在52秒處,停止鍵為高電平,在此之后的55秒處和59秒處,clk2為高電平,clk1在此期間始終為低電平,ledA,B,C,D,E,F,G全為低電平,即所有二極管全部熄滅,這就符合了當(dāng)電風(fēng)扇為停轉(zhuǎn)狀態(tài)時,只有按下“風(fēng)速鍵”,電風(fēng)扇才啟動的要求,在62秒處第一個clk1高電平到達,此時循環(huán)前面步驟。3、仿真結(jié)果總結(jié)在仿真過程中,起初clk2送入第一個高電平時,ledD,E,F不能正常觸發(fā),后來經(jīng)過調(diào)試,發(fā)現(xiàn)是沒有判斷clk1的狀態(tài),最終經(jīng)過調(diào)試,加上了判斷語句在counter大于0則執(zhí)行clk2的程序,解決了這個問題。停止鍵起初不能完全實現(xiàn)應(yīng)有的功能,在rs送高電平信號時,其余的led輸出狀態(tài)沒有改變?yōu)?,將所有l(wèi)ed輸出狀態(tài)控制函數(shù)移到rs判斷語句之外后,復(fù)位信號就輸出正常。在給時鐘信號clk賦值后,第12秒和23秒處對應(yīng)的ledG輸出沒有按照亮4秒,滅4秒進行,后來發(fā)現(xiàn)是endtime設(shè)置的不對,修改后仍有錯誤,再將clk的單位修改后,ledG正常顯示。五、硬件實現(xiàn)1、硬件引腳鎖定及步驟在硬件仿真前要進行引腳鎖定,我選擇的是模式6,其中時鐘信號clk選擇CLOCK0,鎖定引腳PIN_L1;風(fēng)速鍵對應(yīng)clk1,鎖定引腳為PIN_F14;風(fēng)種鍵對應(yīng)clk2,鎖定引腳為PIN_F15;ledA連接D8,鎖定引腳為PIN_J20;ledB連接D7,鎖定引腳為PIN_J21;ledC連接D6,鎖定引腳為PIN_J22;ledD連接D5,鎖定引腳為PIN_k17;ledE連接D4,鎖定引腳為PIN_k18;ledF連接D3,鎖定引腳為PIN_k21;ledG連接D1,鎖定引腳為PIN_L17;停止鍵連接rs,鎖定引腳為PIN_G16。其引腳配置圖如下:圖3硬件仿真引腳配置圖2、硬件實現(xiàn)照片圖4風(fēng)速弱、風(fēng)種正常led顯示圖圖4是風(fēng)速為“弱”、風(fēng)種為“正?!钡膌ed顯示圖。如圖,led1亮,led2、led3不亮,led4亮,led5、led6不亮,led7常亮。圖5風(fēng)速中、風(fēng)種自然led顯示圖(1)圖6風(fēng)速中、風(fēng)種自然led顯示圖(2)圖5、6是風(fēng)速為“中”、風(fēng)種為“自然”的led顯示圖。兩圖均為led2、led5亮,led1、led3、led4、led6不亮,而(1)圖為led7亮?xí)r的圖片,(2)圖為led7不亮?xí)r的圖片。其中圖(1)持續(xù)時間為4秒,圖(2)持續(xù)時間為4秒。圖7風(fēng)速強、風(fēng)種睡眠led顯示圖(1)圖8風(fēng)速強、風(fēng)種睡眠led顯示圖(2)圖7、8是風(fēng)速為“強”、風(fēng)種為“睡眠”的led顯示圖。兩圖均為led3、led6亮,led1、led2、led4、led5不亮,而(1)圖為led7亮?xí)r的圖片,(2)圖為led7不亮?xí)r的圖片。其中圖(1)持續(xù)時間為8秒,圖(2)持續(xù)時間為8秒。六、設(shè)計總結(jié)設(shè)計過程中由于同一個變量counter1由兩個邊沿脈沖clk1和clk2觸發(fā),導(dǎo)致錯誤始終存在,通過修改邊沿觸發(fā)方式,錯誤得到解決。然后就是程序編寫不熟練,導(dǎo)致很多的邏輯錯誤。延時可以通過很多種方法來實現(xiàn),比如說定時延時,脈沖計數(shù)延時,甚至可以借助FOR循環(huán)或者LOOP循環(huán)來實現(xiàn)延時。但是眾多的延時中有的只能仿真,不能綜合,比如FOR循環(huán)延。為了實現(xiàn)仿真和綜合并舉,我考慮了前面兩種延時方式。為期兩周的EDA課程設(shè)計很快就結(jié)束了,雖然在以前的學(xué)習(xí)中還有很多沒有弄懂的問題,但通過這次設(shè)計進一步加深了對EDA的了解,讓我對他有力更加濃厚的興趣。在這次課程設(shè)計過程中,我充分認識到實際操作的重要性。通過課程設(shè)計可以把很多章節(jié)的模塊融合到一起,對以后的學(xué)習(xí)很有幫助。此次設(shè)計使我對VHDL的語法結(jié)構(gòu)有了很大的認識提高,感覺VHDL語言不想我們一般的變成語言,如果我們以前的編程思想去做它,就會出現(xiàn)很多的錯誤。另外,我在仿真時感悟到了一些技巧,例如在編寫程序是應(yīng)該將一段一段的代碼進行仿真,各個部分都成功后,再進行綜合仿真,這樣可以提高效率。我們在用VHDL語言進行電路設(shè)計時候

溫馨提示

  • 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. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論