999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

單片機虛擬實驗中仿真電路的建立方法

2013-07-12 12:29:50
電子測試 2013年21期
關鍵詞:單片機用戶實驗

底 群

(西安職業技術學院,西安 710032)

0 引言

在以教學為目的的單片機虛擬實驗中仿真電路的建立是仿真軟件的核心組成部分。建立仿真電路的主界面對于用戶而言,它提供了一個可視的虛擬的單片機實驗平臺,用戶通過這一平臺建立仿真的實驗電路;當用戶仿真運行實驗程序時,又將通過這一平臺進行相關操作和觀察實驗現象。對于系統內部,仿真電路對用戶建立的電路進行元件的記錄,對電路連接情況進行分析,計算元件(包括單片機端口)的狀態,通過發送消息與仿真運行子系統交互。最終達到在全軟件仿真的環境中讓用戶完成單片機教學實驗,并獲得與真實實驗條件下相同的實驗結果。對于仿真電路的建立通過五個環節進行設計:

1 仿真元件的設計

1.1 元件的選擇

元件是電路建立的基礎,分析實際教學實驗過程,列出實驗中用到的電器元件主要有51系列單片機89S51、電阻、電容、發光二極管、三極管、數碼管、撥動開關、按鈕開關、邏輯門電路(與門、或門、非門)、八D鎖存器(74LS373)、譯碼器(74Ls138)、存儲器芯片等。另外將電源、接地、導線、節點也作為元件進行設計。對應各元件設計元件類。

1.2 元件的簡化

元件以簡化的圖形表現,在設計元件時為簡化軟件的設計,將部分元件以單元模塊的形式進行設計,例如對于發光二極管根據單片機I/O口的驅動方式設計兩種單元模塊,如圖1所示。

圖1 發光二極管單元模塊

這樣的設計只考慮單片機I/O口驅動發光二極管時發光二極管的狀態即,導通發光或截止熄滅,實質上是以單元模塊電路的形式將模擬元件簡化為數字邏輯單元。忽略了電路及元件具體的電流電壓等模擬特性。這種簡化的設計形式可使學生在做仿真實驗時將注意力集中在程序的編寫和程序的運行過程上,同時,對單片機電路設計中元件常用的連接方法有更加深刻的認識,當然對于為什么這樣連接及元件的具體參數,學生可以通過老師的講解或查閱資料來進一步學習。這樣的設計也非常符合實際教學的需求。

類似的單元模塊有,復位模塊、振蕩電路模塊、數碼管模塊、開關模塊。

1.3 元件的屬性和方法

元件設計時,首先要考慮元件的相關屬性,例如:在窗口中的位置、元件的線條及填充顏色、元件管腳斷點的坐標、管腳的連接信息和所屬的節點號、管腳的狀態(高電平或低電平)、元件的名稱、元件的狀態等。其次,對元件操作時的方法,例如:元件的繪制和對其它屬性進行設置等。

1.4 元件類的定義及關系

元件設計時首先設計出CYuanJian類,它繼承自CObject類。對于Cline類和CConnectDot類以外的其它元件類都由CYuanJian類繼承而來。元件在仿真時會具有一些共同的屬性和方法,依據面向對象的設計方法,將這些屬性和方法在父類中定義并實現。本軟件中的CYuanJian類定義了元件共有的基本屬性及方法。

為了讓元件對象能方便的以數據文件的形式在存儲器中存儲和讀取,將CYuanJian類的父類定義為VC++ MFC提供的基類CObject類。這樣就可使用CObject類的成員函數Serialize()對元件對象進行串行化。

CYuanJian類成員變量的訪問特性設為Protected以保護類的數據。成員函數的訪問特性設為Public,通過成員函數完成類的操作。子類的繼承特性采用Public。由于每個元件的外形均不相同,對元件進行繪制的Draw()函數和元件移動函數Move()定義為虛函數,利用VC++的多態性在子類中實現。同時這使得CYuanJian類成為了抽象類,CYuanJian類僅用來派生子類,不能實例化。

1.5 元件的具體設計

單片機仿真實驗軟件中元件類的設計方法一致,由于元件類較多這里僅以低電平點亮發光二極管單元模塊為例,具體說明它的設計過程。

CLENl類的定義結構如圖2所示。

圖2 CLENl類的結構

CLENl類在繼承CYuanJian類的基礎上,添加了自己特有的屬性和方法。屬性有:二極管的狀態m_State、導通時的顏色m_BOColor、可連接的管腳端點坐標m_EndPoint、管腳的電平m_EndPointValue、管腳連接的節點號m_NodeNum。方法有:構造函數LENl()、元件繪制函數Draw()、元件移動函數Move()、元件默認名設置函數SetDefName()、設置及獲取導通時顏色函數SetBOColor()和GetBOColor()、設置及獲取節點號函數SetNodeNum()、設置管腳值函數SetEPValue()、獲取管腳端點坐標函數GetEndPoint()。

對每一個元件或單元模塊都根據上述方法建立對應的類。由于篇幅限制不在詳細敘述。

