版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、實驗三:交通燈控制器設計一、實驗目的學習采用狀態(tài)機方法設計時序邏輯電路。掌握isplever 軟件的使用方法。掌握用 vhdl 語言設計數(shù)字邏輯電路。掌握isp器件的使用。二、 實驗所用器件和設備在系統(tǒng)可編程邏輯器件isp1032 一片示波器一臺萬用表或邏輯筆一只tec-5 實驗系統(tǒng),或tds-2b 數(shù)字電路實驗系統(tǒng)一臺三、實驗內容以實驗臺上的 4個紅色電平指示燈, 4個綠色電平指示燈模仿路口的東南西北4 個方向的紅,綠,黃交通燈??刂七@些交通燈,使它們按下列規(guī)律亮,滅。(1)初始狀態(tài)為 4個方向的紅燈全亮,時間 1s。(2) 東,西方向綠燈亮,南,北方向紅燈亮。東,西方向通車,時間5s 。(
2、3) 東,西方向黃燈閃爍,南,北方向紅燈,時間 2s 。(4) 東,西方向紅燈亮,南,北方向綠燈亮。南,北方向通車,時間5s 。(5) 東,西方向紅燈閃爍,南,北方向黃燈閃爍,時間 2s 。(6) 返回 (2) ,繼續(xù)運行。(7) 如果發(fā)生緊急事件,例如救護車,警車通過,則按下單脈沖按鈕,使得東,南,西,北四個方向紅燈亮。緊急事件結束后,松開單脈沖按鈕,將恢復到被打斷的狀態(tài)繼續(xù)運行。四、設計思路(1)熟悉掌握使用枚舉類型數(shù)據(jù)格式結合case語句實現(xiàn)狀態(tài)機設計。(2) 這是一個典型的時序狀態(tài)機,一共 6個大的狀態(tài)。由于各個狀態(tài)停留時間不同,但都是秒的倍數(shù)??梢钥紤]設計當前狀態(tài)與下一狀態(tài)兩個枚舉型
3、數(shù)據(jù),每秒刷新舊狀態(tài)值,各個狀態(tài)的 timeout 時對下一狀態(tài)賦值。(3)黃燈閃爍可通過連續(xù)兩0.2s ,滅 0.2s 實現(xiàn)。(4) 選擇實驗臺上的 5khz 頻率時鐘,作為設計中分頻的初始時鐘。(5) 緊急事件發(fā)生時,要注意保存必要的信息,已被緊急事件結束后,恢復到原狀態(tài)繼續(xù)運行使用。圖 3-1 交通燈控制框圖五、設計方案libraryieee;useieee.std_logic_1164 .all ;entitytralight isport (數(shù)字邏輯課程設計12restart,emergency,clk: in std_logic;-restart為復位信號,emergency為緊急
4、事件信號,clk為實驗臺上的5khz頻率時 鐘,作為設計中分頻的初始時鐘light: out std_logic_vector(11 downto 0);-light 輸出到實驗臺上 12個指示燈architectureartoftralight istype trafficstateis(s0,s1,s2,s3,s4);-交通燈狀態(tài)signal current_state,next_state:trafficstate;- 當前狀態(tài) ,轉移狀態(tài) signal en1,en2,en3,en4,c,c1,c2,c3,c4:std_logic;-en為計數(shù)器使能控制信號,c為計數(shù)器進位信號 sig
5、nal temp1:integer range 0to 49999;-產(chǎn)生 1s計數(shù)器時計數(shù)signal temp2:integer range 0to 99999;-產(chǎn)生2s計數(shù)器時計數(shù)signal temp3:integer range 0to 249999;-產(chǎn)生5s計數(shù)器時計數(shù) signal temp4:integer range 0to 9999;-產(chǎn)生 0.2s計數(shù)器時計數(shù) begin-1s計數(shù)器,對5khz原始信號進行5000分頻,每秒產(chǎn)生一個進位脈沖cl process (clk,en1)beginif (clkevent and clk=1) thenif (temp1=49
6、999 and en1=1 and emergency=0) thentemp1=0;c1=1;elsif (en1=1 and emergency=0) thentemp1=temp1+1;c1=0;endif ;endif ;if (en1=0) then c1=0;temp1=0;endif ;endprocess ;-2s計數(shù)器,對5khz原始信號進行10000分頻,每兩秒產(chǎn)生一個進位脈沖c2process (clk,en2)beginif (clkevent and clk=1) thenif (temp2=99999 and en2=1 and emergency=0) thent
7、emp2=0;c2=1;elsif (en2= 1and emergency=0) thentemp2=temp2+1;c2=0;數(shù)字邏輯課程設計13endif ;endif ;if (en2=0) thenc2=0;endif ;endprocess ;-5s計數(shù)器,對5khz原始信號進行25000分頻,每五秒產(chǎn)生一個進位脈沖c3process (clk,en3)beginif (clkevent and clk=1) thenif (temp3=249999 and en3=1 and emergency=0) thentemp3=0;c3=1;elsif (en3=1 and emerg
8、ency=0) thentemp3=temp3+1;c3=0;endif ;endif ;if (en3=0) thentemp3=0;c3=0;endif ;endprocess ;-0.2s計數(shù)器,對5khz原始信號進行10000分頻,每0.2秒產(chǎn)生一個進位脈沖c4process (clk,en4)beginif (clkevent and clk=1) thenif (temp4=9999 and en4=1) thentemp4=0;c4=notc4;elsif (en4=1) thentemp4=temp4+1;endif ;endif ;endprocess ;c=c1orc2or
9、c3;-進位信號控制狀態(tài)轉移process (c,restart)- 狀態(tài)轉移進程beginif(restart=1) then -復位信號使狀態(tài)回到s0,即紅燈全亮1s current_state=s0;數(shù)字邏輯課程設計14elsif (cevent and c=0) then - 遇到計數(shù)器進位轉移到下一狀態(tài)current_state=next_state;endif ;endprocess ;process (current_state,emergency)- 控制狀態(tài)轉移 ,信號燈亮滅beginif (emergency=1) then - 緊急狀態(tài)紅燈全亮light- 初始四個方向的
10、紅燈全亮 ,延時 1秒light=000000001111;en2=0;en3=0;en1=1;next_state- 東西方向綠燈亮,南北方向紅燈亮 ,延時 5秒en1=0;en2=0;light=010100001010;en3=1;next_state- 東西方向黃燈閃,南北方向紅燈亮 ,延時 2秒en3=0;en2=1;en4=1;light(11 downto 7)=00000;light(6)=c4;light(5)=0;iight(4)=c4;light(3 downto 0)=1010;next_state-東西方向紅燈亮,南北方向綠燈亮,延時5秒en2=0;en4=0;en3
11、=1;light=101000000101;next_state-東西方向紅燈閃,南北方向黃燈閃,延時2秒en3=0;en2=1;en4=1;light(11 downto 8)=0000;數(shù)字邏輯課程設計15light v=c4;light(6)=,0,;light v=c4;light(4 downto 0)=00101;next_state=s1;endcase ;endif ;endprocess ;end art;六、調試中出現(xiàn)的問題及解決方法這次實驗總體思路比較清晰, 不需要太多的輸入, 只有復位和緊急狀態(tài)輸入,但是在具體實現(xiàn)上遇到了一些問題,有的地方有毛刺現(xiàn)象。對于實驗中要求的四
12、個時間計數(shù)器,開始我們考慮的是只寫一個0.2s的計數(shù)器,放在例化元件里,狀態(tài)需要的時間可以多次調用該元件,但是實際操作中需要用控制信號控制計數(shù)器的運行,在一個計數(shù)器里不好控制,最終我們采用四個計數(shù)器的進程。在交通燈系統(tǒng)運行過程中, 我們發(fā)現(xiàn)同一個狀態(tài)的時間是不穩(wěn)定的,如5s狀態(tài)可能只進行了 2s就跳到下一個狀態(tài)。 這其實是一個很嚴重的問題, 也是我們最后才想明白的。解決方法是:控制信號使計數(shù)器停止工作時(既狀態(tài)轉移使en=0),將進位信號c和計數(shù)temp 都清零。一開始我們將緊急情況單獨設置為一個狀態(tài), 再次狀態(tài)下所有計數(shù)器控制信號使計數(shù)器停止工作,但是由于問題 2 ,計數(shù)的 temp 清零,
13、無法保存現(xiàn)場。對于此問題,我們采用另一種方法,不轉移狀態(tài),只是單獨讓計數(shù)器停止工作,既讓計數(shù)器在emergency=1 的情況下,每當來一個脈沖,計數(shù)器加 1 。對于黃燈閃的情況,我們發(fā)現(xiàn)light(11downto0)=0000&c4&0&c4&00101并不能使黃燈閃爍,改為light(11downto8)=0000;light(7)=c4;light(6)=0;light(5)=c4;light(4downto0)=00101; 問題即可解決。七、層次設計的體會實驗思路比較簡單, 我們沒有采用元件例化的方法, 但是模塊劃分仍然很清晰。程序可分為計數(shù)器模塊,狀態(tài)轉移模塊,輸出模塊(控制燈亮滅) 。層次設計將大問題分解為較小的問題,可以提高效 率,使思路清晰。八、比較不同種描述方式的心得實驗中結構體的三種描述方式都用到了: 數(shù)據(jù)流描述、 結構描述、行為描述。數(shù)據(jù)流描述邏輯清晰、描述簡單。結構描述使程序模塊劃分清晰,便于從宏觀上把握程序功能,便于整體設計。行為描述更容易把握程序對于不同輸入或者信號所做的動作。 根據(jù)不同情況選擇不同描述方法可以使程序得到優(yōu)化。九、本次設計的收獲和不足本次設計我們首次用到了枚舉類型數(shù)據(jù)格式結合case語句實現(xiàn)狀態(tài)機設計,了解了狀態(tài)機設計的
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 重慶九龍坡區(qū)高2025屆生物高二上期末質量跟蹤監(jiān)視模擬試題含解析
- 廣東省珠海市2025屆數(shù)學高二上期末檢測模擬試題含解析
- 湖北省鄂州市鄂州高中2025屆生物高二上期末檢測試題含解析
- 安徽省淮南四中2025屆高二上數(shù)學期末統(tǒng)考模擬試題含解析
- 2025屆內蒙古自治區(qū)平煤高級中學、元寶山一中高三生物第一學期期末學業(yè)質量監(jiān)測模擬試題含解析
- 2025屆江西省新余第四中學高三英語第一學期期末統(tǒng)考試題含解析
- 2025屆黑龍江哈爾濱市第十九中學數(shù)學高三第一學期期末達標檢測試題含解析
- 2025屆河南省商丘名校高一生物第一學期期末達標測試試題含解析
- 吳忠市重點中學2025屆數(shù)學高二上期末監(jiān)測試題含解析
- 2025屆黑龍江省哈爾濱第九中學高一數(shù)學第一學期期末教學質量檢測試題含解析
- 《說唱藝術發(fā)展問題研究(論文)》
- THBFIA 0004-2020 紅棗制品標準
- GB/T 4802.3-2008紡織品織物起毛起球性能的測定第3部分:起球箱法
- GB/T 26856-2011中文辦公軟件基本要求及符合性測試規(guī)范
- 煙霧病和煙霧綜合征診斷與治療中國專家共識
- 中國傳統(tǒng)節(jié)日(英文介紹)
- 鉆井工程-19-井身結構講解課件
- 文檔-oracle11g-物理DG日常巡檢手冊
- 第14課-鑒賞家課件全面版
- 體育與政治解讀課件
- 《三字經(jīng)》全文解讀課件
評論
0/150
提交評論