MCS-51单片机结构介绍.doc

上传人:sk****8 文档编号:3534184 上传时间:2019-06-02 格式:DOC 页数:19 大小:266KB
下载 相关 举报
MCS-51单片机结构介绍.doc_第1页
第1页 / 共19页
MCS-51单片机结构介绍.doc_第2页
第2页 / 共19页
MCS-51单片机结构介绍.doc_第3页
第3页 / 共19页
MCS-51单片机结构介绍.doc_第4页
第4页 / 共19页
MCS-51单片机结构介绍.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、MCS-51 介绍MCS-51 系列单片机产品有 8051,8031,8751,80C51,80C31 等型号(前三种为CMOS 芯片,后两种为 CHMOS 芯片) 。它们的结构基本相同,其主要差别反映在存储器的配置上。8051 内部设有 4K 字节的掩模 ROM 程序存储器,8031 片内没有程序存储器,而8751 是将 8051 片内的 ROM 换成 EPROM。由 ATMEL 公司生产的 89C51 将 EPROM 改成了 4K的闪速存储器,他们的结构大同小异,本章将对 8051 单片机的结构作一介绍。1 MCS-51 单片机内部结构1.1、 MCS-51 单片机组成MCS-51 单片机

2、是在一块芯片中集成了 CPU,RAM,ROM、定时器/计数器和多种功能的I/O 线等一台计算机所需要的基本功能部件。MCS-51 单片机内包含下列几个部件: 一个 8 位 CPU; 一个片内振荡器及时钟电路; 4K 字节 ROM 程序存储器; 128 字节 RAM 数据存储器; 两个 16 位定时器/计数器; 可寻址 64K 外部数据存储器和 64K 外部程序存储器空间的控制电路; 32 条可编程的 I/O 线(四个 8 位并行 I/O 端口) ; 一个可编程全双工串行口; 具有五个中断源、两个优先级嵌套中断结构。频率基准源 计数器串 行 串 行中断 控制 并行 I/O 口 输入 输出图 2-

3、1 8051 单片机框图8051 单片机框图如图 2-1 所示。各功能部件由内部总线联接在一起。振荡器及定时电路8051CPU4K 字节ROM128 字节RAM2 个 16 位定时器/计数器64K 总线扩展控制可编程 I/O 可编程串行口图中 4K(4096)字节的 ROM 存储器部分用 EPROM 替换就成为 8751;图中去掉 ROM 部分就成为 8031 的结构图。1、 CPUCPU 是单片机的核心部件。它由运算器和控制器等部件组成。 运算器运算器的功能是进行算术运算和逻辑运算。可以对半字节(4 位) 、单字节等数据进行操作。例如能完成加、减、乘、除、加 1、减 1、BCD 码十进制调整

4、、比较等算术运算和与、或、异或、求补、循环等逻辑操作,操作结果的状态信息送至状态寄存器。8051 运算器还包含有一个布尔处理器,用来处理位操作。它是以进位标志位 C 为累加器的,可执行置位、复位、取反、等于 1 转移、等于 0 转移、等于 1 转移且清 0 以及进位标志位与其他可寻址的位之间进行数据传送等位操作。也能使进位标志位与其他可位寻址的位之间进行逻辑与、或操作。1) 程序计数器 PC程序计数器 PC 用来存放即将要执行的指令地址,共 16 位,可对 64K 程序存储器直接寻址。执行指令时,PC 内容的低 8 位经 P0 口输出,高 8 位经 P2 口输出。2) 令寄存器指令寄存器中存放

5、指令代码。CPU 执行指令时,由程序存储器中读取的指令代码送入指令寄存器,经译码后由定时与控制电路发出相应的控制信号,完成指令功能。3) 定时与控制部件时钟电路8051 片内设有一个由反向放大器所构成的振荡电路,XTAL1 和 XTAL2 分别为振荡电路的输入和输出端,时钟可以由内部方式产生或外部方式产生。内部方式时钟电路如图2-2 所示。在 XTAL1 和 XTAL2 引脚上外接定时元件,内部振荡电路就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶振可以在 1.2MHz 到 12MHz 之间选择,电容值在 5-30PF 之间选择,电容的大小可起频率微调作用。电容 1晶振电

