微机原理及应用实验报告中南大学.docx

上传人:b****7 文档编号:9840207 上传时间:2023-02-07 格式:DOCX 页数:15 大小:47.06KB
下载 相关 举报
微机原理及应用实验报告中南大学.docx_第1页
第1页 / 共15页
微机原理及应用实验报告中南大学.docx_第2页
第2页 / 共15页
微机原理及应用实验报告中南大学.docx_第3页
第3页 / 共15页
微机原理及应用实验报告中南大学.docx_第4页
第4页 / 共15页
微机原理及应用实验报告中南大学.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

微机原理及应用实验报告中南大学.docx

《微机原理及应用实验报告中南大学.docx》由会员分享,可在线阅读,更多相关《微机原理及应用实验报告中南大学.docx(15页珍藏版)》请在冰豆网上搜索。

微机原理及应用实验报告中南大学.docx

微机原理及应用实验报告中南大学

微机原理及应用实验报告

 

班级:

姓名:

学号:

中南大学

机电工程学院精密测控实验室

 

实验二软件程序设计

1.实验目的:

1、掌握MCS-51单片机指令系统及用汇编语言编程技巧;

2、了解和熟悉用MCS-51单片机仿真开发机调试程序的方法。

2.实验内容:

1、编写排序程序并上机调试通过。

已知8031内部RAM60H~69H单元中,依次存放了FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

2.、编写多字节加法程序并上机调试通过。

8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。

3.实验设备名称、型号:

台式微型计算机

MCS-51仿真开发机

THKSCM-2A

4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单:

程序1、编写排序程序并上机调试通过。

已知8031内部RAM60H~69H单元中,依次存放了

FFH,99H,77H,CCH,33H,DDH,88H,BBH,44H,EEH,它们均为无符号数,编程将它们按递减次序排序,即最大数放在60H中,最小数放在69H中。

解:

本设计采用冒泡排序法,使用双重循环,并在内循环中进行比较如果合乎从大到小的顺序则不动,否则两两交换,这样比较下去,比较9次后,最小的那个数就会沉底,在下一次比较时将减少一次比较次数。

如果一次比较完毕,没有发生交换,说明已经按照从大到小的顺序排列了。

则可以退出循环,结束程序。

程序结构框图和程序代码如下:

 

ORG1000H

TEMDATA50H

MOVR7,#9

MOV60H,#0FFH

MOV61H,#99H

MOV62H,#77H

MOV63H,#0CCH

MOV64H,#33H

MOV65H,#0DDH

MOV66H,#88H

MOV67H,#0BBH

MOV68H,#44H

MOV69H,#0EEH

LOOP0:

CLRF0

MOVA,R7

MOVR6,A

MOVR0,#60H

MOVR1,#60H

INCR1

LOOP1:

MOVA,@R0

MOVTEM,A

MOVA,@R1

CJNEA,TEM,NEXT

SJMPNOCHA

NEXT:

JCNOCHA

SETBF0

MOV@R0,A

XCHA,TEM

MOV@R1,A

NOCHA:

INCR0

INCR1

DJNZR6,LOOP1

JNBF0,HAL

DJNZR7,LOOP0

HAL:

SJMP$

END

程序2:

编写多字节加法程序并上机调试通过。

8031内部RAM20H~22H单元中,存放了3字节被加数(低字节在前),在2AH~2CH单元中存放3字节加数(低字节在前),求两数之和,并将结果存入以20H为起始地址的区域中(低字节在前)。

解:

改程序由三个字节数相加,其结果不会超过4个字节,可以采用循环求和的办法,吧加数和被加数依次从低位带进位相加,当然加最低位时必须先对进位位清零。

可以采用线性结构,也可以采用循环结构。

我在设计该程序采用单重循环,结构简单,特别是当相加的数较长时,优势更加明显。

程序结构框图和源代码如下:

 

ORG1000H

MOV20H,#××H

MOV21H,#××H

MOV22H,#××H

MOV2AH,#××H

MOV2BH,#××H

MOV2CH,#××H

MOVR0#20H

MOVR1#2AH

MOVR7#03H

CLRC

LOOP0:

MOVA,@R0

MOVB,@R1

ADDCA,B

MOV@R0,A

INCR0

INCR1

DJNZR7,LOOP0

NEXT:

JNCHAL

INCR0

MOV@R0,#01H

HAL:

SJMP$

END

5.思考题

