MCS-51单片机实验指导书

  • 格式:doc
  • 大小:106.00 KB
  • 文档页数:21

MCS-51单片机

实验指导书

黄惟公邓成中编写

西华大学机械工程与自动化系

机械电子工程教研室

目录

单片机实验板原理图与零件布置图---------------------------2

说明---------------------------------------------------------------------5

实验1红绿灯控制--------------------------------------------6

实验2LED显示-----------------------------------------------9

实验3键盘的应用-------------------------------------------11

实验4定时、中断的应用---------------------------------13

四位LED显示参考程序--------------------------------15

实验5计数器实验-------------------------------------------18

实验6A/D转换器-------------------------------------------19

实验7D/A转换器-------------------------------------------24

实验8PC机与单片机的串行通讯实验----------------26

附:ISP下载程序使用说明--------------------------------29

MedWin集成开发环境用户手册-----------------------33-74

Practiceisabestwaytolearnig“实践”是学习单片机

的最好方法。

图1单片机实验板原理图

说明

1每次实验学生必须进行预习。

2实验提供的参考程序只是为学生提供了一个参考样本,学生必须按实验报告的要求完成的思考题中的有关实验。

3有条件的同学可以完成所有思考题中要求的实验。

4西华大学的网站上有所有本实验需要使用的软件下载。

5对本实验装置有兴趣,希望自己制作的同学,可与有关老师联系。

实验1红绿灯控制

实验目的:

初步学习如何用开发系统调试程序。

了解89C51单片机I/O端口的结构特点。

掌握89C51单片机I/O端口的控制和使用方法。

相关知识:

89C51单片机的P0~P3四个端口均可为通用I/O口使用。

89C51单片机的P0~P3端口,输入数据可以缓冲,输出时能够锁存,并具有一定的带负载能力。

实验要求:

利用单片机的P1.3、P1.4、P3.3控制3个LED指示灯,模仿交通控制灯。

红灯亮4秒;黄灯亮2秒;黄灯、绿灯同时亮1秒;绿灯亮4秒,如此循环。

电路:

电路图见“图1单片机实验板原理图”有关部分。

参考程序清单:

ORG0000H

AJMPMAIN

ORG0030H

MAIN:CLRP1.3;红灯亮4秒

SETBP1.4

SETBP3.3 图2实验板零件布置图

图3实验板印制板图

MOVR0,#40

LCALLDELAY

SETBP1.3;黄灯亮2秒

CLRP1.4

SETBP3.3

MOVR0,#20

LCALLDELAY

CLRP1.4;黄绿灯亮1秒

CLRP3.3

SETBP1.3

MOVR0,#10

LCALLDELAY

SETBP3.3;绿灯亮4秒

MOVR0,#40

LCALLDELAY

AJMPMAIN;循环

DELAY:MOVA,R0

MOVR5,A;延时程序,(R0)=10延时1秒

DELAY3:MOVR6,#211

DELAY2:MOVR7,#00H

DELAY1:DJNZR7,DELAY1

DJNZR6,DELAY2

DJNZR5,DELAY3

RET

END

操作步骤:(参考MedWin仿真软件简介)

① 编辑程序:按参考程序输入并命名为led1.Asm;

汇编程序并装入,如出现标点符号方面或语法错误,编辑、修改并“产生代码并装入”后,结果如下图所示:

②仿真(软件)调试;

◆“查看”→“寄存器”以及“特殊功能寄存器”→“调试”→“单步”观察每一步运行后,寄存器的变化是否与预期一致。

每当运行到DELAY时注意观察“特殊功能寄存器”中的P1.3、P1.4、P3.3是否为程序编写时所预期的结果,若是,则证明本程序正确。

◆也可以利用断点功能来调试程序,在DELAY和RET指令前单击设置两个断点→“全速运行”。

结果:“全速运行”一次,PC指针停留在第一个断点处(用断点调试程序的

方法很重要);再“全速运行”,PC指针停留在第二个断点处:继续下去,则交替停留在两个断点处。这表明程序按要求执行到了延时子程序。

② 下载程序后调试。将仿真器与计算机通过打印机并行口连接好。

按ISP说明书的要求将程序下载到用户板上。这样,程序就会真正在用户的硬件系统中运行,其运行状况正确与否一目了然。

程序调试的方法有很多,并且不同的情况会有不同的调试手段,惟有在实战中不断积累经验,才能熟中生巧,缩短程序开发的时间周期,产生更大的效益。

