第一章 单片机原理及接口技术
8051,8031是MCS-51系列单片机的典型产品,但是8031没有程序存储器。我们以这一代表性的机型进行系统的讲解。8051单片机包含中央处理器、程序存储器(ROM)、数据存储器(RAM)、定时/计数器、并行接口、串行接口和中断系统等几大单元及数据总线、地址总线和控制总线等三大总线,现在我们分别加以说明: 中央处理器:
中央处理器(CPU)是整个单片机的核心部件,是8位数据宽度的处理器,能处理8位二进制数据或代码,CPU负责控制、指挥和调度整个单元系统协调的工作,完成运算和控制输入输出功能等操作。 数据存储器(RAM):
8051内部有128个8位用户数据存储单元和128个专用寄存器单元,它们是统一编址的,专用寄存器只能用于存放控制指令数据,用户只能访问,而不能用于存放用户数据,所以,用户能使用的的RAM只有128个,可存放读写的数据,运算的中间结果或用户定义的字型表。
图1.1 8051内部结构 程序存储器(ROM):
8051共有4096个8位掩膜ROM,用于存放用户程序,原始数据或表格。 定时/计数器(ROM):
8051有两个16位的可编程定时/计数器,以实现定时或计数产生中断用于控制程序转向。 并行输入输出(I/O)口:
8051共有4组8位I/O口(P0、 P1、P2或P3),用于对外部数据的传输。
全双工串行口:
图1.1 8051内部结构 8051内置一个全双工串行通信口,用于与其它设备间的串行数据传送,该串行口既可以用作异步通信收发器,也可以当同步移位器使用。 中断系统:
8051具备较完善的中断功能,有两个外中断、两个定时/计数器中断和一个串行中断,可满足不同的控制要求,并具有2级的优先级别选择。 时钟电路:
8051内置最高频率达12MHz的时钟电路,用于产生整个单片机运行的脉冲时序,但8051单片机需外置振荡电容。 下图是MCS-51系列单片机的内部结构示意图:
图1.2 MCS-51系列单片机的内部结构示意图 MCS-51的引脚说明:
MCS-51系列单片机中的8031、8051及8751均采用40Pin封装的双列直接DIP结构,右图是它们的引脚配置,40个引脚中,正电源和地线两根,外置石英振荡器的时钟线两根,4组8位共32个I/O口,中断口线与P3口线复用。现在我们对这些引脚的功能加以说明:
8031/8051引脚功能: Vcc:+5V电源电压。 Vss:电路接地端。
P0.0~P0.7:通道0,它是8位漏极开路的双向I/O通道,当扩展外
部存贮器时,这也是低八位
地址和数据总线,在编程校验期间,它输入和输出字节代码,通道
0吸收/发出二个TTL负载。
P1.0~P1.7:通道1是8位拟双向I/O通道,在编程和校验时,它发
出低8位地址。通道1吸收/发出一个TTL负载。
P2.0~P2.7:通道2是8位拟双向I/O通道,当访问外部存贮器时,
用作高8位地址总线。通道2能吸收/发出一个TTL负载。 P3.0~P3.7:通道3准双向I/O通道。通道3能吸收/发出一个TTL
负载,P3通道的每一根线还有
另一种功能:
P3.0:RXD,串行输入口。 P3.1:TXD,串行输出口。 P3.2:INT0,外部中断0输入口。 P3.3:INT1,外部中断1输入口。
P3.4:T0,定时器/计数器0外部事件脉冲输入端。 P3.5:T1,定时器/计数器1外部事件脉冲输入端
P3.6:WR,外部数据存贮器写脉冲。 P3.7:RD,外部数据存贮器读脉冲。
RST/VpD:引脚9,复位输入信号,振荡器工作时,该引脚上2个机
器周期的高电平可以实现复
位操作,在掉电情况下(Vcc降到操作允许限度以下), 后备电源加到此引脚,将只给片内,RAM供电。ALE/PROG:引脚30,地址锁存有效信号,其主要作用是提供一个适当的定时信号,在它的下降沿
用于外部程序存储器或外部数据存贮器的低8位地址锁存,使总线P0输出/输入口分时用作地址总线(低8位)和数据总线,此信号每个机器出现2次,只是在访问外部数据存储器期间才不输出ALE。所以,在任何不使用外部数据存贮器的系统中,ALE以1/6振荡频率的固定速率输出,因而它能用作外部时钟或定时,8751内的EPROM编程时,此端输编程脉冲信号。PSEN:引脚29,程序选通有效信号,当从外部程序存贮器读取指令时产生,低电平时,指令寄,存器的内容读到数据总线上EA/VPP:引脚31,当保持TTL高电平时,如果指令计数器小于4096,8051执行内部ROM的指令,8751执行内部EPROM的指令,当使TTL为低电平时, 从外部程序存贮器取出所有指令,在8751内的EPROM编程时,此端为21V编程电源输入端。 XTAL1:引脚18,内部振荡器外接晶振的一个输入端,HMOS芯片使用外部振荡源时,此端必须接地。XTAL2:引脚19,内部振荡器外接晶振的另一个输入端,HMOS芯片使用外部振荡器时,此端用于输入外
部振荡信号。 引脚功能:
MCS-51是标准的40引脚双列直插式集成电路芯片,引脚分布请参照----单片机引脚图:
l P0.0~P0.7 P0口8位双向口线(在引脚的39~32号端子)。 l P1.0~P1.7 P1口8位双向口线(在引脚的1~8号端子)。 l P2.0~P2.7 P2口8位双向口线(在引脚的21~28号端子)。 l P3.0~P3.7 P2口8位双向口线(在引脚的10~17号端子)。 这4个I/O口具有不完全相同的功能,大家可得学好了,其它书本里虽然有,但写的太深,初学者很难理解,这里都是按我自已的表达方式来写的,相信你也能够理解。 P0口有三个功能:
1、外部扩展存储器时,当做数据总线(如图1中的D0~D7为数据总线接口)
2、外部扩展存储器时,当作地址总线(如图1中的A0~A7为地址总线接口)
3、不扩展时,可做一般的I/O使用,但内部无上拉电阻,作为输入或输出时应在外部接上拉电阻。
P1口只做I/O口使用:其内部有上拉电阻。 P2口有两个功能:
1、扩展外部存储器时,当作地址总线使用 2、做一般I/O口使用,其内部有上拉电阻; P3口有两个功能:
除了作为I/O使用外(其内部有上拉电阻),还有一些特殊功能,由特殊寄存器来设置,具体功能请参考我们后面的引脚说明。 有内部EPROM的单片机芯片(例如8751),为写入程序需提供专门的编程脉冲和编程电源,这些信号也是由信号引脚的形式提供的, 即:编程脉冲:30脚(ALE/PROG) 编程电压(25V):31脚(EA/Vpp)
接触过工业设备的兄弟可能会看到有些印刷线路板上会有一个电池,这个电池是干什么用的呢?这就是单片机的备用电源,当外接电源下降到下限值时,备用电源就会经第二功能的方式由第9脚(即RST/VPD)引入,以保护内部RAM中的信息不会丢失。 (注:这些引脚的功能应用,除9脚的第二功能外,在“新动力2004版”学习套件中都有应用到。)
在介绍这四个I/O口时提到了一个“上拉电阻”那么上拉电阻又是一个什么东东呢?他起什么作用呢?都说了是电阻那当然就是一个电阻啦,当作为输入时,上拉电阻将其电位拉高,若输入为低电平则可提供电流源;所以如果P0口如果作为输入时,处在高阻抗状态,只有外接一个上拉电阻才能有效。
ALE/PROG地址锁存控制信号:在系统扩展时,ALE用于控制把P0口的输出低8位地址送锁存器锁存起来,以实现低位地址和数据的隔离。(在后面关于扩展的课程中我们就会看到8051扩展EEPROM电路,在图中ALE与74LS373锁存器的G相连接,当CPU对外部进行