哈工大单片机实验报告

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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

单片机原理与应用

实验报告

学生姓名:

学号:

班级:

专业:

任课教师:

所在单位:电信学院

2014年4月

软件实验

在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。

实验一 清零程序

一、实验目的

掌握汇编语言设计和调试方法,熟悉键盘操作。

二、实验内容

把2000~20FFh 的内容清零。

三、程序框图

四、实验过程

实验中利用MOVX 语句,将外部存储器指定内容清零。利用数据指针DPTR 完成数据传送工作。程序采用用循环结构完成,R0移动单元的个数,可用CJNE 比较语句判断循环是否结束。

五、实验结果及分析

清零前 清零后

问题回答:2000H~20FFH中的内容清零前为内存里的随机数,清零后全变为0。

六、实验源程序

ORG 0000H

AJMP S01

ORG 0640H

S01: MOV R0, #00H

MOV DPTR, #2000H

CLR A

LOOP: MOVX @DPTR, A

INC DPTR

DJNZ R0, LOOP

SJMP $

END

实验二拆字程序

一、实验目的

掌握汇编语言设计和调试方法。

二、实验内容

把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。

三、程序框图

四、实验过程

将寄存器中内容送入2000H,分别将高低四位移到低位,将高四位置零然后移入2001H 和2002H中。利用MOVX语句、DPTR指针可实现数据的传送,利用高低四位交换语句SWAP和与语句ANL可进行对高低位的清零。

五、实验结果及分析

拆字前拆字后

问题回答:如果将2001h、2002h高位置1,程序中只需将ANL A, #0FH改为ORL A, #0F0H。

六、实验源程序

ORG 0000H

AJMP S02

ORG 0660H

S02: MOV DPTR, #2000H

MOVX A, @DPTR

SWAP A

ANL A, #0FH

INC DPTR

MOVX @DPTR, A

MOV DPTR, #2000H

MOVX A, @DPTR

ANL A, #0FH

INC DPTR

INC DPTR

MOVX @DPTR, A

END

实验三拼字程序

一、实验目的

进一步掌握汇编语言设计和调试方法。

二、实验内容

把2000h、2001h的低位分别送入2002h高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。

三、程序框图

四、实验过程

本实验主要应用与语句ANL对高四位进行屏蔽,利用SWAP语句将2000H低四位交换到高四位,再用或ORL语句将2000H和2001H的高低四位组合在一起送入2002H中,从而实现两个数低四位组合。

五、实验结果及分析

拼字前拼字后

问题回答:本实验运行程序后2002h的最终内容是45H,即2000H单元中低四位“4”作为2002H的高四位,2001H的低四位“5”作为2002H的低四位。

六、实验源程序

ORG 0000H

AJMP S03

ORG 0680H

S03: MOV DPTR, #2000H

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单元开始FFH个字节的内容送到3000H开始的连续数据单元中。先把初始地址分别放入源地址寄存器和目的地址寄存器,然后利用一组寄存器作为需转移数据区长度计数器,开始数据转移循环。每进行一次转移地址寄存器向下加一,计数寄存器内容减一,计数寄存器内容为0退出循环移动结束。由于计数以及地址寄存器是由两个八位寄存器组成,需要在加一减一时对其高字节和低字节进行判断。加一时若低字节加一变为0,则高字节加一,否则低字节加一高字节不变。减一时若低字节已是0则高字节减一,同时低字节变为0FFH,否则低字节减一高字节不变。

五、实验结果及分析

源内存段中内容目的内存段中移动前内容

目的内存段中移动后内容

问题回答:R4、R5所定义的目的地址单元内容在转移之前为随机数,转移后内容与以R2、R3开始的的源地址单元中256个字节内容相同,即实现了数据的传送。

六、实验源程序

ORG 0000H

AJMP S04

ORG 07B0H

S04: MOV R3, #00H

MOV R2, #00H

MOV R4, #30H

MOV R5, #00H

MOV R6, #01H

MOV R7, #00H

LOOP: MOV DPL, R3

MOV DPH, R2

MOVX A, @DPTR

MOV DPL, R5

MOV DPH, R4

MOVX @DPTR, A

CLR C

MOV A, R3

ADD A, #01H

MOV R3, A

MOV A, R2

ADDC A, #00H

MOV R2, A

相关文档
最新文档