思考题:

1. 怎样计算延时子程序的时间?

2. 如何计算与LED连接的电阻的阻值?

3. 画出单片机实验板、开发系统、PC机之间的连接框图。

4. 如何用89C51的I/O端口控制继电器,画出电路原理图。

实验报告:

画出本实验相关的原理图。

回答思考题中1、3、4题,选作第2题。

对本次实验有何建议和感想?

实验2LED显示

实验目的:

了解八段码LED的显示原理。

掌握单片机控制LED显示器的编程方法。

相关知识:

1.八段LED数码LED显示器件分为共阴极与共阳极两种,其显示原理与引脚分布见教材的有关部分。

2.为了在LED上显示字母和数字,必须根据LED与CPU的连接方法,事先计算出LED的显示“段码”,通过软件译码来实现。

实验要求:

循环显示0~9十位数字,时间间隔为1秒。

电路:

电路图见“图1单片机实验板原理图”有关部分。

参考程序:

ORG0000H

AJMPMAIN

ORG0030H

MAIN:MOVP2,#00H;使左边LED不显示(黑)

SETBP2.7;用右边LED显示

HERE:MOVR0,#00H

MOVR1,#0AH

LP:MOVA,R0

MOVDPTR,#TAB;0~9段码表的首地址,

MOVCA,@A+DPTR;查表指令

MOVP0,A

LCALLDELAY;延时1秒

INCR0;显示内容加1

DJNZR1,LP;判断0~9是否显示完了

AJMPHERE;循环

DELAY:MOVR5,#10;延时1秒子程序

DELAY3:MOVR6,#211

DELAY2:MOVR7,#00

DELAY1:DJNZR7,DELAY1

DJNZR6,DELAY2

DJNZR5,DELAY3

RET

ORG0100H

TAB:DB88H,0BBH,4AH,2AH,39H

DB2CH,0CH,0BAH,08H,28H

END

思考题:

1. 段码与那些因素有关,写出本实验中A、B、C、D、E、F、P的段码。

2.将本实验程序改写成显示0~99。

实验报告:

画出本实验相关的原理图。

回答思考题。

对本次实验有何建议和感想?

实验3键盘的应用

实验目的:

掌握独立键盘的电路连接和编程方法。

相关知识:

独立键盘的原理,防止键盘的抖动。

实验要求:

1.按KEY1,只有红灯亮;按KEY2,只有黄灯亮;按KEY3,只有绿灯亮。

2.LED显示0,每按KEY1一次,LED显示加1,至9后,再循环从0显示到9。

电路:

电路图见“图1单片机实验板原理图”有关部分。

参考程序(按KEY1,只有红灯亮;按KEY2,只有黄灯亮;按KEY3,只有绿灯亮):

ORG0000H

AJMPKEY1

ORG0030H

KEY1:SETBP2.2;将P2.2置1

JBP2.2,KEY1;有键按下P2.2=0

KEY11:ACALLDELAY;延时,防止抖动

SETBP2.2

JNBP2.2,KEY11;键是否释放

CLRP1.3;红灯亮

SETBP1.4;黄灯黑

SETBP3.3;绿灯黑

KEY2:SETBP2.1

JBP2.1,KEY2

KEY22:ACALLDELAY

SETBP2.1

JNBP2.1,KEY22

SETBP1.3

CLRP1.4

SETBP3.3

KEY3:SETBP2.0

JBP2.0,KEY3

KEY33:ACALLDELAY

SETBP2.0

JNBP2.0,KEY33

SETBP1.3

SETBP1.4

CLRP3.3

AJMPKEY1

DELAY:请自己编写

END

思考题:

1. 参考程序在运行时必须依次按键,如何改为按LED对应的键,使对应的LED点亮?

2. 用实验板左边的键实现按键中断,每按键一次,LED加1,从0~9循环,如何实现?请编程实现。

实验报告:

画出本实验相关的原理图。

写出调试通过的LED显示0,每按KEY1一次,LED显示加1,至9后,再循环从0显示到9的程序,并加相关注释。

思考题2的调试程序。

对本次实验有何建议和感想?

实验4用中断实现LED显示

实验目的:

掌握定时器的使用方法。

掌握中断的使用方法。

实验要求:

利用定时器和中断方式,做一个显示0~9的秒钟。

电路:

电路图见“图1单片机实验板原理图”有关部分。