6、容 2图 2-2 内部方式时钟电路外部方式的时钟很少用,若要用时,只要将 XTAL1 接地,XTAL2 接外部振荡器就行。对外部振荡信号无特殊要求,只要保证脉冲宽度,一般采用频率低于 12MHz 的方波信号。时钟发生器把振荡频率两分频,产生一个两相时钟信号 P1 和 P2 供单片机使用。P1XTAL1XTAL2在每一个状态 S 的前半部分有效,P2 在每个状态的后半部分有效。 时序MCS-51 典型的指令周期(执行一条指令的时间称为指令周期)为一个机器周期,一个机器周期由六个状态(十二振荡周期)组成。每个状态又被分成两个时相 P1 和 P2。所以,一个机器周期可以依次表示为 S1P1,S 1P

7、2,S 6P1, S6P2。通常算术逻辑操作在P1时相进行,而内部寄存器传送在 P2时相进行。图 2-3 给出了 8051 单片机的取指和执行指令的定时关系。这些内部时钟信号不能从外部观察到,所用 XTAL2 振荡信号作参考。在图中可看到,低 8 位地址的锁存信号 ALE在每个机器周期中两次有效:一次在 S1P2与 S2P1期间,另一次在 S4P2与 S5P1期间。图 2-3 8051 时序对于单周期指令,当操作码被送入指令寄存器时,便从 S1P2开始执行指令。如果是双字节单机器周期指令,则在同一机器周期的 S4 期间读入第二个字节,若是单字节单机器周期指令,则在 S4 期间仍进行读,但所读的

8、这个字节操作码被忽略,程序计数器也不加 1,在 S6P2结束时完成指令操作。图 2-3 的(a)和(b)给出了单字节单机器周期和双字节单机器周期指令的时序。8051 指令大部分在一个机器周期完成。乘(MUL)和除(DIV)指令是仅有的需要两个以上机器周期的指令,占用 4 个机器周期。对于双字节单机器周期指令,通常是在一个机器周期内从程序存储器中读入两个字节,唯有 MOVX指令例外。MOVX 是访问外部数据存储器的单字节双机器周期指令。在执行 MOVX 指令期间,外部数据存储器被访问且被选通时跳过两次取指操作。图 2-3 中(c)给出了一般单字节双机器周期指令的时序。2、存储器ALE时 钟S1

9、S4 S6S5S3S2读 操 作 码 读 操 作 码 (无 效 )(a) 1字 节1周 期 指 令读 下 一 指 令S1 S4 S6S5S3S2读 操 作 码 读 第 二 字 节(b) 2字 节1周 期 指 令读 下 一 指 令S1 S4 S6S5S3S2读 操 作 码 读 操 作 码 (无 效 )(c) 1字 节2周 期 指 令读 下 一 指 令S1 S4 S6S5S3S2MCS-51 单片机的程序存储器和数据存储器空间是互相独立的,物理结构也不同。程序存储器为只读存储器(ROM) 。数据存储器为随机存取存储器( RAM) 。单片机的存储器编址方式采用与工作寄存器、I/O 口锁存器统一编址的

