8051系列单片机的内部结构是各种逻辑单元及其之间的互连构成的。其主要由中央处理器(CPU)、程序存储器(ROM)、数据存储器(RAM)、串行接口、并行I/O接口、定时/计数器、中断系统等几大单元,以及数据总线、地址总线和控制总线组成。8051系列单片机的内部结构框架示意图,如图2-1所示。
单片机的性能都反映在单片机所特有的结构和资源上。这里首先介绍8051单片机基本结构的主要组成部分。
中央处理器(CPU)是整个单片机的核心部件。51系列单片机是8位数据宽度的处理器,它能处理8位二进制数据或代码。CPU主要由算术逻辑部件、控制器和专用寄存器三部分电路组成,这将在后面详细介绍。它负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入/输出功能等操作。
图2-1 8051系列单片机的内部结构框图
程序存储器(ROM)用于存放用户程序、原始数据或表格等。8051单片机共有4096个8位掩膜ROM,有些增强型的单片机则提供了更大的程序存储器。对于目前新推出的一些单片机,如AT89S52,其采用的是Flash程序存储器。
数据存储器(RAM)可存放读写的数据、运算的中间结果或用户定义的字型表等。8051单片机内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的。专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据。所以,用户能使用的RAM只有128个。对于一些新型的单片机,内部的RAM单元可能更多,例如AT89S52内部有256个RAM数据存储单元。
定时器/计数器用于硬件的定时或计数。8051有两个16位的可编程定时/计数器,以实现定时或计数功能。其也可以产生中断,从而在程序中控制程序转向。
单片机的并行输入/输出(I/O)口主要用于和外部设备进行通信,以便处理外部的输入和将运算结果反馈到外部设备。8051共有4组8位I/O口(P0、P1、P2和P3),用于对数据的读入和输出。
全双工串行通信口主要用于与其他设备间的串行数据传送。8051内置一个全双工串行通信口,该串行口既可以用做异步通信收发器,也可以当同步移位器使用。
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断。这些功能可满足不同的控制要求,并具有2级的优先级别供选择。
8051内置最高频率达12MHz的时钟电路,可以外置振荡晶振和电容,便可以产生整个单片机运行的脉冲时序。设计人员也可以采用外部的时钟源作为工作时钟。
单片机结构的类型可以按照程序存储器和数据存储器的体系结构来划分,大致有如下两种类型。
●哈佛(Harvard)结构。这种结构程序存储器(ROM)和数据存储器(RAM)采用分开的形式。哈佛结构便于对程序和数据同时访问,可以减少程序运行时的访问瓶颈,提高数据的吞吐率。
●普林斯顿(Princeton)结构。这种结构中采用通用计算机广泛使用的程序存储器(ROM)与数据存储器(RAM)合二为一的方式,也称为冯·诺伊曼结构。由于程序指令存储地址和数据存储地址指向同一个存储器的不同物理位置,因此,程序指令和数据的宽度相同。
例如,Intel的MCS-51系列单片机普遍采用的是哈佛结构,而后续产品16位的MCS-96系列单片机则采用普林斯顿结构。