1、如果题目1改为递增排序,如何修改程序,为什么?

答:

将NEXT中的指令中的JC指令换为JNC指令即可

2、如果题目1改为从30H单元开始的16个单元中无符号数排序,改哪几条指令?

答:

改变R7的值为15,将值赋予30H到3FH上就可以了

3、如果题目2改为从50H开始的4字节数与60H开始的四字节数相加,如何修改?

答:

MOVR0#20H改为MOVR0#50H

MOVR1#2AH改为MOVR1#60H

MOVR7#03H改为MOVR7#04H

4、写出题目2中你处理最高位进位的相应指令。

答:

NEXT:

JNCHAL

INCR0

MOV@R0,#01H

HAL:

SJMP$

5、循环程序中为何常用间接寻址方式(@Ri,@DPTR)?

答:

因为间接寻址可以实现程序的循环,便于编写程序。

 

6.心得体会:

通过实际模拟操作,加深了对单片机的理解,更好的理解编程语言,本次实验较为简单,

我是独立按时完成,当我看到发光二极管一次亮时别提我的兴奋劲了。

在试验的编程过程中

弄清了定时器的使用方法,以及延时的计算。

审阅:

实验三定时/计数器实验

1.实验目的:

1、掌握MCS-51单片机内部定时/计数器的功能与特点,工作方式选择和编程方法,中断功能的使用和中断服务程序的设计;

2、解和熟悉MCS-51单片机实验板的功能。

2.实验内容:

1、用MCS-51单片机的内部定时器定时中断,通过P1口控制实验板上八个LED发光二极管轮流循环显示发光,每个LED发光二极管显示时间为0.5秒;

2、用MCS-51单片机的内部定时器定时中断,编写一段电子秒表程序。

(选做)

3.实验设备名称、型号:

台式微型计算机

MCS-51仿真开发机

THKSCM-2A

4.画出软件程序流程图写出上机调试通过的汇编语言程序清单:

1、用MCS-51单片机的内部定时器定时中断,通过P1口控制实验板上八个LED发光二

极管轮流循环显示发光,每个LED发光二极管显示时间为0.5秒.

分析:

采用的晶振为11.0592MHz,所以时间周期T=1.085069μs。

采用方式一计时需要

460800次,超过了计时范围,故在采用一个内循环,取为10,则共需

460800÷10=46080。

X=2^(16)-46080=19456=4C00H

编程:

START:

MOVTMOD,#01H

MOVTH0,#4CH

MOVTL0,#00H

SETBTR0

SETBEA

SETBET0

MOVA,#F7H

MOVP1,A

MOV40H,#0AH

SJMP$

ORG0000H

LJMPSTART

ORG00BH

MOVTH0,#4CH

MOVTL0,#00H

DJNZ40H,OVER

MOV40H,#0AH

MOVP1,A

RRA

OVER:

RETI

5.思考题

1、你采用的是定时器0还是定时器1?

如果换用另外一个定时器,需要修改那些语句?

为什么?

答:

采用定时器0,若用另一个则要替换的语句是

MOVTMOD,#01H换为MOVTMOD,#10H

MOVTH0,#4CH换为MOVTH1,#4CH

MOVTL0,#00H换为MOVTL1,#00H

SETBTR0换为SETBTR1

2、如果将延时时间变为1秒,如何修改程序,为何?

答:

两个程序均是将MOV40H,#0AH改为MOV40H,#14H

3、改变发光二极管循环点亮方向,如何修改程序?

如果间隔闪亮(亮一个,黑一个,亮一个……)如何修改程序?

你还能做哪些花样?

答:

将RLA改为RRA

如果要间隔闪亮可以将A连续两次左移即RLA变为RLA再加RLA就可以了。

我还可以要其两同时亮,将累加器A的值变为0FDH就可以了语言是MOVA#0FEH变为MOVA,#0FDH

 

7.心得体会:

通过实际模拟操作,加深了对单片机的理解,更好的理解编程语言,本次实验较为简单,

我是独立按时完成,当我看到发光二极管一次亮时别提我的兴奋劲了。

在试验的编程过程中弄清了定时器的使用方法,以及延时的计算。

审阅:

实验四串行数据传送实验

1.实验目的:

1、掌握七段LED数码管显示器工作原理,以及用动态扫描方法编程实现8位LED数码管显示的方法;

2.进一步了解和熟悉MCS-51单片机实验板的功能。