10、方式。有关存储器的内容将在下一节中详述。3、I/O 端口I/O 端口又称为 I/O 接口,也叫做 I/O 通道或 I/O 通路,I/O 端口是 MCS-51 单片机对外部实现控制和信息交换的必经之路,I/O 端口有串行和并行之分,串行 I/O 端口一次只能传送一位二进制信息,并行 I/O 端口一次能传送一组二进制信息。、并行 I/O 端口MCS-51 单片机设有四个 8 位双向 I/O 端口(P0、P1、P2、P3) ,每一条 I/O 线都能独立地用作输入或输出。P0 口为三态双向口,能带 8 个 LSTTL 电路。P1、P2、P3 口为准双向口(在用作输入线时,口锁存器必须先写入“1” ,故

11、称为准双向口) ,负载能力为 4 个 LSTTL 电路。1) 、P0 端口功能(P0.0P0.7、3239 脚)VCC地 址 /数 据控 制锁 存 器P0.XDCPQQ MUXV1V2P0.X引 脚读 锁 存 器写 锁 存 器内 部 总 线读 引 脚&1图 2-4 P0 口位结构图 2-4 是 P0 口位结构,包括 1 个输出锁存器,2 个三态缓冲器,1 个输出驱动电路和 1 个输出控制端。输出驱动电路由一对场效应管组成,其工作状态受输出端的控制,输出控制端由 1 个与门、1 个反相器和 1 个转换开关 MUX 组成。对 8051/8751 来讲 P0 口既可作为输入输出口,又可作为地址/数据

12、总线使用, P0 口作地址/数据复用总线使用若从 P0 口输出地址或数据信息,此时控制端应为高电平,转换开关 MUX 将反相器输出端与输出级场效应管 V2 接通,同时与门开锁,内部总线上的地址或数据信号通过与门去驱动 V1 管,又通过反相器去驱动 V2 管,这时内部总线上的地址或数据信号就传送到 P0 口的引脚上。工作时低 8 位地址与数据线分时使用 P0 口。低 8 位地址由 ALE 信号的负跳变使它锁存到外部地址锁存器中,而高 8 位地址由 P2 口输出(P0 口和 P2 口的地址/数据总线功能,请阅第八章 MCS-51 扩展技术) 。 P0 口作通用 I/O 端口使用对于有内部 ROM

13、的单片机,PO 口也可以作通用 I/O,此时控制端为低电平,转换开关把输出级与锁存器的 Q 端接通,同时因与门输出为低电平,输出级 V1 管处于截止状态,输出级为漏极开路电路,在驱动 NMOS 电路时应外接上拉电阻;作输入口用时,应先将锁存器写“1” ,这时输出级两个场效应管均截止,可作高阻抗输入,通过三态输入缓冲器读取引脚信号,从而完成输入操作。 PO 口线上的“读一修改一写”功能图 2-4 上面一个三态缓冲器是为了读取锁存器 Q 端的数据。Q 端与引脚的数据是一致的。结构上这样安排是为了满足:“读一修改一写”指令的需要,这类指令的特点时:先读口锁存器,随之可能对读入的数据进行修改再写入到端

14、口上。例如:ANL PO,A;ORL PO,A;XRL PO,A;。这类指令同样适合与 P1P3 口,其操作是:先将口字节的全部 8 位数读入,再通过指令修改某些位,然后将新的数据写回到口锁器中。2)P1 口(P1.0P1.7、18 脚)准双向口 P1 口作通用 I/O 端口使用P1 口是一个有内部上拉电阻的准双向口,位结构入图 2-5 所示,P1 口的每一位口线能独立用作输入线或输出线。作输出时,如将“0”写入锁存器,场效应管导通,输出线为低电平,即输出为“0” 。因此在作输入时,必须先将“1”写入口锁存器,使场效应管截止。该口线由内部上拉电阻提拉成高电平,同时也能被外部输入源拉成低电平,即

15、当外部输入“1”时该口线为高电平,而输入“0”时,该口线为低电平。P1 口作输入时,可被任何 TTL 电路和 MOS 电路驱动,由于具有内部上拉电阻,也可以直接被集电极度开路和漏极开路电路驱动,不必外加上拉电阻。P1 口可驱动 4 个 LSTTL 门电路。VCC锁 存 器P1.XDCPQQP1.X引 脚读 锁 存 器写 锁 存 器内 部 总 线读 引 脚内 部 上 拉 电 阻图 2-5 P1 口位结构 P1 口其他功能P1 口在 EPROM 编程和验证程序时,它输入低 8 位地址;在 8032/8052 系列中 P1.0和 P1.1 是多功能的,P1.0 可作定时器/计数器 2 的外部计数触发

