单片机最小应用系统又称为单片机基本系统,是指用最少的元器件能使单片机工作起来的一个最基本的应用系统。在这种系统中,使用STC89系列单片机的一些内部资源就能够满足硬件设计需求,不需扩展外部的存储器或I/O接口等器件,通过用户编写的程序,单片机就能够达到控制的要求。
单片机的最小应用系统结构只能使用在控制较简单的场合,该系统包括单片机、时钟电路、复位电路等部分。同时,单片机要正常运行,还必须具备电源正常、时钟正常、复位正常3个基本条件。STC89C51单片机组成的最小应用系统电路原理图如图1-4所示。
图1-4 STC89C51单片机最小应用系统电路原理图
从图1-4中可以看出,电路以STC89C51单片机为核心,STC89C51的第18脚、第19脚外接由C1、C2和X1构成的石英晶体振荡器电路;STC89C51的第9脚外接由K1、R1、R2和C3构成的按钮复位电路;STC89C51的第31脚外接电源,以进行片内和片外程序存储器的选择控制。当然,STC89C51单片机要正常工作,还需提供电源,因此在实际电路中,STC89C51的第20脚应该接地,而第40脚应该接电源+5V。
图1-4所示的单片机最小应用系统通上电时,单片机就开始工作,4组P端口处于高电平的状态。在这种情况下,是否说明单片机正常工作呢?单片机要完成相应的任务操作,还需要程序来进行控制,没有固化程序的单片机系统不能完成任何实质上的工作,所以图1-4所示的电路在通电后,单片机进入工作准备就绪状态。
电源电路是单片机工作的动力源泉。对应的接线方法为:单片机的第40引脚(V CC )为电源引脚,工作时接+5V电源;第20引脚(V SS )为接地线。
时钟电路为单片机产生时序脉冲,单片机所有运算与控制过程都是在统一的时序脉冲的驱动下进行的。时钟电路就好像人的心脏,如果人的心跳停止了,人就没有生命。同样,如果单片机的时钟电路停止工作,那么单片机也就停止运行了。单片机的时钟具有两种工作模式,即片内时钟和片外时钟模式。
1)片内时钟模式 STC89系列单片机的内部也有1个高增益单级反相放大器,XTAL1为反相放大器的输入端,XTAL2为反相放大器的输出端。单片机的这个反相放大器与作为反馈元件的片外晶体或陶瓷谐振器和电容一起构成了稳定的自激振荡器,发出的脉冲直接送入内部的时钟电路,作为单片机CPU的时钟。图1-5所示为片内时钟模式电路的连接方法。
图1-5 片内时钟模式电路
当外接晶振时,电容C1和C2容量值通常选择30pF;外接陶瓷谐振器时,C1和C2的典型值约为47pF。在设计印制电路板(PCB)时,晶体或陶瓷谐振器和电容应尽可能安装在单片机芯片附近,以减少寄生电容,保证振荡器稳定和可靠工作。为了提高温度稳定性,应采用NPO电容(具有温度补偿特性的单片陶瓷电容器)。C1、C2对频率有微调作用,晶振频率越高,系统时钟频率也越高,单片机的运行也就越快。运行速度越快,对存储器的速度要求就越高,对PCB的工艺要求也越高。
使用片内时钟模式时,如何判断单片机的外接晶振是否工作呢?可以使用电压法来进行检测。具体操作是:使用高阻电压表分别测量XTAL1和XTAL2两引脚的对地电压,在正常情况下,两引脚的对地电压应该是电源电压的1/2或者更低一些,且XTAL2引脚上的电压要高于XTAL1引脚上的电压。
注意:使用此方法时,会对频率有一点影响,严重的会导致晶振停振,这是因为电压表一加上去相当于在振荡电路上又并上或串上了分布电容、电阻和电感等,这样就影响了原来电路的状态。
2)片外时钟模式 在系统中,若有多片单片机时,为了使各单片机之间时钟信号同步,应当引入唯一的公用外部脉冲信号作为各单片机的振荡脉冲。这个外时钟信号由外部振荡器产生,可以为有源晶振或其他的时钟芯片。但是,对于不同工艺类型的单片机,外部时钟的输入引脚不同。
对于普通的8051单片机,外部时钟信号由XTAL2引脚接入后,直接送到单片机内部的时钟发生器,而引脚XTAL1则应直接接地,如图1-6(a)所示。
注意:由于XTAL2引脚的逻辑电平不是TTL信号,因此需要外接一个上拉电阻。
对于CMOS型的单片机,和普通的8051不同的是其内部的时钟发生器的信号取自于反相放大器的输入端。因此,外部的时钟信号应该从单片机的XTAL1引脚输入,而XTAL2引脚则需要悬空,如图1-6(b)所示。这里单片机有80C51、80C52、AT89S52、STC89C51等。
图1-6 片外时钟模式电路
外部脉冲信号通过一个二分频的触发器而成为内部时钟信号,故对外部信号的占空比没有什么要求,但最小的高电平和低电平持续时间应符合产品技术的要求。如果STC89系列单片机的时钟频率超过33MHz时,应直接使用外部有源晶振。
STC89系列单片机时钟电路中R的阻值、C1和C2容量的大小与单片机的时钟模式、晶振频率有关,见表1-3。对于STC89C5xD+和STC89LV5xD+单片机而言,外接晶振的频率范围则与单片机的工作电压有关,见表1-4。
表1-3 R、C1和C2的规格选择
表1-4 STC89C5xD+和STC89LV5xD+单片机时钟频率范围
单片机的复位操作,使CPU和系统中的其他部件都处于一个确定的初始状态,并从这个初始状态开始工作。只要单片机的复位端RST保持高电平,单片机便保持复位状态。复位后,除SP值为0x07、P1~P3口为0xFF外,其他所有特殊功能寄存器SFR的复位值均为0x00。
单片机通常采用上电复位和按钮复位两种方式。图1-7(a)所示为上电复位电路,图1-7(b)和(c)所示为按钮复位电路。
上电复位是利用电容的充放电来实现的,上电瞬间,RST端的电位与V CC 相同,RC电路充电,随着充电电流的减少,RST端的电位逐渐下降。只要V CC 的上升时间不超过1ms,振荡器的建立时间不超过10ms,该时间就足以保证完成复位操作。上电复位所需的最短时间是振荡周期建立时间加上24个时间周期,在这个时间内,RST端的电平就维持高于施密特触发器(Schmidt Trigger)的下阈值。
按钮复位有按钮脉冲复位和按钮电平复位两种方法,如图1-7(b)和(c)所示。按钮脉冲复位是由单片机外部提供一个复位脉冲,此脉冲保持宽于24个时钟周期;复位脉冲过后,由内部下拉电阻保证RST端为低电平。按钮电平复位是上电复位和手动复位相结合的方案,上电复位的工作过程与图1-7(a)相同,在手动复位时,按下复位按钮RESET,电容对R1迅速放电,RST端变为高电平,RESET松开后,电容通过电阻R2进行充电,使RST端恢复为低电平。
图1-7 单片机复位电路
控制引脚 为片内、片外程序存储器的选择控制引脚,当 为低电平时,单片机从外部程序存储器取指令;当 接高电平时,单片机从内部程序存储器中取指令。