

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
7/7《单片机应用基础》实验报告华北水利水电大学机械学院
《单片机应用基础》
指导老师:
专业:机械设计制造及其自动化
学号:
姓名
机械设计制造系
2015年4月
实验一汇编语言源程序编辑
一、实验目的:
了解软件keilμVision的安装,熟悉在keilμVision软件环境下进行单片机汇编源程序的编辑和修改,学会使用利用keilμVision软件监控单片机各个寄存器以及存储器的数据变化等。
二、实验内容:
1、软件的安装和使用
keilμVision软件的详细安装过程和使用说明请参考提供资料。
2、汇编源程序的编辑
编辑和运行下面源程序,并按要求完成实验报告。
实验A存储器块清零S1.ASM
BLOCKEQU6000h
MAIN:MOVDPTR,#BLOCK;起始地址
MOVR0,#10H;存储块长度
CLRA
LOOP:MO@DPTR,A
INCDPTR;指向下一个地址
DJNZR0,LOOP;记数减一
LJMP$
END
实验B二进制到ASCII码转换S2.ASM
;将A拆为二个ASCII码,并存入Result开始的二个单元
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;恢复A
ANLA,#0FH;取低四位
MOVCA,@A+DPTR;查ASCII表
MOVRESULT+1,A
RET
ASCIITab:303132
333435
363738
394142
434445
46DB'0123456789ABCDEF';定义数字对应的ASCII表
END
实验C内存块移动S3.ASM
ORG0000H//起始地址从000H开始
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内容给A
MOVDPH,R2//将(R2)赋予(DPH)
MOVDPL,R3//将(R3)赋予(DPL)
MO@DPTR,A//将A内容写入外部RAM的DPTR中
CJNER1,#0FFH,GO1//若R1不等于0FFH,转至G01,
若R1等于0FFH,程序顺利执行
INCR0//R0=R0+1
GO1:INCR1//R1=R1+1
CJNER3,#0FFH,GO2//若R1不等于0FFH,转至G02,
若R1等于0FFH,程序顺利执行
INCR2//R2=R2+1
GO2:INCR3//R3=R3+1
DJNZR7,LOOP//R7=R7-1,若R7不等于0,执行LOOP,否则顺利执行LJMP$//程序跳动执行
END//程序结束
注意:源文件生成之后注意分别保存为s1.asm、s2.asm、s3.asm的文件名
三、实验报告
1、记录详细实验步骤
(1)双击uvision4安装软件,同意条款,安装指定硬盘,完成后打开uvision4,在file下拉菜单中找到序号打开破解机进行破解。
(2)先在桌面建立一个空文件夹“yis”。
(3)点击“projectNewuVisionProject”新建一个工程。
(4)在对话框,选择放在刚才建立的“yjs”文件夹下,给这个工程取个名后保存,不需要填后缀。
(5)弹出一个框,在CPU类型下我们找到并选中“Atmel”下的AT89S51。
(6)点开file菜单,点击new,输入程序a,点击保存s1.asm。
(7)在project选项中点击“projectfortarget‘target1’”晶振频率设为12MHZ,“output”中打上“CreateHEXFile”选项,在debug
中选择simulator,确定。
(8)在projectworkspace对话框右击target1,选择addfiletotarget选项,在project中点击rebuildalltargetfiles,若无误,在debug
选项中点击start/stopdebugsession选项,然后进行运行。观察PC
值,再点击start/stopdebugsession选项,返回回编辑界面。
(9)在s1.hex用记事本打开观察记录。
(10)再次点击“projectNewuVisionProject”命名为s2.asm,按以上步骤操作,输实验程序B,保存运行,发现错误进行修改。定义
0-F的ASCII码表“DB”类型,进行修改。
(11)再次点击“projectNewuVisionProject”命名为s3.asm,运行无误后添加解释。
1.列写实验A中源程序的PC值和机器码。
PC值:$0x00003$0x00005$0x00006
$0x00007$0x00008$0x0000A
机器码:0D0000009060007810E4F0A3D8FC02000A24
00000001FF
2、找出实验B中的错误语句,并改正。
实验B中的错误语句为下划线部分,将实验B程序中下划线改为如下部分:ASCIITab:DB30H,31H,32H
33H,34H,35H
36H,37H,38H
39H,40H,41H
42H
3、实验C添加解释。
见实验程序C后的解释。
4、实验总结:
通过这次试验,我大致了解了uVision的基本功用和操作方法,它可以显示各个寄存器的存储及各个寄存器工作原理,同时,他还可以进行程序调试,主要解决软件开发编辑过程中的各类问题。
实验二汇编语言源程序调试
一、实验目的:
1、掌握MCS-51指令系统传送指令的汇编语言程序设计和调试方法;
2、熟悉用keilμVision汇编调试软件及在线仿真调试。
二、实验内容:
1、编写多字节数据的传送程序,把内部RAM的30H--37H单元赋值为10H-17H,然后传送到外部的RAM的0100H--0107H单元;再将0100H--0107H单元逐一求反后送到内部RAM的38H—3FH单元。
2、程序结构采用循环结构
程序用R0作内部RAM指针,用DPTR作外部RAM指针,R7作为计数初值N,本实验N=8。
3、用keilμVision对程序进行汇编,产生目标代码文件,文件的类别为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;程序结束
END
5、仿真和调试
1)用单步执行或断点连续执行,记下执行指令后表格中相应寄存器的数值:
表一LOOP循环执行情况表
执行LOOPAR0DPTRR7
MOVR7,#08H0x000x300x01000x08第一次循环MOVA,@R00x100x300x01000x08
第二次循环MOVA,@R00x110x310x01010x07
第三次循环MOVA,@R00x120x320x01020x06
第四次循环MOVA,@R00x130x330x01030x05
第五次循环MOVA,@R00x140x340x01040x04
第六次循环MOVA,@R00x150x350x01050x03
第七次循环MOVA,@R00x160x360x01060x02
第八次循环MOVA,@R00x170x370x01070x01
第一次循环MO@DPTR,A0x100x300x01000x08
第二次循环MO@DPTR,A0x110x310x01010x07
第三次循环MO@DPTR,A0x120x320x01020x06
第四次循环MO@DPTR,A0x130x330x01030x05
第五次循环MO@DPTR,A0x140x340x01040x04
第六次循环MO@DPTR,A0x150x350x01050x03
第七次循环MO@DPTR,A0x160x360x01060x02
第八次循环MO@DPTR,A0x170x370x01070x01
表二LOOP1循环执行情况表
执行LOOP1AR0DPTRR7
MOVR7,#08H0x170x380x01000x08第一次循环MOA,@DPTR0x100x380x01000x08
第二次循环MOA,@DPTR0x110x390x01010x07
第三次循环MOA,@DPTR0x120x3a0x01020x06
第四次循环MOA,@DPTR0x130x3b0x01030x05
第五次循环MOA,@DPTR0x140x3c0x01040x04
第六次循环MOA,@DPTR0x150x3d0x01050x03
第七次循环MOA,@DPTR0x160x3e0x01060x02
第八次循环MOA,@DPTR0x170x3f0x01070x01
第一次循环MOV@R0,A0xef0x380x01000x08
第二次循环MOV@R0,A0xee0x390x01010x07
第三次循环MOV@R0,A0xed0x3a0x01020x06
第四次循环MOV@R0,A0xec0x3b0x01030x05
第五次循环MOV@R0,A0xeb0x3c0x01040x04
第六次循环MOV@R0,A0xea0x3d0x01050x03
第七次循环MOV@R0,A0xe90x3e0x01060x02
第八次循环MOV@R0,A0xe80x3f0x01070x01
2)同时观察相关存储器的变化情况。
三.实验报告
1、写出本程序单步运行后的调试过程(填写表一和表二)及38H至3FH单元的运行结果;
相关运行结果:
2、本程序如何修改为内部RAM的30H--37H单元传送到内部RAM的38H—3FH单元并调试,写出过程和运行结果
修改程序如下:
MOVR0,#38H
MOVR7,#08H
MOVR1,#30H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025租房合同范本(完美打印版)
- 2025共同租赁商业物业合同模板
- 农产品仓储与农业供给侧改革考核试卷
- 《2025劳务合同聘用离职人员协议》
- 洗涤机械的数字化营销策略考核试卷
- 2025年鸡肉采购销售合同范本
- 2025办公室租赁合同模板()
- 2025新签订劳动合同模板示例
- 2025年学生会公关部广告投放合同
- 瑜伽老师签约合同协议
- 订餐协议合同协议
- 房屋征拆合同协议
- 湖北省武汉市2025届高中毕业生四月调研考试数学试卷及答案(武汉四调)
- Unit 1 Growing up (Period 1)(教学设计)-2024-2025学年沪教牛津版(深圳用)英语六年级上册
- 2025年水务行业化学检验员职业技能竞赛参考试题(附答案)
- 湖南湘潭高新集团有限公司招聘考试真题2024
- 2025春季学期国开电大本科《政府经济学》一平台在线形考(形考任务1至4)试题及答案
- 2025年中小学教师资格考试进阶试题及答案
- 创新创业实战学习通超星期末考试答案章节答案2024年
- GB 21258-2024燃煤发电机组单位产品能源消耗限额
- DB34∕T 4010-2021 水利工程外观质量评定规程
评论
0/150
提交评论