太原理工大学单片机实验.docx

上传人:b****3 文档编号:26562231 上传时间:2023-06-20 格式:DOCX 页数:20 大小:336.25KB
下载 相关 举报
太原理工大学单片机实验.docx_第1页
第1页 / 共20页
太原理工大学单片机实验.docx_第2页
第2页 / 共20页
太原理工大学单片机实验.docx_第3页
第3页 / 共20页
太原理工大学单片机实验.docx_第4页
第4页 / 共20页
太原理工大学单片机实验.docx_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

太原理工大学单片机实验.docx

《太原理工大学单片机实验.docx》由会员分享,可在线阅读,更多相关《太原理工大学单片机实验.docx(20页珍藏版)》请在冰豆网上搜索。

太原理工大学单片机实验.docx

太原理工大学单片机实验

太原理工大学单片机实验

LT

MOV46H,#72H;72H→(46H)

MOVR0,#40H;40H→R0

MOVR1,#45H;45H→R1

START:

MOVA,@R0;((R0))→A

ADDA,@R1;((R1))+A→A

MOV50H,A;A→(50H)

INCR0;(R0)+1→(R0)

INCR1;(R1)+1→(R1)

CLRA;A清0

……………………………………装………………………………………订…………………………………………线………………………………………

ADDCA,@R0;((R0))+A+Cy→A

ADDA,@R1;((R1))+A→A

MOV51H,A;A→(51H)

CLRA;A清0

ADDCA,#0H;0H+A+Cy→A

MOV52H,A;A→(52H)

SJMP$;循环

END

……………………………………装………………………………………订…………………………………………线………………………………………

本程序进行了两个双字节BCD数的加法,中途出现两次进位,每次进位参与下一次的进位加法计算。

六、实验结果与分析:

通过两次进位加法计算,两个双字节BCD数加法的结果变为三字节BCD数,并存于50H~52H单元中,其中52H单元中存结果的最高位1。

七、实验心得:

通过本次实验,我更加直观的感受到BCD加法过程中的问题,并通过编程和仿真,动态观看了数据在单片机内部的存储状况。

实验名称数据排序程序

专业班级通信12-2学号2012101702姓名徐义申成绩

……………………………………装………………………………………订…………………………………………线………………………………………

一、实验目的:

1.熟悉并掌握MCS-51指令系统和程序设计方法。

2.掌握排序程序算法。

3.掌握用循环程序实现数据排序的方法。

二、实验设备:

PC机

1.操作系统:

WindowsXP/7

2.仿真软件:

Wave6000

三、实验内容:

编写一个通用排序子程序并调试,其功能为将RAM的40H~4FH单元16个字节无符号二进制整数按从小到大顺序排序,将排序后的数据存放在50H~5FH缓冲区中。

四、实验原理:

从40H单元的第一个数开始依次和相邻单元的另一个数比较,如果顺序正确,则不作任何操作;如果顺序错误,则将这两个数位置对换。

这样,在完成第一遍n-1次比较后,最小的数到了最后,所以第二遍比较只需要比较n-2次,最多作n-1遍比较就可完成排序。

在比较中设立一个标志位flag清零,在循环结束时,若flag=1说明排序未完成,进入外循环;若flag=0,说明排序完成,程序结束。

五、实验源程序:

ORG0000H

MOVR7,#10H

MOVR0,#40H

MOVR1,#20H

START:

MOVA,R1

MOV@R0,A

INCR0

DECR1

……………………………………装………………………………………订…………………………………………线………………………………………

DJNZR7,START

MOVR7,#0FH

LP0:

MOVR0,#40H

MOVA,R7

MOVR6,A

CLR7FH

LP1:

MOVA,@R0

MOV20H,@R0

INCR0

MOV21H,@R0

CLRC

SUBBA,21H

JCLP2

SETB7FH

MOV@R0,20H

DECR0

MOV@R0,21H

INCR0

LP2:

DJNZR6,LP1

JNB7FH,LP3

DJNZR7,LP0

LP3:

MOVR7,#10H

MOVR0,#40H

MOVR1,#50H

LP4:

MOVA,@R0

MOV@R1,A

INCR1

INCR0

DJNZR7,LP4

……………………………………装………………………………………订…………………………………………线………………………………………

SJMP$

END

六、实验结果与分析:

……………………………………装………………………………………订…………………………………………线………………………………………

