单片机.docx
《单片机.docx》由会员分享,可在线阅读,更多相关《单片机.docx(13页珍藏版)》请在冰豆网上搜索。
![单片机.docx](https://file1.bdocx.com/fileroot1/2023-6/12/f1e257e5-241b-448b-9e43-f4edb0839465/f1e257e5-241b-448b-9e43-f4edb08394651.gif)
单片机
成绩:
计算机原理实验室实验报告
课程:
单片机原理及接口技术实验
姓名:
宇
专业:
计算机科学与技术
学号:
1120542
日期:
2014/6/12
太原工业学院
计算机工程系
实验一:
拆字程序实验
设备名称及软件环境
51仿真调试
实验名称
拆字程序实验
实验日期
一.实验内容
任给一八位无符号数,分别拆出其高四位和低四位,并分别转换成ASCII值输出
二.理论分析或算法分析
把一八位无符号数放在r5中,后把它传到r7中,并交换传递给r6。
用#0fh分别屏蔽高四位和低四位。
如果其数值在0-9范围,则加30H;否则加37H
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
mova,r5
movr7,a
swapa
movr6,a
anl06h,#0fh
anl07h,#0fh
mova,#'0'
adda,r6
cjnea,#3ah,j1
j1:
jcj2
adda,#7
j2:
movr6,a
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
五.结论
通过本次试验学会了怎样把一八位无符号数,分别拆出其高四位和低四位,并分别转换成ASCII值输出。
报告提交日期
实验二:
分支程序实验
设备名称及软件环境
单片机模拟器
实验名称
分支程序实验
实验日期
一.实验内容
实现三个数(R5,R6,R7)中找出最大和最小值,最大值存到R3,最小值存到R4
将数据从R5,R6,R7改为内部数据存储器30H开始的连续多个数据
二.理论分析或算法分析
(1)将40h存入45,再将41h存入25,比较40h与41h中的数据,如果相等则顺序执行,不等
(2)等于是40h中的数据存入60h中,41h中的数据存入61h中。
(3)不等时:
判断40h是否大于41h如果大于40中存入61h,41中存入60h如果小于则40中存入60h,41中存入61h,
(4)结束程序。
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
源程序:
mov40h,#45hmov41h,#25h
mova,40h
movr0,41h
cjnea,41h,rel
dengyu:
mov60h,40h
mov61h,41h
sjmpnoop
rel:
JCsmall
big:
xcha,41h
mov60h,a
mov61h,41h
sjmpnoop
small:
sjmpdengyu
noop:
nop
end
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
图一输入数字
图二执行结果
五.结论
在本次试验过程中,学会了比较指令以及转移指令,学会了分支的使用。
实现了实验的要求。
报告提交日期
实验三:
循环程序实验
设备名称及软件环境
计算机硬件实验室
实验名称
循环程序实验(排序)
实验日期
4.实验内容
实现对五个字节数据从大到小排序
实现两种不同的排序算法,并比较各自的排序效率
二.理论分析或算法分析
3.先将要排序的五个数字分别存到20h-24h中
4.将20h的内容存到r0中
5.将r0里存的数字放到a中,再将a的数字放到b中。
再让r0加1,再将r0内的数字存放到a中。
6.将a的数字放进r5中,用subb比较a,b中数字的大小。
7.再将r5的中传给a,保证数字不变
8.再将r0的减一,交换a和r0内的数字
9.R0加一,把a的值存放到r0指定的位置
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
mov20h,#0A6h
mov21h,#34h
mov22h,#35h
mov23h,#64h
mov24h,#15h
movr4,#4
qq1:
mova,r4
movr3,a
movr0,#20h
qq2:
mova,@r0
movb,a
incr0
mova,@r0
clrc
movr5,a
subba,b
jncunexch
mova,r5
decr0
xcha,@r0
incr0
mov@r0,a
unexch:
djnzr3,qq2
djnzr4,qq1
end
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
(1)图一为未排序的数字图
(2)图二为拍序完成的数字图
图二
图一
五.结论
通过本次试验,我学会了嵌套循环,和排序的基本思想
报告提交日期
实验四:
子程序实验
设备名称及软件环境
MedWin
实验
子程序实验(递归)
实验日期
一.实验内容
掌握子程序设计及调用
通过子程序递归实现求阶乘
编程找到51可以直接乘法求阶乘的最大值
观察并思考递归过程中的栈
1.理论分析或算法分析
子程序结构图
三.实现方法(含实现思路、程序流程图、实验电路图和源程序列表等)
movr0,#3
movr1,#1
acalljiecheng
ajmplast
jiecheng:
cjner0,#1,finish
ret
finish:
mova,r1
movb,r0
mulab
movr1,a
decr0
acalljiecheng
last:
nop
end
四.实验结果分析(含执行结果验证、输出显示信息、图形、调试过程中所遇的问题及处理方法等)
程序执行前:
3的阶乘4的阶乘
1.结论
本次实验基本完成了实验的要求,实现了递归的应用。
计算出了阶乘的结果,但是只能实现5一下数字的阶乘。
报告提交日期