資源描述:
《陳凡 嵌入式系統(tǒng)基礎(chǔ)實(shí)驗(yàn)報(bào)告 - 副本 - 副本》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫(kù)。
1、本科實(shí)驗(yàn)報(bào)告課程名稱:?jiǎn)纹瑱C(jī)原理實(shí)驗(yàn)項(xiàng)目:定時(shí)/計(jì)數(shù)器實(shí)驗(yàn)地點(diǎn):北區(qū)跨越機(jī)房專業(yè)班級(jí):通信工程1101學(xué)號(hào):2011001365學(xué)生姓名:溫景國(guó)指導(dǎo)教師:陳凡2014年04月28日實(shí)驗(yàn)一雙字節(jié)BCD加法實(shí)驗(yàn)一、實(shí)驗(yàn)?zāi)康暮鸵?、通過(guò)常用指令的使用,進(jìn)一步理解并掌握MCS-51單片機(jī)的指令系統(tǒng)。2、學(xué)習(xí)并掌握雙字節(jié)BCD加法的程序設(shè)計(jì)。3.學(xué)習(xí)匯編語(yǔ)言的程序設(shè)計(jì)基本方法。二、實(shí)驗(yàn)內(nèi)容和原理編寫(xiě)并調(diào)試一個(gè)雙字節(jié)加法程序完成運(yùn)算:A(0030H,0031H)+B(0032H,0033H)=C(0034H,0035H)兩數(shù)的低位相加后保留進(jìn)位位,高位數(shù)相加時(shí)
2、,將低位的進(jìn)位加上。三、主要儀器設(shè)備計(jì)算機(jī)一臺(tái),操作系統(tǒng):Windows98/2000/XP,應(yīng)用軟件:WAVE6000。四、源程序與調(diào)試步驟源程序:;程序名稱:ADD.ASM;功能:完成雙字節(jié)加法運(yùn)算A(0030H,0031H)+B(0032H,0033H)=C(0034H,0035H)ORG0000HAJMPMAINORG0040HMAIN:MOV0030H,#01HMOV0031H,#11H;A=1101HMOV0032H,#0FFHMOV0033H,#01H;B=01FFHMOVA,0030HADDA,0032H;A的低位與B的低位相加MOV
3、0034H,AMOVA,0031HADDCA,0033H;A的高位與B的高位相加并加上進(jìn)位CyMOV0035H,AEND源程序編寫(xiě)完后,然后進(jìn)行復(fù)位,單步執(zhí)行觀察結(jié)果是否正確。五、實(shí)驗(yàn)數(shù)據(jù)記錄與處理在執(zhí)行單步時(shí),低位的運(yùn)算結(jié)果在0034H中,結(jié)果是00H((0030H)+(0032H)),高位結(jié)果在0035H中,結(jié)果為13H((0031H)+(0033H)+(CY))。實(shí)驗(yàn)結(jié)果與實(shí)驗(yàn)預(yù)期結(jié)果一樣。六、實(shí)驗(yàn)結(jié)果與分析當(dāng)進(jìn)行低位加法時(shí),加下來(lái)的結(jié)果自動(dòng)產(chǎn)生進(jìn)位,并且在狀態(tài)字的最高位中,所以,在進(jìn)行高位相加時(shí)要帶進(jìn)位進(jìn)行相加,否則結(jié)果與預(yù)期的不一樣。七、實(shí)
4、驗(yàn)心得通過(guò)對(duì)雙字節(jié)BCD加法編程的練習(xí),進(jìn)一步理解并掌握MCS-51單片機(jī)的指令系統(tǒng),并且熟悉了WAVE6000軟件的使用,對(duì)匯編語(yǔ)言的程序設(shè)計(jì)更加熟悉。經(jīng)過(guò)具體實(shí)踐,對(duì)于裝載指令ORG,帶進(jìn)位加法指令A(yù)DDC有了更明確的理解。寫(xiě)程序時(shí)常犯的錯(cuò)誤是忘記了單片機(jī)復(fù)位后pc指向0000H,需要在0000h單元存放跳轉(zhuǎn)指令跳轉(zhuǎn)到程序入口繼續(xù)執(zhí)行。另外一個(gè)體會(huì)就是程序調(diào)試的重要性,一個(gè)程序,寫(xiě)好了,編譯好了,只算是成功了一半,另一半在于調(diào)試,程序執(zhí)行出了問(wèn)題光靠盯著屏幕很難找到問(wèn)題所在,要通過(guò)分析判斷,合理調(diào)試才能發(fā)現(xiàn)和解決問(wèn)題。實(shí)驗(yàn)二子程序調(diào)用一、實(shí)驗(yàn)?zāi)康?/p>
5、:1、通過(guò)常用指令的編輯練習(xí),進(jìn)一步理解并掌握MCS-51單片機(jī)的指令系統(tǒng)。2、學(xué)習(xí)并掌握子程序調(diào)用的程序設(shè)計(jì)。3、掌握子程序調(diào)用過(guò)程中保護(hù)現(xiàn)場(chǎng)與恢復(fù)現(xiàn)場(chǎng)以及調(diào)用程序與被調(diào)用程序之間的參數(shù)傳遞。4、學(xué)習(xí)匯編語(yǔ)言的程序設(shè)計(jì)基本方法二、實(shí)驗(yàn)內(nèi)容:編寫(xiě)程序,計(jì)算Y=。a1,a2,……,a10存放在內(nèi)部RAM的20H開(kāi)始的存儲(chǔ)區(qū)內(nèi),計(jì)算所得結(jié)果放入R2和R3中。三、實(shí)驗(yàn)設(shè)備:計(jì)算機(jī)一臺(tái);操作系統(tǒng):Windowsxp;應(yīng)用軟件:WAVE6000四、實(shí)驗(yàn)源程序:ORG0000HAJMPMAINORG8000HMAIN:MOVR0,#20HMOVR7,#10MOV
6、R3,#0MOVR2,#0LOOP:MOVA,@R0ACALLSORT;調(diào)用求平方子程序ADDA,R2MOVR2,A;書(shū)上源程序有錯(cuò)誤,已更正CLRAADDCA,R3MOVR3,AINCR0DJNZR7,LOOP;未完,繼續(xù)SJMP$SORT:MOVDPTR,#TAB;進(jìn)入子程序查平方表MOVCA,@A+DPTRRET;返主程序TAB:DB0,1,4,9,16DB25,36,49,64,81EN:NOPEND一、實(shí)驗(yàn)結(jié)果與分析程序執(zhí)行完成時(shí),R2中為1D,R3中為01,結(jié)果為011DH(285)與分析結(jié)果一致即:0+1+4+9+16+25+36+49
7、+64+81=285。程序以R7(10)作為計(jì)數(shù)變量,通過(guò)子程序的查表功能,依次讀取各數(shù)的平方并相加。特別留意的是,高位相加時(shí)要用ADDC指令,加上低位的進(jìn)位。二、實(shí)驗(yàn)總結(jié):通過(guò)本次子程序調(diào)用程序的練習(xí),加深了對(duì)子程序的理解,即如何保護(hù)和恢復(fù)現(xiàn)場(chǎng)以及如何在調(diào)用程序與被調(diào)用程序之間傳遞參數(shù)。子程序有利于提高編碼效率,縮短了源程序與目標(biāo)程序的長(zhǎng)度,節(jié)省了程序存儲(chǔ)的空間,使程序模塊化、通用化,便于閱讀、交流與共享。另外,通過(guò)本次實(shí)驗(yàn)我對(duì)于wave6000平臺(tái)下程序的編譯、執(zhí)行以及數(shù)據(jù)查看有了進(jìn)一步的認(rèn)識(shí),理論與實(shí)踐的結(jié)合讓我對(duì)書(shū)本知識(shí)有了更好的理解。實(shí)驗(yàn)三
8、冒泡排序?qū)嶒?yàn)一、實(shí)驗(yàn)?zāi)康暮鸵螅?)熟悉MCS-51指令系統(tǒng),掌握程序設(shè)計(jì)方法。(2)掌握排序程序算法。(3