基于Simulink的邏輯電路仿真-交通燈設(shè)計_第1頁
基于Simulink的邏輯電路仿真-交通燈設(shè)計_第2頁
基于Simulink的邏輯電路仿真-交通燈設(shè)計_第3頁
基于Simulink的邏輯電路仿真-交通燈設(shè)計_第4頁
全文預(yù)覽已結(jié)束

下載本文檔

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

文檔簡介

1、-. z.Simulink邏輯電路仿真交通燈設(shè)計2014春季 Matlab系統(tǒng)仿真分析作業(yè) 目錄 TOC o 1-3 h z u HYPERLINK l _Toc388879076設(shè)計說明 PAGEREF _Toc388879076 h 1HYPERLINK l _Toc388879077設(shè)計思路 PAGEREF _Toc388879077 h 1HYPERLINK l _Toc388879078具體設(shè)計步驟 PAGEREF _Toc388879078 h 2HYPERLINK l _Toc388879079計數(shù)器的設(shè)計 PAGEREF _Toc388879079 h 2HYPERLINK l

2、 _Toc388879080計數(shù)器的仿真 PAGEREF _Toc388879080 h 10HYPERLINK l _Toc388879081交通燈電路設(shè)計。 PAGEREF _Toc388879081 h 15HYPERLINK l _Toc388879082交通燈仿真 PAGEREF _Toc388879082 h 17設(shè)計說明本文設(shè)計了一個簡易的交通燈時序邏輯電路,該電路通過對輸入時鐘信號的分頻,控制紅黃綠三種交通燈的按順序亮滅并循環(huán),其中綠燈持續(xù)25s,黃燈持續(xù)5s,紅燈持續(xù)35s。主要用到的器件為jk觸發(fā)器,與門,與非門,或門,或非門。為了實現(xiàn)交通燈控制電路,首先設(shè)計并封裝了4位計

3、數(shù)器,在此根底上進一步搭建邏輯電路,實現(xiàn)交通燈的控制,并分別對這些模塊進展了仿真。設(shè)計思路主要的設(shè)計思路是利用jk觸發(fā)器串聯(lián)的方式對輸入的時鐘進展分頻,然后在相應(yīng)的時刻產(chǎn)生控制脈沖信號,通過這個信號對信號燈的狀態(tài)進展翻轉(zhuǎn)。Jk觸發(fā)器是一種邊沿敏感器件,有對上升沿和下降沿敏感的兩類,他們的符號如下:其真值表如下:在這個設(shè)計中,將jk觸發(fā)器的j和k端都置1,從而Q端在每個時鐘沿到來時進展翻轉(zhuǎn),然后將上一級的Q作為下一級的clk,這樣到達對clk進展分頻的目的。波形如下:具體設(shè)計步驟計數(shù)器的設(shè)計翻開matlab,這里使用的版本為R2014A.啟動畫面如下:啟動之后點擊這里啟動simulink翻開之后

4、界面如下:點擊FileNewModel翻開界面如下:下面的步驟為尋找仿真模型或原件,并擺放在上面的untiled文檔中。首先將窗口切換到Simulink Library Browser窗口,展開Simulink E*trasFlip Flops,左側(cè)就會出現(xiàn)常用的觸發(fā)器模型,其中就有jk觸發(fā)器,用鼠標左鍵選中J-K Flip-Flop并拖到untiled文檔中一個jk觸發(fā)器可以對時鐘2分頻,2個串聯(lián)可以4分頻,這里6個才能滿足需求,但是為了便于擴展應(yīng)用,這里將4個jk觸發(fā)器作為一組串聯(lián)起來。untiled文檔中已經(jīng)有一個,鼠標右鍵拖動這個jk觸發(fā)器即可復(fù)制。調(diào)整四個jk觸發(fā)器的位置,如圖:該窗

