AT89C51单片机实验开发板使用手册
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
AT89C51单片机实验开发板是电子制作实验室网站专为单片机初学者设计并开发的一种实验兼开发板,站长开发这个产品的目的就是为了帮助单片机初学者快速学会单片机技术。
站长本人在自学单片机的过程中,通过做了一系列的实验,从而比较容易地领会了单片机哪些枯燥、难懂的专业术语,而且这款实验开发板弥补了市场上常见的单片机实验板的一些不足,有针对性地面向最终的实用控制功能,增加了实用的继电器接口,可以使实验板能够直接用于控制各种负载,成为一个实用化的嵌入式控制系统。
目前想要学习单片机技术的网友可以分成两类,一类是业余的电子爱好者,想通过自学单片机来提高自己的电子技术水平,以后能够运用到自己熟悉的领域中有所作为,这类网友的动手能力比较好,但是理论知识一般欠缺一些。另一类是在校的电子专业学生,为了完成一些科技项目或者是把学校学到的知识转化成实际的电子作品,为以后的工作求职创造更好的条件,这类网友需要的就是实践经验了。站长也是从这两方面需求来开发这个产品的。
网站开设的单片机教程会以一个个独立的单元电路的形式,使单片机初学者在本网站专门网页的详细操作演示的指导下,一步一步通过自己安装元件、调试电路,将网站提供的多个实验按照从简单到复杂,从实现基本功能到完成扩展功能一步一步地完成,脚踏实地全面提高理论知识和动手能力。以套件的形式提供还有一个好处,就是给后续开发创造空间,比如以后需要设计完成一个独特的单片机控制系统时,可以直接利用实验开发板的一些硬件资源,只安装上需要的元件,把精力集中在编写软件,就能快速完成项目。
购买网站的单片机试验开发板时,会随产品寄出一张A4大小的黑白激光打印的原理图,供安装或试验时分析硬件结构。
网站教程构思:
为了配合实验开发板的销售和使用,站长专门编写了一系列的实验教程,所有实验都按照从最简单到复杂原则,通过逐步的安装→实验→再安装→再实验的方式,最终完成所有实验。
网站提供所有实验的详细源程序,所有的程序都有详细的程序注释,而且都经过烧录验证的*.hex烧写文件。本着为初学者考虑的目的,在编写教程的过程中,把初学者容易犯的错误一一指出,同时对相关的硬件结构进行说明,对程序的设计思路也进行介绍,相信初学者通过动手实验能更容易地学会单片机技术,祝大家好运!
AT89C51单片机实验开发板其实可以做很多试验,我们网上列举的只是其中的一部分,只要你有足够的想象力,完全可以再开发出一系列的其他用途,例如:红外线遥控器编码分析仪、通用频率计、温度自控板等等。
实验注意事项:
AT89C51单片机是一种功能非常强大的芯片,但是如果不按照规则去使用或者粗心马虎大意,单片机的寿命可能非常短,站长曾经连续损坏8片AT89C51芯片,后来痛定思痛,仔细查找才发现是这批试验板上的两个错误造成的:其中一块试验板上的7805损坏,直接输出12伏直流电压!还有这批试验板的继电器驱动三极管应该用ECB排列的8050而使用了EBC 排列的8050,导致12伏直流电压直接输入到单片机的P2口。
对于购买成品板的网友拿到的是经过焊接好的产品,并且经过测试完好,不管是购买套件还是成品单片机实验开发板的网友得到的单片机中都已经烧录了一个测试程序,测试程序主要是用来测试51试验板的单片机和相关外围元件的好坏,如果这个程序能够顺利运行,说明实验板的各方面都很正常。
测试程序对于初学者来说可能比较复杂,但是也是由网站上几个小程序组合而成的,初学者可以通过后面教程的学习来掌握这段程序。
这个测试程序的功能是:接通电源后P0口的八个发光二极管依次从下往上点亮,然后蜂鸣器鸣叫一声,两个继电器轮流动作一次,数码管的个位显示8,再换成十位显示8,然后不断循环,如果这时按下红外遥控器的按键时,蜂鸣器立即发出“滴滴滴”的提示音,同时将这个按键的键值通过串口在电脑屏幕上显示出来(需要运行串口调试软件)通过这个程序可以判断单片机实验开发板的各个部分的硬件和软件都是完好的,具体的源程序见光盘。
1、八路LED跑马灯实验
现在让我们开始做第一个实验:八路发光二极
管轮流点亮的实验,也就是通常所说的跑马灯实验,
首先让我们来完成必须的硬件部分,我们需要焊接
上8个发光二极管和8个限流电阻,可以参考下面
的原理图和实物图像进行操作,需要注意的是LED
是有极性的,引脚长的为正极,引脚短的为负极,
负极和电阻一侧连接,如果接错那么相应的那一路
可能在实验中不会点亮了,在焊接前要看仔细哦!
下面我们来完成软件编程设计,这里我们没有采
用高深的编程技巧,而是用了最笨、最直接的向端
口送数的办法来实现,一来程序比较简单,没必要
玩深沉,而且初学者看起来直观易懂。
ORG 0000H
START:MOV P1,#01111111B;最下面的LED点亮
LCALL DELAY;延时1秒
MOV P1,#10111111B;最下面第二个的LED点亮
LCALL DELAY;延时1秒
MOV P1,#11011111B;最下面第三个的LED点亮(以下省略)
LCALL DELAY
MOV P1,#11101111B
LCALL DELAY
MOV P1,#11110111B
LCALL DELAY
MOV P1,#11111011B
LCALL DELAY
MOV P1,#11111101B
LCALL DELAY
MOV P1,#11111110B
LCALL DELAY
MOV P1,#11111111B;完成第一次循环点亮,延时约0.25秒
AJMP START;反复循环
;延时子程序,12M晶振延时约250毫秒
DELAY:
MOV R4,#2
L3: MOV R2 ,#250
L1: MOV R3 ,#250
L2: DJNZ R3 ,L2
DJNZ R2 ,L1
DJNZ R4 ,L3
RET
END
如何精确计算延时子程序的执行时间?
汇编语言的一大优势就是能够精确控制程序的执行时间,这在编写一些对时序要求严格的外围器件驱动时由为重要!
;延时子程序,12M晶振延时约253毫秒
DELAY:
MOV R4,#2------执行1个机器周期,耗时1微秒
L3: MOV R2 ,#250---执行1个机器周期,耗时1微秒
L1: MOV R3 ,#251---执行1个机器周期,耗时1微秒
L2: DJNZ R3 ,L2---执行2个机器周期,反复执行251次(2x251)=502微秒)
DJNZ R2 ,L1-----执行2个机器周期,反复执行250次(1+502+2)*250=126250微秒)
DJNZ R4 ,L3-----执行2个机器周期,反复执行2次(1+1+502+126250+2)*2=253512微秒)
RET
delay 加上第一条总共延时1+253512=253513微秒
2、两位数码管循环显示00~99的实验
现在让我们用实验板上的两个数码管来做一个循环显示00~99数字的实验,先来完成必要的硬件部分,
数码管有共阴和共阳的区分,单片机都可以进行驱动,但是驱动的方法却不同,并且相应的0~9的显示代码也正好相反。
首先我们来介绍两位共阳数码管的单片机驱动方法,电路如下图: