文本描述
第二章 MCS-51单片机的结构
并行I/O接口
单片机是将CPU、RAM、ROM、定时计数器、中断逻辑,以及输入输出(I/O)接口电路等集成在一小块硅片上的单片微型计算机(Single Chip Microcomputer)。
单片机特点:体积小、可靠性高、性价比高等
应用领域:工业检测与控制、计算机外设、智能仪器仪表、通讯设备、家用电器、机电一体化产品等领域。
CPU
存储器
并
行
I/O
口
串
行
I/O
口
定时器/计数器
中断逻辑
发送数据
接收数据
外部计数脉冲
外部中断源
输
入
输
出
设
备
MCS-51系列单片机
注意:今后将会经常提到ATMEL的AT89C2051/51/52等MCU!
2.1.1 MCS-51单片机内部组成
8051单片机在一块芯片中集成了:
*一个面向控制的8位CPU
* 256B片内RAM(低128B作数据存储器,高128位包含2l个特殊功能寄存器SFR)
* 4KB片内程序存储器ROM。
* 4个8位并行I/O接口
* l个全双工作串行I/O接口。
* 2个16位定时器/计数器T0/Tl。
* 为五个中断源配套的两级优先级嵌套的中断结构
40个引脚双排直插DIP封装,分为4类:电源、时钟、控制和I/O引脚。
2.1.2 MCS-51单片机引脚功能
⒈ 电源: ⑴ VCC ? /3.3V/2.7V;
⑵ VSS ?
2.输入/输出引脚(32条)
P.0-P0.7: 在不接片外存储器与不扩展I/O接口时,作准双向输入/输出接口。在接片外存储器或扩展I/O接口时,分时复用为低8位地址总线和双向数据总线。
P1.0-P1.7:作为准双向通用I/O接口使用。
P2.0-P2.7: 作为准双向I/O接口;当接有片外存储器或扩展I/O接口且寻址范围超过256个字节时,P2口用作高8位地址总线。
P3.0-P3.7:有两种功能。
第一,做准双向通用I/O口使用;
第二,用于串行口、中断源输入、计数器、片外RAM选通等功能。
注意:
由于第二功能信号都是单片机的重要控制信号,因此在实际使用时,总是先按需要优先选用它的第二功能,剩下不用的才作为通用I/O接口线使用。
⑶ RST/VPD:复位/备用电源。
① RST(Reset)功能:复位信号输入端。
当该引脚上至少保持连续两个机器周期(24个振荡器周期)的高电平就可实现系统复位。复位期间不产生ALE及PSEN信号。
② VPD功能:在Vcc掉电时,接备用电源。
VPD:对HMOS芯片为片内RAM掉电保护备用电源,Vcc掉电期间,该引脚如接备用电源VPD(+5V+0.5V)
复位后单片机内寄存器的状态
PC: 0000H TMOD: 00H
Acc: 00H TCON: 00H
B: 00H TH0: 00H
PSW: 00H TL0: 00H
SP: 07H TH1: 00H
DPTR:0000H TL1: 00H
P0~P3:FFH SCON: 00H
IP:×××00000B SBUF: 不定
IE:0××00000B PCON: 0×××0000B
图2-4(a) 加电自动复位电路 图2-4(b) 按键手动复位电路
⑷ EA/Vpp:内外ROM选择/片内EPROM编程电源。
① EA功能:内外ROM选择端。
80C51单片机ROM寻址范围为64KB,其中4KB在片内,60KB在片外(80C31芯片无内ROM,全部在片外)。
当EA保持高电平时,先访问内ROM;当PC(程序计数器)值超过4KB(0FFFH)时,自动转向执行外ROM中的程序。
当EA保持低电平时,则只访问外ROM,不管芯片内有否内ROM。对80C31芯片,片内无ROM,EA接地。
② Vpp功能:片内有EPROM的芯片,在EPROM编程期间,施加编程电源Vpp。
外部方式时钟电路如图 2-5(b)所示,主要用于多单片机系统。引入唯一的公用外部脉冲信号作为各单片机的振荡脉冲。这时外部的脉冲信号是经XTAL2引脚注入,而将XTAL1接地。
图 2-5(a) 内部方式时钟电路 图 2-5(b) 外部方式时钟电路
中央处理器CPU包括运算器和控制器,运算器实现算术运算和逻辑运算。可以对半字节(4位)、单字节(8位)等数据进行操作。控制器实现内部时钟和时序管理、指令提取与译码等功能,由6个特殊功能寄存器组成。
特殊功能寄存器
1). 累加器A:累加器(Accumulator)是使用最频繁的寄存器,它既可用于存放操作数,也可用来存放运算的中间结果,8位。
指令系统中字节操作指令一般用A作为累加器的助记符,当进行位操作时,一般用ACC表示。
2). 通用寄存器B:8位,主要用于乘除运算。乘法运算时,B是乘数。乘法操作后,乘积的高8位存于B中。除法运算时,B是除数;除法操作后,余数存于B中。不作乘除用时,可作为一般数据寄存器使用,8位。
3). PSW:8位寄存器,用于反映程序执行的状态信息。在状态字中,有些位状态是根据指令执行结果,由硬件自动完成设置的,而有些状态位则必须通过软件方法设定。
表2-3 PSW的各位定义
CY:进位标志。用于表示Acc.7有否向更高位进位。
加减运算时,保存最高位进位、借位状态。
AC:半进位标志。用于表示Acc.3有否向Acc.4进位。
例:78H+97H
0111 1000
+1001 0111
? 进位
CY=1
没有半进位AY=0
RS1、RS0:工作寄存器组选择位。
P:奇偶校验位,它用来表示累加器A内容中二进制数位“1”的个数的奇偶性。若为奇数,则P=1,否则为0。
例:某运算结果是78H(01111000),P=0。
F0:用户标志位。作为软件标志,由编程人员决定何时使用。 F0 、F1 — 用户标志
OV:溢出标志位。
有符号数运算时,如果发生溢出,OV置“1”,否则清“0”。
4).程序计数器PC
※ 16位的地址寄存器,用于存放将要从ROM中读出的下一字节指令码的地址,可寻址64KB的程序存储器空间。
※自动加1。CPU从ROM中每读一个字节,自动执行
PC+1→PC
5)数据指针寄存器DPTR
宽度:16位
功能:通常在访问外部数据存储器时作地址指针使用
使用:既可作一个16位寄存器用,也可作两个8位寄存器来用,即:
DPH: DPTR高位字节,地址为83H
DPL: DPTR低位字节,地址为82H
与程序计数器PC的对比:PC虽为16位,但在物理上是独立的,不属SFR的范畴,没有对应的RAM地址,不可寻址。
6)堆栈指针SP
宽度:8位
功能:用来指定堆栈的栈顶位置,初值为07H。它是加1计数.(向上生长)
堆栈中数据存取按先进后出、后进先出的原则。用PUSH和POP指令操作
堆栈的功能主要有以下三点:
①?保护断点。
②?保护现场。
③?用于数据的临时存放。
时序
时序就是进行某种操作时,各种数据、控制信号先后出现的顺序。时序是用定时单位来描述的,MCS—51系列单片机的时序定时单位共有四个,从小到大依次是振荡周期,机器周期,指令周期。
80C51振荡器产生的时钟脉冲频率的倒数,是最基本最小的定时信号。
时钟周期:
机器周期:
它是将时钟脉冲十二分频后的脉冲信号。机器周期是时钟周期的十二倍。
指令周期:
指CPU执行一条指令占用的时间(用机器周期表示)。80C51指令可分为三类:单机周指令、双机周指令和四机周指令。
MCS-51典型的指令周期为一个机器周期,少数是单字节双周期、双字节双周期指令,只有乘法和除法指令占用4个机器周期。
80C51的存储器配置
片内程序存储器4KB(ROM 0000H~0FFFH)
片内数据存储器128B(RAM 00H~7FH)
8051在物理结构上有四个存储空间:
片内程序存储器、片外程序存储器、
片内数据存储器、片外数据存储器。
片外
片外
程序存储器
数据存储器
2.3.1 程序存储器
※作用:用于存放编好的程序和表格、常数。
※容量:8051片内有4K字节ROM.片外用16位地址线最多可扩展64K字节ROM,两者是统一编址的。
※地址范围:0000H~FFFFH,共64KB。其中: 低段4KB:0000H~0FFFH ,80C51和87C51在片内,
80C31在片外。 高段60KB:1000H~FFFFH。在片外。
※访问:用MOVC指令
※空间指针:以PC作为16位地址指针,每读一个字节,PC+1→PC,这是CPU自动形成的。
※控制信号:PSEN和EA。
※ 选择方法:
★如果EA端保持高电平,8051执行片内前4KB ROM地址(0000H~0FFFH) 中的程序。当寻址范围超过4KB(1000H~FFFFH)时,则从片外存储器取指令。
★当EA端保持低电平时,8051的所有取指令操作均在片外程序存储器中进行,这时片外存储器可以从 0000H开始编址。
※地址范围:00H~7FH 共128B。
※访问:MOV指令
※空间分配:
工作寄存器区
位寻址区
数据缓冲区
1. 内部数据存储器
80C51内RAM的三个物理空间:工作寄存器区、位寻址区和数据缓冲区。
内部128B RAM地址分配
寄存器区
布尔区
片内数据存储器空间分布图
通用RAM区
(80B)
位地址区
(16B)
7FH
寄存器3组
寄存器2组
寄存器1组
寄存器0组
位地址区
.
.
00H
30H
2FH
20H
1FH
.
.
3).数据缓冲区(字节寻址区)
范围:内RAM中30H~7FH
功能:存放各种数据和中间结果,起到数据缓冲的作用。 堆栈也建立在其中
4).内部数据存储器高128单元
范围 :80H~FFH
功能:供给专用寄存器使用,