實(shí)驗(yàn)一.mcs51單片機(jī)基本開發(fā)環(huán)境_第1頁
實(shí)驗(yàn)一.mcs51單片機(jī)基本開發(fā)環(huán)境_第2頁
實(shí)驗(yàn)一.mcs51單片機(jī)基本開發(fā)環(huán)境_第3頁
實(shí)驗(yàn)一.mcs51單片機(jī)基本開發(fā)環(huán)境_第4頁
實(shí)驗(yàn)一.mcs51單片機(jī)基本開發(fā)環(huán)境_第5頁
已閱讀5頁,還剩1頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

...wd......wd......wd...實(shí)驗(yàn)一、MCS51單片機(jī)基本開發(fā)環(huán)境1.實(shí)驗(yàn)?zāi)康模?)熟悉軟件的集成開發(fā)環(huán)境2)掌握單片機(jī)軟件設(shè)計(jì)流程3)掌握單片機(jī)存貯器構(gòu)造及各窗口之間的聯(lián)系2.實(shí)驗(yàn)內(nèi)容:1)用三種方法實(shí)現(xiàn)將累加器A內(nèi)容改為20H方法1--MOVA,#20H方法2—MOVR0,#20HMOVA,R0方法3—MOVR0,#20HXCHA,R0心得:越往下做實(shí)驗(yàn)時就越感覺這題基本不能說是題目,但不得不說在沒接觸過編程軟件,剛開場學(xué)的匯編,第一次做的實(shí)驗(yàn)就光這道題都覺得不知道做什么.所以但凡總有開場,不了解情況的多簡單的都會覺得難.2)將58H位單元置為1,觀察內(nèi)部RAM中2BH內(nèi)容的變化代碼:SETB2BH.0JMP$END心得:這是關(guān)于內(nèi)部存儲中對單元和字節(jié)了解,不理解很容易做錯.比方開場寫的指令為MOVR0,#58H;MOV@R0,#1這是錯誤的指令。這就需要認(rèn)真去了解單片機(jī)中的字節(jié)地址與位地址的關(guān)系。80C51中有位尋址區(qū)和字節(jié)尋址區(qū)。題目中58H為位地址,2BH為字節(jié)地址,且58H為2B字節(jié)的最低位。由于58H屬于位尋址區(qū),可用位操作指令SETB進(jìn)展置位,SETB2BH.0執(zhí)行后,2BH中內(nèi)容變?yōu)椋埃?)如果當(dāng)前狀態(tài)為有進(jìn)位、工作存放器使用區(qū)2,請用3種方法設(shè)置這種狀態(tài)代碼:ANLPSW,#01H MOVA,PSW CJNEA,#01,LAB2LAB1:JMPLAB1 LAB2:SETBPSW.4MOVP0,#01HMOVR0,#18H CLRPSW.3MOVC,P0.0MOVPSW,R0MOVPSW.4,CCPLCMOVPSW.3,C END心得:以上LAB2寫了三段代碼,可分別完成題目要求。不過實(shí)驗(yàn)時只是對代碼進(jìn)展了錯誤調(diào)試,沒有對結(jié)果進(jìn)展檢驗(yàn)。其中值得注意的是對于布爾〔位〕操作指令的用法,比方傳送指令必須經(jīng)累加器C,如第二段中MOVP0,#01H;MOVC,P0.0,以及對于位尋址的方式〔如需用到“.〞隔開〕的應(yīng)用。4)編一個小程序?qū)?nèi)部RAM中的20H單元的內(nèi)容送到21H單元并調(diào)試代碼:MOVR0,#20HMOV@R0,#10HMOVR1,#21HMOV@R1,20H JMP$ END5)用程序?qū)⒍褩V羔樦赶?0H,然后在堆棧中依次壓入01,02,03,04,05五個數(shù),觀察哪些單元內(nèi)容發(fā)生了變化,各變?yōu)槎嗌購哪男┐翱诳梢园l(fā)現(xiàn)這些變化順序?qū)⒍褩V械奈鍌€數(shù)放入30H~34H五個單元中,編程實(shí)現(xiàn)之。代碼:MOVR1,#60HMOVSP,R1MOVDPL,#1HLAB1:PUSHDPL INCDPL MOVA,DPL CJNEA,#6,LAB1 POP34H POP33H POP32H POP31H POP30HJMP$END6)將外部數(shù)據(jù)存貯器1000H~100FH16個單元中存放00H~0FH代碼:MOVDPTR,#1000HMOVR1,#10HLOOP:MOVX@DPTR,#1234HMOVXA,@DPTRMOV@R1,AINCDPTRINCR1CJNER1,#40H,LOOPJMP$END心得:此處需要訪問片外存儲空間,需要借助存放器DPTR,需注意其為16位的存放器,在使用時假設(shè)與八位存放器進(jìn)展數(shù)據(jù)交換時需分為高八位DPH與低八位DPL來用。7)假設(shè)要求程序從0010H單元開場運(yùn)行,可用兩種方法實(shí)現(xiàn)方法一ORG0010H方法二AJMP0010H3.選做實(shí)驗(yàn)內(nèi)容:數(shù)據(jù)傳送目的:1)掌握8051單片機(jī)內(nèi)部數(shù)據(jù)存貯器、外部數(shù)據(jù)存貯器的數(shù)據(jù)傳送特點(diǎn)和應(yīng)用2)掌握MOV,MOVX和MOVC類指令的用法及區(qū)別內(nèi)容:將片內(nèi)RAM數(shù)據(jù)區(qū)20H為首地址的十六個字節(jié)傳送到30H為首地址的數(shù)據(jù)區(qū),即:20H~2FH送30H~3FH代碼:ORG0000HJMPMAINORG0030HMAIN:MOVR0,#20HMOVR1,#30HLOOP:MOV@R0,#1234HMOVA,@R0MOV@R1,AINCR0INCR1CJNER1,#30H,LOOPJMP$END2)將外部數(shù)據(jù)存儲器2000H~200FH單元的十六個數(shù)傳送至內(nèi)部數(shù)據(jù)存儲器的30H~3FH代碼:ORG0000HJMPMAINORG0030HMAIN:MOVDPTR,#2000HMOVR1,#30HLOOP:MOVX@DPTR,#12HMOVXA,@DPTRMOV@R1,AINCDPTRINCR1CJNER1,#40H,LOOPJMP$END總體心得體會:第一次做實(shí)驗(yàn)主要是熟悉了解了下單片機(jī)編程軟件的使用,開場接觸時在對其軟件不是太了解的情況下實(shí)驗(yàn)編程做確實(shí)實(shí)很亂,不清楚該怎樣進(jìn)展,比方不知若何進(jìn)展對指令的調(diào)試,也不清楚該若何觀察結(jié)果,沒有一個整體的概念,所以在了解其開發(fā)環(huán)境上花了不少時間。經(jīng)過一段時間的摸索后也終于了解了其具體的使用,也能夠順利的對指令的編程運(yùn)用。運(yùn)行指令時遇到的一些問題需要注意的也在上面各題中做了說明。還有需要注意的是:進(jìn)入軟件仿真時需要對存儲空間進(jìn)展查看的方法是在Address窗口中輸入:d:00h顯示內(nèi)部數(shù)據(jù)存儲器從00h開場的單元;x:1000h顯示外部數(shù)據(jù)存儲器從1000h開場的單元;c:0000H顯示程序存儲器內(nèi)容。還有由于偽指令END定義的原因,在程序末需加一條死循環(huán)調(diào)轉(zhuǎn)指令〔如JMP$〕使程序不會進(jìn)入其他未知空間執(zhí)行其他指令。實(shí)驗(yàn)二、加、減法實(shí)驗(yàn)1.實(shí)驗(yàn)?zāi)康?)正確使用單片機(jī)的加減運(yùn)算指令2)掌握不同指令對于程序狀態(tài)字的影響及程序狀態(tài)字的意義、用處3)掌握ADD,ADDC,SUBB和DAA等指令的用法4)學(xué)習(xí)模塊化程序設(shè)計(jì)方法2.實(shí)驗(yàn)內(nèi)容1)編寫3字節(jié)二進(jìn)制加法子程序,并用主程序調(diào)用不同的加數(shù)和被加數(shù)來檢測該子程序的正確性。需考慮有進(jìn)位和無進(jìn)位情況。程序入口為:加數(shù):22H,21H,20H三字節(jié),22H為最高位被加數(shù):32H,31H,30H三字節(jié),32H為最高位程序出口為:23H,22H,21H,20H四字節(jié),23H為最高位例如:地址:23222120323130執(zhí)行前數(shù)據(jù):012345FF0101執(zhí)行后數(shù)據(jù):01002446代碼:ORG0000HAJMPMAINORG30HMAIN:MOV22H,#01HMOV21H,#23HMOV20H,#45HMOV32H,#0FFHMOV1H,#01HMOV30H,#01HACALLADDI HERE:JMPHEREORG100HADDI:PUSHPSWMOVR0,#20H;加數(shù)1地址、和的地址MOVR1,#30H;加數(shù)2地址CLRCMOVR2,#3;循環(huán)3次LOOP:MOVA,@R0;取ADDCA,@R1;加MOV@R0,A;存INCR0INCR1DJNZR2,LOOPCLRAADDCA,#0;得到進(jìn)位MOV23H,A;保存POPPSWRETEND2)編寫三字節(jié)二進(jìn)制減法子程序入口:被減數(shù):52H,51H,50H,50H為最低位減數(shù):42H,41H,40H,40H為最低位出口:差:外部數(shù)據(jù)存貯器2003H~2000H〔2000H為最低位〕用主程序調(diào)用多組數(shù)據(jù)來調(diào)試,需考慮無借位和有借位兩種情況。例如:執(zhí)行前:地址:525150424140數(shù)據(jù):908070101010執(zhí)行后:地址:2003200220012000數(shù)據(jù):00807060代碼:ORG0000HAJMPMAINORG30HMAIN:MOV52H,#90HMOV51H,#80HMOV50H,#70HMOV42H,#10HMOV41H,#10HMOV40H,#10HACALLSUB1HERE:JMPHERESUB1:PUSHPSWMOVR0,#50H;被減數(shù)地址MOVR1,#40H;減數(shù)地址MOVDPTR,#2000H;差的地址CLRCMOVR2,#3;循環(huán)3次LOOP:MOVA,@R0;取SUBBA,@R1;減MOVX@DPTR,A;存INCR0INCR1INCDPTRDJNZR2,LOOPCLRASUBBA,#0;得到借位MOVX@DPTR,A;存POPPSWRETEND3)編寫10位十進(jìn)制加法子程序〔十進(jìn)制數(shù)采用壓縮BCD碼存放〕入口:加數(shù):24H—20H,低地址放低字節(jié)被加數(shù):29H—25H,低地址放低字節(jié)出口和:4005H—4000H,低地址放低字節(jié)要求調(diào)用多組數(shù)據(jù)調(diào)試,注意觀察PSW的變化,理解DAA指令的含義。例如:執(zhí)行前地址:24232221202928272625數(shù)據(jù):12345678908899331274執(zhí)行后地址:400540044003400240014000數(shù)據(jù):010133899164代碼:ORG0000HAJMPMAINORG30HMAIN:MOV24H,#12HMOV23H,#34HMOV22H,#56HMOV21H,#78HMOV20H,#90HMOV29H,#88HMOV28H,#99HMOV27H,#33HMOV26H,#12HM

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論