摘 要:Proteus動態仿真性能依賴于動態仿真模型。但有些實用的動態元器件,庫中沒有相應的仿真模型,必須自己創建。通過創建撥碼盤動態仿真模型,論述在Proteus中創建單片機交互式動態器件仿真模型的技術。撥碼盤仿真運行狀態與實際元器件表現一致,驗證了所建模型的正確性。展示了Proteus 動態模型在單片機應用系統的實時交互式仿真中的作用。
關鍵詞:Proteus;動態仿真模型;建模;單片機
中圖分類號:TP368.1文獻標識碼:A
文章編號:1004-373X(2009)12-152-04
Technology ofDynamic Simulation Model for Proteus
ZHOU Lingbin,ZHANG Jingwu
(Shaoxing TOP Vocational Institute of Information and Technology,Shaoxing,312000,China)
Abstract:Dynamic simulation performance of Proteus depends on the dynamic simulation model.Creating dynamic simulation model for some practical dynamic components where has no corresponding simulation model in the library,modeling techniques of dynamic and interactive components simulation model in the environment of Proteus by the example of creating code wheel model are discussed.Its simulation states are in conformity with the actual performance,which verified the model is correct.It shows the effect of dynamic model in real-time interactive simulation of single chip computer application system.
Keywords:Proteus;dynamic simulation model;modeling;single chip computer
0 引 言
Proteus是英國Labcenter electronics公司研發的EDA。其不僅是模擬電路、數字電路、模/數混合電路的設計與仿真平臺;更是目前世界上最先進、最完整的多種型號單片機(微控制器)應用系統的設計與仿真平臺。Proteus擁有類型多、數量大的元器件仿真模型;它們是Proteus設計與實現實時、交互、動態仿真的基礎[1-6]。一般可將仿真模型分為:原理圖模型、動態模型、SPICE模型、VSM模型。
動態模型是具有動畫效果的真實器件的仿真模型。如LED發光管、按鍵開關等。是Proteus的特色。但有些動態模型在庫中沒有,這就要求自己創建動態模型。
在此以“BCD撥碼盤”為例詳細敘述動態器件仿真模型的制作技術(這里采用Proteus 7.2SP6正版)。
1 Proteus建模流程
創建不同類型的元器件仿真模型,其流程大致一樣。如圖1所示。
圖1 建模流程
若無需設計元器件封裝,則跳過與設計封裝有關的步驟;若無需設計模型內電路,則可跳過與內電路設計有關的步驟。
2 創建BCD撥碼盤模型
BCD撥碼盤[1]是將10進制數轉換為BCD碼的鍵控器件,可與單片機直接連接,提供簡便的0~9的數據輸入功能,是實際應用較廣的電子器件。
2.1 繪制撥碼盤動態圖符
在Proteus ISIS中選擇2D繪圖工具,繪制10個表示動態效果的圖符如圖2所示。依次選中,通過菜單Library→Make Symbol 進入圖3所示的制作符號對話框,選擇符號類型(Type)為圖形(Graphic),逐個取名(BOPAN_0,BOPAN_2,…,BOPAN_9)存入用戶符號庫(USERSYM)中。
圖2 撥碼盤動態圖符
圖3 圖符入庫
2.2 繪制撥碼盤原理圖符號
在ISIS中選擇2D繪圖工具,繪制如圖4所示的撥碼盤原理圖符號。其中有兩個與鼠標關聯的圖符MKRINCREMENT,MKRDECREMENT,可從系統仿真模型中取得。放置引腳后,雙擊引腳彈出如圖5所示的引腳編輯框(Edit Pin),按表1設置引腳屬性。
圖4 撥碼盤原理圖符號
表1 撥碼盤引腳屬性
引腳名稱引腳序號電氣類型
Q01OP
Q12OP
Q23OP
Q34OP
A5IP
圖5 撥碼盤引腳編輯
2.3 撥碼盤Make Device
選中整個撥碼盤原理圖符號,右擊彈出菜單,選擇“Make Device”,彈出對話框“Device Properties”,如圖6所示,并按該圖6所示設置相應屬性。撥碼盤名稱命名為BOPAN;前綴為BP;動態圖符名主干為BOPAN,動態圖符數目為10。按NEXT鍵直到出現“定義元器件所在庫(Indexing and Library Selection)”,選擇元器件分類、子類及存放庫,如圖7所示設置分類為“Switches & Relays”,子類為“Switches”,存放庫為“USERDVC”。按“OK”鍵完成“Make Device”。此時新的元器件模型原理圖符號就存入指定的庫。同時在對象列表框中出現“BOPAN”。
圖6 “Device Properties”設置
2.4 設計模型內電路
經以上步驟創建的撥碼盤模型只是原理圖符號,還沒有仿真功能。還需建立它的內電路。將對象列表框中的“BOPAN”放入編輯區中。其編號自動為BP1,對BP1右擊再左擊,在出現的屬性框(見圖8)中選中捆綁內電路(Attach Hierarchy Module)選項。此時系統自動新建撥碼盤的內電路子頁。操作菜單Design→ Goto Sheet,出現如圖9所示的樹型結構圖,“Root sheet1”為根頁(即元器件原理圖符號所在頁), “BP1”為原理圖符號內電路子頁。點擊圖9中“BP1”,再點擊“OK”進入內電路子頁(也可直接按計算機鍵盤上“PgDn”進入)。并在內電路子頁中設計如圖10所示的內電路。設計操作與根頁中設計電路一樣。
圖7 設置元器件所在的庫
內電路中的元器件是VSWITCH,RTDSTATE_4,NOT,TRIBUFFER。其中RTDSTATE_4的屬性設置為{STATE=
圖8 捆綁內電路
圖9 進入內電路子頁
2.5 模型測試
模型內電路設計好后,要進行模型測試驗證。按計算機鍵盤上“PgUp”鍵返回根頁,在根頁中設計如圖11所示的兩個測試電路。電路元器件列于對象選擇器中。
圖10 撥碼盤內電路
圖11 撥碼盤分別主國正邏輯狀態和負邏輯狀態時的測試與仿真片段
圖11中左為撥碼盤工作在正邏輯狀態的電路;圖11中右為撥碼盤工作在負邏輯狀態的電路。設計如圖11左下方的控制程序(兩單片機采用程序相同)。經編譯生成Hex文件,分別加載到兩單片機屬性中,并設置合適的晶振頻率[1,2](例12 MHz)。啟動仿真,兩電路與控制程序配合,兩AT89C51單片機分別讀入各自撥碼盤的數據,并顯示在各自的BCD數碼管上。可用鼠標單擊(增1)或(減1)改變撥碼盤的數字輸出。左撥碼盤輸出數字0~9,經單片機處理后送數碼管對應顯示0~9。右撥碼盤輸出數字0~9,經單片機處理后送數碼管對應顯示出0~9的反碼F、E~6。圖11為仿真片段(右側圖中E是1的反碼),這就是人通過撥碼盤與單片機的交互式仿真。由此也驗證了所建撥碼盤模型是正確的。
2.6 模型存庫
點擊計算機鍵盤上“PgDn”進入內電路子頁。操作菜單Tools→Model Compiler…,彈出“Compile Model”對話框,選擇存儲模型文件的路徑(本例為默認路徑,即Proteus安裝路徑下MODELS文件夾),在文件名一欄中輸入內電路模型文件名(本例取名為“BOPAN.MDF”),點擊保存。該模型文件就保存在默認的模型文件夾中。按計算機鍵盤上“PgUp”鍵返回根頁,選中一撥碼盤模型,取消其內電路捆挷選項,再次啟動“Make Device”,按圖1的步驟進行到第三步“元器件屬性及定義(Component Properties & Definitions)”,點擊對話框左下角的“NEW”按鈕,從彈出菜單中選擇MODFILE,按圖12進行設置。設置后,第二次點擊“NEW”按鈕,選擇STATE,其屬性保持默認狀態。以后的步驟按上面第2.3節操作。至此撥碼盤的仿真模型創建完成。
圖12 Make Device時設置元器件屬性
3 創建動態仿真模型的調用
啟動Proteus,在ISIS窗口中,點擊器件選擇按鈕“P”,彈出選取元器件對話框,在其左上方的“Keywords”欄中輸入模型名“BOPAN”則可選出創建的BCD撥碼盤仿真模型,如圖13所示。從該圖還可看出動態模型所在庫為USERDVC。
圖13 動態仿真模型的調用
4 結 語
動態元器件仿真模型是Proteus的特色。Proteus在創建動態模型方面給予用戶廣闊的創作與發揮空間;展現出Proteus在動態仿真方面的無限魅力。它不但使人機交互式仿真得以實現,而且使仿真形象、生動。應用它可創造出極為接近現實的課程教學與產品研發的情境。
參考文獻
[1]張靖武,周靈彬.單片機系統的Proteus設計與仿真[M].北京:電子工業出版社,2007.
[2]張靖武,周靈彬.單片機原理、應用與Proteus仿真[M].北京:電子工業出版社,2008.
[3]周靈彬,張靖武.創建Proteus原理圖仿真模型的制作技術[J].現代電子技術,2008,31(8):9-11.
[4]周靈彬,張靖武.單片機應用產品的Proteus設計與仿真[J].今日電子,2008(1):64-68.
[5]周靈彬,張靖武.Proteus的單片機教學與應用仿真 [J].單片機與嵌入式系統,2008(1):76-79.
[6]深圳風標科技有限公司.Proteus在電類教學與科研中的應用[A].北京研討會專刊[C].2006.
[7]寧成軍,張江霞.基于Proteus和Keil接口的單片機外圍硬件電路仿真[J].現代電子技術,2006,29(18):142-143,146.