16、输入端 T2,P1.1 可作定时器/计数器 2 的外部控制输入端 T2EX。3) P2 口(P2.0P2.7,2128 脚)准双向口P2 口的位结构如图 2-6 所示,引脚上拉电阻同 P1 口。在结构上,P2 口比 P1 口多一个输出控制部分。锁 存 器P2.XDCPQQ读 锁 存 器写 锁 存 器内 部 总 线读 引 脚VCCP2.X引 脚内 部 上 拉 电 阻1地 址 控 制MUX图 2-6 P2 口位结构 P2 口作通用 I/O 端口使用当 P2 口作通用 I/O 端口使用时,是一个准双向口,此时转换开关 MUX 倒向左边,输出级与锁存器接通,引脚可接 I/O 设备,其输入输出操作与 P

17、1 口完全相同。 P2 口作地址总线口使用当系统中接有外部存储器时,P2 口用于输出高 8 位地址 A15A8。这时在 CPU 的控制下,转换开关 MUX 倒向右边,接通内部地址总线。P2 口的口线状态取决于片内输出的地址信息,这些地址信息来源于 PCH、DPH 等。在外接程序存储器的系统中,由于访问外部存储器的操作连续不断,P2 口不断送出地址高 8 位。例如,在 8031 构成的系统中,P2 口一般只作地址总线口使用,不再作 I/O 端口直接连外部设备。在不接外部程序存储器而接有外部数据存储器的系统中,情况有所不同。若外接数据存储器容量为 256B,则可使用 MOVX A,Ri 类指令由

18、PO 口送出 8 位地址,P2 口上引脚的信号在整个访问外部数据存储器期间也不会改变,故 P2 口仍可作通用 I/O 端口使用。若外接存储器容量较大,则需用 MOVX A,DPTR 类指令,由 PO 口和 P2 口送出 16 位地址。在读写周期内,P2 口引脚上将保持地址信息,但从结构可知,输出地址时,并不要求 P2 口锁存器锁存“1” ,锁存器内容也不会在送地址信息时改变。故访问外部数据存储器周期结束后,P2 口锁存器的内容又会重新出现在引脚上。这样,根据访问外部数据存储器的频繁程度,P2 口仍可在一定限度内作一般 I/O 端口使用。P2 口可驱动 4 个LSTTL 门电路。4) P3 口(

19、P3.0P3.7、1017 脚)双功能口P3 口是一个多用途的端口,也是一个准双向口,作为第一功能使用时,其功能同 P1口。P3 口的位结构如图 2-7。当作第二功能使用时,每一位功能定义如表 2-1 所示。P3 口的第二功能实际上就是系统具有控制功能的控制线。此时相应的口线锁存器必须为“1”状态,与非门的输出由第二功能输出线的状态确定,从而 P3 口线的状态取决于第二功能输出线的电平。在P3 口的引脚信号输入通道中有两个三态缓冲器,第二功能的输入信号取自第一个缓冲器的输出端,第二个缓冲器仍是第一功能的读引脚信号缓冲器。P3 口可驱动 4 个 LSTTL 门电路。锁 存 器P3.XDCPQQ读

20、 锁 存 器写 锁 存 器内 部 总 线读 引 脚VCCP3.X引 脚内 部 上 拉 电 阻&第 二 输 出 功 能第 二 输 入 功 能图 2-7 P3 口位结构表 2-1 P3 口的第二功能端 口 功 能 第 二 功 能P3.0 RXD-串行输入(数据接收)口P3.1 TXD-串行输出(数据发送)口P3.2 -外部中断 0 输入线INTP3.3 -外部中断 1 输入线P3.4 T0 -定时器 0 外部输入P3.5 T1 -定时器 1 外部输入P3.6 -外部数据存储器写选通信号输出WRP3.7 -外部数据存储器读选通信号输入D每个 I/O 端口内部都有一个八位数据输出锁存器和一个八位数据输

