哈尔滨工业大学单片机实验报告.docx
- 文档编号:26568251
- 上传时间:2023-06-20
- 格式:DOCX
- 页数:17
- 大小:22.05KB
哈尔滨工业大学单片机实验报告.docx
《哈尔滨工业大学单片机实验报告.docx》由会员分享,可在线阅读,更多相关《哈尔滨工业大学单片机实验报告.docx(17页珍藏版)》请在冰豆网上搜索。
哈尔滨工业大学单片机实验报告
HarbinInstituteofTechnology
单片机原理与应用
实验报告
学生姓名:
学号:
班级:
通信工程
专业:
任课教师:
所在单位:
电子与信息工程学院
月5年2013.
软件实验
在软件实验部分,通过实验程序的调试,使学生熟悉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
DPTRMOVDPTR,#2000H;(2000H送(DPTR送LOO1:
MOVX@DPTR,A;0INCDPTR;DPTR+1
1
INCR0;字节数加个字节再清FF不到CJNER0,#00H,LOO1;
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.”状态下按ぜ甥?
代噅?
乕?
装载实验所需的代码程序。
⑵在“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
实验八多分支程序一、实验目的掌握汇编语言的编程。
二、实验内容编写在⑴环境LED、1四、实验步骤三、程序框图程序,根据送入的数据转移运行。
.
“P.”状态下按“0→EV/UN”,装载实验所需的代码程序。
⑵在20H中分次送入
00、01、02、03。
⑶在“P.”状态下键入0A10,然后按“STEP”或“EXEC”进入实验项目的调试与运行。
2、PC环境在与PC联机状态下,编译、连接、下载
PH51\se08.asm,用连续或单步方式运行程序。
3、运行结果检查
(1)在单步运行时每走一步可观察其运行结果。
(2)在连续运行状态下,应按“暂停图标”或实验箱上的“暂停按钮”,使系统无条件退出用户运行状态返回监控,然后观察每次运行程序后,数码管上数字循环情况。
六、实验源程序MAIN:
MOV20H,#00H
MOVA,20HMOVDPTR,#SZ;散转首址RLA;(20*2JMP@A+DPTR;转到(20*2+DPTRAJMPLOOP0AJMPLOOP1AJMPLOOP2AJMPLOOP3-17-SZ:
LOOP0:
MOV20H,#0C0HLJMPSOX0LOOP1:
MOV20H,#0F9HLJMPSOX0
LOOP2:
MOV20H,#0A4HLJMPSOX0LOOP3:
MOV20H,#0B0HLJMPSOX0
SOX0:
MOVA,20HMOVR0,#0DCHMOVR1,#0DDHMOVX@R0,AMOVA,#01H
MOVX@R1,A;MOVR2,#20HLCALLDELYRLASJMPSOX1;0字循环;1字循环;2字循环;3字循环SOX1:
;显示子程序DELY:
MOVR5,#1AHLP0:
MOV
R6,#7DHLP1:
NOPNOPDJNZR6,LP1DJNZR5,LP0RETEND-18-
实验十一二进制转换到BCD一、实验要求将给定的一个二进制数,转换成二进制编码的十进制(BCD)码。
二、实验目的掌握简单的数值转换算法,基本了解数值的各种表达方法。
三、实验说明计算机中的数值有各种表达方式,这是计算机的基础。
掌握各种数制之间的转换是一种基本功。
四、程序框图五、实验步骤1、在实验系统与PC联机状态下,编译、连接、下载、运行PH51\se11.asm,将ACC拆为三个BCD码。
2、运行结果检查⑴在单步运行时每走一步可观察其运行结果。
⑵在连续运行状态下,应按“暂停图标”,使系统无条件退出用户运行状态返回监控,然后再用相应的命令键检查存入20H开始的三个片内RAM单元。
六、实验源程序:
DELAY:
MOVR5,#0AHLP0:
MOVR6,#125LP1:
NOPNOP
ORG0000MOVRO,#1000HMOVA,R2MOVB,#64H-19-
DIVABMOV@RO,1MOVA,BMOVB,#0AHDIVABINCR0MOV@R0,A
INCR0MOV@R0,BEND-20-
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 哈尔滨工业大学 单片机 实验 报告