Intel的8051是一个典型的单片机,在后续MCS-51系列单片机的产品中,均以其为核心电路发展起来的。它们具有和8051一致的硬件结构和软件特征。
随着半导体技术的发展,各种新型的单片机层出不穷,性能也得到不断提升,价格也越来越低。因此,本章在介绍51系列单片机时不局限于介绍基本的8051,而是以最新型的51系列单片机来进行介绍。这些新型的单片机在基本功能上和8051完全一致,从而使读者在理解8051结构的同时,也熟悉了最新的单片机。
MCS-51系列单片机有各种封装形式,这里均以双列直插DIP形式的封装来进行介绍。Intel的8051的典型引脚配置,如图2-2所示。这是40Pin封装的双列直插DIP式结构,其中正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。
Atmel公司的AT89S系列与MCS-51系列是兼容的,这里主要以AT89S52单片机来介绍51系列单片机的基本原理。AT89S52的40Pin双列直插封装的引脚配置,如图2-3所示。
图2-2 8051双列直插式的引脚配置
图2-3 AT89S52的双列直插式的引脚配置
从图2-2和图2-3中可以看出,AT89S52和8051各个引脚的基本功能是完全一致的,不同的是,AT89S52内部程序存储器和数据存储器的空间更大,而且部分引脚有了扩展功能,这在下面的章节中会详细介绍。
这里以AT89S52为原型,介绍51系列单片机的引脚功能。虽然市场上51系列单片机的种类很多,但由于51系列单片机的引脚都基本兼容,因此,这些内容同样适合于其他型号的单片机。
电源引脚主要负责单片机的供电,有两根引脚。
●VCC(Pin40):电源端。正电源接4.0~5.0V电压,正常工作电压为+5V。
●GND(Pin20):接地端。
外接晶振或外部振荡器引脚主要负责为单片机的运行提供时钟振荡器,主要有两根引脚。
●XTAL1(Pin19):时钟XTAL1脚,片内振荡电路的输入端。
●XTAL2(Pin18):时钟XTAL2脚,片内振荡电路的输出端。
AT89S52的时钟振荡器有两种工作方式。一种是片内时钟振荡方式,在18和19脚外接石英晶体(0~33MHz)和振荡电容,振荡电容的值一般取10~30pF。另外一种是外部时钟方式,将XTAL2悬空,外部时钟信号(0~33MHz)从XTAL1脚输入。
AT89S52提供了4个8位并行I/O端口,基本的功能和其他51系列单片机完全一致,部分引脚有扩展功能,分别介绍如下。
●P0口:即P0.0~P0.7(Pin39~Pin32),输入/输出脚,可用于8位并行I/O口或分时复用为地址和数据总线。P0口作为输出口时,每个引脚负载8个TTL;在外扩存储器时,可定义为低8位地址/数据线;定义为I/O口时,需外接上拉电阻,为准双向I/O口,在程序中向该端口写入“1”后,成为高阻抗输入口;在对片内Flash编程时,P0口可以接收字节代码,在程序校验时输出字节代码,程序校验期间应外接上拉电阻。
●P1口:即P1.0~P1.7(Pin1~Pin8),输入/输出脚,8位准双向并行I/O口。P1口内部已经具有上拉电阻的8位准双向I/O口,能负载4个TTL;在Flash编程和校验时,定义为低8位地址线。和基本的8051不同的是,其部分引脚具有第二功能。引脚P1.0是定时/计数器T2的外部计数输入,引脚P1.1表示定时/计数器T2捕获/再装入触发及方向控制,引脚P1.5(MOSI)、P1.6(MISO)和P1.7(SCK)用于系统内部编程。
●P2口:即P2.0~P2.7(Pin21~Pin28),输入/输出脚,8位准双向并行I/O口。P2口内部已经具有上拉电阻的8位准双向I/O口,能负载4个TTL;当访问外部存储器时,定义为高8位地址线。如果只需8位地址线,它将输出特殊功能寄存器(锁存器)中的内容。
●P3口:即P3.0~P3.7(Pin10~Pin17),输入/输出脚,8位准双向并行I/O口。P3口内部已经具有上拉电阻的8位准双向I/O口,能负载4个TTL。和普通的8051一样,每个引脚都具有第二功能。引脚P3.0(RXD)和引脚P3.1(TXD)用于串行数据传输,分别为串行数据的接收和发送端口;引脚P3.2和引脚P3.3为外部中断请求,分别用于 INT0 和 INT1 的中断输入;引脚P3.4(T0)和引脚P3.5(T1),分别为定时器/计数器0和定时器/计数器1的外部计数输入端;引脚P3.6( WR )和引脚P3.7( RD )用于读写单片机外部RAM,分别是外部数据写选通信号和读选通信号。
复位、控制和选通引脚主要负责单片机程序复位、编程控制及外部程序存储器的选通。下面分别进行介绍。
●RST(Pin9):单片机内部CPU的复位信号输入端。
在单片机的振荡器启动后,该引脚置两个机器周期以上高电平,便可以实现复位。另外,对于AT89S52,其内部包含定时监视器(看门狗)电路。在定时监视器定时输出后,该引脚置高电平,并持续96个振荡周期,也可以实现复位。
特殊功能寄存器AUXR中的DISRT0位可以使复位无效。在默认的DISRT0位状态下,RST引脚上的高电平有效。
●ALE/ PROG (Pin30):ALE为地址锁存使能端和编程脉冲输入端。
●当访问外部程序存储器时,ALE(地址锁存)的负跳变将低8位地址打入锁存;而非访问内部程序存储器时,ALE端将有一个1/6振荡频率的正脉冲信号,该信号可以用于外部计数或时钟信号。当访问外部数据存储器(执行MOVX类指令)时,ALE会跳过一个脉冲。
在Flash编程时,该引脚用于输入编程脉冲( PROG )。
另外,在程序中,可对特殊功能寄存器区的地址为8EH单元的D0位置“1”,可禁止ALE输出,只有在执行MOVX或MOVC类指令时,ALE才被激活,仍输出锁存有效,在执行外部程序时,该设定禁止ALE位无效。
● PSEN (Pin29):访问外部程序存储器读选通信号。
当单片机访问外部程序存储器,读取指令码时,每个机器周期产生两次有效信号,即此脚输出两个负脉冲选通信号;在执行片内程序存储器读取指令码时,不产生此脉冲;在读写外部数据时,也不产生 PSEN 脉冲信号。
● EA /Vpp(Pin31): EA 为访问内部或外部程序存储器选择信号,在进行Flash编程时,提供Flash编程电压Vpp。
当CPU访问外部程序存储器(0000H~FFFFH单元)时,则 EA 必须保持低电平(即接GND端);当 EA 保持高电平(即接VCC端)时,则CPU先从片内0000H单元开始,执行内部程序存储器程序;如果外部还有扩展程序存储器,则CPU在执行完内部程序存储器程序后,自动转向执行外部程序存储器程序;对片内Flash编程时,此引脚用于输入编程允许电压。另外,如果单片机的保密位被编程,则复位时,内部会锁存 EA 端的状态。