21、入缓冲器,四个数据输出锁存器与端口号 P0、P1、P2 和 P3 同名,皆为特殊功能寄存器。因此,CPU 数据从并行 I/O 端口输出时可以得到锁存,数据输入时可以得到缓冲。四个并行 I/O 端口作为通用 I/O 口使用时,共有写端口、读端口和读引脚三种操作方式。写端口实际上就是输出数据,是将累加器 A 或其它寄存器中数据传送到端口锁存器中,然后由端口自动从端口引脚线上输出。读端口不是真正的从外部输入数据,而是将端口锁存器中输出数据读到 CPU 的累加器。读引脚才是真正的输入外部数据的操作,是从端口引脚线上读入外部的输入数据。端口的上述三种操作实际上是通过指令或程序来实现的,这些将在以后章节中

22、详细介绍。、串行 I/O 端口8051 有一个全双工的可编程串行 I/O 端口。这个串行 I/O 端口既可以在程序控制下将 CPU 的八位并行数据变成串行数据一位一位地从发送数据线 TXD 发送出去,也可以把串行接收到的数据变成八位并行数据送给 CPU,而且这种串行发送和串行接收可以单独进行,也可以同时进行。8051 串行发送和串行接收利用了 P3 口的第二功能,即利用 P3.1 引脚作为串行数据的发送线 TXD 和 P3.0 引脚作为串行数据的接收线 RXD,如表 2-1 所示。串行 I/O 口的电路结构还包括串行口控制器 SCON、电源及波特率选择寄存器 PCON 和串行数据缓冲器SBUF

23、 等,它们都属于特殊功能寄存器 SFR。其中 PCON 和 SCON 用于设置串行口工作方式和确定数据的发送和接收波特率,SBUF 实际上由两个八位寄存器组成,一个用于存放欲发送的数据,另一个用于存放接收到的数据,起着数据的缓冲作用,这些将在第七章中详细加以介绍。4、总线MCS-51 单片机属总线型结构,通过地址/数据总线可以与存储器(RAM、EPROM) 、并行 I/O 接口芯片相连接。在访问外部存储器时,P2 口输出高 8 位地址,P0 口输出低 8 位地址,由 ALE(地址锁存允许)信号将 P0 口(地址/数据总线)上的低 8 位锁存到外部地址锁存器中,从而为 P0 口接受数据作准备。在

24、访问外部程序存储器(即执行 MOVX)指令时,PSEN(外部程序存储器选通)信号有效,在访问外部数据存储器(即执行 MOVX)指令时,由 P3 口自动产生读/写( /RD)信号,通过 P0 口对外部数据存储器单元进行读/写操作。WRMCS-51 单片机所产生的地址、数据和控制信号与外部存储器、并行 I/O 接口芯片连接简单、方便。有关这部分内容将在第 8 章叙述。1.2 MCS-51 单片机存储器结构MCS-51 存储器结构与常见的微型计算机的配置方式不同,它把程序存储器和数据存储器分开,各有自已的寻址系统,控制信号和功能,程序存储器用来存放程序和始终要保留的常数,例如:所编程序经汇编后的机器

25、码。数据存储器通常用来存放程序运行中所需要的常数或变量。例如:做加法时的加数和被加数、做乘法时的乘数和被乘数、模/数转换时实时记录的数据等等。从物理地址空间看,MCS-51 有四个存储器地址空间,即:片内程序存储器和片外程序存储器以及片内数据存储器和片外数据存储器。MCS-51 系列各芯片的存储器在结构上有些区别,但区别不大,从应用设计的角度可分为如下几种情况:片内有程序存储器和片内无程序存储器、片内有数据存储器且存储单元够用和片内有数据存储器且存储单元不够用。1、程序存储器程序存储器用来存放程序和表格常数。程序存储器以程序计数器 PC 作地址指针,通过 16 位地址总线,可寻址的地址空间为