(排序前:

(40H)201F1E1D1C1B1A19

(48H)1817161514131211

(排序后):

由小到大

48

……………………………………装………………………………………订…………………………………………线………………………………………

排序后,数值由小到大,从(40H)→(50H),(48H)→(58H)

七、实验心得:

通过实验让我深刻体会到实验前的理论知识准备的重要,如果自己没有一些基础知识,那也是很难做下去的。

同时对我的后续课程的学习提出了更高的要求。

实验名称子程序调用

专业班级通信12-2学号2012101702姓名徐义申成绩

……………………………………装………………………………………订…………………………………………线………………………………………

一、实验目的:

掌握MCS51单片机I/O口的基本输入与输出功能。

学习子程序的调用和程序设计。

掌握子程序调用过程中保护现场与恢复现场以及调用程序与被调用程序之间的参数传递。

二、实验设备:

PC机

操作系统:

WindowsXP/7

仿真软件:

WAVE6000

三、实验内容:

编写程序,计算Y=

.a1,a2,…;…,a10存放在内部RAM的20H开始的存储区内,计算所得结果放入R2和R3中。

四、实验源程序:

ORG0000H

MAIN:

MOVR0,#20H

MOVR7,#10

MOVR3,#0

MOVR2,#0

LOOP:

MOVA,@R0

ACALLSORT

ADDA,R2

MOVR2,A

CLRA

ADDCA,R3

MOVR3,A

INCR0

……………………………………装………………………………………订…………………………………………线………………………………………

DJNZR7,LOOP

SJMP$

SORT:

MOVDPTR,#TAB

MOVA,@A+DPTR

RET

TAB:

DB0,1,4,9,16

DB25,36,49,64,81

EN:

NOP

END

五、实验结果与分析:

子程序调用不必重复编写同样的程序,有利于提高编码效率,缩短源程序与目标程序的长度,节省程序存储的空间,使程序模块化,通用化,便于阅读,交流。

六、实验心得:

通过这次实验我深刻体会到了对中断方式认识的不足以及对汇编语言的不熟悉,程序不断出错,有关中断的以前没有做过实验,上课学的没有在实际中运用过,我意识到实践的重要性,虽然上课都能跟上老师的思维,但下来做实验时,才发现只靠课堂上学的知识还远远不够,通过这次实验,我对中断有了更深的了解。

实验名称定时/计数器应用设计

专业班级通信12-2学号2012101702姓名徐义申成绩

一、实验目的:

(1)深刻理解对MCS-51单片机定时/计数器内部结构、工作原理和工作方式。

(2)掌握定时/计数器工作在定时和计数两种状态下的编程方法。

(3)掌握中断服务程序设计方法。

二、实验设备:

PC机

操作系统:

WindowsXP/7

仿真软件:

WAVE6000

三、实验内容:

在使用12MHz晶振的条件下,用T1产生1ms的定时,两个7段LED数码管从00开始显示,每1秒加1,到达59后,再从00开始,完成60秒定时功能。

四、实验原理:

MCS—51单片机内部包括T0和T1两个定时计数器。

每个定时,计数器有4种工作方式。

设加1计数器计数的最大值为M,计数值为N,计数初值为Count,则Count的计算方法如下。

Count=M—定时时间/T=M-50000/1=65536-50000=15536=3CB0H

五、实验源程序:

1.定时器:

ORG0000H

AJMPSTART

ORG001BH

AJMPTIME1

ORG0030H

START:

MOVSP,#60H

MOVTMOD,#10H

SETBEA

SETBET1

……………………………………装………………………………………订…………………………………………线………………………………………

MOVR3,#60

MOVR0,#0

MOVR1,#0

MOVTH1,#3CH

MOVTL1,#0B0H

SETBTR1

AJMP$

TIME1:

PUSHACC

PUSHPSW

INCR0

MOVA,R0

CJNEA,#20,T_LP2

MOVA,R1

MOVB,#10

DIVAB

SWAPA

ADDA,B

MOVP1,A

INCR1

CJNER1,#60,LP0

MOVR1,#00H

LP0:

MOVR0,#00H

T_LP2:

MOVTH1,#3CH

MOVTL1,#0B0H

POPPSW

POPACC

RETI

END

2.计时器:

……………………………………装………………………………………订…………………………………………线………………………………………

ORG0000H

MOVTMOD,#02H

MOVTH0,#251

MOVTL0,#251

SETBTR0

START:

MOVP0,#0FFH

JNBTF0,$

CLRTF0

MOVP0,#00H

JNBTF0,$

CLRTF0

AJMPSTART

END

七、实验心得:

通过这次实验,使我学到了不少实用的知识,更重要的是,做实验的过程,思考问题的方法,通过我们讨论有了更深的认识。

在做计时器时,因不明白06H所代表的含义,程序一直无法调通。

最后更换成02H方使程序运行通过。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 法律资料

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1