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单片机实验板原理图”有关部分。