26、64K 字节。片内、片外统一编址。、片内有程序存储器且存储空间足够在 8051/8751 片内,带有 4K 字节 ROM/EPROM 程序存储器(内部程序存储器),4K 字节可存储约两千多条指令,对于一个小型的单片机控制系统来说就足够了,不必另加程序存储器,若不够还可选 8K 或 16K 内存的单片机芯片,例如:89C52 等,总之,尽量不要扩展外部程序存储器,这会增加成本、增大产品体积。、片内有程序储器且存储空间不够若开发的单片机系统较复杂,片内程序存储器存储空间不够用时,可外扩展程序存储器,具体扩展多大的芯片要计算一下,由两个条件决定:一是看程序容量大小,二是看扩展芯片容量大小,64K 总

27、容量减去内部 4K 即为外部能扩展的最大容量,2764 容量为 8K、27128 容量为 16K、27256 容量为 32K、27512 容量为 64K。 (具体扩展方法见存储器扩展) 。若再不够就只能换芯片,选 16 位芯片或 32 位芯片都可。定了芯片后就要算好地址,再将 引脚接高电平,使程序从内部 ROM 开始执行,当 PC 值超出内部 ROM 的EA容量时,会自动转向外部程序存储器空间。对 8051/8751 而言,外部程序存储器地址空间为 1000H FFFFH。对这类单片机,若把 接低电平,可用于调试程序,即把要调试的程序放在与内部 ROM 空间重叠的外部程序存储器内,进行调试和修

28、改。调试好后再分两段存储,再将 接高电平,就可EA运行整个程序。、片内无程序存储器8031 芯片无内部程序存储器,需外部扩展 EPROM 芯片,地址从 0000H-FFFFH 都是外部程序存储器空间,在设计时 应始终接低电平,使系统只从外部程序储器中取指EA令。MCS-51 单片机复位后程序计数器 PC 的内容为 0000H ,因此系统从 0000H 单元开始取指,并执行程序,它是系统执行程序的起始地址,通常在该单元中存放一条跳转指令,而用户程序从跳转地址开始存放程序。2、数据存储器、内部数据存储器MCS-51 单片机的数据存储器无论在物理上或逻辑上都分为两个地址空间,一个为内部数据存储器,访

29、问内部数据存储器用 MOV 指令,另一个为外部数据存储器,访问外部数据存储器用 MOVX 指令。MCS-51 系列单片机各芯片内部都有数据存储器,是最灵活的地址空间,它分成物理上独立的且性质不同的几个区:00H - 7FH(0 - 127)单元组成的 128 字节地址空间的RAM 区;80H - FFH(128 - 255)单元组成的高 128 字节地址空间的特殊功能寄存器(又称 SFR)区。注意:8032/8052 单片机将这一高 128 字节作为 RAM 区。图图 2-8 MCS-51 内部 RAM 存储器结构在 8051,8751 和 8031 单片机中,只有低 128 字节的 RAM

30、区和 128 字节的特殊功能寄存器区,两区地址空间是相连的,特殊功能寄存器(SFR)地址空间为 80H-FFH。注意:128 字节的 SFR 区中只有 26 个字节是有定义的,若访问的是这一区中没有定义的单元,则得到的是一个随机数。内部 RAM 区中不同的地址区域功能结构如上图 2-8 所示。其中 00H-1FH(0-31)共 32个单元是四个通用工作寄存器区,每一个区有八个工作寄存器,编号为 R0-R7,每一区中 R0-R7,地址见表 2-2。 表 2-2 寄存器和 RAM 地址对照表0 区 1 区 2 区 3 区地址 寄存器 地址 寄存器 地址 寄存器 地址 寄存器00H R0 08H R0 10H R0 18H R001H R1 09H R1 11H R1 19H R102H R2 0AH R2 12H R2 1AH R203H R3 0BH R3 13H R3 1BH R3数据缓冲区 地址范围 30H-7FH位寻址区(位地址 00-7F) 地址范围 20H-2FH工作寄存器区 3(R0-R7) 地址范围 18H-1FH工作寄存器区 2(R0-R7) 地址范围 10H-17H工作寄存器区 1(R0-R7) 地址范围 08H-0FH工作寄存器区 0(R0-R7) 地址范围 00H-07H

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 实用文档资料库 > 策划方案

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。