MCS-51系列单片机的典型芯片有8031,8051,8751,89C51。该系列除具有不同的ROM外,它们的内部结构及引脚完全相同,这里以8051为例,说明该系列单片机的内部组成及信号引脚。
MCS-51单片机的基本组成框图如图1.1所示。
图1.1 MCS-51单片机的基本组成框图
中央处理器是单片机的核心,由运算器和控制器等部件组成。运算器包括8位算术和逻辑运算单元(ALU)、8位暂存器、8位累加器(ACC)、寄存器B和程序状态寄存器( PSW)等。控制器包括程序计数器(PC)、指令寄存器(IR)、指令译码器(ID)、振荡器及定时电路等。
8051芯片中共有256个RAM单元,后128个单元被专用寄存器占用,所以能作为寄存器供用户使用的只有前128个单元,用于存放可读/写的数据。因此通常所说的内部数据存储器就是指前128个单元。
8051共有4 kB掩膜ROM,用于存放程序、原始数据或表格,因此,被称为程序存储器。
8051共有两个16位的定时/计数器,可实现定时或计数功能,并以其定时或计数结果对计算机进行控制。
8051共有4个8位的I/O口(P0,P1,P2,P3),可实现数据的并行输入/输出。
8051单片机有一个全双工的串行口,可实现单片机和其他设备之间的串行数据传送。该串行口功能较强,既可作为全双工异步通信收发器使用,也可作为同步移位器使用。
8051单片机的中断功能较强,可满足控制应用的需要。8051共有5个中断源,即外中断2个、定时/计数中断2个、串行口中断1个。全部中断分为高级和低级两个优先级别。
8051芯片的内部有时钟电路,但石英晶体和微调电容需外接。时钟电路为单片机产生时钟脉冲序列。系统允许的晶振频率一般为6 MHz、11.059 2 MHz和12 MHz。
8051单片机的内部结构如图1.2所示。
图1.2 8051单片机的内部结构图
8051是标准的40引脚双列直插式集成电路芯片,引脚如图1.3所示。
将40个引脚按其功能分成三类:
①电源、复位和时钟引脚:如VCC,VSS,RST,XTAL1,XTAL2(需掌握)。
②编程控制引脚。如RST, ,ALE, (了解即可)。
③I/O口引脚。如P0,P1,P2,P3,4组8位I/O口(需掌握)。
VCC(40脚)、VSS(20脚)——单片机电源引脚,不同型号单片机接入对应电压电源,常压为+ 5 V,低压为+ 3.3 V,读者在使用时需要查阅芯片对应文档。
XTAL1(19脚)、XTAL2(18脚)——外接时钟引脚。XTAL1为片内振荡电路的输入端,XTAL2为片内振荡电路的输出端。8051的时钟有两种方式:一种是片内时钟振荡方式,需要在这两个引脚外接石英晶体和振荡电容,振荡电容的取值一般为10~30 pF;另一种是外部时钟方式,即将XIAL1接地,外部时钟信号从XTAL2脚输入。片内振荡、片外振荡电路图如图1.4所示。
图1.3 8051的引脚图
图1.4 8051的时钟振荡电路图
RST(9脚)——单片机的复位引脚。当连续输入两个机器周期以上高电平时为有效,用来完成单片机的复位初始化操作,复位后程序计数器PC=0000H,即复位后将从存储器的0000H单元读取第一条指令码,也就是说,单片机从头开始执行程序。复位有两种方式:上电复位和按钮电平复位,如图1.5所示。
图1.5 单片机复位电路
(29脚)——程序存储器允许输出控制端。在读外部程序存储器时此端低电平有效,以实现外部程序存储器单元的读操作,由于现在使用的单片机内部已经有足够大的ROM,所以几乎不需要再去扩展外部ROM,因此这个引脚只需了解即可。
ALE(30脚)——在单片机扩展外部RAM时,ALE用于控制把P0口的输出低8位地址锁存器锁存起来,以实现低位地址和数据的隔离。ALE既可以是高电平也可以是低电平。当ALE为高电平时,允许地址锁存信号,当访问外部存储器时,ALE信号负跳变将P0口上低8位地址信号送入锁存器;当ALE为低电平时,P0口上的内容和锁存器输出一致。 为编程秒冲的输入端,单片机的内部有程序存储器(ROM),它的作用是用来存放用户需要执行的程序,那么我们怎样才能将写好的程序存入ROM中呢?实际上,我们是通过编程脉冲输入才写进去的,这个脉冲的输入端口就是 。现在有很多单片机已经不需要编程脉冲引脚往内部写程序了,比如STC单片机,它可以直接通过串口往里面写程序。现在的单片机内部都已经带有丰富的RAM,所以也不需要再扩展RAM了。
(31脚)—— 接高电平时,单片机读取内部程序存储器。当扩展有外部ROM时,单片机读取完内部ROM后自动读取外部ROM; 接低电平时,单片机直接读取外部ROM。8031单片机内部是没有ROM的,所以在使用8031单片机时,这个引脚是一直接低电平的。8751单片机烧写内部EPROM时,利用此引脚输入21 V的烧写电压。我们现在使用的单片机都有内部ROM,所以在设计电路时此引脚始终接高电平。
P0口(39—32脚)——双向8位三态I/O口,每个口可独立控制。51单片机P0口内部没有上拉电阻,为高阻态,所以不能输出高/低电平,因此该组I/O口在使用时务必外接上拉电阻,一般选择10 kΩ的电阻。当P0口作为一般I/O口时是准双向口;当作为地址/数据的功能时是双向口。
(1)通用接口功能
当CPU使控制端C = 0时,转换开关MUX下合,使输出驱动器T2与锁存器 端接通,这时P0作为一般I/O口使用。C=0使与门输出为0,使T1截止输出端工作在漏极开路的方式。
P0口作为输出时,锁存器CP端加一写脉冲,与内部总线相连的D端数据取反后出现在 端,又经T2反相,在P0引脚上出现的数据正好是内部总线上的数据。
P0口作为输入时,三态缓冲器打开,端口引脚上的数据读到内部总线。在端口进行读入引脚状态前,先向端口锁存器写入一个“1”,使 = 0,此时T1和T2都截止,端口引脚处于高阻状态,可见P0口作为通用接口是一种准双向口。
(2)地址/数据分时复用功能
MCS-51单片机有专门的地址、数据线,这个功能由P0,P2口承担。当P0口作为地址/数据分时复用总线时,有两种情况:一是从P0口输入数据;二是从P0口输出地址或数据。当访问片外存储器时,控制端C = 1,转换开关上合。其结构如图1.6所示。
图1.6 P0口结构图
P1口(1—8脚)——准双向I/O口,每个口可独立控制,内带上拉电阻,这种接口没有高阻状态,输入不能锁存,故不是真正的双向I/O口,结构如图1.7所示。
图1.7 P1口结构图
P2口(21—28脚)——准双向8位I/O口,每个口可独立控制,内带上拉电阻,与P1口相似。其结构如图1.8所示。
图1.8 P2口结构图
P3口(10—17脚)——准双向I/O口,每个口可独立控制,内带上拉电阻。作为一般I/O口使用时,与P 1 相似(图1.9);作为第二功能使用时,各引脚的定义如表1.1所示。
图1.9 P3口结构图
表1.1 P3口各引脚第二功能定义
单片机实际应用都是基于最小系统来构成的,所以需要掌握最小系统,以便更好地学习单片机。它是由单片机芯片、复位电路、晶振电路、电源组成的。如图1.10所示。
图1.10 单片机最小系统
5.单片机时序
为了对CPU时序进行分析,首先要为它定义一种能够度量各时序信号出现时间的尺度。这个尺度常常称为时钟周期、机器周期和指令周期。
时钟周期T又称为振荡周期,其频率通常为晶振的频率。时钟周期是时序中最小的时间单位,是计算机的基本工作周期。每两个时钟周期称为一个状态S,每个状态又分为P1和P2两拍。
CPU完成一种基本操作所需要的时间称为机器周期。MCS-51单片机的一个机器周期由12个振荡周期构成,分为6个S状态:S1~S6。因此,一个机器周期中的12个振荡周期表示为S1P1,S1P2,S2P1,S2P2,…,S6P2。
执行一条指令所需的时间称为指令周期。由于机器执行不同指令所需的时间不同,因此不同指令所包含的机器周期数也不同。占用一个机器周期的指令称为单周期指令,占用两个机器周期的指令称为双周期指令。在MCS-51单片机中,有单周期指令、双周期指令和四周期指令。根据指令的周期数可以计算出执行指令所需的时间。