|
單片機(jī)實(shí)驗(yàn)指導(dǎo)書(shū) 實(shí)驗(yàn)一 系統(tǒng)認(rèn)識(shí)實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?/strong> 1、了解ZY15MCU12BC2單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)裝置的接線與安排。掌握實(shí)驗(yàn)箱內(nèi)撥位開(kāi)關(guān)KF,KC的使用方法。 2、通過(guò)實(shí)例程序的編輯、編譯、鏈接及調(diào)試,熟悉Keil C51軟件的使用方法和基本操作。 3、教育學(xué)生愛(ài)護(hù)實(shí)驗(yàn)裝置,養(yǎng)成良好的實(shí)驗(yàn)習(xí)慣。 二、實(shí)驗(yàn)設(shè)備 1、ZY15MCU12BC2單片機(jī)實(shí)驗(yàn)開(kāi)發(fā)裝置一臺(tái)。 2、PC機(jī)及相關(guān)軟件。 三、實(shí)驗(yàn)內(nèi)容 1、使用串行通訊電纜將實(shí)驗(yàn)開(kāi)發(fā)裝置與PC機(jī)相連。 2、開(kāi)啟PC機(jī)及實(shí)驗(yàn)開(kāi)發(fā)裝置,啟動(dòng)Keil C51軟件進(jìn)入uVision2集成開(kāi)發(fā)環(huán)境。 確認(rèn)撥位開(kāi)關(guān)KF的開(kāi)關(guān)為A端,確認(rèn)89C51處于仿真狀態(tài)。 在uVision2開(kāi)發(fā)平臺(tái)上建立并編輯示例程序:計(jì)算N個(gè)數(shù)求和程序。 其中N個(gè)數(shù)分別放在片內(nèi)RAM區(qū)50H到55H單元中,N=6,求和的結(jié)果放在片內(nèi)RAM區(qū)03H(高位)和04H(低位)單元中。 題目: 1)32H+41H+01H+56H+11H+03H=? 2)95H+02H+02H+44H+48H+12H=? 編譯連接源程序。 在Keil uVision2主菜單窗口進(jìn)入DEBUG調(diào)試環(huán)境,打開(kāi)存儲(chǔ)器窗口輸入數(shù)據(jù)至片內(nèi)RAM區(qū)50H到55H單元中,全速運(yùn)行程序,并檢查程序的運(yùn)行結(jié)果,即觀察在存儲(chǔ)器窗口片內(nèi)RAM區(qū)03H(高位)、04H(低位)單元中的數(shù)據(jù)是否正確。 實(shí)驗(yàn)結(jié)束,撤出接線,將一切整理復(fù)原。 實(shí)驗(yàn)源程序 org 0000h ljmp main org 1000h main: mov r2,#06h mov r3,#00h mov r4,#00h mov r0,#50h l1: mov a,r4 add a,@r0 mov r4,a inc r0 clr a addc a,r3 mov r3,a djnz r2,l1 end 實(shí)驗(yàn)二 匯編指令實(shí)驗(yàn)1.多字節(jié)十進(jìn)制加法實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?/strong> 1、學(xué)習(xí)51運(yùn)算指令的用法及對(duì)標(biāo)志位的影響。 2、學(xué)習(xí)循環(huán)程序編程方法。 3、掌握51內(nèi)部RAM和寄存器之間的關(guān)系。
二、實(shí)驗(yàn)設(shè)備 ZY15MCU12BC2實(shí)驗(yàn)箱,連接線若干,串口線,PC機(jī)。
三、實(shí)驗(yàn)內(nèi)容 1、編寫(xiě)多字節(jié)十進(jìn)制加法程序,實(shí)現(xiàn)下式運(yùn)算 : 4574+6728=11302 要求:被加數(shù)在片內(nèi)RAM區(qū)20H、21H單元; 加數(shù)在片內(nèi)RAM區(qū)30H、31H單元; 結(jié)果在片內(nèi)RAM區(qū)20H(最高位進(jìn)位)、21H(高位)、22H(低位)單元。 結(jié)果:20H=1,21H =13,22H=02; 2、完成程序的設(shè)計(jì)、編輯、編譯、連接。 四、調(diào)試方法 進(jìn)入DEBUG方式,打開(kāi)存儲(chǔ)器Memory 1窗口,在窗口Address欄鍵入D:20H;點(diǎn)擊鼠標(biāo)右鍵,選擇最后一項(xiàng)Modify Memory ,輸入被加數(shù);在窗口Address欄鍵入D:30H;點(diǎn)擊鼠標(biāo)右鍵,選擇最后一項(xiàng)Modify Memory ,輸入加數(shù)。 2.整數(shù)十六進(jìn)制轉(zhuǎn)十進(jìn)制實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康?/strong> 1、了解整數(shù)十六進(jìn)制轉(zhuǎn)十進(jìn)制的原理。 2、學(xué)會(huì)編程實(shí)現(xiàn)進(jìn)制轉(zhuǎn)換。
二、實(shí)驗(yàn)設(shè)備 ZY15MCU12BC2實(shí)驗(yàn)箱,連接線若干,串口線,PC機(jī)。
三、實(shí)驗(yàn)內(nèi)容 1、源文件的名稱為“ZYBTD.ASM”。 2、將“P00~P07”與“U7D0~U7D7”用八根線分別相連。 3、編寫(xiě)并調(diào)試一個(gè)十六進(jìn)制轉(zhuǎn)換為十進(jìn)制數(shù)的程序,其功能為從ZY15MCU12BC2型的實(shí)驗(yàn)箱鍵盤(pán)上輸入四位十六進(jìn)制數(shù),轉(zhuǎn)換為6位十進(jìn)制數(shù)并在實(shí)驗(yàn)箱的顯示器上顯示出來(lái)。
四、實(shí)驗(yàn)程序參考框圖如圖1所示 file:///C:\Users\金栗\AppData\Local\Temp\ksohtml\wps2281.tmp.png
圖1 十六進(jìn)制轉(zhuǎn)十進(jìn)制程序流程 注:框圖中延時(shí)1秒是為了看清顯示器上顯示的十六進(jìn)制數(shù)和BCD碼結(jié)果
五、調(diào)試方法 1、全速運(yùn)行至BK1,檢查40H,41H,3BH~3EH內(nèi)容是否為鍵入的數(shù)據(jù)。 2、從BK1全速運(yùn)行至BK2,再?gòu)腂K2運(yùn)行到BK3,檢查3AH~3EH的BCD碼正確與否? 如有錯(cuò)從BK2單步運(yùn)行到BK3,檢查程序運(yùn)行結(jié)果。 3、全速運(yùn)行程序,每輸入4位十六進(jìn)制數(shù),顯示6位BCD碼,用一組數(shù)據(jù)測(cè)試其程序的正確性。
3.查表實(shí)驗(yàn)
一、實(shí)驗(yàn)?zāi)康?/strong> 1、 了解編程中查表的原理。 2、 學(xué)會(huì)編寫(xiě)查表程序。
二、實(shí)驗(yàn)設(shè)備 ZY15MCU12BC2實(shí)驗(yàn)箱,連接線若干,串口線,PC機(jī)。
三、實(shí)驗(yàn)內(nèi)容 1、 源文件的名稱為“ZYTAB.ASM”。 2、 將“P00~P07”與“U7D0~U7D7”用八根線分別相連。 3、 編寫(xiě)并調(diào)試一個(gè)查表程序,其功能為讀鍵盤(pán)輸入的0~F數(shù)字鍵,通過(guò)查表得到各鍵處理程序入口,并將入口地址在實(shí)驗(yàn)仿真器的顯示器上顯示出來(lái)。 數(shù)字鍵“0”——8000H 數(shù)字鍵“1”——8200H 數(shù)字鍵“2”——8400H 數(shù)字鍵“3”——8600H 數(shù)字鍵“4”——8800H 數(shù)字鍵“5”——8A00H 數(shù)字鍵“6”——8C00H 數(shù)字鍵“7”——8E00H 數(shù)字鍵“8”——9000H 數(shù)字鍵“9”——9200H 數(shù)字鍵“A”——9400H 數(shù)字鍵“B”——9600H 數(shù)字鍵“C”——9800H 數(shù)字鍵“D”——9A00H 數(shù)字鍵“E”——9C00H 數(shù)字鍵“F”——9E00H
四、實(shí)驗(yàn)程序參考框圖如圖2所示
file:///C:\Users\金栗\AppData\Local\Temp\ksohtml\wps2282.tmp.png
圖2 查表實(shí)驗(yàn)流程
五、調(diào)試方法 1、 斷點(diǎn)設(shè)在BK1,按0~F鍵后,進(jìn)入斷點(diǎn)地址,檢查ACC內(nèi)容是否與鍵值正確對(duì)應(yīng)。 2、 斷點(diǎn)設(shè)在BK2,程序運(yùn)行至斷點(diǎn),檢查ACC內(nèi)容是否為鍵值對(duì)應(yīng)跳轉(zhuǎn)入口地址高位。 3、 斷點(diǎn)設(shè)在BK3,程序運(yùn)行至斷點(diǎn),檢查ACC內(nèi)容是否為鍵值對(duì)應(yīng)跳轉(zhuǎn)入口地址低位。 4、 程序連續(xù)運(yùn)行,按鍵0~F,即在顯示器上顯示出相應(yīng)散轉(zhuǎn)地址。若有錯(cuò)誤,應(yīng)改用單步或斷點(diǎn)分段調(diào)試,排除軟件錯(cuò)誤,直到正確為止。
|