哈工大单片机实验报告(上传)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
H a r b i n I n s t i t u t e o f T e c h n o l o g y
单片机原理与应用
实验报告
学生姓名:
学号:
班级:
专业:
任课教师:
所在单位:
2013年5月
软件实验
在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
实验一清零程序
一、实验目的
掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容
把2000~20FFh的内容清零。
三、程序框图
四、实验过程
实验中利用MOVX语句,将外部存储器指定内容清零。利用数据指针DPTR完成数据传送工作。程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。
五、实验结果及分析
清零前清零后
【问题回答】清零前2000H~20FFH中为内存里的随机数,清零后全变为0。
六、实验源程序
AJMP MAIN
ORG 0640H
MAIN: MOV R0, #00H
MOV DPL, #00H
MOV DPH, #20H
LOOP: MOV A, #00H
MOVX @DPTR, A
INC DPTR
INC R0
CJNE R0, #0FFH, LOOP
MOVX @DPTR, A
END
实验二拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序框图
四、实验过程
将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H 和2002H中。利用MOVX语句、DPTR指针可实现数据的传送,利用高低四位交换语句SWAP和与语句ANL可进行对高低位的清零。
五、实验结果及分析
拆字前拆字后
【问题回答】将ANL A, #0FH改为ORL A, #0F0H可以实现将高位置为1。
六、实验源程序
ORG 0000H
AJMP MAIN
ORG 0660H
MAIN: MOV DPL, #00H
MOV DPH, #20H
MOVX A, @DPTR
SWAP A
ANL A, #0FH
INC DPTR
MOVX @DPTR, A
MOV A, DPL
DEC A
MOV DPL, A
MOVX A, @DPTR
ANL A, #0FH
INC DPTR
INC DPTR
MOVX @DPTR, A
SJMP $
END
实验三拼字程序
一、实验目的
进一步掌握汇编语言设计和调试方法。
二、实验内容
把2000h、2001h的低位分别送入2002h高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、程序框图
四、实验过程
本实验主要应用与语句ANL对高四位进行屏蔽,利用SWAP语句将2000H低四位交换到高四位,再用或ORL语句将2000H和2001H的高低四位组合在一起送入2002H中,从而实现两个数低四位组合。
五、实验结果及分析
拼字前拼字后
【问题回答】本实验运行程序后2002H内容为34H,即2000H单元中低四位“3”作为2002H 的高四位,2001H的低四位“4”作为2002H的低四位。
六、实验源程序
ORG 0000H
AJMP MAIN
ORG 0680H
MAIN: MOV DPL, #00H
MOV DPH, #20H
MOVX A, @DPTR
ANL A, #0FH
SWAP A
MOV B, A
INC DPTR
MOVX A, @DPTR
ANL A, #0FH
ORL A, B
INC DPTR
MOVX @DPTR, A
END
实验四数据区传送子程序
一、实验目的
掌握RAM中的数据操作。
二、实验内容
把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。
三、程序框图
四、实验过程
实验要求将一段内存中数据移动到另一段内存中,本次实验通过寄存器内容截图显示,是把0000H单元开始20H个字节的内容送到1000H开始的连续数据单元中。先把初始地址分别放入源地址寄存器和目的地址寄存器,然后利用一组寄存器作为需转移数据区长度计数器,开始数据转移循环。每进行一次转移地址寄存器向下加一,计数寄存器内容减一,计数寄存器内容为0退出循环移动结束。由于计数以及地址寄存器是由两个八位寄存器组成,需要在加一减一时对其高字节和低字节进行判断。加一时若低字节加一变为0,则高字节加一,否则低字节加一高字节不变。减一时若低字节已是0则高字节减一,同时低字节变为0FFH,否则低字节减一高字节不变。
五、实验结果及分析
寄存器内容源内存段中内容