版權(quán)說(shuō)明:本文檔由用戶(hù)提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
7/7《單片機(jī)應(yīng)用基礎(chǔ)》實(shí)驗(yàn)報(bào)告華北水利水電大學(xué)機(jī)械學(xué)院
《單片機(jī)應(yīng)用基礎(chǔ)》
指導(dǎo)老師:
專(zhuān)業(yè):機(jī)械設(shè)計(jì)制造及其自動(dòng)化
學(xué)號(hào):
姓名
機(jī)械設(shè)計(jì)制造系
2015年4月
實(shí)驗(yàn)一匯編語(yǔ)言源程序編輯
一、實(shí)驗(yàn)?zāi)康模?/p>
了解軟件keilμVision的安裝,熟悉在keilμVision軟件環(huán)境下進(jìn)行單片機(jī)匯編源程序的編輯和修改,學(xué)會(huì)使用利用keilμVision軟件監(jiān)控單片機(jī)各個(gè)寄存器以及存儲(chǔ)器的數(shù)據(jù)變化等。
二、實(shí)驗(yàn)內(nèi)容:
1、軟件的安裝和使用
keilμVision軟件的詳細(xì)安裝過(guò)程和使用說(shuō)明請(qǐng)參考提供資料。
2、匯編源程序的編輯
編輯和運(yùn)行下面源程序,并按要求完成實(shí)驗(yàn)報(bào)告。
實(shí)驗(yàn)A存儲(chǔ)器塊清零S1.ASM
BLOCKEQU6000h
MAIN:MOVDPTR,#BLOCK;起始地址
MOVR0,#10H;存儲(chǔ)塊長(zhǎng)度
CLRA
LOOP:MO@DPTR,A
INCDPTR;指向下一個(gè)地址
DJNZR0,LOOP;記數(shù)減一
LJMP$
END
實(shí)驗(yàn)B二進(jìn)制到ASCII碼轉(zhuǎn)換S2.ASM
;將A拆為二個(gè)ASCII碼,并存入Result開(kāi)始的二個(gè)單元
RESULTEQU20H
ORG0000H
MAIN:MOVSP,#40H
MOVA,#1AH
CALLBinToHex
LJMP$
BinToHex:
MOVDPTR,#ASCIITab
MOVB,A;暫存A
SWAPA
ANLA,#0FH;取高四位
MOVCA,@A+DPTR;查ASCII表
MOVRESULT,A
MOVA,B;恢復(fù)A
ANLA,#0FH;取低四位
MOVCA,@A+DPTR;查ASCII表
MOVRESULT+1,A
RET
ASCIITab:303132
333435
363738
394142
434445
46DB'0123456789ABCDEF';定義數(shù)字對(duì)應(yīng)的ASCII表
END
實(shí)驗(yàn)C內(nèi)存塊移動(dòng)S3.ASM
ORG0000H//起始地址從000H開(kāi)始
MAIN:MOVR0,#30h//將30h賦予R0
MOVR1,#00h//將00h賦予R1
MOVR2,#40h//將40h賦予R2
MOVR3,#00h//將00h賦予R3
MOVR7,#0//將0賦予R7
LOOP:MOVDPH,R0//將(R0)賦予(DPH)
MOVDPL,R1//將(DFL)賦予R1
MOA,@DPTR//將DPTR內(nèi)容給A
MOVDPH,R2//將(R2)賦予(DPH)
MOVDPL,R3//將(R3)賦予(DPL)
MO@DPTR,A//將A內(nèi)容寫(xiě)入外部RAM的DPTR中
CJNER1,#0FFH,GO1//若R1不等于0FFH,轉(zhuǎn)至G01,
若R1等于0FFH,程序順利執(zhí)行
INCR0//R0=R0+1
GO1:INCR1//R1=R1+1
CJNER3,#0FFH,GO2//若R1不等于0FFH,轉(zhuǎn)至G02,
若R1等于0FFH,程序順利執(zhí)行
INCR2//R2=R2+1
GO2:INCR3//R3=R3+1
DJNZR7,LOOP//R7=R7-1,若R7不等于0,執(zhí)行LOOP,否則順利執(zhí)行LJMP$//程序跳動(dòng)執(zhí)行
END//程序結(jié)束
注意:源文件生成之后注意分別保存為s1.asm、s2.asm、s3.asm的文件名
三、實(shí)驗(yàn)報(bào)告
1、記錄詳細(xì)實(shí)驗(yàn)步驟
(1)雙擊uvision4安裝軟件,同意條款,安裝指定硬盤(pán),完成后打開(kāi)uvision4,在file下拉菜單中找到序號(hào)打開(kāi)破解機(jī)進(jìn)行破解。
(2)先在桌面建立一個(gè)空文件夾“yis”。
(3)點(diǎn)擊“projectNewuVisionProject”新建一個(gè)工程。
(4)在對(duì)話(huà)框,選擇放在剛才建立的“yjs”文件夾下,給這個(gè)工程取個(gè)名后保存,不需要填后綴。
(5)彈出一個(gè)框,在CPU類(lèi)型下我們找到并選中“Atmel”下的AT89S51。
(6)點(diǎn)開(kāi)file菜單,點(diǎn)擊new,輸入程序a,點(diǎn)擊保存s1.asm。
(7)在project選項(xiàng)中點(diǎn)擊“projectfortarget‘target1’”晶振頻率設(shè)為12MHZ,“output”中打上“CreateHEXFile”選項(xiàng),在debug
中選擇simulator,確定。
(8)在projectworkspace對(duì)話(huà)框右擊target1,選擇addfiletotarget選項(xiàng),在project中點(diǎn)擊rebuildalltargetfiles,若無(wú)誤,在debug
選項(xiàng)中點(diǎn)擊start/stopdebugsession選項(xiàng),然后進(jìn)行運(yùn)行。觀(guān)察PC
值,再點(diǎn)擊start/stopdebugsession選項(xiàng),返回回編輯界面。
(9)在s1.hex用記事本打開(kāi)觀(guān)察記錄。
(10)再次點(diǎn)擊“projectNewuVisionProject”命名為s2.asm,按以上步驟操作,輸實(shí)驗(yàn)程序B,保存運(yùn)行,發(fā)現(xiàn)錯(cuò)誤進(jìn)行修改。定義
0-F的ASCII碼表“DB”類(lèi)型,進(jìn)行修改。
(11)再次點(diǎn)擊“projectNewuVisionProject”命名為s3.asm,運(yùn)行無(wú)誤后添加解釋。
1.列寫(xiě)實(shí)驗(yàn)A中源程序的PC值和機(jī)器碼。
PC值:$0x00003$0x00005$0x00006
$0x00007$0x00008$0x0000A
機(jī)器碼:0D0000009060007810E4F0A3D8FC02000A24
00000001FF
2、找出實(shí)驗(yàn)B中的錯(cuò)誤語(yǔ)句,并改正。
實(shí)驗(yàn)B中的錯(cuò)誤語(yǔ)句為下劃線(xiàn)部分,將實(shí)驗(yàn)B程序中下劃線(xiàn)改為如下部分:ASCIITab:DB30H,31H,32H
33H,34H,35H
36H,37H,38H
39H,40H,41H
42H
3、實(shí)驗(yàn)C添加解釋。
見(jiàn)實(shí)驗(yàn)程序C后的解釋。
4、實(shí)驗(yàn)總結(jié):
通過(guò)這次試驗(yàn),我大致了解了uVision的基本功用和操作方法,它可以顯示各個(gè)寄存器的存儲(chǔ)及各個(gè)寄存器工作原理,同時(shí),他還可以進(jìn)行程序調(diào)試,主要解決軟件開(kāi)發(fā)編輯過(guò)程中的各類(lèi)問(wèn)題。
實(shí)驗(yàn)二匯編語(yǔ)言源程序調(diào)試
一、實(shí)驗(yàn)?zāi)康模?/p>
1、掌握MCS-51指令系統(tǒng)傳送指令的匯編語(yǔ)言程序設(shè)計(jì)和調(diào)試方法;
2、熟悉用keilμVision匯編調(diào)試軟件及在線(xiàn)仿真調(diào)試。
二、實(shí)驗(yàn)內(nèi)容:
1、編寫(xiě)多字節(jié)數(shù)據(jù)的傳送程序,把內(nèi)部RAM的30H--37H單元賦值為10H-17H,然后傳送到外部的RAM的0100H--0107H單元;再將0100H--0107H單元逐一求反后送到內(nèi)部RAM的38H—3FH單元。
2、程序結(jié)構(gòu)采用循環(huán)結(jié)構(gòu)
程序用R0作內(nèi)部RAM指針,用DPTR作外部RAM指針,R7作為計(jì)數(shù)初值N,本實(shí)驗(yàn)N=8。
3、用keilμVision對(duì)程序進(jìn)行匯編,產(chǎn)生目標(biāo)代碼文件,文件的類(lèi)別為HEX。
4、參考程序
ORG0000H
START:AJMPMAIN
ORG0030H
MAIN:MOVR1,#30H
MOV@R1,#10H
INCR1
MOV@R1,#11H
INCR1
MOV@R1,#12H
INCR1
MOV@R1,#13H
INCR1
MOV@R1,#14H
INCR1
MOV@R1,#15H
INCR1
MOV@R1,#16H
INCR1
MOV@R1,#17H
MOVR0,#30H
MOVDPTR,#0100H
MOVR7,#08H
LOOP:MOVA,@R0
MO@DPTR,A
INCR0
INCDPTR
DJNZR7,LOOP
MOVR0,#38H
MOVDPTR,#0100H
MOVR7,#08H
LOOP1:MOA,@DPTR
CPLA;求反
MOV@R0,A
INCR0
INCDPTR
DJNZR7,LOOP1
HERE:AJMPHERE;程序結(jié)束
END
5、仿真和調(diào)試
1)用單步執(zhí)行或斷點(diǎn)連續(xù)執(zhí)行,記下執(zhí)行指令后表格中相應(yīng)寄存器的數(shù)值:
表一LOOP循環(huán)執(zhí)行情況表
執(zhí)行LOOPAR0DPTRR7
MOVR7,#08H0x000x300x01000x08第一次循環(huán)MOVA,@R00x100x300x01000x08
第二次循環(huán)MOVA,@R00x110x310x01010x07
第三次循環(huán)MOVA,@R00x120x320x01020x06
第四次循環(huán)MOVA,@R00x130x330x01030x05
第五次循環(huán)MOVA,@R00x140x340x01040x04
第六次循環(huán)MOVA,@R00x150x350x01050x03
第七次循環(huán)MOVA,@R00x160x360x01060x02
第八次循環(huán)MOVA,@R00x170x370x01070x01
第一次循環(huán)MO@DPTR,A0x100x300x01000x08
第二次循環(huán)MO@DPTR,A0x110x310x01010x07
第三次循環(huán)MO@DPTR,A0x120x320x01020x06
第四次循環(huán)MO@DPTR,A0x130x330x01030x05
第五次循環(huán)MO@DPTR,A0x140x340x01040x04
第六次循環(huán)MO@DPTR,A0x150x350x01050x03
第七次循環(huán)MO@DPTR,A0x160x360x01060x02
第八次循環(huán)MO@DPTR,A0x170x370x01070x01
表二LOOP1循環(huán)執(zhí)行情況表
執(zhí)行LOOP1AR0DPTRR7
MOVR7,#08H0x170x380x01000x08第一次循環(huán)MOA,@DPTR0x100x380x01000x08
第二次循環(huán)MOA,@DPTR0x110x390x01010x07
第三次循環(huán)MOA,@DPTR0x120x3a0x01020x06
第四次循環(huán)MOA,@DPTR0x130x3b0x01030x05
第五次循環(huán)MOA,@DPTR0x140x3c0x01040x04
第六次循環(huán)MOA,@DPTR0x150x3d0x01050x03
第七次循環(huán)MOA,@DPTR0x160x3e0x01060x02
第八次循環(huán)MOA,@DPTR0x170x3f0x01070x01
第一次循環(huán)MOV@R0,A0xef0x380x01000x08
第二次循環(huán)MOV@R0,A0xee0x390x01010x07
第三次循環(huán)MOV@R0,A0xed0x3a0x01020x06
第四次循環(huán)MOV@R0,A0xec0x3b0x01030x05
第五次循環(huán)MOV@R0,A0xeb0x3c0x01040x04
第六次循環(huán)MOV@R0,A0xea0x3d0x01050x03
第七次循環(huán)MOV@R0,A0xe90x3e0x01060x02
第八次循環(huán)MOV@R0,A0xe80x3f0x01070x01
2)同時(shí)觀(guān)察相關(guān)存儲(chǔ)器的變化情況。
三.實(shí)驗(yàn)報(bào)告
1、寫(xiě)出本程序單步運(yùn)行后的調(diào)試過(guò)程(填寫(xiě)表一和表二)及38H至3FH單元的運(yùn)行結(jié)果;
相關(guān)運(yùn)行結(jié)果:
2、本程序如何修改為內(nèi)部RAM的30H--37H單元傳送到內(nèi)部RAM的38H—3FH單元并調(diào)試,寫(xiě)出過(guò)程和運(yùn)行結(jié)果
修改程序如下:
MOVR0,#38H
MOVR7,#08H
MOVR1,#30H
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶(hù)所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶(hù)上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶(hù)上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶(hù)因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 業(yè)績(jī)承諾服務(wù)合同模板模板
- 轉(zhuǎn)讓軋輥磨床合同模板
- 訂單式訂購(gòu)合同模板
- 吉林玉米購(gòu)銷(xiāo)合同模板
- 服務(wù)基層崗位合同模板
- 公司注冊(cè)協(xié)議合同模板
- 情侶贈(zèng)予財(cái)產(chǎn)合同模板
- 要賬合同模板
- 印刷單張合同模板
- 買(mǎi)賣(mài)夾板合同模板
- 政務(wù)新聞攝影技巧培訓(xùn)課件
- 《發(fā)酵工程制藥》課件
- 學(xué)校課程建設(shè)-校本課程建設(shè)-專(zhuān)題講座
- 貿(mào)易金融的數(shù)字化轉(zhuǎn)型路徑研究
- 08214-少兒國(guó)學(xué)微課《說(shuō)文解字》井
- 承包停車(chē)場(chǎng)方案
- 物業(yè)管理人員的溝通技巧
- 公司年終獎(jiǎng)表格模板
- 異常子宮出血患者護(hù)理查房課件
- 【課件】“四景山水”山水畫(huà)創(chuàng)作一高中美術(shù)人美版(2019)選擇必修2+中國(guó)書(shū)畫(huà)
- HGE系列電梯安裝調(diào)試手冊(cè)(ELS05系統(tǒng)SW00004269,A.4 )
評(píng)論
0/150
提交評(píng)論