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