第一章 MCS-51单片机的硬件结构,主要内容: 单片机的介绍、内部组成以及CPU结构 单片机的存储器结构 单片机的引脚、时序以及最小系统电路搭建,1.1.1 8051单片机的介绍,单片机 : 是单片微型计算机(single chip microcomputer)的简称,将计算机的CPU、RAM、ROM、定时/计数器和多种I/O接口集成在一片芯片上,形成的芯片级的计算机 8051单片机采用“哈佛”结构,它有两个独立的存储器分别程序存储器(ROM)和数据存储器(RAM),地址空间相同,通过不同指令进行区分1.1.2 8051单片机的基本组成,程序存储器,数据存储器,三总线:地址总线、数据总线、控制总线 地址总线和数据总线分时复用存储器,(1)一个8位微处理器CPU (2)片内数据存储器RAM和特殊功能寄存器SFR (3)片内程序存储器ROM (4)两个定时/计数器T0、T1,可用作定时器,也可用以 对外部脉冲进行计数 (5)四个8位可编程的并行I/O端口,每个端口既可作输 入,也可作输出 (6)一个串行端口,用于数据的串行通信 (7)中断控制系统 (8)内部时钟电路一个8051单片机包含下列部件,CPU即中央处理器,是单片机的核心部件,它完成各种运算和控制操作,CPU由运算器和控制器两部分组成。
(1)运算器 运算器以算术逻辑单元ALU为核心,加上累加器ACC、暂存寄存器TMP和程序状态字寄存器PSW等所组成ALU主要用于完成二进制数据的算术和逻辑运算,并通过对运算结果的判断影响程序状态字寄存器PSW中有关位的状态1.1.3 8051单片机的CPU,D7,D0,内部总线,PSW:,PSW中各位的意义如下: CY:进位标志在进行加法或减法运算时,若运算结果的最高位有进位或借位,CY=1,否则CY=0,在执行位操作指令时,CY作为位累加器 AC:辅助进位标志在进行加法或减法运算时,若低半字节向高半字节有进位或借位, AC=1,否则AC=0,AC还作为BCD码运算调整时的判别位 F0:用户标志 RS1和RS0:工作寄存器组选择,如下表所示例题:请说明执行如下语句后PSW的状态 char temp = 0FH + F8H; 注:F0,RS1,RS0,不用位默认为0,答案: PSW: 11000001,(2)控制器 控制器主要发布操作命令,控制运算器按适当顺序进行工作包括对逐条指令译码,并通过定时和控制电路在规定时刻发出各种操作所需的内部和外部控制信号,协调单片机各部分正常工作 控制器由程序计数器PC、指令寄存器、指令译码器、数据指针DPTR、堆栈指针SP、缓冲器以及定时与控制电路等组成。
程序计数器PC:16位寄存器,存放下一条要执行指令地址,能自动增1 堆栈指针SP:用来指示单片机片内RAM区堆栈的起始地址 指令译码器:对指令进行译码,产生指令的各种控制信号 数据指针寄存器DRTR:它是一个16位寄存器,由高位字节DPH和低位字节DPL组成,存放片外RAM的地址CPU工作过程,1.2 存储器结构,4k,,60k,,,离散分布,,64k,128,,128,,,ROM,RAM,,64k,8031: 64K片外ROM 8051、8751: 4K片内,64K片外,特殊功能寄存器,程序存储器ROM,程序存储器ROM包括片内ROM和片外ROM两个部分主要用来存放编好的用户程序和表格常数,它以16位的程序计数器PC作为地址指针,寻址空间为64KB 当EA接高电平时,单片机从片内ROM的4kB字节存储器区取指令,当指令地址超过0FFFH后,自动地转向片外ROM取指令 当EA接低电平时,所有的取指操作均对片外程序存储器进行片内数据存储器RAM,片内RAM有256个字节,其中00H~7FH地址空间是直接寻址区 00H~1FH地址为工作寄存器区,安排了4组工作寄存器,每组都为R0~R7,占用8个存储单元。
在某一时刻,CPU只能使用其中某一组工作寄存器,由程序状态字PSW中RS1和RS0的状态决定 20H~2FH地址单元为位寻址区,其中每个字节的每一位都规定了位地址每个地址单元除了可进行字节操作之外,还可进行位操作 30H~7FH地址单元为用户RAM区(便笺区),只能进行字节寻址,用作数据缓冲区以及堆栈区 片内RAM的80H~FFH地址空间是特殊功能寄存器SFR区,对于51子系列在该区域内安排了21个特殊功能寄存器( 52系列26个特殊功能寄器)连续,非连续,,,工作寄存器区,,位寻址区,,便笺区,特殊功能寄存器地址及功能表,注:SFR中字节地址低4位是0或者8的,支持位寻址,即可以对寄存器某一位进行操作即如下两组语句是等效的:,P0 = 10011001B;,等于 P0^0 = 1; P0^1 = 0; P0^2 = 0; P0^3 = 1; P0^4 = 1; P0^5 = 0; P0^6 = 0; P0^7 = 1;,片内ROM和片外ROM 片内RAM和片外RAM 片外程序存储器ROM地址空间为64kB,片外数据存储器RAM也有64kB的寻址区,在地址上是与ROM重迭的 8051单片机通过不同信号来选通ROM或RAM。
当从外部ROM中取指令时,采用选通信号PSEN,而从外部RAM中读写数据时则采用读RD和写WR信号或来选通,因此不会因地址重迭而发生混乱8051在物理上有4个存储器空间,地址低8位,地址高8位,ROM,RAM,片外数据存储器RAM,当片内RAM不能满足数量上的要求时,可通过总线端口和其他I/O口扩展外部RAM——片外数据存储器RAM,其最大容量可达64KB字节 注意:片外RAM和扩展的I/O口是统一编址的,使用的指令也完全相同,因此,用户在应用系统设计时,必须合理地进行外部RAM和I/O端口的地址分配,并保证译码的唯一性1.3.1 8051单片机引脚描述,1.3.1 8051单片机引脚描述,1.3.1 8051单片机引脚,1.3.1 8051单片机引脚,8051有40条引脚,共分为端口引脚、电源引脚和控制引脚 端口引脚(4×8=32条) 8051共有4个并行I/O端口,分别是P0口、P1口、P2口、P3口,每个端口都有8条端口线,用于传送数据/地址 P0口:P0.7~P0.0 不接片外存储器时是双向I/O通用端口,用于并行传输数据,以吸收电流的方式可以驱动8个LS型TTL负载 (不建议使用) 带片外存储器,分时传送地址低8位和8位读写数据,地址低8位,数据,地址高8位,1.3.1 8051单片机引脚,P1口:P1.7~P1.0双向通用数据输入输出口,最常使用的数据接口,可以驱动4个TTL负载。
P2口:P2.7~P2.0 不接片外存储器时是双向I/O通用端口,用于传输数据(不是所有仿真器都支持建议初学者勿用) 访问外存储器时,输出高8位地址 P3口:P3.7~P3.0 双向I/O端口,用于传输数据(P3.6 和 P3.7慎用,一般作为片外存储器读写信号) 控制引脚,具体功能如下:,见P13,1.3.1 8051单片机引脚描述,电源引脚Vcc和Vss Vcc:电源端,接+5V Vss:接地端 控制引脚 XTAL1和XTAL2:片内振荡电路输入引脚 外接石英晶振和微调电容,给单片机提供时钟信号 ALE:地址锁存允许信号 访问片外RAM/ROM时,下降沿锁存P0口输出的低8位地址 从而实现数据与低位地址的复用地址低8位,数据,地址高8位,PSEN:外部程序存储器ROM读选通信号 PSEN是外部程序存储器ROM的读选通信号,低电平有效 EA /VPP :访问外部存储器的控制信号 EA区分使用片内ROM还是片外ROM读取程序, 当EA为高电平时,CPU执行片内程序存储器指令,但 当PC中的值超过0FFFH时,将自动转向执行片外程序存储器指令 当EA为低电平时,CPU只执行片外程序存储器指令。
复位信号RST 该信号高电平有效,在输入端保持两个机器周期的高电 平后,就可以完成复位操作1.3.2 8051单片机的CPU时序,CPU时序:CPU执行指令所需控制信号的时间顺序 1 单片机的时钟电路——产生时序信号的电路 2 振荡周期、机器周期、指令周期,单片机的时钟电路,单片机时钟电路通常有两种接线形式: 1.内部振荡方式:利用片内振荡电路产生时钟信号 8051单片机片内有一个高增益反相放大器,它与片内振荡电路输入引脚XTAL1和XTAL2之间外接的石英晶体和微调电容,共同构成稳定的自激振荡电路,并产生振荡时钟脉冲信号 2.外部振荡方式:外部振荡方式就是把外部已有的时钟信号引入单片机内内部振荡方式,外部振荡方式,8051单片机的三种周期,在时钟脉冲电路推动下,51单片机根据控制信号去完成取指令、指令译码和指令执行等基本操作,操作的时间如何度量呢? 振荡周期(时钟周期):单片机片内振荡电路产生一个完整的方波信号所用的时间可根据时钟脉冲频率的倒数求得,它是时序中最小的时间单位例如51单片机主频为1MHZ,则时钟周期为1us 机器周期:完成一个基本操作所需的时间,通常为12个振荡周期,分为6个S状态:S1~S6,每个状态分为2拍,即P1和P2,因此一个机器周期可以表示为S1P1、S1P2、S2P1…….S6P2。
指令周期:指CPU执行一条指令所需要的时间,一个指令周期通常含有1~4个机器周期P1,P2,,,,,,,S1,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,,振荡周期,机器周期,机器周期,指令周期,,XTAL2 (OSC),S2,S3,S4,S5,S6,S1,S2,S4,S5,S3,S6,,,,,,,,,,P1,P1,P1,P1,P1,P1,P1,P1,P1,P1,P1,P2,P2,P2,P2,P2,P2,P2,P2,P2,P2,8051单片机各种周期的相互关系,振荡周期、机器周期、指令周期,P2,振荡周期= 机器周期= 指令周期=,8051单片机外接晶振为12MHz时 3个周期的具体值,1μs,1/12μs,1~4μs,1.3.3 复位电路及复位状态,1.复位电路 8051单片机启动时需要复位,以使CPU和系统各个部件处于一种确定初始状态复位时需要在RST引脚上加上一个大于两个机器周期(24个时钟周期)高电平复位。
8051单片机通常采用上电自动复位和按键手动复位两种方式上电复位和按键复位电路,P,P,,复位后的初始状态,8051单片机的并行I/O口,,8051单片机有4个双向并行的8位I/O口P0~P3P0口为三态双向口,可驱动8个TTL电路,连接外设时需接上拉电阻;P1、P2、P3口为准双向口(作为输入时,需要先向口锁存器写入1,故称为准双向口),其负载能力为4个TTL电路1)地址总线(AB):地址总线宽度为16位,由P0口经地址锁存器提供低8位地址(A0 ~ A7);P2口直接提供高8位地址(A8~A15)地址信号是由CPU发出的,故地址总线是单方向的 (2)数据总线(DB):数据总线宽度为8位,用于传送数据和指令,由P0口提供 (3)控制总线(CB):控制总线随时掌握各种部件的状态,并根据需要向有关部件发出命令,主要有PSEN、WR、 RD信号8051单片机的片外总线结构,最简系统,是使用最少的外围元器件让单片机能够工作的电路AT89S51单片机的最简系统如图所示,首先,单片机的VCC、GND接+5V以获得工作电源此外,还多出了两个部分(阴影框),一个是复位电路,另一个是时钟电路最后还有一个细节,就是单片机的 (31管脚)也接到了+5V上。
1.3.4 单片机最小系统电路,。