基于Multisim10的單片機動態顯示仿真技術論文
摘 要:本文闡述了在單片機動態顯示的原理方法,以8051為中心給出了其硬件電路的構成,并著重闡述了在Multisim10中進行單片機動態顯示仿真設計的具體方法。
關鍵詞:Multisim10;單片機;8051;仿真;編譯
Multisim10是美國國家儀器公司(NI,National Instruments)推出的計算機電子仿真軟件。Multisim10實現計算機仿真時設計和實驗用的元器件和測試儀器和儀表齊全,可以完成各種類型的電路設計與實驗;可以方便地對電路參數進行測試和分析;設計與實驗可以同步進行,可以邊設計邊實驗,修改調試方便;可直接打印輸出實驗數據、測試參數、曲線和電路原理圖;實驗中不消耗實際的元器件,實驗所需的元器件和數和數量不受限制,實驗成本低,實驗速度快,效率高;設計和實驗成功的電路可以直接在產品中使用。
Multisim10版本可用于單片機和可編程邏輯器件的仿真分析,為單片機系統的仿真設計提供了較好的解決方案。multisim10提供了805x、PIC、RAM和ROM等4個系列的單片機芯片和可編程邏輯器件,使得該軟件的實際應用得到了大大的增強。本文使用Multisim10為輔助設計工具,做以單片機8051為中心的單片機動態顯示電路的`仿真設計。
1.設計要求和分析
顯示單元是單片機常見的控制功能,凡是遇到顯示輸出時都會用到顯示單元,如數字管的顯示,點陣的顯示等。為了提高單片機輸入輸出端口的效率,一般顯示單元都使用動態顯示技術。所謂動態顯示方式,就是一位一位地輪流點亮各個數碼管(動態掃描方式)。對于每一位數碼管來說,每隔一定時間點亮一次,當掃描的時間間隔足夠小時,利用人的視覺暫留特性,觀察者就不會感到數碼管的閃爍,看到的現象是所有的數碼管一起發光,就如同看電影的道理一樣。
如果要做4個數碼顯示管的動態顯示時,其實現方法是將所有的數碼管的a......g連接在一起,接在單片機的某個輸出端口上,各個數碼管的公共端作為片選信號接在單片機的另一個輸出端口上,這樣做可以大大地節省了硬件資源。
2.硬件電路的設計
單片機模塊8051的工作電源電壓為5V; Multisim10中的8051模塊內部已經具備了12MHz,所以仿真外圍電路可以省略晶振;故其最小系統需要加一只電容和一只電阻,實現單片機的上電復位功能。
如圖1所示是根據這一思路做的4位共陽數碼管動態顯示的電路原理圖。圖中四個數碼管的a......g共同連接到了8051的P0.7-P0.1,4個數碼顯示管的公共端分別接到P1.0-P1.3,電阻器R1和電容器C1構成了簡單的上電復位電路。
在動態掃描顯示方式中,數碼管的亮度同 LED點亮導通時的電流大小,每一位點亮的時間和掃描間隔時間三個因素有關。
3.Multisim10中繪制仿真電路原理圖
3.1放置單片機模塊8051
(1)單擊"元件"工具欄上的"Place MCU"按鈕,在彈出的"選擇元件"對話框的"系列"欄中選擇"805x",在"元件"欄中選擇"8051"。
(2)鼠標處出現一個"8051",在繪圖區單擊鼠標,便放置了一個"8051",同時打開MCU向導對話框。在其中輸入工作區的路徑和名稱,單擊"下一步"。
(3)彈出MCU向導第二步,在"Progranning language"欄中選擇編程語言,可以選擇匯編或C語言。若選擇C語言時,"Assembler/conplier tool"欄中會出現"Hi-Tech C51-Lite complier";若選擇了匯編語言(Assenbly)時,"Assembler/conplier tool"欄中會出現"8051/8052 Metalink assenbler"。在"項目名稱"欄中輸入項目名稱,單擊"下一步"按鈕。
(4) 彈出MCU向導第三步,可以選擇Creat empty project(建立空項目)或Add Source file(添加源文件),當選擇了Add Source file時,可在其下面的文本框中輸入源文件名,默認為"main.asm"。點擊"完成"按鈕結束放置。
3.2放置其他元件,這里略去。
3.3連線,完成原理圖的繪制。
4.編寫MCU源程序
4.1如圖2所示,打開設計工具箱,展開8051及其項目,雙擊"main.asm",打開匯編源程序窗口,窗口中出現以下代碼,在第一行和最后一行插入源程序。
4.2輸入源程序
$MOD51; This includes 8051 definitions for the metalink assembler
START:
MOV P1, #0FFH ;關閉所有的LED
MOV P0, #9FH ;送"1"的字形碼
MOV P1, #0FEH ;打開第1個LED
ACALL DELAY ;延時
MOV P1, #0FFH ;關閉所有的LED,否則顯示混亂
MOV P0, #27H ;送"2"的字形碼
MOV P1, #0FDH ;打開第2個LED
ACALL DELAY
MOV P1, #0FFH
MOV P0, #0DH ;送"3"的字形碼
MOV P1, #0FBH ;打開第3個LED
ACALL DELAY
MOV P1, #0FFH
MOV P0, #99H ;送"4"的字形碼
MOV P1, #0F7H ;打開第4個LED
ACALL DELAY
AJMP START
DELAY:MOV R6,#2 ;延時1ms
TEMP:MOV R5,#0FFH
DJNZ R5,$
DJNZ R6,TEMP
RET
END
5.編譯與仿真
單擊仿真按鈕,若程序還未經編譯則會彈出編譯提示消息框,點擊"是"進行編程的編譯。若程序正確,編譯通過,則在電路中顯示仿真結果;若未通過,則要修改程序,直至編譯通過。編譯后會形成一系列的目標文件。
在multisim10中可直接對匯編程序或C語言程序進行編譯,不需要其他編譯軟件,使得仿真操作變得簡單,這一點是它優于其他單片機仿真軟件的地方。如Protues也是目前比較流行的單片機仿真軟件,其優點是單片機芯片類型多,結果直觀,但它只能執行已編譯好的二進制和十六進制的目標文件,需要其他的程序編譯軟件進行編譯。但multisim10提供的單片機芯片種類少,也限制了它的應用。相信比multisim10高的版本會提供更多的單片機芯片種類,使之也能成為單片機仿真的利器。
參考文獻:
[1]覃奈新主編,單片機應用技術,電子工業出版社,2008
[2]李良榮主編,現代電子設計技術,機械工業出版社,2005
【基于Multisim10的單片機動態顯示仿真技術論文】相關文章:
基于單片機的彩燈設計開題報告集錦03-08
基于單片機的電子時鐘設計開題報告書03-13
基于單片機的電子體溫計的設計開題報告范例03-06
單片機實習目的12-08
基于核心素養的英語寫作教學策略論文09-29
單片機實訓心得05-03
單片機實習目的范文07-06