哈尔滨工业大学单片机实验报告图文精.docx
《哈尔滨工业大学单片机实验报告图文精.docx》由会员分享,可在线阅读,更多相关《哈尔滨工业大学单片机实验报告图文精.docx(10页珍藏版)》请在冰豆网上搜索。
![哈尔滨工业大学单片机实验报告图文精.docx](https://file1.bdocx.com/fileroot1/2022-10/12/9e03b0db-5373-4e88-9b6e-4a2a6566ba6b/9e03b0db-5373-4e88-9b6e-4a2a6566ba6b1.gif)
哈尔滨工业大学单片机实验报告图文精
HarbinInstituteofTechnology
单片机原理与应用
实验报告
学生姓名:
学号:
班级:
通信工程
专业:
任课教师:
所在单位:
电子与信息工程学院
2013年5月
软件实验
在软件实验部分,通过实验程序的调试,使学生熟悉MCS-51的指令系统,了解程序设计过程,掌握汇编语言设计方法以及如何使用实验系统提供的调试手段来排除程序错误。
实验一清零程序
一、实验目的
掌握汇编语言设计和调试方法,熟悉键盘操作。
二、实验内容
把2000~20FFh的内容清零。
三、程序框图
四、实验过程
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在“P.”状态下键入0640,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se01.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时,每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~20FFH中执行程序前后的内容变化。
五、实验结果及分析
实验前截图:
实验后截图:
实验源程序:
ORG0640H
SE01:
MOVR0,#00H
MOVDPTR,#2000H;(2000H送DPTR
LOO1:
MOVX@DPTR,A;0送(DPTR
INCDPTR;DPTR+1
INCR0;字节数加1
CJNER0,#00H,LOO1;不到FF个字节再清
SJMP$
END
实验问题:
2000H~20FFh中的内容是什么?
解答:
实验运行之前,2000H~20FFh中的内容是随机分配的;在执行完清零程序之后,
2000H~20FFh中的内容都变为0.
实验二拆字程序
一、实验目的
掌握汇编语言设计和调试方法。
二、实验内容
把2000h的内容拆开,高位送2001h低位,低位送2002h低位,2001h、2002h高位清零,一般本程序用于把数据送显示缓冲区时用。
三、程序流程
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在“P.”状态下键入0660,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se02.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2000~2002h中内容变化情况。
五、实验结果及分析
先保存2000H,在利用SWAP语句将2000H高低位交换;然后利用ANL语句把交换后的2000H单元的高位给屏蔽,将高低位交换后的2000H单元的地位送给2001H,最后将2000H交换之前的高位屏蔽,低位送入2002H。
实验前后截图如下:
六、实验源程序
ORG0000;
MOVDPTR,#2000H;
MOVXA,@DPTR;
ANLA,#0FH;
MOVR1,A;
MOVXA,@DPTR;
SWAPA;
ANLA,#0FH;
INCDPTR;
MOVX@DPTR,A;
INCDPTR;
MOVA,R1;
MOVX@DPTR,A;
END;
如果将2001h、2002h高位置1,程序该如何修改?
修改方法很多,例如在2001H、2002H单元中加上1100H。
实验三拼字程序
一、实验目的
进一步掌握汇编语言设计和调试方法。
二、实验内容
把2000h、2001h的低位分别送入2002h高低位,一般本程序用于把显示缓冲区的数据取出拼装成一个字节。
三、程序流程
四、实验步骤
1、LED环境
⑴在“P.”状态下按"0→EV/UN",装载实验所需的代码程序。
⑵在“P.”状态下键入0680,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se03.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2002h内容变化情况。
五、实验结果及分析
实验前后截图如下:
六、实验源程序ORG0000H;
MOVDPTR,#2000H;MOVXA,@DPTR;
ANLA,#0FH;
SWAPA;
MOVR1,A;
INCDPTR;
MOVXA,@DPTR;
ANLA,#0FH;
ORLA,R1;
INCDPTR;
MOVX@DPTR,A;
END;
七、实验问答
1、运行程序后2002h的最终内容是?
从实验后的截图中可以看出为:
06.
实验四数据区传送子程序
一、实验目的
掌握RAM中的数据操作。
二、实验内容
把R2、R3源RAM区首址内的R6、R7字节数据传送到R4、R5目的RAM区。
三、程序流程
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵对R2、R3所定义的源地址单元从首址开始依次写入00、11、22、……、0FF。
⑶在“P.”状态下键入07B0,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se04.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键检查由R4、R5所定义的目的地址单元。
五、实验结果及分析
实验前后截图如下:
六、实验源程序
ORG07B0H
MOVR2,#20H
MOVR3,#00H
MOVR4,#20H
MOVR5,#90H
MOVR6,#00H
MOVR7,#00H
START:
CLRC
MOVDPL,R3
MOVDPH,R2;建立源程序首址
MOVXA,@DPTR;取数
MOVDPL,R5
MOVDPH,R4;目的地首址
MOVX@DPTR,A
INCR3;源地址加1
MOVA,R2
ACALLADB
MOVR2,A
INCR5;目的地址加1
MOVA,R4
ACALLADB
MOVR4,A
INCR7;转移数加1
MOVA,R6
ACALLADB
MOVR6,A
CJNER6,#00H,START
CJNER7,#2FH,START
ADB:
ADDCA,#00H
CLRC
RET
END
七、实验问答
1、R4、R5所定义的目的地址单元内容是什么?
从截图中可以看出R4、R5中为:
01、09.
实验六查找相同数个数
一、实验目的
熟悉汇编语言编程。
二、实验内容
在2000~200Fh中查出有几个字节是零,把个数放在2100h中。
三、程序框图
四、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在2000~200Fh的若干单元中填入零
⑶在“P.”状态下键入0AA0,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se06.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键观察与检查2100h中是几个单元数。
五、实验结果及分析
实验前后截图如下:
六、实验源程序
ORG2000H;
MOVR0,#0FH;
MOVR1,#00H;
MOVDPTR,#2000H;
START:
MOVXA,@DPTR;
JNZLOOP;
INCR1;
LOOP:
INCDPTR;DJNZR0,START;MOVA,R1;
MOVDPTR,#2100H;MOVX@DPTR,A;END;
实验七无符号双字节快速乘法子程序
一、实验目的
掌握MCS-51汇编语言程序设计方法。
二、预备知识
本程序是利用单字节的乘法指令,根据下面的公式进行乘法运算的:
(R2R3×(R6R7
=((R2×28+(R3×((R6×28+(R7
=(R2×(R6×216+(R2×(R7+(R3×(R6×28+(R3*(R7
三、实验内容
将(R2R3和(R6R7中双字节无符号整数相乘,积送R4R5R6R7中。
四、程序框图
五、实验步骤
1、LED环境
⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵对R2、R3所定义的源地址单元从首址开始输入无符号整数。
⑶在“P.”状态下键入0970,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境
在与PC联机状态下,编译、连接、下载PH51\se07.asm,用连续或单步方式运行程序。
3、运行结果检查
⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键检查R4R5R6R7中内容。
五、实验结果及分析
实验前后截图如下:
六、实验源程序ORG0000HMOVA,R3MOVB,R7
MULAB
XCHA,R7
MOVR5,B
MOVB,R2
MULAB
ADDA,R5
MOVR4,A
CLRA
ADDCA,B
MOVR5,A
MOVA,R6
MOVB,R3
MULAB
ADDA,R4
XCHA,R6
XCHA,B
ADDCA,R5MOVR5,A
MOVF0,C
MOVA,R2
MULAB
ADDA,R5
MOVR5,A
CLRA
MOVACC.0,C
MOVC,F0
ADDCA,B
MOVR4,A
SJMP$
END
七、实验问答
1、寄存器R
2、R
3、R6、R7分别输入01、10、11、10,运行程序,R
4、R6中的内容是什么?
解答:
0110H*1110H=122100H
故R4:
12R6:
00
实验八多分支程序一、实验目的掌握汇编语言的编程。
二、实验内容编写程序,根据送入的数据转移运行。
三、程序框图四、实验步骤1、LED环境⑴在“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在20H中分次送入00、01、02、03。
⑶在“P.”状态下键入0A10,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境在与PC联机状态下,编译、连接、下载PH51\se08.asm,用连续或单步方式运行程序。
3、运行结果检查
(1)在单步运行时每走一步可观察其运行结果。
(2)在连续运行状态下,应按