预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10
亲,该文档总共58页,到这已经超出免费预览范围,如果喜欢就直接下载吧~
如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
-PAGE\*MERGEFORMAT58-
HarbinInstituteofTechnology
单片机原理与应用
实验报告
学生姓名:学号:班级:专业:任课教师:所在单位:
软件实验
在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
实验一清零程序
一、实验目的
掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容
把2000~20FFh的内容清零。
三、程序框图
四、实验过程
实验中利用MOVX语句,将外部存储器指定内容清零。利用数据指针DPTR完成数据传送工作。程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。
五、实验结果及分析
【问题回答】清零前2000H~20FFH中为内存里的随机数,清零后全变为0。
六、实验源程序
;清零程序
ORG0640H
MOVDPTR,#2000H;(2000H)送DPTR
MOVR0,#00H
HERE:MOVX@DPTR,A;0送(DPTR)
INCDPTR;DPTR+1
INCR0
CJNER0,#0FFH,HERE
SJMP$
END
实验二拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把2000H的内容拆开,高位送2001H低位,低位送2002H低位,2001H、2002H高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图
四、实验过程
将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H和2002H中。利用MOVX指令、DPTR指针可实现数据的传送,利用高低四位交换指令SWAP和与指令ANL可进行对高低位的清零。
五、实验结果及分析
【问题回答】将ANLA,#0FH改为ORLA,#0F0H可以实现将高位置为1。
六、实验源程序
;拆字程序
START:MOVDPTR,#2000H
MOVXA,@DPTR
MOVR0,A
SWAPA
ANLA,#0FH
INCDPTR
MOVX@DPTR,A
MOVA,R0
ANLA,#0FH
INCDPTR
MOVX@DPTR,A
ENDEND
实验三拼字程序
一、实验目的
进一步掌握汇编语言设计和调试方法。
二、实验内容
把2000H、2001H的低位分别送入2002H高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、程序框图
四、实验过程
本实验主要应用与指令ANL对高四位进行屏蔽,利用SWAP指令将2000H低四位交换到高四位,再用或ORL语句将2000H和2001H的高低四位组合在一起送入2002H中,从而实现两个数低四位组合。
五、实验结果及分析
【问题回答】本实验运行程序后2002H内容为34H,即2000H单元中低四位“3”作为2002H的高四位,2001H的低四位“4”作为2002H的低四位。
六、实验源程序
;拼字程序
START:MOVDPTR,#2000H
MOVXA,@DPTR
ANLA,#0FH
SWAPA
MOVB,A
INCDPTR
MOVXA,@DPTR
ANLA,#0FH
ORLA,B
INCDPTR
MOVX@DPTR,A
END
实验四数据区传送子程序
一、实验目的
掌握RAM中的数据操作。
二、实验内容
把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。
三、程序框图
四、实验过程
实验要求将一段内存中数据移动到另一段内存中,本次实验通过寄存器内容截图显示,是把0000H单元开始20H个字节的内容送到1000H开始的连续数据单元中。先把初始地址分别放入源地址寄存器和目的地址寄存器,然后利用一组寄存器作为需转移数据区长度计数器,开始数据转移循环。每进行一次转移地址寄存器向下加一,计数寄存器内容减一,计数寄存器内容为0退出循环移动结束。由于计数以及地址寄存器是由两个八位寄存器组成,需要在加一减一时对其高字节和低字节进行判断。加一时若低字节加一变为0,则高字节加一,否则低字节加一高字节不变。减一时若低字节已是0则高字节减一,同时低字节变为0FFH,否则低字节减一高字节不变。
五、实验结果及分析
【问题回答】如图R4、R5定义的目的地址单元中转移之前为随机数,转移后内容与以R2、R3开始的的源地址单元中20个字节内容相同,即实现了数据的传送。
六、实验源程序
;数据区传送子程序
START:MOVR0,#03H
MOVR2,#00H
MOVR3,#00H
MOVR4,#10H
MOVR5,#10H
HERE:MOVDPH,R2
MOVDPL,R3
MOVXA