《彩燈控制器設(shè)計(jì)》word版
《《彩燈控制器設(shè)計(jì)》word版》由會(huì)員分享,可在線閱讀,更多相關(guān)《《彩燈控制器設(shè)計(jì)》word版(6頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。
1、彩燈控制器設(shè)計(jì) 摘要 一、系統(tǒng)設(shè)計(jì)要求 設(shè)計(jì)一個(gè)控制電路來(lái)實(shí)現(xiàn)8路彩燈按照一定的次序和時(shí)間間隔閃爍。具體要求如下: 1、當(dāng)控制開(kāi)關(guān)為0時(shí),燈全滅;當(dāng)控制開(kāi)關(guān)為1時(shí),從第一盞開(kāi)始,依次點(diǎn)亮,時(shí)間間隔為1秒。期間一直保持只有一盞燈亮、其他燈全滅的狀態(tài)。 2、?8盞燈依次亮完后,從第8盞開(kāi)始依次滅,期間一直保持只有一盞燈滅、其他燈全亮的狀態(tài)。 3、當(dāng)8盞燈依次滅完后,8盞燈同時(shí)亮同時(shí)滅,其時(shí)間間隔為0.5秒,并重復(fù)4次。 4、只要控制開(kāi)關(guān)為1,上述亮燈次序不斷重復(fù)。 5、用層次化設(shè)計(jì)方法設(shè)計(jì)該電路,編寫(xiě)各個(gè)功能模塊的程序。 6、仿真各功能模塊,通過(guò)觀察有關(guān)波形確認(rèn)電路設(shè)計(jì)是否正確。
2、 7、完成電路設(shè)計(jì)后,用實(shí)驗(yàn)系統(tǒng)下載驗(yàn)證設(shè)計(jì)的正確性。 二、系統(tǒng)總體結(jié)構(gòu) 系統(tǒng)框圖如下所示, ENA為控制開(kāi)關(guān),輸入信號(hào)為2Hz,經(jīng)過(guò)分頻器分頻之后產(chǎn)生一個(gè)1Hz的時(shí)鐘信號(hào),用兩個(gè)12位內(nèi)部信號(hào)的左、右移后的中間8位來(lái)控制8個(gè)燈的亮與滅。計(jì)數(shù)器1和計(jì)數(shù)器2的作用:一方面用2Hz和1Hz的時(shí)鐘信號(hào)控制燈亮、滅的時(shí)間間隔;另一方面控制八盞燈的依次亮、依次滅和全亮、全滅。 使能信號(hào)ENA為無(wú)效電平時(shí)(低電平),8只LED燈保持全滅的狀態(tài);當(dāng)使能信號(hào)ENA為有效電平時(shí)(高電平),8只按照既定的花型進(jìn)行變換,首先2Hz的時(shí)鐘信號(hào)在分頻器的左右下改變?yōu)?Hz的時(shí)鐘信號(hào),該1Hz的時(shí)鐘信號(hào)送至計(jì)數(shù)
3、器2、左移和右移模塊,并由計(jì)數(shù)器2實(shí)現(xiàn)左、右移模塊的選擇。分別實(shí)現(xiàn)8只LED燈的自左向右依次點(diǎn)亮,以及自右向左依次熄滅的花型變換;當(dāng)完成自右向左的花型變換后,計(jì)數(shù)器2給出一個(gè)控制信號(hào)給計(jì)數(shù)器1,執(zhí)行全亮全滅的花型變換,該模塊的時(shí)鐘信號(hào)是未經(jīng)分頻器分頻的原始時(shí)鐘信號(hào)2Hz。只要使能信號(hào)有效,那么該系統(tǒng)就按照以上的花型變換順序一直永序的變換下去。 三、各功能模塊 1、時(shí)鐘信號(hào)二分頻模塊: 功能描述:該模塊的功能主要是將頻率為2Hz的時(shí)鐘信號(hào)分頻頻率為1Hz的時(shí)鐘信號(hào),并將頻率為1Hz的時(shí)鐘信號(hào)輸出給左移、右移模塊作為這兩個(gè)模塊時(shí)鐘觸發(fā)信號(hào)。 代碼部分: LIBRARY IEEE; US
4、E IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY clk_div2 IS PORT(CLK:IN STD_LOGIC; ?????OUTPUT:BUFFER STD_LOGIC); END clk_div2 ; ARCHITECTURE one OF clk_div2 IS ??BEGIN PROCESS(CLK) ??????BEGIN ????????IF CLK'EVENT AND CLK='1' THEN ??????????OUTPUT<=NOT OUTPUT; ???????
5、?END IF; ??END PROCESS; END one;? 仿真波形: 2、計(jì)數(shù)器模塊: 功能描述:該模塊的主要功能是通過(guò)計(jì)數(shù),實(shí)現(xiàn)對(duì)左移及右移模塊的選通,并在右移和左移模塊完成后,跳轉(zhuǎn)到循環(huán)取反模塊執(zhí)行指令。 計(jì)數(shù)器1代碼部分: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count1 IS PORT(CLK,ENA:IN STD_LOGIC; ?????OUTPUT:BUFFER STD_LOGIC_VECTOR(1 DOWNTO 0))
6、; END count1; ARCHITECTURE one OF count1 IS ??SIGNAL CQ:STD_LOGIC_VECTOR(5 DOWNTO 0); ???BEGIN PROCESS(CLK,ENA) ???????BEGIN ?????????IF CLK'EVENT AND CLK='1' THEN ???????????IF ENA='1' THEN ?????????????IF CQ<"100111" THEN CQ<=CQ+1; ???????????????IF CQ="100000" THEN OUTPUT<="10"; ??????
7、?????????ELSIF CQ="100001" THEN OUTPUT<="01"; ???????????????ELSIF CQ="100010" THEN OUTPUT<="10"; ???????????????ELSIF CQ="100011" THEN OUTPUT<="01"; ???????????????ELSIF CQ="100100" THEN OUTPUT<="10"; ???????????????ELSIF CQ="100101" THEN OUTPUT<="01"; ???????????????ELSIF CQ="100110" THEN OUT
8、PUT<="10"; ???????????????ELSIF CQ="100111" THEN OUTPUT<="01"; ???????????????END IF;??? ?????????????ELSE CQ<="000000";OUTPUT<="00"; ?????????????END IF; ???????????ELSE CQ<="111111"; ???????????END IF; ????????END IF; ?????END PROCESS; ?END one; 仿真波形: 計(jì)數(shù)器2代碼: LIBRARY?IEEE; USE IEEE.ST
9、D_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY count2 IS PORT(CLK,ENA:IN STD_LOGIC; ?????OUTPUT:OUT STD_LOGIC_VECTOR(5 DOWNTO 0)); END count2; ARCHITECTURE one OF count2 IS ??SIGNAL CQ:STD_LOGIC_VECTOR(5 DOWNTO 0); ???BEGIN PROCESS(CLK,ENA) ???????BEGIN ?????????IF CLK'EVENT AN
10、D CLK='1' THEN ???????????IF ENA='1' THEN ?????????????IF CQ<"010011" THEN CQ<=CQ+1; ???????????????ELSE CQ<="000000"; ?????????????END IF; ???????????ELSE CQ<="111111"; ?????????END IF; ???????END IF; ?????END PROCESS; ?????OUTPUT<=CQ; END one; 仿真波形: 3、循環(huán)右移模塊: 功能描述:該功能實(shí)現(xiàn)8只LED燈的從左向右依次點(diǎn)亮
11、的功能,點(diǎn)亮過(guò)程中,每時(shí)每刻都保證只有一個(gè)LED被點(diǎn)亮,其它LED全滅的狀態(tài)。時(shí)間間隔為1S。 代碼部分: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY rightmove IS PORT(CLK,ENA:IN STD_LOGIC; ?????COUNT:IN STD_LOGIC_VECTOR(5 DOWNTO 0); ?????OUTPUT:OUT STD_LOGIC_VECTOR(11 DOWNTO 0)); END rightmove ; ARCHI
12、TECTURE one OF rightmove IS ??BEGIN PROCESS(CLK,ENA,COUNT) ??????BEGIN ????????IF CLK'EVENT AND CLK='1' THEN ??????????IF ENA='1' THEN ??????????????CASE COUNT IS ????????????????WHEN "000000"=>OUTPUT<="001000000000"; ????????????????WHEN "000001"=>OUTPUT<="000100000000"; ????????????????WH
13、EN "000010"=>OUTPUT<="000010000000"; ????????????????WHEN "000011"=>OUTPUT<="000001000000"; ????????????????WHEN "000100"=>OUTPUT<="000000100000"; ????????????????WHEN "000101"=>OUTPUT<="000000010000"; ????????????????WHEN "000110"=>OUTPUT<="000000001000"; ????????????????WHEN "000111"=>OUTPUT<
14、="000000000100"; ????????????????WHEN OTHERS=>OUTPUT<="000000000000"; ??????????????END CASE; ??????????ELSE OUTPUT<="000000000000"; ??????????END IF; ???????END IF; ????END PROCESS; END one; 仿真波形: 4、循環(huán)左移模塊: 功能描述:該功能實(shí)現(xiàn)8只LED燈在從左向右依次點(diǎn)亮結(jié)束后,從右向左依次熄滅一只LED,熄滅過(guò)程中,每時(shí)每刻都保證只有一個(gè)LED被熄滅,其它LED全亮的狀態(tài)。時(shí)間間隔
15、為1S。 代碼部分: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY leftmove IS PORT(CLK,ENA:IN STD_LOGIC; ?????COUNT:IN STD_LOGIC_VECTOR(5 DOWNTO 0); ?????OUTPUT:OUT STD_LOGIC_VECTOR(11 DOWNTO 0)); END leftmove ; ARCHITECTURE one OF leftmove IS ??BEGIN PROCESS(
16、CLK,ENA,COUNT) ??????BEGIN ????????IF CLK'EVENT AND CLK='1' THEN ??????????IF ENA='1' THEN ??????????????CASE COUNT IS ????????????????WHEN OTHERS=>OUTPUT<="000000000000"; ??????????????END CASE; ??????????ELSE OUTPUT<="000000000000"; ??????????END IF; ???????END IF; ????END PROCESS; END
17、one; 仿真波形: 5、循環(huán)取反模塊: 功能描述:該模塊實(shí)現(xiàn)的是對(duì)完成逐個(gè)點(diǎn)亮和逐個(gè)熄滅的過(guò)程后,實(shí)現(xiàn)每秒2次的全亮、全滅的閃爍。即相鄰兩個(gè)動(dòng)作之間的時(shí)間間隔為0.5S。 代碼部分: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY qufan IS PORT(CLK,ENA:IN STD_LOGIC; ?????COUNT:IN STD_LOGIC_VECTOR(1 DOWNTO 0); ?????OUTPUT:BUFFER STD_LOGIC_VECT
18、OR(11 DOWNTO 0)); END qufan; ARCHITECTURE one OF qufan IS ??BEGIN PROCESS(CLK,ENA,COUNT) ??????BEGIN ????????IF CLK'EVENT AND CLK='1' THEN ??????????IF ENA='1' THEN ??????????????CASE COUNT IS ?????????????????WHEN "01"=>OUTPUT<=NOT OUTPUT; ?????????????????WHEN OTHERS=>OUTPUT<="0000000000
19、00"; ??????????????END CASE; ??????????ELSE OUTPUT<="000000000000"; ??????????END IF; ???????END IF; ????END PROCESS; END one; 仿真波形: 6、多選一模塊: 功能描述:此模塊選擇左移、右移或者是循環(huán)取反中的一個(gè)模塊信號(hào)送至8只LED燈。 代碼部分: LIBRARY IEEE; USE IEEE.STD_LOGIC_1164.ALL; USE IEEE.STD_LOGIC_UNSIGNED.ALL; ENTITY qufan IS PORT(
20、CLK,ENA:IN STD_LOGIC; ?????COUNT:IN STD_LOGIC_VECTOR(1 DOWNTO 0); ?????OUTPUT:BUFFER STD_LOGIC_VECTOR(11 DOWNTO 0)); END qufan; ARCHITECTURE one OF qufan IS ??BEGIN PROCESS(CLK,ENA,COUNT) ??????BEGIN ????????IF CLK'EVENT AND CLK='1' THEN ??????????IF ENA='1' THEN ??????????????CASE COUNT I
21、S ?????????????????WHEN "01"=>OUTPUT<=NOT OUTPUT; ?????????????????WHEN OTHERS=>OUTPUT<="000000000000"; ??????????????END CASE; ??????????ELSE OUTPUT<="000000000000"; ??????????END IF; ???????END IF; ????END PROCESS; END one; 仿真波形: 7、系統(tǒng)組合電路: 以上詳細(xì)地介紹了各個(gè)模塊的功能、代碼以及仿真波形。下面將把6個(gè)分模塊系統(tǒng)有序的整合在一起,形成
22、一個(gè)功能完整的系統(tǒng)。 仿真波形: 四、系統(tǒng)調(diào)試 1、該系統(tǒng)使用開(kāi)發(fā)板電路模式N0.6,其電路結(jié)構(gòu)為 2、使用的可編程芯片型號(hào)為FLEX EPF10K10-PLCC84。 3、在將程序下載到實(shí)驗(yàn)箱上實(shí)際檢測(cè)的時(shí)候,引腳的設(shè)置是一項(xiàng)簡(jiǎn)單 但極易出現(xiàn)錯(cuò)誤的工作。時(shí)鐘信號(hào)由clock0送出,其時(shí)鐘頻率為2Hz, 使能信號(hào)ENA接的是實(shí)驗(yàn)箱上的3號(hào)按鍵。 4、當(dāng)控制開(kāi)關(guān)ENA為0時(shí),8只彩燈保持全滅的狀態(tài);當(dāng)控制開(kāi)關(guān)ENA 為1時(shí),彩燈按照預(yù)先設(shè)定的先自左向右依次點(diǎn)亮,全部點(diǎn)亮后按照自右向左的順序依次熄滅,依次漸亮和依次熄滅的過(guò)程中,始終保持只有一盞彩燈被點(diǎn)亮或熄滅,且時(shí)間間隔為1S。
23、當(dāng)彩燈依次熄滅后,加快變換頻率,以0.5S的時(shí)間間隔全亮、全亮交替。 5、調(diào)試結(jié)果:此系統(tǒng)可以順利的實(shí)現(xiàn)了4的設(shè)定顯示效果。 五、總結(jié) 本次實(shí)驗(yàn)課題主要包括四個(gè)階段:課題選擇階段、查閱資料階段、編程仿真階段、實(shí)驗(yàn)箱檢測(cè)調(diào)試階段。 課題的選定是抽簽決定的,有不少人說(shuō)彩燈是最簡(jiǎn)單的一個(gè)課題。不過(guò)我認(rèn)為沒(méi)什么簡(jiǎn)單困難之分,不同的只是你對(duì)待它的態(tài)度。 查閱資料階段則主要圍繞的是選擇何種方案可以更好的實(shí)現(xiàn)要求得功能,并最終確定各個(gè)功能模塊的實(shí)現(xiàn)方案。 編程仿真階段則主要是把上一階段確定的方案變?yōu)閂HDL代碼,并編譯仿真得到仿真波形。 最后一個(gè)階段就是實(shí)驗(yàn)箱檢測(cè)和調(diào)試階段,將已經(jīng)編譯仿真過(guò)的程序下載到實(shí)驗(yàn)箱進(jìn)行實(shí)際的檢測(cè)和調(diào)試。最終系統(tǒng)沒(méi)出現(xiàn)什么問(wèn)題,編譯后的代碼下載到實(shí)驗(yàn)箱后,彩燈順利實(shí)現(xiàn)要求的花型變換。 最后要感謝老師的悉心指導(dǎo),課程設(shè)計(jì)中,遇到了不少問(wèn)題,多虧了老師的悉心指導(dǎo)才能夠順利、及時(shí)地解決問(wèn)題,使得課題能夠順利完成。通過(guò)這次的課題設(shè)計(jì),我深深體會(huì)到知識(shí)通過(guò)應(yīng)用才能體現(xiàn)其價(jià)值。
- 溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 6.煤礦安全生產(chǎn)科普知識(shí)競(jìng)賽題含答案
- 2.煤礦爆破工技能鑒定試題含答案
- 3.爆破工培訓(xùn)考試試題含答案
- 2.煤礦安全監(jiān)察人員模擬考試題庫(kù)試卷含答案
- 3.金屬非金屬礦山安全管理人員(地下礦山)安全生產(chǎn)模擬考試題庫(kù)試卷含答案
- 4.煤礦特種作業(yè)人員井下電鉗工模擬考試題庫(kù)試卷含答案
- 1 煤礦安全生產(chǎn)及管理知識(shí)測(cè)試題庫(kù)及答案
- 2 各種煤礦安全考試試題含答案
- 1 煤礦安全檢查考試題
- 1 井下放炮員練習(xí)題含答案
- 2煤礦安全監(jiān)測(cè)工種技術(shù)比武題庫(kù)含解析
- 1 礦山應(yīng)急救援安全知識(shí)競(jìng)賽試題
- 1 礦井泵工考試練習(xí)題含答案
- 2煤礦爆破工考試復(fù)習(xí)題含答案
- 1 各種煤礦安全考試試題含答案