5、口左上角標題右側(cè)的*表示該文檔有改動并且未保存。該窗口中按下鼠標滾輪鍵鼠標會變成手狀,這時可以拖動整個視圖,滾動鼠標滾輪可以放大縮小視圖,左鍵選中模型按del鍵可以刪除模型。模型中端口上的箭頭表示信號流動方向,連線的時候必須按照箭頭的方向進展,不能使信號流動方向和箭頭方向相反,否則仿真時可能會報錯。連線時為了在一條線上引出分支,可以用鼠標右鍵點擊分支處即可引出。兩個線相交的地方有黑點表示電氣相連,沒有黑點表示相交但不相連。在前面的分析中提到這里要將jk出發(fā)器的jk端置1,這需要常量和數(shù)據(jù)類型轉(zhuǎn)換模塊,因為在matlab中大局部模型的輸出是數(shù)值型的,比方為float或者double型的,這樣如果

6、輸出了1,它可能是double或者int類型的,而邏輯電路中的1是一種邏輯電平,這兩者的含義是不同的,因此如果要給觸發(fā)器輸入1,需要將一個常量1轉(zhuǎn)換為邏輯1,這就是Data Type Conversion的作用,常量1的輸出通過Constant實現(xiàn),他們在monly Used Blocks中,如圖,分別拖放兩個模型到untiled文檔中?,F(xiàn)在untitled文檔中的模型如下:雙擊Data Type Conversion1可以翻開它的屬性對話框,我們需要關(guān)心的是轉(zhuǎn)換的類型,這個可以通過Output data type后面的下拉框來設(shè)置,其中就有boolean這種類型。默認為Inherit: In

7、herit via back propagation方式輸出,意思為從輸出端反向繼承數(shù)據(jù)類型,也就是說輸出端連接的端口需要什么類型就轉(zhuǎn)化為相應(yīng)的類型。這里需要改為boolean就可以實現(xiàn)給觸發(fā)器輸入高電平。調(diào)整他們的位置并按下面的樣子完成連線:然后按ctrl+s保存文檔,如下:下面對這個模塊進展封裝,按下ctrl+A選中所有模型,再通過下面的方式進展封裝快捷鍵Ctrl+G封裝之后變成這個樣子:雙擊進入該模塊內(nèi)部,可以看見自動為輸入和輸出添加了連接點并編號,如下:上面這幅圖片中出現(xiàn)了很多double,這是由于Data Type Conversion輸出沒有改成boolean而又進展了仿真造成的,

8、如果不改也能仿真,但是數(shù)據(jù)類型不是邏輯電平,如果修改了就不會出現(xiàn)上面的那些字符。這里面局部端口不使用,擺放位置也比擬亂,可以選中之后進展修改,修改之后如下:然后按下ctrl+s進展保存,點擊下面的位置返回到頂層視圖此時封裝的模塊變成了下面的樣子:我們可以雙擊模塊下面的名稱來改變它,因為這個模塊可以進展015的循環(huán)計數(shù),這里將名稱改成counter_16。如下:計數(shù)器的仿真現(xiàn)在一個4位計數(shù)器已經(jīng)實現(xiàn)了,下面做一個簡單的仿真來檢測這個計數(shù)器是否能工作。切換到Simulink Library Browser窗口,在SimulinkSinks中獲取示波器Scope,在Simulink E*trasFl

9、ipFlops中獲取時鐘模塊Clock,并將它們拖放到my_counter文檔中,如圖然后雙擊Scope翻開示波器,然后點擊菜單欄的齒輪圖標翻開示波器屬性對話框,設(shè)置示波器的輸入通道為5,勾選Legends,這樣就能同時觀測5個信號,并顯示信號名稱。點擊Apply,OK.此時示波器有了5個通道,示波器的符號也發(fā)生了變化,如圖:但是此時示波器的符號有點小,以至于輸入端口出現(xiàn)交疊,這樣不便于連線,鼠標放在該圖標上是圖標四周會出現(xiàn)四個小方塊,鼠標移到*一個方塊上時可以調(diào)整圖標大小,重新調(diào)整大小使其方便連線,如下:然后雙擊Clock翻開時鐘屬性對話框,將時鐘的周期設(shè)置為1然后按照下面的方式完成連線。在

