廣西機電職業技術學院 甘慶玉
?
基于SIMULINK的計數譯碼顯示電路的仿真
廣西機電職業技術學院甘慶玉
在Simulink環境下包含著許多典型的數字電路仿真模塊。本文先以計數器為例,根據其邏輯功能,采用觸發器來實現,并封裝成模塊。然后利用組合邏輯電路設計出譯碼電路模塊,接著設計了LED數碼管顯示電路,并將三者組合成計數譯碼顯示系統仿真模型。設計與仿真結果驗證了此設計的正確性和可靠性,同時也表明,運用Simulink進行對電路虛擬仿真,可以方便、有效地進行數字電子電路的設計和分析。
S imulink;計數模塊;譯碼模塊;顯示電路;仿真
MATLAB軟件是美國MathWorks公司開發的數學軟件,可以開發算法、計算數值、可視化數據以及分析數據。Simulink是MATLAB重要的組成部件。在Simulink環境中,只需要通過簡單直觀的鼠標操作,給各模塊連線,就可以建立系統模型,設置系統參數和輸出方式來觀察仿真結果。
在數字電路的設計、分析時,經常會用到Simulink提供的Logic and Bit Operations(邏輯和位操作)模塊庫、Simulink Extras模塊庫里的Flip Flops(觸發器)模塊庫,以及Sources信號源模塊庫和Sink(接收)模塊庫等。Logic and Bit Operations(邏輯和位操作)模塊庫里有面向數字邏輯電路的常用邏輯和位操作模塊,比如基本的AND與(OR或、NOT非)運算、Combinatorial Logic組合邏輯運算、Compare To Constant常數比較器、Compare To Zero與零比較器、Bit Clear位清零、Bit Set位置位等;Flip Flops(觸發器)模塊庫里有SR觸發器、D觸發器、JK觸發器3種典型觸發器;常用的數字電路輸入信號源,比如Pulse Generator時鐘脈沖信號、Signal Generator信號發生器等由Sources信號源模塊庫提供;Sink(接收)模塊庫里提供了虛擬的顯示儀器,有Scope示波器、Display輸出顯示器等,對仿真結果可視化,方便分析測試。本文結合十進制計數譯碼顯示電路的設計,在Simulink環境下,先利用JK觸發器實現上升沿觸發的十進制計數器,再利用組合邏輯電路設計出譯碼模塊,最后設計LED數碼管顯示電路,將三者組合成綜合的計數譯碼顯示系統,并進行了仿真測試。
2.1計數器模塊
設計計數器電路的目的是在一定時間測出輸入的脈沖數目。利用Simulink可以很方便地實現任意進制的計數器,同步或異步、加法或減法,但是在Flip Flops(觸發器)模塊庫里的JK觸發器是下降沿觸發。為了實現上升沿觸發,參照Simulink里的JK觸發器內部結構,封裝了一個JKFFup的子系統,時鐘采用上升沿觸發,并設置了初始變量initital_condition=0,如圖1、2所示。

圖1 封裝的JKFFup模塊

圖2 JKFFup模塊的參數設置
十進制計數器一共是10個狀態,需要用4個JK觸發器。然后根據JK觸發器的特征方程和10個狀態轉換(從0000到1001),用卡諾圖化簡得出激勵方程:


圖3 十進制計數器電路圖

最后根據激勵方程畫出由JK觸發器組成的十進制計數器的電路圖。如圖3所示。
也將此十進制計數器電路做為一個子系統,封裝成Counter10模塊。從Flip Flops(觸發器)模塊庫里調用Clock 時鐘提供一個數字時鐘信號,周期設為1,與Counter10模塊的CLK連接;從Sink(接收)模塊庫里調用Scope示波器,設置4個輸入通道。將這4通道與Counter10模塊的輸出Q3、Q2、Q1、Q0連接。仿真運行時間設置為11s。觀察示波器的輸出圖,如圖4所示。