2 元件基本操作的設計

在元件類建立完成的基礎上,仿真實驗電路建立的第一步就是元件的添加、移動、刪除、設置元件屬性等基本操作。

在單片機虛擬實驗中通過菜單中各菜單項及工具欄按鈕向用戶提供操作類型選擇。用戶首先選擇操作類型(如果用戶未選擇,系統將操作類型設置為預設的默認值);之后,用戶通過鍵盤和鼠標進行操作,系統獲得Windows消息判斷出鼠標和鍵盤事件再結合操作類型以決定程序的執行。

以新添加元件為例,首先,通過菜單或工具欄按鈕判斷出用戶選擇了添加元件操作及所需添加元件的類型;其次,用該元件類的構造函數新建立一個對象并將對象存入一個集合類中;再次,設置元件的默認屬性(如:根據鼠標當前位置確定元件的坐標);最后,調用元件繪制函數Draw()繪制函數。這樣一個虛擬的電子元件就以圖形的形式顯示在顯示器上,用戶可以直觀的觀察并進一步進行移動、刪除、設置元件屬性等基本操作。

3 元件連接的設計

當用戶添加了所需的元件后就需要進行元件的連接,進而建立出用戶所希望得到的實驗電路。此時,用戶需要先選中元件連接菜單或工具欄按鈕,系統判斷用戶的操作,從鼠標單擊某元件的管腳端點或連接點開始,并通過單擊鼠標左鍵確定連線的軌跡,最終當鼠標左鍵單擊另一管腳端點或連接點時結束。

系統獲取起始點對應元件信息同時創建一個Cline類(導線類)對象并將其存入集合類;在用戶進行元件連接的同時系統記錄連接信息并參考起始點和終點的連接信息計算更新結點表。結點表記錄了用戶所建立的實驗電路的連接信息,它是進行電路仿真時計算電路狀態(包括各個元件狀態)的依據。

4 電路初始狀態的計算

電路初始狀態的計算的主要目的是根據仿真電路中的具體元件和連接信息計算出電路各結點的邏輯電平,進而計算各元件管腳的邏輯電平,最終決定各元件的狀態。

在這里將元件管腳分為輸入型、輸出型和雙向型三類,并設置優先度。例如:接地是輸出型,優先度最高為10;電源是輸出型,優先度為8;開關元件是輸出型,優先度為9;單片機的P0、P1、P2、P3為雙向型,優先度為7;發光二極管單元模塊是輸入型,優先度為最低0(不能主動改變結點表)。建立結點表時會將元件管腳的優先度傳遞給結點,但電路元件狀態發生改變更新結點表時,對某一結點的改變要參考優先度決定結點值。

在電路狀態計算時設計了一組規則以保證電路計算的正確性。規則較多在此列表列舉部分進行說明。

表1.1電路連接及狀態說明規則

編號 規則類型 規則說明

1 連接規則 電源和接地不能直接連接。

2 連接規則 仿真電路中只能包含一個CSCM類的實例。

3 連接規則 電源不能和雙向型元件管腳直接連接。

4 連接規則 輸出型元件管腳不能直接連接。

5 連接規則 同一元件的輸入型管腳和輸出型管腳不能直接連接。

6 計算規則 0表示低電平、1表示高電平、5表示無信號

7 計算規則 直接連接的電路連線及連接點在電氣特性上視為同一結點

8 計算規則 節點表的內容與電路連線及連接點的信息保持一致。

9 計算規則 結點表更新時結點值改變必須遵守新值的優先度>=原優先度

電路初始狀態計算時發現仿真電路違反連接規則時停止計算提示用戶修改。否則遵循表1.1所列計算規則進行計算。電路初始狀態計算的算法如下。

①按照接地→電源→單片機→開關→其它元件的順序,遍歷元件輸出型管腳,將與之連接的結點值和優先度進行修改,更新結點表。注:某些元件在初始時輸出無法確定將其值設為5表示無信號。

②對結點表中結點值不等于5的結點,修改其連接的元件管腳值。元件會立刻自動計算自身狀態改變及輸出。

③按照單片機→其它元件的順序(不包含接地、電源、開關和純輸入型元件),遍歷元件輸出型管腳,將與之連接的結點值和優先度進行修改,更新結點表。判斷結點表是否改變。若節點表發生改變,返回第②步;若結點表未改變,向下執行第④步。

④電路初始狀態計算完畢。對仿真電路窗口進行重繪。

通過以上算法經過若干次循環后可計算出電路初始狀態,計算的復雜度與電路中元件數量和元件的級聯層數有關。在教學過程中的實驗其電路都較為簡單,元件的數量一般為十幾個到幾十個,級聯層數也不會超過五層,所以該算法是可行的。

5 電路狀態跟蹤的設計

與現實中的單片機實驗一樣,在用戶進行仿真運行時有兩種情況會改變仿真電路的狀態,一是:正在運行的用戶程序改變了單片機的I/O口。二是:用戶通過鼠標操作改變了電路中按鈕開關或撥動開關的狀態。

