一、 實驗目的
熟悉并掌握Multisim10對單片機的仿真過程。
加深對單片機硬件以及軟件理論知識的理解。
二、 實驗原理
1、Multisim10
美國國家儀器公司下屬的ElectroNIcs Workbench Group在今年年初發(fā)布了Multisim 10。新版的Multisim10,加入了MCU模塊功能,可以和8051等單片機進行編程聯(lián)調,該軟件元件豐富,界面直觀,虛擬儀器的逼真度達到了讓人相當高的程度,是電子設計、電路調試、虛擬實驗必備良件。
工程師們可以使用Multisim 10交互式地搭建電路原理圖,并對電路行為進行仿真。Multisim提煉了SPICE仿真的復雜內容,這樣工程師無需懂得深入的SPICE技術就可以很快地進行捕獲、仿真和分析新的設計,這也使其更適合電子學教育。通過Multisim和虛擬儀器技術,PCB設計工程師和電子學教育工作者可以完成從理論到原理圖捕獲與仿真再到原型設計和測試這樣一個完整的綜合設計流程。
下面將簡單介紹一下Multisim10剛加進來的MCU模塊的使用方法。
雙擊桌面上的multisim10圖標,由于軟件比較大,需要等待一定的時間才能進入以下界面(圖一):
圖一
Multisim10界面和Office工具界面相似,包括標題欄、下拉菜單、快捷工具、項目窗口、狀態(tài)欄等組成。
標題欄用于顯示應用程序名和當前的文件名。下拉菜單提供各種選項。
快捷工具分為:文件工具按鈕,器件工具按鈕,調試工具按鈕,這些按鈕在下拉菜單中都有,并經常用到,現在放在工具欄里是為了方便使用。
項目窗口中的電路窗口是用來搭建電路的,Design Toolbox工具欄是用來顯示全部工程文件和當前打開的文件。
狀態(tài)欄用于顯示程序的錯誤和警告,如果有錯誤和警告那還還需要重新修改程序。直到沒有錯誤為止才能正常加載程序。
在電路窗口的空白處點擊鼠標右鍵,將出現如下菜單(圖二):
圖二
菜單包括:放置元件(place component)、連接原理圖(place schematic)、放置圖形(place graphic)、標注(place comment)等,這里我們最常用到的只有第一個放置元件:
點擊菜單中第一個選項或者按“CTRL+W”會出現以下元器件選擇對話框(圖三):
圖三
在Group中選擇我們需要的器件的類別,在Family中選擇我們需要的器件,點擊“OK”即可。在選擇805X和PIC等可編程器件時會出現如下對話框(圖四):
圖四
這時我們只要在“Please enter the workspace name”中輸入英文的文件名就可以點擊“Next”進入第二步(圖五):
圖五
在第二步中要選擇的是:在“Programming language”中選擇“ Assembly”,表示用匯編語言編寫,如果選擇“C”則表示用用C語言編寫。點擊“Finish”,完成了對單片機的設置。那么在軟件界面左邊的“Design Toolbox”中會出現新的文件,如下圖(圖六)所示:
圖六
點擊Circuit1項目窗口即顯示電路窗口(圖七):
圖七
點擊main.asm,項目窗口中就顯示編程窗口(圖八):
圖八
回到電路窗口,按照下圖選擇元器件,并且按照下圖(圖九)將電路連接好:
圖九
連好電路圖以后,點擊main.asm來到編程窗口(圖十)進行程序的編寫:
圖十
程序寫在“$MOD51”和“END”之間(圖十一):
圖十一
程序寫完以后要進行程序載入,用鼠標右鍵點擊Design Toolbox欄里的main.asm,選擇“Build”,然后在軟件的最下方的“Spreedsheet View”欄中會顯示編程的錯誤和警告,如果出現錯誤會在該欄中顯示并顯示出錯的具體位置,那么我們要回到編程窗口找到錯誤并修改,一直修改到0錯誤和0警告為止(圖十二)。
圖十二
以上工作完成以后,我們回到電路窗口,找到快捷工具欄中的“RUN”按鈕(圖十三中的第一個按鈕)
圖十三
按下“RUN”以后電路窗口中的LCD就開始顯示了(圖十四):
圖十四
2、LCD的引腳和時序
1、VCC 接電源 +5V。
2、CV 接電源 +5V 調節(jié)顯示屏灰度的,調節(jié)該端的電壓,可改變顯示屏字符顏色的深淺。(具體實物要看廠家的數據手冊,有些VO要求接地)
3、GND 電源地,接地。
4、E 信號使能,E由1 -> 0的下降沿有效,LCD對RS和DATA進行取樣和執(zhí)行操作。
5、RS 數據/命令選擇端,1-數據、0-指令。
6、RW 讀寫選擇,1-讀、0-寫,如果LCD函數沒有用到這個IO口的話就把它接地。
7、D7~D0 Data I/O,接單片機的IO口,用于輸入數據或者指令。
LCD開始工作第一步要進行初始化,初始化程序:
CLR P3.0;LCD
SETB P3.1
MOV P1,#03H
CLR P3.1
SETB P3.1
MOV P1,#0CH
CLR P3.1
SETB P3.1
MOV P1,#06H
CLR P3.1
初始化以后就可以進行指令和數據的讀寫了。
第一次顯示數據以后要進行第二次數據顯示,則需要進行清屏,清屏程序:
CLR P3.0;LCD
SETB P3.1
MOV P1,#01H
CLR P3.1
SETB P3.0
接下去就可以再次進行數據和指令的讀寫了。
3、實現的功能
本次實驗要求實現基于單片機的LCD顯示,LCD分兩次顯示,第一次顯示“0123”第二次顯示“456789A”。LCD采用08x1的液晶顯示器,單片機采用8051。
三、實驗內容
1、建立工程存放文件夾:
打開“我的文檔”,在National Instruments文件夾中打開Circuit Design Suite 10.0,然后在MCU Workspaces文件夾中新建一個文件夾,文件名為project。
2、雙擊桌面上的Multisim10的圖標,軟件打開需要等待一定的時間。
3、設置:
點擊菜單欄中的“Options”,選擇“sheet properties”,在Circuit中的 “NET names”欄里選中“Hide All”,然后再點擊Workspace,在“Sheet size”欄中選擇“A4”,點擊“OK”。
4、保存工程文件:
點擊File中的Save,在彈出的對話框中點擊MCU Workspaces,然后點擊自己新建的project文件夾,然后點擊“保存”。
5、選擇元器件:在空白紙上點擊右鍵,然后選擇“Place Component”,在彈出的對話框中的“Group”中選擇“MCU Module”,然后在“family”中選擇“805X”中的“8051”,點擊“OK”,在圖上適合的位置點擊左鍵,在彈出的對話框中點擊“Browse”,在“我的文檔”中找到剛新建的project文件夾,點擊該文件夾,然后點擊確定。在“Please enter the work space name”中輸入文件名“project”,點擊“Next”,在“Programming language”中選擇“Assembly”,然后點擊“Finish”。
接著在“Group”中選擇“Basic”,在“Family”中選擇“RESISTOR”,在Component中點擊“10K”電阻,點擊“OK”,在適合的位置點擊左鍵即可。
然后在“Family”中選擇“CAPACITOR”,選擇一個“10u”和兩個“30p”的電容,然后放置到圖紙上。
接著在“Group”中選擇“Sources”,在“Family”中選擇“POWER_SOURCES”,點擊放置四個“DGND”和兩個“VCC”。
然后在“Group”中選擇“Advanced Peripherals”,在“LCDS”中選擇“LCD_DISPLAY_08x1”,并放置在圖紙的適當位置。
接著在“Group”中選擇“Misc”,在“CRYSTAL”中選擇“HC-49/U_25MHz”的晶振,放置在圖紙上。
6、按照圖9所示,連接好單片機的外圍電路圖并點擊File中的Save:
7、保存好以后,在左側的“Design Toolbox”中左鍵單擊“Circuit1”前面的“+”號,然后一直點擊“+”號,一直找到“main.asm”,雙擊該文件,在原圖紙欄出現了編程界面,然后在該界面中輸入以下程序:
8、程序:
$MOD51 ; This includes 8051 definitions for the metalink assembler
ORG 0000H
CLR P3.0;LCD初始化
SETB P3.1
MOV P1,#03H
CLR P3.1
SETB P3.1
MOV P1,#0CH
CLR P3.1
SETB P3.1
MOV P1,#06H
CLR P3.1
SETB P3.0;對LCD寫數據
SETB P3.1
MOV P1,#30H
CLR P3.1
SETB P3.1
MOV P1,#31H
CLR P3.1
SETB P3.1
MOV P1,#32H
CLR P3.1
SETB P3.1
MOV P1,#33H
CLR P3.1
CLR P3.0;LCD清屏
SETB P3.1
MOV P1,#01H
CLR P3.1
SETB P3.0
SETB P3.1;第二次對LCD寫數據
MOV P1,#34H
CLR P3.1
SETB P3.1
MOV P1,#35H
CLR P3.1
SETB P3.1
MOV P1,#36H
CLR P3.1
SETB P3.1
MOV P1,#37H
CLR P3.1
SETB P3.1
MOV P1,#38H
CLR P3.1
SETB P3.1
MOV P1,#39H
CLR P3.1
SETB P3.1
MOV P1,#41H
CLR P3.1
SJMP $
END
9、程序輸入完成后,再用鼠標右鍵點擊右邊的“Design Toolbox”中的“main.asm”文件,點擊出現的菜單中的“Build”。在最下方的窗口中提示0錯誤和0警告以后,即可點擊“Design Toolbox”中的“Circuit1”,然后點擊工具欄中的開關按鈕“Run”,在彈出的對話框中點擊“YES”,程序就開始執(zhí)行,LCD開始顯示。
四、實驗報告與思考題
詳細描述實驗的過程,如實紀錄本實驗中間步驟和最終結果,還應紀錄實驗過程中的不正?,F象以及解決辦法。