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