如果只给单片机的VCC(40管脚)和GND(20管脚)之间供+5V的工作电源它是不会工作的,因为它还需要几个元器件帮助形成一个最简系统。单片机最简系统让单片机具备运行的条件,在这个基础上单片机才能控制各种外设,实现五花八门的功能。
既然称为最简系统,也就意味着使用最少的外围元器件让单片机能够工作。AT89S51单片机的最简系统如图3-24所示,首先,单片机的VCC、GND接+5V以获得工作电源。此外,还多出了两个部分,一个是复位电路,另一个是振荡器。最后还有一个细节,就是单片机的 也接到了+5V上。接下来我们分别学习一下最简系统中的知识。
图3-24 AT89S51单片机最简系统
AT89S51的VCC(40管脚)和GND(20管脚)分别为电源端和接地端,根据Atmel公司的技术文档,AT89S51的供电电压范围为直流+4.0~+5.5V。通常我们会用+5V向AT89S51单片机来供电,方法就是用3.6中的任意一种方案。
在图3-24中,所有具有同名的电源标号或网络标号之间是连通的,只是为了电路图的美观,没有把这些连通的节点全部连接起来。比如电源标号“ ”之间、接地符号“ ”之间是电气连接的,所以图3-24又可以画成图3-25的形式,只是不太美观。翻开后面的任何一幅电路图我们会发现大量的具有相同电源标号、接地等节点都没有连接起来,但是在实际电路制作中,相同标号的节点都应该是连接在一起的。
图3-25 相同标号的节点电气连接
AT89S51单片机的XTAL1端(19管脚)、XTAL2(18管脚)内部有一个片内振荡器结构,但仍然需要在XTAL1和XTAL2之间连接一个晶振Y1,并加上两个容量介于20~40pF的电容C1、C2组成时钟电路,如图3-26所示。单片机上电后,用示波器可在XTAL1管脚观察到频率与晶振频率相同的方波信号。
像图3-26这种使用晶振配合产生时钟信号的方法称为内部时钟方式。晶振的频率决定了该系统的时钟频率,比如晶振频率选择12MHz,那么单片机工作的频率就是12MHz。根据系统对速度的要求,一般可以选择1.2~12MHz的晶振。通常我们使用12MHz的晶振,而有的单片机可以运行在更高的频率,如20MHz,那就可以使用20MHz的晶振。
AT89S51单片机还可以工作在外部时钟方式下,这时,可向单片机的XTAL1端输入时钟信号(方波),而将XTAL2管脚悬空,如图3-27所示。输入的时钟信号频率决定了单片机的工作频率,这种方式称为外部时钟方式。
图3-26 单片机的时钟信号(内部时钟方式)
图3-27 单片机的时钟信号(外部时钟方式)
也许有朋友会问,既然单片机的XTAL1管脚能输入方波信号作为单片机的时钟信号,那为什么还需要内部时钟方式并添加晶振和电容来提高成本呢?原因是单片机的内部振荡器能与晶振、电容构成一个性能非常好的时钟信号源,而如果要产生这样的信号作为外部时钟信号输入到单片机中,则需要添加的器件远不止1个晶振和2个电容这么简单。这就是为什么单片机系统中大多使用的是内部时钟信号。
AT89S51单片机的RST端(9管脚)是复位端,RST是单词复位“reset”的缩写。当向RST端输入一个短暂的高电平单片机就会复位,复位后单片机从头开始执行程序。如果在单片机执行程序的过程中触发复位,则单片机立即放弃当前操作而被强行从头开始执行程序。
图3-28 简单的复位电路
最简单的复位电路就是在RST端与电源端之间连接一个10μF左右的电解电容,如图3-28所示。单片机上电瞬间,电容C3的正极电压瞬间变为+5V,C3对于这个瞬间的电压突变相当于短路(隔直通交),于是+5V(高电平)相当于直接加到了单片机的RST端上。正是这个加在RST端的瞬间高电平使单片机复位。很快,电容C3充满电,在电路中相当于断路,于是RST端电平由高转低,单片机随即开始执行程序。
有时,只使用一个电解电容的复位电路可靠性不高,所以图3-30给出两种较好的复位电路。其中,图3-29(b)的按钮开关S1可对单片机实现手动复位,当按下S1时,RST端获得复位信号(高电平)而使单片机复位,此时无论单片机在进行什么操作都得乖乖的从头开始执行程序。
图3-29 两种常用的复位电路
在如图3-24所示的最简系统中还有一个值得注意的地方,那就是AT89S51单片机的 端(31管脚)接了高电平。 是单片机的外部程序存储器访问控制端,顾名思义, 的电平控制着单片机是否去访问外部程序存储器。关于访问外部程序存储器的内容16章会详细谈到,现在可先大致了解一下。
接高电平,单片机执行本单片机内部程序存储器中的程序,并在读取完内部程序存储器地址为0FFFH上的数据后自动转向读取外部的程序存储器;如果 管脚接低电平,则单片机访问的全部是外部程序存储器。 控制端就好像学校图书馆的大门,如果大门打开(接高电平),我们就可以进入学校的图书馆读书;如果图书馆的书被读完,我们自然会离开学校的图书馆到学校以外的图书馆去读书。但如果学校的图书馆大门关闭(接低电平),我们只好直接到学校以外的图书馆去读书了。
另外,“ ”这种表示方法值得谈一谈,以后的单片机学习或其他电路的学习中都有可能遇到这种带斜线“/”的表示方法。一般来说,带“/”的名称表示该管脚具有两种功能,一种功能是“/”前面的字母表示的功能,另一种则是“/”后表示的。比如“ ”中,“/”前的是 ,“EA”是“external access”的缩写,意思是“外部访问”,那为什么EA上还加一个小横线?这是代表“低电平使能”的意思。也就是该管脚接低电平时“外部访问”功能才被允许;如果接的是高电平, 失效,单片机读取的是内部程序存储器中的数据。
而“ ”中,“/”后的“VPP”描述的是该管脚的第二种功能。VPP的意思是“编程/擦除电压”,即单片机用于下载程序时所需要的12V编程使能电压。在AT89S51单片机的管脚上,还有一些带“/”的管脚名称,如 (30管脚)、P3.0/RXD (10管脚)等,后面会把这些功能一一谈到。
回到如图3-24所示的最简系统上,由于在最简系统中没有外接存储器,所以将 端接高电平,单片机上电复位后直接读取的是内部程序存储器中的程序。
如图3-24所示的最简单片机系统是所有AT89S51单片机系统的基础,翻开后面任何一幅单片机系统电路图都离不开这个最简系统。就拿单片机控制一支发光二极管闪烁的系统电路来说,可在最简系统的基础上向单片机的I/O口(比如P0.4口)添加一个发光二极管D1和限流电阻R1,如图3-30所示。
图3-30 从最简系统到发光二极管闪烁系统