单片机应用技术(第4版)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人

2.2 AT89S51单片机的内部结构及引脚功能

AT89系列单片机的各种型号均是以8031为核心电路发展起来的,具有51系列单片机的基本结构与软件特征。Atmel公司新推出的可在系统编程(ISP)的MCS-51兼容单片机AT89S51/52将全面替代AT89C51/52单片机。其中AT89S51现已成为AT89系列单片机的主流产品,本书以AT89S51单片机为例介绍MCS-51系列单片机。

2.2.1 AT89S51单片机的基本结构

微课:51单片机内部结构

AT89S51的内部结构如图2-6所示,其基本组成部分包括如下几部分

· 适于控制应用的8位CPU。

· 一个片内振荡器及时钟电路,最高工作频率可达33MHz。

· 工作电压4.0~5.5V。

·4KB Flash程序存储器,支持在系统编程(ISP)1000次擦写周期。

·128B数据存储器。

· 可寻址64KB外部数据存储器空间及64KB程序存储器空间的控制电路。

·32根双向可按位寻址的I/O接口线。

·1个全双工串行口。

·2个16位定时/计数器。

图2-6 AT89S51的内部结构

·5个中断源,具有两个优先级。

· 三级程序加密。

· 低功耗支持Idle和Power-down模式,Power-down模式支持中断唤醒。

· 看门狗定时器。

· 双数据指针。

· 上电复位标志。

若程序存储器带有4KB Flash,即为51子系列;若RAM/Flash容量为256B/8KB,则为52子系列。

下面分别介绍AT89S51单片机内部各部分的主要功能。

1.微处理器

AT89S51单片机的微处理器(MPU)与一般的微型计算机类似,也是由运算器和控制器组成。运算器可以对半字节(4位)、单字节等数据进行算术、逻辑运算,并将结果送至状态寄存器。运算器中还包括一个专门用于位数据操作的布尔处理器。控制器包括程序计数器PC、指令寄存器、指令译码器、振荡器、时钟电路及控制电路等部件,它可以根据不同指令产生的操作时序控制单片机各部分工作。

2.存储器

单片机的存储器分两种:一种用于存放已编写好的程序及数据表格,称为程序存储器,常用ROM、EPROM、E2PROM等类型,AT89S51中采用的就是Flash E2PROM,其存储容量为4 KB。另一种用于存放输入与输出数据、中间运算结果,称为数据存储器,常用RAM类型,AT89S51中的数据存储器较小,存储容量仅128 B。若存储器空间不够用,可以外部扩展。

单片机存储器采用哈佛结构,它将程序存储器和数据存储器分开编址,各自有自己的寻址方式。

3.输入/输出接口

AT89S51的输入/输出(I/O)接口包括4个8位并行口及1个全双工的串行口。4个并行口既可作为I/O端口使用,又可作为外部扩展电路时的数据总线、地址总线及控制总线。内部的串行口是一个可编程的全双工串行通信接口,具有通用异步接收/发送器(UART)的全部功能,可以同时进行数据的接收和发送,还可以作为一个同步移位寄存器使用。

4.其他内部资源

AT89S51内部还有2个16位定时/计数器及中断系统。定时/计数器可以通过对系统时钟计数实现定时,也可用于对外部事件的脉冲进行计数。中断系统可以对5个中断源进行中断允许及优先级的控制。5个中断源中有2个为外部中断,由单片机的外围引脚引入;3个为内部中断,分别由2个定时/计数器及串行口产生。

2.2.2 AT89S51单片机的引脚及封装

动画:51单片机引脚介绍

微课:单片机外围引脚

微课:单片机封装

AT89S51单片机的封装共分为DIP、PLCC及PQFP 3种形式,常用为DIP封装方式。其外形及引脚分配如图2-7所示。

图2-7 AT89S51外形及引脚分配图

AT89S51共40个引脚,大致可分为4类。

(1)电源引脚

VCC:电源端,+5V。

VSS:接地端(GND)。

(2)时钟电路引脚

XTAL1:外接晶振输入端。

XTAL2:外接晶振输出端。

(3)I/O引脚

P0.0~P0.7/AD0~AD7:一组8位漏极开路型双向I/O口,也是地址/数据总线复用口。作输入/输出口用时,必须外接上拉电阻,它可驱动8 个TTL 门电路。当访问片外存储器时,用作地址/数据分时复用口线。在Flash编程时,P0口接收指令,而在程序校验时,输出指令,校验时,要求外接上拉电阻。

P1.0~P1.7:一组内部带上拉电阻的 8 位准双向 I/O 口,可驱动 4 个 TTL 门电路。Flash编程和程序校验期间,P1接收低8位地址。P1.5~P1.7用于ISP编程控制。

P2.0~P2.7/A8~A15:一组内部带上拉电阻的8位准双向I/O口,可驱动4个TTL门电路。当访问片外存储器时,用作高8位地址总线。Flash编程和程序校验期间,P2亦接收高位地址及其他控制信号。