10、下面的工具欄中設(shè)置仿真時間長度,前面設(shè)置了時鐘周期為1,下面設(shè)置仿真時間長度為10,則就會有10個完整的時鐘。點擊下列圖左邊第一個帶齒輪的后退圖標可以設(shè)置仿真時前進和后退的相關(guān)參數(shù),點擊之后我們可以看見有是否允許后退,前進按鈕按下時前進幅度,暫停時刻等設(shè)置。綠色的運行按鈕按下時會進展指定時長的仿真。前進按鈕按下時會執(zhí)行指定步長的仿真,此時前進按鈕右邊的停頓按鈕會被激活,只有按下該停頓按鈕才能推出單步仿真模式。現(xiàn)在將仿真時長設(shè)置為40,然后按下綠色的運行按鈕。仿真40個時間長度后會自動停頓,然后雙擊示波器,如下列圖:翻開時波形可能不是這樣的,需要一些調(diào)整,首先鼠標放在任何一個通道上右鍵,選擇Au

11、toscale,這樣波形將充滿整個屏幕,并根據(jù)屏幕大小調(diào)整。我們可以發(fā)現(xiàn)各個通道縱軸坐標*圍都是-5到5,而我們這里是對邏輯電路進展仿真,電平值只有0和1兩個,這里可以右鍵,選擇A*es properties,設(shè)置縱軸的*圍為0到2然后可以拖拽右側(cè)的信號名稱到適宜位置,調(diào)整好如下列圖:由圖我們可以看到四個輸出端分別對時鐘進展了2,4,8,16分頻,增加輸出端的狀態(tài)就能夠?qū)崿F(xiàn)計數(shù)功能。交通燈電路設(shè)計交通燈設(shè)計的關(guān)鍵思路就是根據(jù)不同時刻對不同的燈進展開關(guān)操作。這里為了簡單沒有為計數(shù)器設(shè)計清零端,由于一個計數(shù)器只能計時16個時間單位,這里我們將兩個計數(shù)器串聯(lián)起來,從而實現(xiàn)256個時間單位的計數(shù),但是

12、紅綠燈的一次完整切換并不需要這么多時間,我們選擇低6位作為計數(shù)端,6位能實現(xiàn)64個時間單位的計數(shù),我們將時間進展一個劃分,綠燈持續(xù)25s,黃燈持續(xù)5s,紅燈持續(xù)35s,這樣就需要在25,30,63這三個時刻輸入控制信號。這里我們輸出一個脈沖信號,然后利用這個脈沖信號對紅綠燈狀態(tài)進展翻轉(zhuǎn)。25超過了一位計數(shù)器的計數(shù)*圍,它可以拆分為16+9,也就是低位計數(shù)器計數(shù)為9,高位計數(shù)器計數(shù)為1,這樣用二進制表示就為0001_1001,而我們一共采用了低6位,所以對應(yīng)的計數(shù)器輸出狀態(tài)為01_1001,這樣我們將其中的3個1輸入到三輸入與門,3個0輸入到三輸入或非門,然后將它們的結(jié)果通過二輸入與門輸出。對于30,63時刻做同樣處理。在simulink中直接能得到與門模型,上面我們用到了或非門,以及3輸入與門等模型,這個需要對與門進展設(shè)置,雙擊一個與門模型,彈出屬性對話框,在operator中可以選擇改門的類型,比方與門,與非門,反相器,或門等,下面的Number of input ports可以設(shè)置這個門的輸入數(shù)目。上面我們通過對計數(shù)器的輸出進展邏輯組合得到3個脈沖信號,然后我們需要使用這3個脈沖信號對交通燈狀態(tài)進展翻轉(zhuǎn),設(shè)計思路是使用jk觸發(fā)器的取反功能,將脈沖信號作為時鐘信號,并設(shè)置jk觸發(fā)器的初始值,jk觸發(fā)器的輸出作為交通燈的狀態(tài)控制信號。其中為了實現(xiàn)交通燈的輪流

溫馨提示

  • 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)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論