圖4 十進制計數器電路輸出波形
由圖4計數器電路輸出的波形可以看出隨著Clock時鐘脈沖的到來,計數器Counter10模塊的輸出Q3Q2Q1Q0狀態從0000、0001、...、1001周而復始地變化,正好實現模為10的計數器。

圖5 數字顯示譯碼器電路
2.2數字顯示譯碼器(見圖5)模塊
在Simulink軟件里,沒有專門的數字顯示譯碼器電路。先根據譯碼器驅動7段數碼管顯示數字的原理,寫出真值表(可以參照BCD七段字符顯示譯碼器7448的真值表)。根據真值表,用卡諾圖化簡(同時考慮相同因子),得出驅動7段數碼管的信號的表達式為:




其中,譯碼器輸入信號A3~A0分別與Counter10計數模塊的輸出Q3~Q0連接。譯碼器輸出信號Ya~Yg分別控制7段數碼管的a段~g段的發光二極管。
2.3數碼管顯示電路
為了形象地表達數碼二極管的工作原理,這里用7個綠色LED來組裝成一個七段數碼管,高電平點亮方式。綠色LED用Simulink軟件Gauges Blockset(儀表對象箱)模塊庫里的子模庫LEDs里的Green Rec來表示。但由于Green Rec元件是受double型數據控制,但譯碼電路模塊輸出是boolean型數據,所以從Signal Attributes(信號屬性)模塊庫里調用Data Type Conversion實現數據類型轉換。
將計數模塊、譯碼模塊、數碼顯示電路組合成一個系統,并給系統加上時鐘脈沖信號源,如圖6所示。

設置不同的仿真時間,進行系統仿真,觀察仿真結果。得到的結果如圖7所示。

圖7 仿真結果
可以看出在對應的脈沖個數到來時,數碼管顯示模塊顯示出對應的數碼。經此驗證,所設計的十進制計數譯碼顯示電路的邏輯功能是正確的。
本文運用Simulink軟件,設計了十進制計數模塊、BCD數碼顯示譯碼模塊和數碼管顯示模塊,并將三者組合連接,建立起十進制計數譯碼顯示系統的仿真模型。從Scope示波器觀察到的仿真波形和自創的數碼管顯示模塊的輸出數碼來看,仿真模型達到了設計要求。
利用Simulink來設計與仿真十進制計數譯碼顯示電路的方法,能夠高效、快速地構建出仿真系統模型,直觀形象地展示結果。這種方法,不僅可以提高在教學效率和上課效果,而且可以提高學生的學習興趣,加深對整個系統工作原理的理解。運用Simulink進行對電路虛擬仿真,可以方便、有效地進行數字電子電路的設計和分析,為各種數字電子電路設計和分析提供一種有效的方法。
[1]閻石.數字電子技術基礎[M].北京:高等教育出版社,2006.
[2]彭晗,林永和,楊奕琦.MATLAB/Simulink仿真技術在模擬與數字電路教學中的應用[J].計算機時代,2010(10):69-71.
[3]高春芳.Simulink在數字電路仿真中的應用[J].安慶師范學院學報(自然科學版),2005,8:78-81.
The simulation of the count-decode-display circuit based on SIMULINK
Gan Qing Yu
(Guangxi Technological College of Machinery and Electricity ,Nanning,530007)
Simulation modules related to digital circuit are offered in Simulink.In this paper,at first,counter is designed by using triggers according to its logic function,and packaged into a module.Then,the decoder module is built by using combinational logic circuit,and the LED displaying circuit also. Finally all three circuits are combined into a count-decode-display system.The simulation results verify the correctness and reliability of the design,and also show that the design or analysis of digital circuits can be carried out conveniently and effectively by using software of Simulink to simulate the circuit.
S imulink;counter module;decoder module;display circuit;simulation
甘慶玉(1978—),女,廣西南寧人,廣西大學碩士,廣西機電職業技術學院講師,研究方向:電子信息與通信。