2.实验内容:

1.用MCS-51的P1、P2输出段码和位码,编程实现8位LED数码管循环显示出“1”“2”“3”“4”“5”“6”间隔时间0.5秒。

2.缩短间隔时间,直至显示效果为稳定的“123456”

3.实验设备名称、型号:

台式微型计算机

MCS-51仿真开发机

THKSCM-2A

4.画出软件程序流程图,写出上机调试通过的汇编语言程序清单:

说明:

采用的晶振为11.0592MHz,所以时间周期T=1.085069μs。

执行一次DJNZ指令需要2T,要间隔0.5s。

故需要执行0.5÷(2T)=230400次。

取三次循环,第一次为4,第二次为256,第三次为230400÷4÷256=225=0E1H。

代码如下:

ORG0000H

MOV40H,#00H

MOV41H,#01H

MOV42H,#02H

MOV43H,#03H

MOV44H,#04H

MOV45H,#05H

START:

MOVR0,#40H

MOVR2,#06H

MOVR7,#7FH

LOOP:

MOVA,@R0

MOVDPTR,#DISTAB

MOVCA,@A+DPTR

MOVP1,A

MOVA,R7

MOVP2,A

RRA

MOVR7,A

MOVR3,#04H

MOVR4,#00H

MOVR5,#0E1H

LOOP1:

DJNZR5,LOOP1

DJNZR4,LOOP1

DJNZR3,LOOP1

INCR0

DJNZR2,LOOP

LJMPSTART

DISTAB:

DB06H;显示1

DB5BH;显示2

DB4FH;显示3

DB66H;显示4

DB6DH;显示5

DB7DH;显示6

END

修改MOVR3,#04H

MOVR4,#00H

MOVR5,#0E1H

可以缩短显示时间。

当修改为MOVR3,#04H

MOVR4,#04H

MOVR5,#02H时从视觉看已经看不出变化。

用定时器实现方法:

采用的晶振为11.0592MHz,所以时间周期T=1.085069μs。

采用方式一

计时需要460800次,超过了计时范围,故在采用一个内循环,取为50,则共需

460800÷50=9216。

X=216-9216=56350=DC1EH

源代码如下:

MOVTMOD,#01H

MOVTH0,#0DCH

MOVTL0,#1EH

SETBEA

SETBET0

SETBTR0

SJMP$

0RGB000BH

MOVR2,#32H

DJNZR2,NEXT

ORG0050H

MOV40H,#00H

MOV41H,#01H

MOV42H,#02H

MOV43H,#03H

MOV44H,#04H

MOV45H,#05H

START:

MOVR0,#40H

MOVR2,#06H

MOVR7,#EFH

LOOP:

MOVA,@R0

MOVDPTR,#DISTAB

MOVCA,@A+DPTR

MOVP1,A

MOVA,R7

MOVP2,A

RRA

MOVR7,A

INCR0

NEXT:

RETI

DISTAB:

DB06H;显示1

DB5BH;显示2

DB4FH;显示3

DB66H;显示4

DB6DH;显示5

DB7DH;显示6

END

5.思考题

1、要显示实验当天的日期(如),怎样调试?

答:

将MOVR2,#06H改为MOVR2,#08H

DISTAB:

DB06H;显示1改为DISTAB:

DB5BH;显示2

DB5BH;显示2DB3FH;显示0

DB4FH;显示3DB06H;显示1

DB66H;显示4DB3FH;显示0

DB6DH;显示5DB3FH;显示0

DB7DH;显示6DB6DH;显示5

DB3FH;显示0

DB6FH;显示9

2、用其中4位数码管显示“good”,程序如何修改?

答:

将MOVR2,#06H改为MOVR2,#04H

DISTAB:

DB06H;显示1改为DISTAB:

DB6FH;显示g

DB5BH;显示2DB3FH;显示0

DB4FH;显示3DB3FH;显示0

DB66H;显示4DB5EH;显示d

DB6DH;显示5

DB7DH;显示6

 

7.心得体会:

通过实际模拟操作,加深了对单片机的理解,更好的理解编程语言,本次实验我能够根

据老师给出的代码理解完成,并且取得满意的结果。

在试验的编程过程中弄清了很多在课堂

上没有理解的操作码的含义。

熟悉了各个操作码的使用方法及为什么如此用。

审阅:

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

当前位置:首页 > 总结汇报 > 学习总结

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

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