2.1 MCS-51单片机内部结构和引脚功能
掌握51单片机,应首先了解51单片机的片内硬件结构及引脚,熟悉51单片机内部有哪些硬件资源供用户使用,牢记51单片机各引脚的功能。
2.1.1 MCS-51单片机内部结构
MCS-51单片机硬件结构与微型计算机类似,它主要由微处理器(含运算器和控制器)、存储器(程序存储器和数据存储器)、I/O接口(P0、P1、P2、P3口)、串行口、定时/计数器、中断系统及特殊功能寄存器(Special Function Register, SFR)、时钟电路等组成。其片内结构如图2.1所示,各个功能部件都是通过片内总线连接到CPU,CPU通过该总线控制SFR从而控制各个功能部件的运行。
下面对各个功能部件作进一步说明。
(1)CPU(微处理器)
作为MCS-51单片机核心部分的微处理器是一个8位高性能中央处理器(CPU)。它的作用是读入并分析每条指令,根据各指令的功能控制单片机各功能部件执行指令指定的运算或操作,它不仅可处理字节数据,也可进行位变量的处理。
(2)程序存储器(ROM/EPROM/FLASH)
程序存储器是用来存储用户程序的部件。8031无此部件,51系列容量为4KB,52系列容量为8KB。程序存储器的具体类型可以是ROM、EPROM或FLASH,如8051为ROM,8751为EPROM,89C51/89S51为FLASH,其中FLASH存储器在线可擦写次数达千次以上,受到了工程设计人员的青睐,因此现今单片机应用系统设计大都采用FLASH型。另外,如果片内程序存储器的容量不够时,则需扩展片外程序存储器,片外最多可扩展至64KB。
图2.1 MCS-51单片机内部硬件原理结构框图
(3)数据存储器(RAM)
数据存储器是用来存储单片机运行期间的工作变量、运算的中间结果、数据暂存和缓冲、标志位等。51系列片内为128B(52系列片内为256B),片外最多可扩展至64KB。
(4)中断系统
中断系统是1个可管理5个中断源,2级优先级嵌套的中断管理系统。
(5)定时/计数器
2个16位的定时/计数器(52系列有3个16位的定时/计数器),具有4种工作方式。可用来实现精确的定时或对外部事件脉冲进行计数。
(6)串行口
1个全双工的异步串行口,具有4种工作方式。可用来进行串行通信,或扩展并行I/O端口。
(7)输入输出端口
4个并行8位I/O口,分别为P0口、P1口、P2口、P3口,既可以作为输入使用,也可以作为输出使用,其中部分口线具有第二功能。
(8)特殊功能寄存器(SFR)
共有21个,实际上是一些控制寄存器和状态寄存器,是一个具有特殊功能的RAM区,用于CPU对片内各功能部件进行管理、控制、监视。
(9)时钟电路
1个提供单片机工作的片内时钟振荡器及时钟发生器。
(10)总线
内部含有8根数据总线,16根地址总线,若干控制总线,所有的片内功能部件均通过总线与CPU连接。
2.1.2 MCS-51单片机的引脚功能
MCS-51单片机采用双列直插封装(DIP)、QFP44(quad flat pack)和LCC(leaded chip carrier)形式引脚封装。这里仅介绍常用DIP40引脚封装,如图2.2所示。40只引脚按功能可分为3类:
● 电源及时钟引脚:VCC、VSS;XTAL1、XTAL2。
● 控制引脚:、、ALE、RST。
● I/O口引脚:P0、P1、P2、P3为4个8位I/O口的外部引脚。
图2.2 MCS-51单片机引脚
a)引脚符号 b)逻辑符号
1.电源及时钟引脚
(1)电源引脚(2个)
1)VCC(40脚):芯片电源,接+5V电源。
2)GND(20脚):接地端。
(2)时钟引脚(2个)
1)XTAL1(19脚):片内振荡器反相放大器和时钟发生器电路的输入端。当使用片内振荡器时,该引脚接外部晶体的一端(如果采用外部振荡器时,此引脚应接地)。
2)XTAL2(18脚):片内振荡器反相放大器的输出端。当使用片内振荡器时,该引脚接外部晶体的另一端(如果采用外部振荡器时,此引脚作为外部振荡器信号的输入端)。
2.控制引脚(4个)
控制引脚提供控制信号,有的引脚还具有复用功能。
1)RST/VPD(9脚):复位与备用电源。正常工作时,RST端为复位信号输入端,只要在该引脚上连续保持2个机器周期以上高电平,MCS-51单片机即实现复位操作,复位后单片机从程序存储器0000H重新开始执行程序;在VCC掉电情况下,该引脚还可接上备用电源,由VPD向内RAM供电,以保持内RAM中的数据不丢失。
2)(30脚):ALE引脚第一功能为地址锁存允许,当单片机上电正常工作后,ALE引脚不断输出正脉冲信号。当单片机访问外部存储器时,ALE输出信号的负跳沿用于单片机发出的低8位地址经外部锁存器的锁存控制信号。即使不访问外部锁存器,ALE仍有正脉冲信号输出,此频率为时钟振荡器频率fosc的1/6。若想初步判断单片机芯片的好坏,可用示波器观察ALE引脚是否有正脉冲信号输出。如果有信号输出,基本可判定单片机是好的。
需要指出,当CPU访问外部数据存储器时(即执行MOVX指令),在两个机器周期中ALE只出现1次,即丢失1个ALE脉冲。
ALE引脚可驱动8个LS型TTL负载。
为本引脚的第二功能,为编程脉冲输入端。
3)(29脚):读外部程序存储器的选通信号。当单片机访问外部程序存储器时,此引脚输出脉冲负跳沿作为读外部程序存储器的选通信号。当读内ROM或外RAM时,该引脚无效。可以驱动8个LS型TTL负载。
4)(Enable Address/Voltage Pulse of Programing,31脚):为内外程序存储器选择控制端。
,访问片内程序存储器,即复位后,CPU从内部程序存储器0000H开始执行指令,但在PC(程序计数器)值超过0FFFH(对于51系列)时,即超出片内程序存储器的4K字节地址范围时,将自动转向执行外部程序存储器内的程序。
,单片机则只访问外部程序存储器,即复位后,CPU从外部程序存储器0000H开始执行指令。
VPP为本引脚的第二功能。用于施加编程电压(例如+21V或+12V)。对89C51,加在VPP脚的编程电压为+12V或+5V。
3.I/O口引脚(32个)
1)P0口:双向8位三态I/O口,此口也可作为地址总线(低8位)及数据总线分时复用口。当作为总线使用时,先输出地址后输出数据。P0可驱动8个LS型TTL负载。
2)P1口:8位准双向I/O口,可驱动4个LS型TTL负载。
3)P2口:8位准双向I/O口,与地址总线(高8位)复用,可驱动4个LS型TTL负载。
4)P3口:8位准双向I/O口,可作为一般I/O口使用,也可用于第二功能,如表2.1所示。P3口可驱动4个LS型TTL负载。
表2.1 P3口的第二功能定义