Harbin Institute of Technology
单片机原理与应用
实验报告
学生姓名 学班专
号 级 业
: : : : : : 电信学院
任课教师 所在单位
2014年4月
软件实验
在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
实验一 清零程序
一、实验目的
掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容
把2000~20FFh的内容清零。
三、程序框图
四、实验过程
实验中利用MOVX语句,将外部存储器指定内容清零。利用数据指针DPTR完成数据传送工作。程序采用用循环结构完成,R0移动单元的个数,可用CJNE比较语句判断循环是否结束。
五、实验结果及分析
清零前 清零后
-1-
问题回答: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可进行对高低位的清零。
-2-
五、实验结果及分析
拆字前 拆字后
2002h高位置1, 问题回答:如果将2001h、程序中只需将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高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、程序框图
-3-