P3.0~P3.7:一组内部带上拉电阻的8位准双向I/O口。出于芯片引脚数的限制,P3端口每个引脚具有第二功能。

(4)控制线引脚

RST:复位端。当RST端出现持续两个机器周期以上的高电平时,可实现复位操作。/VPP:片外程序存储器选择端/Flash存储器编程电源。若要访问外部程序存储器则端必须保持低电平。VPP端用于Flash存储器编程时的编程允许电源+12V输入端。

ALE/:地址锁存允许端/编程脉冲输入端。当访问外部程序存储器或数据存储器时,ALE输出脉冲用于锁存P0口分时送出的低8位地址(下降沿有效)。不访问外部存储器时,该端以时钟频率的1/6输出固定的正脉冲信号,可用作外部时钟。对内部Flash存储器编程期间,该引脚用于输入编程脉冲。:读片外程序存储器选通信号输出端。当AT89S51从外部程序存储器取指令时,该脚有效(上升沿)。每个机器周期均产生两次有效输出信号。

2.2.3 AT89S51单片机的I/O口

微课:IO端口控制

AT89S51单片机有4个8位并行I/O口,P0~P3,共32根口线。每个端口都包括:锁存器(即SFR中的P0~P3)、输出驱动器、两个三态缓冲器以及控制电路。

1.I/O口的特性

(1)P0口

P0口的位结构示意图如图2-8所示,其特点如下。

图2-8 P0口的位结构示意图

[1] 控制端高电平时,作为低8位地址和8位数据分时复用口,供扩展时使用。

[2] 控制端低电平时,作I/O口使用。场效应晶体管VT1截止,使VT2漏极开路,需外接上拉电阻。

[3] 当作输入口时,具有“读引脚”和“读锁存器”两种情况。前一种情况是数据由引脚输入,此时需先向锁存器写1,使场效应晶体管VT1和VT2都截止;后一种情况是读锁存器Q端的状态。

[4] 每位最多可带8个LSTTL负载。

(2)P1口

P1口的位结构示意图如图2-9所示,其特点如下。

[1] 只作为I/O端口使用,内部用上拉电阻代替了场效应晶体管VT1。

[2] 与P0口一样,也有读引脚和读端口两种情况,操作方法与P0口相似。

[3] 每位可带4个LSTTL电路。

(3)P2口

P2口的位结构示意图如图2-10所示,其特点如下。

图2-9 P1口的位结构示意图

图2-10 P2口的位结构示意图

[1] 控制端高电平时,作为高8位地址输出口。

[2] 控制端低电平时,作为I/O端口使用,使用方法与P0、P1口相同。

[3] 每位可带4个LSTTL负载。

(4)P3口

P3口位结构示意图如图2-11所示,其特点如下。

图2-11 P3口的位结构示意图

[1] 具有第二功能,如表2-1所示。

表2-1 P3口第二功能表

[2] 第二功能输出端为“1”时,与非门的输出由锁存器输出端Q决定,P3口作为通用输出口使用。

[3] 当P3口作为第二功能输出使用时,锁存器输出端Q应置“1”,与非门的输出由第二功能输出端决定。

[4] 当P3口作为读引脚或第二功能输入使用时,应将锁存器输出端Q及第二功能输出端均置“1”,使场效应晶体管VT2截止。

[5] 每位可带4个LSTTL负载。

2.I/O的应用

由AT89S51各端口的特性可知,P0口既可作为地址/数据总线口,又可作为通用I/O口。在作地址/数据总线口时,它是真正的双向口,可以直接驱动MOS输入,不需要加上拉电阻。当它作为通用I/O口时,必须外接上拉电阻才能驱动MOS输入。对P1、P2、P3口而言,内部已接有上拉电阻,因此不必外接任何电阻就可驱动MOS输入。

P0口和P1、P2、P3口作为通用I/O口时一样,在输入时分为“读锁存器”和“读引脚”两种操作,这两种操作是用不同的指令区分的。

当CPU在执行“读—修改—写”类指令时,如“ ANL P1,A” ,则采用读锁存器的操作方式。它将锁存器Q端的数据读入进行运算修改后,将结果送回到端口锁存器并输出到引脚。

CPU执行“ MOV”类指令时,则进行“读引脚”操作。在读引脚前必须先对锁存器写“1”,使场效应晶体管VT2截止,才能正确输入引脚上的信息。因此,把具有这种特性的端口称为准双向口。

例如:将P1口的状态输入累加器A中,必须执行两条指令。

                MOV    P1,#0FFH  ; 将P1口的锁存器写 “1”
                MOV    A,P1      ; 将P1口引脚状态读入A中

总的来说,由于单片机I/O口的电气特性决定了单片机端口的驱动能力有限,只能提供很小的驱动电流,所以带负载时应当在单片机的I/O口加上驱动芯片。