基于Simulink的邏輯電路仿真-交通燈設計_第1頁
基于Simulink的邏輯電路仿真-交通燈設計_第2頁
基于Simulink的邏輯電路仿真-交通燈設計_第3頁
基于Simulink的邏輯電路仿真-交通燈設計_第4頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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

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

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

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

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

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

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

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

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

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

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論