




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)
文檔簡介
1、 實 驗 指 導(dǎo) 書單片機(jī)原理與接口技術(shù)編者: 陳青華中科技大學(xué)武昌分校信息系2011年3月目 錄第一章 系統(tǒng)概述4第二章 實驗指導(dǎo)14一、實驗指導(dǎo)說明14二、軟件實驗部分14實驗一清零程序15實驗二 拆字程序16實驗三拼字程序17實驗四 數(shù)據(jù)區(qū)傳送子程序17實驗五 數(shù)據(jù)排序?qū)嶒?8實驗六 查找相同數(shù)個數(shù)19實驗七 無符號雙字節(jié)快速乘法子程序20實驗七無符號雙字節(jié)快速乘法子程序21實驗八多分支程序22實驗九 脈沖計數(shù)(定時/計數(shù)器實驗)24實驗十 電腦時鐘(定時器、中斷綜合實驗)28三、硬件實驗部分33實驗一p1輸出口亮燈實驗34實驗二 p1口輸出轉(zhuǎn)向燈實驗36實驗三 用p3口輸入,用p1口輸
2、出實驗40實驗四 工業(yè)順序控制實驗43實驗五8255 a,b,c口輸出方波實驗46實驗六8255pa開關(guān)輸入,pb口輸出顯示實驗47實驗七8255模擬交通信號燈控制過程實驗49實驗八簡單i/o接口擴(kuò)展實驗52實驗九a/d轉(zhuǎn)換實驗54實驗十d/a轉(zhuǎn)換實驗57實驗十一用8279擴(kuò)展鍵盤、顯示接口實驗61*實驗十二用8255連接標(biāo)準(zhǔn)打印機(jī)接口實驗65*實驗十三用微型打印機(jī)打印字符/ 曲線/ 漢字實驗67*實驗十四 ds12887日歷時鐘芯片應(yīng)用實驗71實驗十五 ic存儲卡讀寫實驗83*實驗十六 isd1420語音芯片錄音實驗92*實驗十七 isd1420語音芯片放音實驗96實驗十八單片機(jī)外接繼電器控
3、制實驗99實驗十九單片機(jī)控制步進(jìn)電機(jī)實驗101實驗二十單片機(jī)擴(kuò)展8253產(chǎn)生方波實驗109實驗二十一 單片機(jī)控制微型直流電機(jī)調(diào)速實驗111實驗二十二 單片機(jī)控制16*16點陣led顯示實驗114實驗二十三 單片機(jī)連接128*64點陣lcd液晶顯示器實驗119實驗二十四 單片機(jī)擴(kuò)展8250串行接口實驗128實驗二十五 單片機(jī)擴(kuò)展8251串口與pc機(jī)通訊實驗135實驗二十六 單片機(jī)用rs232/rs485串行發(fā)送數(shù)據(jù)實驗(雙機(jī)通訊)142實驗二十七 單片機(jī)用rs232/rs485串行接收數(shù)據(jù)實驗(雙機(jī)通訊)149實驗二十八 單片機(jī)接溫度壓力傳感器實驗151實驗項目(一)軟件實驗(1)清零程序;(2
4、)拆字程序;(3)拼字程序;(4)數(shù)據(jù)區(qū)傳送子程序;(5)數(shù)據(jù)排序?qū)嶒?;?)查找相同數(shù)據(jù)個數(shù);(7)無符號雙字節(jié)快速乘法子程序;(8)多分支程序;(9)脈沖計數(shù)實驗;(10)電腦時鐘實驗。(二)硬件實驗(1)p1口輸出亮燈實驗;(2)p1口輸出轉(zhuǎn)彎燈實驗;(3)用p3口輸入,用p1口輸出實驗;(4)工業(yè)順序控制實驗;(5)8255 a,b,c口輸出方波實驗;(6)8255pa開關(guān)輸入,pb口輸出顯示實驗;(7)8255模擬交通信號燈控制過程實驗;(8)簡單i/o接口擴(kuò)展實驗;(9)a/d轉(zhuǎn)換實驗;(10)d/a轉(zhuǎn)換實驗;(11)用8279擴(kuò)展鍵盤、顯示接口實驗;*(12)用8255連接標(biāo)準(zhǔn)打
5、印機(jī)接口實驗;*(13)用微型打印機(jī)打印字符/ 曲線/ 漢字實驗;*(14)ds12887日歷時鐘芯片應(yīng)用實驗;(15)ic存儲卡讀寫實驗;*(16)isd1420語音芯片錄音實驗;*(17)isd1420語音芯片放音實驗;(18)單片機(jī)外接繼電器控制實驗;(19)單片機(jī)控制步進(jìn)電機(jī)實驗;(20)單片機(jī)擴(kuò)展8253產(chǎn)生方波實驗;(21)單片機(jī)控制微型直流電機(jī)調(diào)速實驗;(22)單片機(jī)控制16*16點陣led顯示實驗;(23)單片機(jī)連接128*64點陣lcd液晶顯示器實驗;(24)單片機(jī)擴(kuò)展8250串行接口實驗;(25)單片機(jī)擴(kuò)展8251串口與pc機(jī)通訊實驗;(26)單片機(jī)用rs232/rs485
6、串行發(fā)送數(shù)據(jù)實驗(雙機(jī)通訊);(27)單片機(jī)用rs232/rs485串行接收數(shù)據(jù)實驗(雙機(jī)通訊);(28)單片機(jī)接溫度壓力傳感器實驗;注:實驗項目前打*星號為選配擴(kuò)展卡實驗。dice-3000型51/96通用單片機(jī)仿真器相關(guān)介紹詳見dice-3000型使用說明或本實驗指導(dǎo)書的相關(guān)介紹。第一章 系統(tǒng)概述一:恒科 超想-3000仿真機(jī)的使用方法:在桌面點擊“hk-51系列仿真開發(fā)系統(tǒng)”出現(xiàn)如下畫面:1、“新建”/“打開”一個 asm 匯編源程序2、“編譯/匯編!”asm 文件,生成包括hex 16進(jìn)制文件在內(nèi)的系列文檔。 如果編譯沒有通過,則根據(jù)提示修改程序的語法錯誤,直到編譯成功。3、插入仿真頭
7、到應(yīng)用板上,通電后用“單步”或“連續(xù)”運行,觀察cpu內(nèi)部ram,各個特殊功能寄存器內(nèi)容的變化,以及應(yīng)用板上設(shè)計的顯示等變化。如果達(dá)不到設(shè)計效果和要求,則需要重新考慮修改程序上的邏輯錯誤,直到完善為止。要想了解更多超想-3000仿真機(jī)的使用方法,請查閱 單片機(jī)原理及其接口技術(shù)實驗朱定華 編著 教材 附錄a(超想-3000仿真機(jī)使用說明) 圖1-1 hk-51系列仿真開發(fā)系統(tǒng)仿真軟件窗口圖示2 源文件的建立和打開 建立新文件 執(zhí)行“文件/新文件”菜單命令或單擊工具欄按鈕即出現(xiàn)一個源文件編輯窗口,您可以在 編輯窗口中輸入源程序代碼,完成后用“文件/存儲”命令將文件存到磁盤上。如果源文件是 新建立的
8、 super image-3000 win98則會彈出文件列表框要求您輸入要保存的文件名,再單擊 “保存”即可。 打開一個文件 執(zhí)行“文件/打開文件”菜單命令或單擊工具欄按鈕即出現(xiàn)打開文件列表框,您可用鼠標(biāo) 直接點擊顯示在列表框內(nèi)文件名或者也可在輸入框內(nèi)直接輸入,再單擊“打開”按鈕,屏幕 即出現(xiàn)一個文件編輯窗口,顯示您選取的文件內(nèi)容。 編譯單個源程序文件 當(dāng)您已經(jīng)建立或打開了一個源程序文件,您就可以使用“編譯/文件編譯、連接、裝載” 命令或單擊工具欄按鈕即可對當(dāng)前源文件進(jìn)行編譯、連接,如果源文件存在錯誤,即彈出“編 譯連接產(chǎn)生錯誤”對話框,單擊“ok”,編譯錯誤信息便出現(xiàn)在“編譯連接信息”窗口
9、,雙擊 錯誤信息行,光標(biāo)便自動跳轉(zhuǎn)到源文件編輯窗口的出錯行,以便您進(jìn)行修改。如果源程序文 件沒有錯誤,即彈出“編譯、連接成功”對話框。 編譯、連接成功62 源文件的裝載 在源文件編輯窗口或已打開工程文件后即可用“編譯/編譯、連接、裝載”菜單命令或 單擊工具欄按鈕即可對當(dāng)前源文件或當(dāng)前工程組進(jìn)行編譯、連接,并裝載到rom。 當(dāng)源文件通過編譯并生成目標(biāo)代碼時,您可直接將其目標(biāo)代碼(*omf *hex *bin *obj *o)裝入rom,方法是執(zhí)行“編譯/裝載”菜單命令或單擊工具欄按 鈕,再選擇要裝載的代碼文件。例如demoasm已通過編譯并生成代碼,您可直接裝載 demoomf文件。如果裝載的文
10、件不含調(diào)試信息,調(diào)試窗口則以反匯編方式顯示。 您也可用此方法裝載從編程器上讀取的代碼文件。 注意:當(dāng)源文件經(jīng)過修改,必須使用重新編譯裝載。 無論您使用何種方法裝載,系統(tǒng)均提示編譯、連接成功。 單擊“ok”確認(rèn)后,即打開調(diào)試窗口。使用調(diào)試窗口調(diào)試源程序 您可以在程序調(diào)試窗口中對用戶程序設(shè)置或清除斷點、開始或中止仿真、進(jìn)行單步操作 以及觀察變量等。 菜單及其命令 菜 單用 途 文件菜單建立、打開、保存源文件,關(guān)閉當(dāng)前窗口,輸出列表表文件,退出ide 編輯菜單對活動窗口有關(guān)內(nèi)容進(jìn)行編輯 編譯菜單源程序編譯、連接、裝載,瀏覽模塊,設(shè)置編譯選項 調(diào)試菜單單步、斷點、連續(xù)運行方式,增加變量,程序復(fù)位,程序
11、暫停,設(shè)置pc。 工程菜單建立、打開、編輯、關(guān)閉工程,打開工程文件列表。 設(shè)置菜單設(shè)置仿真模式及通訊端口。 視圖菜單查看調(diào)試、寄存器、存儲器、變量、編譯信息窗口。 窗口菜單層疊、平鋪及關(guān)閉所有窗口,選擇已打開的窗口。 幫助菜單顯示關(guān)于super image-3000的版本信息。 菜單及其用途列表 (1) 文件菜單 建立一個新的源文件。 彈出對話框,選取列表中的文件或在輸入框輸入文件名,單擊“打開”,文件編輯窗 口即顯示該文件內(nèi)容。 關(guān)閉 關(guān)閉當(dāng)前的活動窗口。 將當(dāng)前編輯窗口中的文件存到磁盤上。 另存為 將當(dāng)前編輯窗口中的文件換成另一個文件名再存盤。 輸出列表文件 將當(dāng)前rom地址空間的代碼保存
12、為lst列表文件。 彈出文件列表對話框,輸入要保存的文件名并單擊“保存”。 執(zhí)行該命令可退出super image-3000 win98。 (2) 編輯菜單 注意:編輯菜單為super image-3000 win98的動態(tài)菜單,當(dāng)激活不同的窗口時該菜單命 令也隨之變化;關(guān)閉所有窗口后該菜單也自動關(guān)閉?,F(xiàn)以源文件編輯窗口為例向您說明該菜 單(假設(shè)已激活源文件編輯窗口)。該菜單的其它命令將在以后的章節(jié)為您詳細(xì)說明。我們特 別建議您使用ide快捷菜單。 使用該命令能恢復(fù)文件編輯中最后一次所做的修改。 清除編輯窗口中選定的文件,并放置在剪貼板上。只有在選定文本后,這一命令才有效。 放置在剪帖板上的文
13、件始終保留在那里,直到新內(nèi)容替換掉它們。 使用該命令可將選定的文本復(fù)制到剪貼板上。只有在選定文本后,這一命令才有效。 復(fù)制到剪貼板上的文本將替換掉先前的內(nèi)容 。 使用該命令可以將剪貼板內(nèi)容插入到當(dāng)前編輯窗口的光標(biāo)位置。如果在編輯窗口中已選 定內(nèi)容。使用該命令可用剪貼板上的內(nèi)容替換掉選定的內(nèi)容。 如果剪貼板上無內(nèi)容,這一命令將是無效的。 使用該命令可以在當(dāng)前編輯窗口中查找文本字符串。 該命令包含兩參數(shù),您可選擇使用: whole word 整字匹配 match case 區(qū)分大小寫 查找下一個 ctrl+l 使用該命令可以繼續(xù)查找在“查找”命令中指定的文本。 使用該命令可以跳轉(zhuǎn)到編輯窗口中指定的
14、行。 字體 對編輯窗口中的文本進(jìn)行字體、字號、顏色等設(shè)置。 刷新 重新顯示當(dāng)前編輯窗口。 (3) 編譯菜單 編譯、連接 對當(dāng)前編輯窗口源文件或當(dāng)前工程組進(jìn)行編譯、連接,生成目標(biāo)代碼。 編譯、連接、裝載 ctrl+f9 對當(dāng)前編輯窗口源文件或當(dāng)前工程組進(jìn)行編譯、連接,并將生成的目標(biāo)代碼裝入rom。 裝載 f3 將磁盤上存在的目標(biāo)代碼直接裝入rom。 瀏覽模塊 ctrl+f3 該命令可在調(diào)試窗口中瀏覽源文件內(nèi)容,通常適用于瀏覽工程組中的源文件。 編譯選項 使用該命令您可設(shè)置源文件編譯的各選項。 (4) 調(diào)試菜單 連續(xù)運行 f9 執(zhí)行該命令便開始連續(xù)運行用戶程序,當(dāng)遇到斷點或按下esc暫停鍵時停止。
15、 運行到指定地址 f5 以連續(xù)方式運行程序,運行到指定的地址停下。如果在源文件方式下調(diào)試,可以選擇符 號地址。 運行到光標(biāo)處 f4 以連續(xù)方式運行程序,運行到光標(biāo)所在行停下。如果光標(biāo)移在非執(zhí)行語句行,將不響應(yīng)此命 令。 單步運行 f7 逐步運行用戶程序,遇到調(diào)用子程序,則跟蹤進(jìn)入子程序運行。 宏單步運行 f8 逐步運行用戶程序,遇到調(diào)用子程序,一步執(zhí)行完整個過程而不進(jìn)入子程序運行。 自動單步 以連續(xù)單步方式運行用戶程序。 自動宏單步 以連續(xù)宏單步方式運行用戶程序。 增加變量 ctrl+f5 將程序中想要觀察的變量增加到變量窗口,在程序運行時您要隨時觀察變量的內(nèi)容。 設(shè)置或清除斷點 ctrl+f
16、8 當(dāng)光標(biāo)移到調(diào)試窗口可執(zhí)行語句行時,可以用該命令設(shè)置斷點,重復(fù)該命令也可清除斷 點。 技巧:將鼠標(biāo)移到調(diào)試窗口的可執(zhí)行語句行左側(cè),單擊鼠標(biāo)即可設(shè)置斷點。重復(fù)此操作 也可清除斷點。 瀏覽斷點 執(zhí)行此命令即彈出對話框,您可通過對話框查看斷點個數(shù)、斷點所在的模塊、斷點地址、 斷點在源文件中的行號,您也可用此命令增加或清除斷點。 清除所有斷點 該命令可清除各個調(diào)試模塊中所有設(shè)置的斷點。 復(fù)位 ctrl+f2 該命令可對(目標(biāo)系統(tǒng))cpu復(fù)位,同時將pc指針回復(fù)到裝載文件的初始值(如0000)。 重新開始運行 將當(dāng)前pc置初始值(如0000)后再以連續(xù)方式運行。 暫停 esc 該命令可停止當(dāng)前程序的運
17、行(適用于連續(xù)運行、自動單步/自動宏單步運行方式),返回 待令狀態(tài)。 夭折處理 強(qiáng)制停下當(dāng)前正在運行的程序。一般來講,“暫?!泵罴纯赏V梗绻谶\行和程序 無法用“暫?!泵钔V梗墒褂么嗣?。 設(shè)置pc 將當(dāng)前pc指針指向您輸入的地址。如果在源文件方式下調(diào)試,可以選擇符號地址。 pc=當(dāng)前地址 將pc指針指向當(dāng)前光標(biāo)所在的可執(zhí)行語句行。 (5) 工程菜單 新建 打開文件列表框,創(chuàng)建新工程文件。 打開 彈出文件列表框,打開已存在的工程文件。 編輯 打開對話框,增加或刪除工程中的文件。 關(guān)閉 關(guān)閉當(dāng)前使用的工程文件。 文件列表 打開工程文件列表對話框,可指定編輯工程中的源文件。 (6) 設(shè)置
18、菜單 仿真模式 打開對話框,可對仿真cpu、ram、rom讀寫控制等選項進(jìn)行設(shè)置。 通訊端口選擇 選擇與仿真器實際連接的通訊端口。 重新連接 通訊失敗、檢查硬件連接或重新選擇通訊端口后,該命令可重新進(jìn)行通訊測試。 (7) 視圖菜單 調(diào)試 打開程序調(diào)試窗口。如果未裝載程序,可看到隨機(jī)代碼。 寄存器 打開寄存器窗口。您可對該窗口進(jìn)行增加、刪除操作。 存儲空間1/2 ide允許同時打開兩窗口,可在該窗口切換查看程序存儲器、數(shù)據(jù)存儲器、cpu內(nèi)部存 儲器、特殊寄存器等內(nèi)容。 變量 打開變量窗口,可隨時觀察變量的變化。 編譯連接信息 打開編譯連接信息窗口,可查看源文件編譯是否有錯。 (8)窗口菜單 層疊
19、 以重疊方式排列已打開的窗口,但保持每窗口的標(biāo)題欄都可見。 水平平鋪 把已打開的窗口水平排列,使已打開的窗口都可見。 垂直平鋪 把已打開的窗口垂直排列,使已打開的窗口都可見。 關(guān)閉所有窗口 關(guān)閉所有已打開的窗口。 選擇“窗口”菜單下已打開窗口的名稱及編號可以激活該窗口。 (9) 幫助菜單 關(guān)于 顯示關(guān)于super image-3000 win98集成開發(fā)環(huán)境的版本信息,及win98環(huán)境與dos環(huán)境 下編輯器偽指令使用上的區(qū)別。二、top系列編程器使用的簡要說明top2005型編程器具有體積小巧,功耗低 ,可靠性高的特點,是專為開發(fā)單片機(jī)和燒寫各類存儲器而設(shè)計的通用機(jī)型。top2005采用usb
20、通用串口與pc機(jī)連接通信,傳輸速率高,抗干擾性能好,可靠性能極高,而且無需外接電源,特別適合電池供電的筆記本電腦外出使用。其特點:1可支持2565v的器件;2使用usb接口電源,不必外接電源;3通過usb通用串口與pc機(jī)連接,傳送速率12mh/s;4即適合電池供電的筆記本電腦使用,也適合臺式機(jī)使用;5完善的過電流保護(hù),有效地保護(hù)編程器和器件不受損害;6usb負(fù)載能力檢測(0至10級);7全插腳檢查,可以檢查出任意一個插腳的的接觸狀態(tài);840針進(jìn)口萬能鎖緊插座;9在winows98se/me/200o/xp下運行;10塑料機(jī)殼,體積小,重量輕,功耗低;11可自動探測廠家和型號;12單片機(jī)定時,編
21、程速度與計算機(jī)無關(guān);一:芯片操作11常規(guī)步驟 連接好topwin,電源指示燈 (紅色)亮; 運行topwin,exe;工作指示燈 (綠色)亮;在主菜單中選擇文件,裝載數(shù)據(jù)到文件緩沖區(qū);如下圖所示:找到文件夾,選擇hex類型(asm文件編譯后生成的16進(jìn)制文件)文件。二: 將芯片插在插座上并鎖緊,準(zhǔn)各對器件進(jìn)行讀寫操作。操作萊單:選擇型號,對應(yīng)的工具按鈕為型號,執(zhí)行后彈出選擇廠家/型號窗口:芯片型號的選擇過程按照:類型一)生產(chǎn)廠家一)型號的順序確定芯片型號。如下圖所示: 在首行查找右邊鍵入關(guān)鍵字,如51,這一步可以省略。 在類別框中選擇芯片類型,如電擦除存儲器; 在制造廠家列表框中選擇生產(chǎn)廠家,
22、例如選擇 atmel; 在器件型號列表框中選擇芯片 型號。例如選擇at89c52。如果選擇的是存儲器,可以按探測廠家代碼取得2字節(jié)代碼,第一字節(jié)代表生產(chǎn)廠家,第二字節(jié)代表型號。 然后,按確認(rèn)進(jìn)入讀寫操作。 2讀寫器件:對應(yīng)的工具按鈕為讀寫,由于芯片的類型不同,相應(yīng)的讀寫窗口也略有不同。分別敘述如下: 1讀寫并口存儲器 以89c52為例,在選擇廠家/型號窗口中選擇 類型 電擦除存儲器 選擇廠家 atmel 器見型號 at89c52 按確認(rèn)鍵,彈出單片機(jī)讀寫窗口如下:寫器件: 寫器件操作是把緩沖區(qū)內(nèi)的數(shù)據(jù)燒寫到芯片申。文件開始地址和器件開始地址默認(rèn)為0,隱含燒寫該器件的全部單元,數(shù)據(jù)長度最大可達(dá)六
23、位十六進(jìn)制 (hex)數(shù)字,最大地址空間8m。用戶也可以根擁需要對開始地址進(jìn)行修改,達(dá)到部分燒寫的目的。 寫器件過程由進(jìn)展條直觀顯示,燒寫過程中,程序自動進(jìn)行校驗,如碰到不能寫入的單元時,將退出寫操作,并顯示出錯地址、緩沖區(qū)數(shù)據(jù)和芯片數(shù)據(jù)內(nèi)容。特別注意: 器件在寫之前必須特別要注意芯片型號不能搞錯,由于芯片類型不同,使用的編程電壓可能不一樣,否則會損壞器件或設(shè)備。確認(rèn)所有設(shè)置正確無誤后,將待編程的器件插到器件插座上,拉平鎖緊扳手。讀器件: 將芯片中的全部數(shù)據(jù)讀入緩沖區(qū),分頁顯示到數(shù)據(jù)窗口,讀出過程由進(jìn)展條直觀顯示。用戶可對讀出的數(shù)據(jù)進(jìn)行修改,存盤(文件格式必須與芯片內(nèi)的固化文件格式一致)。擦除
24、: 擦除芯片存儲器的全部內(nèi)容,擦除后全為ff。只有電擦除器件可以用這個命令,eprom需用紫外線擦除。檢查空片: 器件在寫入之前,要檢查是否空片??掌拿?個字節(jié)都是ff(十六進(jìn)制)。檢查過程由進(jìn)展條直觀顯示,當(dāng)發(fā)現(xiàn)非空單元,將退出檢空操作,并顯示非空單元的地址和數(shù)據(jù)。 該操作檢查eprom的所有地址空間,與設(shè)置的器件開始地址和數(shù)據(jù)長度無關(guān)。eprom可用紫外燈照射后冉槍查,仍通不過則器件己損壞。校對數(shù)據(jù): 該操作把緩沖區(qū)內(nèi)的數(shù)擁與芯片中的數(shù)據(jù)進(jìn)行比較,校對由進(jìn)展條直觀顯示,當(dāng)遇到校對出錯的單元時,將退出校對操作,并顯示出錯單元的地址、緩沖區(qū)數(shù)據(jù)私芯片數(shù)據(jù)。 為了確保寫入到器件的數(shù)據(jù)正確,寫器
25、件操作包含了校對,無須重復(fù)操作。加保護(hù): 很多eeprom和flashrom具有保護(hù)功能。加保護(hù)后的器件只能讀,不能寫,必須經(jīng)過解保護(hù)才能冉寫。該操作-般應(yīng)用在寫操作完成后使用。解保護(hù): 與加保護(hù)相反。讀廠家: 取得z字節(jié)代碼,第一字節(jié)代表生產(chǎn)廠家,第二字節(jié)代表型號。寫速度:不同廠家的產(chǎn)品編程速度可能不一樣,既使同一廠家的產(chǎn)品,其型號不同編程速度也可能不一樣。一般可設(shè)為標(biāo)準(zhǔn)速度。 自動編程操作 該操作根據(jù)組合操作框內(nèi)的選擇自動完成對器件的編程操作,可提高芯片的編程效率。第二章 實驗指導(dǎo)一、實驗指導(dǎo)說明本實驗指導(dǎo)是為適應(yīng)各大、中專院校開設(shè)單片機(jī)原理與應(yīng)用方面的課程需做大量軟、硬件實驗的需要而編寫
26、的.完成本實驗指導(dǎo)中的實驗,可使學(xué)生基本掌握mcs5l單片機(jī)的結(jié)構(gòu)原理、接口技術(shù)、程序設(shè)計技巧。手冊中詳細(xì)敘述了各實驗的目的、內(nèi)容,列出了接線圖、程序結(jié)構(gòu)框圖和清單。免除了主講教師和實驗輔導(dǎo)老師為設(shè)計、準(zhǔn)備調(diào)試實驗線路和實驗程序所需的工作量,節(jié)約了寶貴的時間。1. 所有硬件實驗程序已固化在程序存儲器eeprom中,選擇up模式(sw1),我們可以脫機(jī)實驗,從小鍵盤輸入相應(yīng)實驗序號,再按fv/ex即可運行該實驗程序;也可采用聯(lián)機(jī)實驗,將實驗系統(tǒng)與pc機(jī)通過dj-2008仿真器相連,聯(lián)機(jī)調(diào)試所有實驗程序。2. 實驗接線圖上的粗實線表示用戶在實驗時要用導(dǎo)線連接起來。3. 所有實驗都是相互獨立的,次序
27、上也沒有固定的先后關(guān)系,在使用本書進(jìn)行教學(xué)時,教師可根據(jù)該校(院)的教學(xué)要求,選擇相應(yīng)實驗。4. 對同一問題的解決辦法往往不是唯一的,歡迎用戶在使用本書過程中提出更為優(yōu)秀的實驗方案,指出錯誤和不足,希望用戶反饋給我們,以便及時修改。二、軟件實驗部分軟件實驗部分是為了配合教材中單片機(jī)匯編語言教學(xué)而設(shè)計的相關(guān)實踐操作內(nèi)容,軟件部分的實驗主要以對存儲器中的數(shù)據(jù)進(jìn)行操作為主,并不涉及過多的顯示處理、接口處理,操作時以輸入?yún)R編程序,運行并檢驗操作結(jié)果為主要實驗過程,軟件實驗部分既可以在實驗箱中操作,也可以在無實驗箱的情況下用單片機(jī)模擬調(diào)試程序完成,其主要目的是掌握51單片機(jī)的指令系統(tǒng)和提高匯編編程的能力
28、。讀者也可以自行設(shè)計相關(guān)的程序,并在實驗條件下進(jìn)行調(diào)試和驗證以拓展編程能力。軟件實驗部分本書提供了十個驗證實驗程序以供實驗時選擇使用。實驗一清零程序1,實驗?zāi)康模赫莆諈R編語言設(shè)計和調(diào)試方法,熟悉鍵盤操作。2,實驗內(nèi)容:把2000h20ffh的內(nèi)容清零。3,實驗程序框圖: 4,實驗步驟:用連續(xù)或單步方式運行程序,檢查200020ff中執(zhí)行程序前后的內(nèi)容變化。5,思 考:假使把2000h2100h中的內(nèi)容改成ff,,如何修改程序。6,程序清單: org 0000h ljmp se01 org 0640hse01: mov r0,#00h mov dptr,#2000h ;(0000h)送dptrl
29、oo1: clr a movx dptr,a ;0送(dptr) inc dptr ;dptr+1 inc r0 ;字節(jié)數(shù)(寄存器內(nèi)容)加1 cjne r0,#00h,loo1 ;不到ff個字節(jié)再返回清零loop: sjmp loop end實驗二 拆字程序l,實驗?zāi)康模?掌握匯編語言設(shè)計和調(diào)試方法。2,實驗內(nèi)容:把2000h的內(nèi)容拆開,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把數(shù)據(jù)送顯示緩沖區(qū)時用。3,實驗程序框圖:4,實驗步驟:用連續(xù)或單步方式運行程序,檢查2000h2002h中內(nèi)容變化情況。5,思 考:如何用斷點方式調(diào)試本程序。6,程序清
30、單:;把指定字節(jié)的高低位拆開分別存放,多用于顯示子程序org 0000h ljmp se02 org 0660hse02: mov dptr,#2000h movx a,dptr mov b,a ;(2000)ab swap a ;交換 anl a,#0fh ;屏蔽高位 inc dptr movx dptr,a ;送2001h inc dptr mov a,b anl a,#0fh ;(2000)內(nèi)容屏蔽高位 movx dptr,a ;送2002hloop: sjmp loop end實驗三拼字程序1,實驗?zāi)康模哼M(jìn)一步掌握匯編語言設(shè)計和調(diào)試方法。.2,實驗內(nèi)容:把2000h.2001h的低位分
31、別送入2002h高低位,一般本程序用于把顯示緩沖區(qū)的數(shù)據(jù)取出拼裝成一字節(jié)。3,實驗程序框圖:4,實驗步驟:單步或用斷點方式運行程序,檢查2002h內(nèi)容變化情況。5, 程序清單: org 0000hljmp start org 0680hstart: mov dptr,#2000h movx a,dptr anl a,#0fh ;(2000h)內(nèi)容屏蔽高位 swap a ;交換mov b,a ;保存 inc dptrmovx a,dptr ;(2000h)內(nèi)容送a anl a,#0fh ;屏蔽高位 orl a,b ;或 inc dptrmovx dptr,a ;送2002h sjmp $ end
32、實驗四 數(shù)據(jù)區(qū)傳送子程序1,實驗?zāi)康模赫莆誶am中的數(shù)據(jù)操作。2,實驗內(nèi)容:把r2.r3源ram區(qū)首址內(nèi)的r6.r7字節(jié)數(shù)據(jù)傳送到r4.r5目的ram區(qū)。3,實驗程序框圖:4,實驗步驟:在r2.r3中輸入源首址(例如0000h),r4.r5中輸入目的地址(例如2000h),r6.r7中輸入字節(jié)數(shù)(例如lfffh),運行程序,檢查0000hlfffh中內(nèi)容是否和2000h3fffh中內(nèi)容完全一致。5,程序清單: org 0000h ljmp se22 org 07b0hse22:mov dpl,r3 mov dph,r2;建立源程序首址 movx a,dptr;取數(shù) mov dpl,r5 mov
33、 dph,r4;目的地首址 movx dptr,a ;傳送 cjne r3,#0ffh,lo42 inc r2lo42:inc r3 ;源地址加1 cjne r5,#0ffh,lo43 inc r4lo43:inc r5 ;目的地址加1 cjne r7,#00h,lo44 cjne r6,#00h,lo45;字節(jié)數(shù)減1loop:sjmp loop noplo44:dec r7 sjmp se22lo45:dec r7 dec r6 sjmp se22;未完繼續(xù) end實驗五 數(shù)據(jù)排序?qū)嶒?,實驗?zāi)康模菏煜?1指令系統(tǒng),掌握程序設(shè)計方法。2,實驗內(nèi)容:編寫并調(diào)試一個排序子程序,其功能為用冒泡法將
34、內(nèi)存ram中幾個單字節(jié)無符號的正整數(shù),按從小到大的次序重新排列。3,程序框圖:4,實驗步驟:將ram 50h5ah 中放入不等的數(shù)據(jù),用斷點方法運行本實驗程序后檢查50h5a中的內(nèi)容是否按從小到大的次序排列。5,思 考:修改程序把50h5ah中內(nèi)容從大到小排列。6,程序清單: org 0000h ljmp que org 09b0hque:mov r3,#50hque1:mov a,r3 ;指針?biāo)蛂0 mov r0,a mov r7, #0ah ;長度送r7 clr 00h ;清標(biāo)志位 mov a, r0ql2 :inc r0 mov r2,a clr c mov 22h,r0 cjne a,
35、22h,ql3 ;相等嗎? setb cql3:mov a,r2 jc ql1 ;大于交換位置 setb 00h xch a,r0 dec r0 xch a,r0 inc r0 ;大于交換位置ql1:mov a,r0 djnz r7,ql2 jb 00h,que1 ;一次循環(huán)中有交換繼續(xù)loop:sjmp loop ;無交換退出 end實驗六 查找相同數(shù)個數(shù)1,實驗?zāi)康模菏煜R編語言編程。2,實驗內(nèi)容:在2000h200fh的n個單元中填入零,運行本程序后檢查2100h中是否為n。3,實驗程序框圖:4,實驗步驟:在2000h200fh的幾個單元中填入零,運行本程序后檢查2100h中是否是幾個單
36、元數(shù)。5,思考:修改程序,查找其它內(nèi)容。6,程序清單: org 0000h ljmp l5800 org 0aa0hl5800: mov r0,#10h ;查找16個字節(jié) mov r1,#00h mov dptr,#2000hl5811: movx a,dptr cjne a,#00h,l5816 ;取出內(nèi)容與00h相等嗎? inc r1 ;取出個數(shù)加1l5816: inc dptr djnz r0,l5811 ;未完繼續(xù) mov dptr,#2100h mov a,r1 movx dptr,a ;相同數(shù)的個數(shù)送2100hl581e: sjmp l581e end實驗七 無符號雙字節(jié)快速乘法子
37、程序1,實驗?zāi)康模赫莆誱cs-51匯編語言程序設(shè)計方法。2,預(yù)備知識:本程序利用單字節(jié)的乘法指令,根據(jù)下面的公式進(jìn)行乘法運算的。(r2r3)*(r6r7)(r2)* +(r3)*(r6)* +r7)(r2)*(r6)* +(r2)*(r7)+(r3)*(r6)* +(r3)*(r7)3,實驗內(nèi)容:將(r2r3)和(r6r7)中雙字節(jié)無符號整數(shù)相乘,積送r4 r5 r6 r7中。4,實驗程序框圖:5,實驗步驟:在r2r3和r6r7中輸入無符號整數(shù),斷點或單步運行本實驗程序后檢查r4 r5 r6 r7中內(nèi)容。6,程序清單: org 0000h ljmp qkul org 0970hqkul: mo
38、v a,r3 mov b,r7 mul ab ;r3*r7 xch a,r7 ;r7=(r3*r7)低字節(jié) mov r5,b ;r5=(r3*r7)高字節(jié) mov b,r2 mul ab ;r2*r7 add a,r5 mov r4,a clr a addc a,b mov r5,a ;r5=(r2*r7)高字節(jié) mov a,r6 mov b,r3 mul ab ;r3*r6 add a,r4 xch a,r6 xch a,b addc a,r5 mov r5,a mov psw.5,c ;存cy mov a,r2 mul ab ;r2*r6 add a,r5 mov r5,a clr a m
39、ov acc.0,c mov c,psw.5 ;加上次加法的進(jìn)位 addc a,b mov r4,aloop: sjmp loop end實驗七無符號雙字節(jié)快速乘法子程序1,實驗?zāi)康模赫莆誱cs-51匯編語言程序設(shè)計方法。2,預(yù)備知識:本程序利用單字節(jié)的乘法指令,根據(jù)下面的公式進(jìn)行乘法運算的。(r2r3)*(r6r7)(r2)* +(r3)*(r6)* +r7)(r2)*(r6)* +(r2)*(r7)+(r3)*(r6)* +(r3)*(r7)3,實驗內(nèi)容:將(r2r3)和(r6r7)中雙字節(jié)無符號整數(shù)相乘,積送r4 r5 r6 r7中。4,實驗程序框圖:5,實驗步驟:在r2r3和r6r7中
40、輸入無符號整數(shù),斷點或單步運行本實驗程序后檢查r4 r5 r6 r7中內(nèi)容。6,程序清單: org 0000h ljmp qkul org 0970hqkul: mov a,r3 mov b,r7 mul ab ;r3*r7 xch a,r7 ;r7=(r3*r7)低字節(jié) mov r5,b ;r5=(r3*r7)高字節(jié) mov b,r2 mul ab ;r2*r7 add a,r5 mov r4,a clr a addc a,b mov r5,a ;r5=(r2*r7)高字節(jié) mov a,r6 mov b,r3 mul ab ;r3*r6 add a,r4 xch a,r6 xch a,b a
41、ddc a,r5 mov r5,a mov psw.5,c ;存cy mov a,r2 mul ab ;r2*r6 add a,r5 mov r5,a clr a mov acc.0,c mov c,psw.5 ;加上次加法的進(jìn)位 addc a,b mov r4,aloop: sjmp loop end實驗八多分支程序1,實驗?zāi)康模赫莆諈R編語言的編程。2,實驗內(nèi)容:編寫程序,根據(jù)送入的數(shù)據(jù)轉(zhuǎn)移運行。3,實驗程序框圖:4,實驗步驟:在20h中分次送入00.01.02.03,每次運行程序后,觀察數(shù)碼管上數(shù)字循環(huán)情況。5,程序清單 org 0000h ljmp mems org 0a10hmems:
42、 mov a,#43h mov dptr,#0ff20h movx dptr,a mov a,20h mov dptr,#kkkk ;散轉(zhuǎn)地址 rl a ;(20)*2 jmp a+dptr ;轉(zhuǎn)到(20)*2+dptrkkkk: ajmp memsp0 ajmp memsp1 ajmp memsp2 sjmp memsp3memsp0: mov 20h,#0c0h ;0字循環(huán) ljmp sox0memsp1: mov 20h,#0f9h ;1字循環(huán) ljmp sox0memsp2: mov 20h,#0a4h ;2字循環(huán) ljmp sox0memsp3: mov 20h,#0b0h ;3字循
43、環(huán) ljmp sox0 org 0da0hsox0: mov a,20h mov r0,#22h mov r1,#21h movx r0,a mov a,#01hsox1: cpl a movx r1,a cpl a mov r2,#20h lcall dely rl a ; 顯示字程序 sjmp sox1dely: push 02hdel2: push 02hdel3: push 02hdel4: djnz r2,del4 pop 02h djnz r2,del3 pop 02h djnz r2,del2 pop 02h djnz r2,dely ret end實驗九 脈沖計數(shù)(定時/計數(shù)器實驗)1, 實驗?zāi)康模菏煜纹瑱C(jī)內(nèi)部定時/計數(shù)器功能,掌握初始化編程方法。2, 實驗內(nèi)容:把定時器0外部輸入的脈沖進(jìn)行計數(shù),并送顯示器顯示3, 實驗程序框圖:4, 實驗接線圖: 5, 實驗步驟:用插針把8mhz插孔和t插孔連接,p3.4 依次接t0t7或單脈沖輸出孔,執(zhí)行程序,觀察數(shù)碼管上計數(shù)脈沖的速度及個數(shù)。6
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 供貨簡易合同范例
- 代理收購企業(yè)合同范本
- 三人合伙人合同范例
- 出售薄壁軸套合同范本
- 買賣合同加定金合同范本
- 單個產(chǎn)品供應(yīng)合同范本
- 代租商鋪合同范本
- 出售雜木方木合同范本
- 2025年吉林省安全員C證(專職安全員)考試題庫
- 南京臨時用工合同范本
- 正大集團(tuán)大豬場開發(fā)流程
- 高中政治必修四知識體系每單元的總體框架
- 房地產(chǎn)金融創(chuàng)新與風(fēng)險防范的理論演進(jìn)
- GB/T 41255-2022智能工廠通用技術(shù)要求
- GB/T 41029-2021石油天然氣鉆井海洋棄井作業(yè)規(guī)程
- 深入推進(jìn)依法行政
- GB/T 4026-1992電器設(shè)備接線端子和特定導(dǎo)線線端的識別及應(yīng)用字母數(shù)字系統(tǒng)的通則
- 馬工程教材《公共財政概論》PPT-第二章 公共財政職能
- GB/T 14643.5-2009工業(yè)循環(huán)冷卻水中菌藻的測定方法第5部分:硫酸鹽還原菌的測定MPN法
- GB/T 13762-2009土工合成材料土工布及土工布有關(guān)產(chǎn)品單位面積質(zhì)量的測定方法
- 醫(yī)院轉(zhuǎn)診轉(zhuǎn)院記錄單
評論
0/150
提交評論