在設計時定義兩個函數IOchange()和SWchange(),在上述兩種情況發生時,分別調用對應函數進行處理。函數采用與電路初始狀態計算相似的算法計算當前電路狀態。實現實時更新仿真電路狀態,使電路狀態與程序的執行或用戶對電路的操作保持一致。

6 結束語

本文主要闡述單片機虛擬實驗電路建立的方法和過程。討論了仿真元件的設計方法以及使用面向對象方法進行元件類的設計過程,并以CYuanJian類和CLENl類為例說明各元件的定義。其次討論了電路仿真設計思路,元件相關操作的設計方法,其中關鍵問題為元件連接信息的獲取即結點表的維護和電路狀態的計算方法。

[1]邵春波,張濤.單片機虛擬實驗平臺的設計與實現[J].臺州學院學報,2008,(6).

[2]辛允東.虛擬實驗和真實實驗的比較研究[J].科技教育創新中國科技信息,2008 ,(10).

[3]黃慕雄.高校教學型虛擬實驗室建設的現狀與建議[J].電化教育研究, 2005,(9).

[4]張學軍,馬彥芬.EWB仿真在實驗教學中的應用[J].河北工程技術高等專科學校學報,2011,(1)

[5]田軍營,韓建海,單片機實驗的虛擬化改革[J].實驗室科學,2008,(6).

[6]JoséM Garrido.Object - oriented discrete- event simulation with Java ∶ a practical introduction [M].Kluwer Academic/ Plenum Publishers , 2001.

[7]M.J.Harrold.Testing∶ A Roadmap In the Future of Software Engineering [J].Anthony Finkelstein (ED.), pp.63-71,ACM Press 2000

猜你喜歡
單片機用戶實驗
記一次有趣的實驗
基于單片機的SPWM控制逆變器的設計與實現
電子制作(2019年13期)2020-01-14 03:15:28
做個怪怪長實驗
基于單片機的層次漸變暖燈的研究
電子制作(2019年15期)2019-08-27 01:12:10
基于單片機的便捷式LCF測量儀
電子制作(2019年9期)2019-05-30 09:42:02
關注用戶
商用汽車(2016年11期)2016-12-19 01:20:16
NO與NO2相互轉化實驗的改進
實踐十號上的19項實驗
太空探索(2016年5期)2016-07-12 15:17:55
關注用戶
商用汽車(2016年6期)2016-06-29 09:18:54
關注用戶
商用汽車(2016年4期)2016-05-09 01:23:12
主站蜘蛛池模板: 青青青国产免费线在| 亚洲高清中文字幕| 毛片免费网址| 精品伊人久久大香线蕉网站| 欧美日韩国产综合视频在线观看| 中文字幕亚洲专区第19页| 久综合日韩| 欧美69视频在线| 天天综合色网| 免费国产不卡午夜福在线观看| 中文国产成人精品久久一| 午夜视频www| 动漫精品啪啪一区二区三区| 无码有码中文字幕| 少妇人妻无码首页| 四虎永久在线视频| 亚洲人成在线免费观看| av大片在线无码免费| 中文无码伦av中文字幕| 国产丝袜丝视频在线观看| 超碰免费91| 在线观看免费人成视频色快速| 四虎永久免费网站| 欧美一级一级做性视频| 国产丝袜第一页| 精品三级网站| 国产特一级毛片| 国产女人18毛片水真多1| 国产微拍精品| 国产美女免费| 成人国产精品网站在线看| 欧洲精品视频在线观看| 免费无码AV片在线观看中文| 欧美综合成人| 国产午夜一级淫片| 9999在线视频| 国产精品男人的天堂| 黄色网站在线观看无码| 亚洲A∨无码精品午夜在线观看| 99成人在线观看| 亚洲αv毛片| 久久这里只有精品23| 欧美高清国产| 女人18毛片一级毛片在线 | 亚洲欧洲日韩国产综合在线二区| 成人午夜视频在线| 99视频免费观看| 麻豆精品久久久久久久99蜜桃| 国产成人精品视频一区视频二区| 亚洲黄色视频在线观看一区| 国产精品成| 国产 日韩 欧美 第二页| 欧美成人午夜影院| 亚洲天堂777| 色哟哟色院91精品网站 | 久久毛片基地| 思思99思思久久最新精品| 国产成人精品在线| 黄片一区二区三区| 亚洲男女天堂| 九九视频免费看| 日本人妻丰满熟妇区| 草草影院国产第一页| 九九热精品免费视频| 国产精品久线在线观看| 人妻无码中文字幕一区二区三区| 999精品视频在线| 久久99精品久久久久纯品| 亚洲高清免费在线观看| 国产一级精品毛片基地| 在线观看亚洲国产| 免费国产好深啊好涨好硬视频| 国产精品va免费视频| 在线观看欧美国产| 综合亚洲网| 新SSS无码手机在线观看| 综合久久五月天| 亚洲午夜国产精品无卡| 伊人激情久久综合中文字幕| 一区二区午夜| 福利视频99| 欧美第二区|