收藏 分享(赏)

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

上传人:hwpkd79526 文档编号:7467447 上传时间:2019-05-19 格式: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 R

31、0 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-07H04H R4 0CH R4 14H R4 1CH R405H R5 0DH R5 15H R

32、5 1DH R506H R6 0EH R6 16H R6 1EH R607H R7 0FH R7 17H R7 1FH R7当前程序使用的工作寄存区是由程序状态字 PSW(特殊功能寄存器,字节地址为0D0H)中的 D4、D3 位(RS1 和 RS0)来指示的,PSW 的状态和工作寄存区对应关系见表2-3。表 2-3 工作寄存器区选择PSW4(RS1)PSW3(RS0)当前使用的工作寄存器区R0 - R70 0 0 区 (00 - 07H)0 1 1 区 (08 - 0FH)1 0 2 区 (10 - 17H)1 1 3 区 (18 - 1FH)CPU 通过对 PSW 中的 D4、D3 位内容的

33、修改,就能任选一个工作寄存器区,例如: SETB PSW3 CLR PSW4 ;选定第区SETB PSW4 CLR PSW3 ;选定第 2 区SETB PSW3 SETB PSW ;选定第区不设定为第 0 区,也叫默认值,这个特点使 MCS-51 具有快速现场保护功能。特别注意的是,如果不加设定,在同一段程序中 R0 - R7 只能用一次,若用两次程序会出错。如果用户程序不需要四个工作寄存器区,则不用的工作寄存器单元可以作一般的RAM 使用。内部 RAM 的 20H -2FH 为位寻址区(见表 2-4)这 16 个单元和每一位都有一个位地址,位地址范围为 00H - 7FH。位寻址区的每一位都

34、可以视作软件触发器,由程序直接进行位处理。通常把各种程序状态标志、位控制变量设在位寻址区内。同样,位寻址区的 RAM单元也可以作一般的数据缓冲器使用。在一个实际的程序中,往往需要一个后进先出的 RAM 区,以保存 CPU 的现场,这种后进先出的缓冲器区称为堆栈(堆栈的用途详见指令系统和中断的章节) ,堆栈原则上可以设在内部 RAM 的任意区域内,但一般设在 30H -7FH 的范围内。栈顶的位置由栈指针 SP 指出。、外部数据存储器MCS-51 具有扩展 64K 字节外部数据存储器和 I/O 口的能力,这对很多应用领域已足够使用,对外部数据存储器的访问采用 MOVX 指令,用间接寻址方式,R0

35、,R1 和 DPTR 都可作间址寄存器。有关外部存储存器的扩展和信息传送将在第 5 章详细介绍。若系统较小,内部的 RAM(30H-7FH)足够的话就不要再扩展外部数据存储器 RAM,若确实要扩展就用串行数据存储器 24C 系列。也可用并行数据存储器。3、特殊功能寄存器MCS-51 单片机内的锁存器、定时器、串行口数据缓冲器以及各种控制寄存和状态寄存器都是以特殊功能寄存器的形式出现的,它们分散地分布在内部 RAM 地址空间范围,表 2-4 RAM 寻址区位地址映象位 地 址字节地址 D7 D6 D5 D4 D3 D2 D1 D02FH 7F 7E 7D 7C 7B 7A 79 782EH 77

36、 76 75 74 73 72 71 702DH 6F 6E 6D 6C 6B 6A 69 682CH 67 66 65 64 63 62 61 602BH 5F 5E 5D 5C 5B 5A 59 582AH 57 56 55 54 53 52 51 5029H 4F 4E 4D 4C 4B 4A 49 4828H 47 46 45 44 43 42 41 4027H 3F 3E 3D 3C 3B3 3A 39 3826H 37 36 35 34 33 32 31 3025H 2F 2E 2D 2C 2B 2A 29 2824H 27 26 25 24 23 22 21 2023H 1F 1

37、E 1D 1C 1B 1A 19 1822H 17 16 15 14 13 12 11 1021H 0F 0E 0D 0C 0B 0A 09 0820H 07 06 05 04 03 02 01 00表 2-5 列出了这些特殊功能存储器的助记标识符、名称及地址,其中大部分寄存器的应用将在后面有关章节中详述,这里仅作简单介绍。1、 累加器 A最常用的特殊功能寄存器,大部分单操作数指令的操作取自累加器,很多双操作数指令的一个操作数取自累加器。加、减、乘、除算术运算指令的运算结果都存放在累加器 A 或 A、 B 寄存器对中。指令系统中用 A 作为累加器的助记符。 B 寄存器B 寄存器是乘除法指令中常

38、用的寄存器。乘法指令的两个操作数分别取自 A 和 B ,其结果存放在 A B 寄存器对中。除法指令中,被除数取自 A,除数取自 B,商数存在放于 A,余数存放于 B。在其它指令中,B 寄存器可作为 RAM 中的一个单元来使用。2、 程序状态字 PSW程序状态字是一个 8 位寄存器,它包含了程序状态信息。此寄存器各位的含义参见下图,其中 PSW1 未用。其它各位说明如下:CY AC F0 RS1 RS0 OV - P CY(PSW 7)进位标志。在执行某些算术和逻辑指令时,可以被硬件或软件置位或清零。在布尔处理机中它被认为是位累加器,其重要性相当于一般中央处理机中的累加器 A。表 2-5 特殊功

39、能寄存器标 识 符 名 称 地址* ACC 累加器 E0H* B B 寄存器 F0H* PSW 程序状态字 D0HSP 堆栈指针 81HDPTR 数据指针(包括 DPH和 DPL) 83H 和 82H* P0 口 0 80H* P1 口 1 90H* P2 口 2 A0H* P3 口 3 B0H* IP 中断优先级控制 B8H* IE 允许中断控制 A8HTMOD 定时器/计数器方式控制 89HTCON 定时器/计数器控制 88H+T2CON 定时器/计数器 2 控制 C8HTH0 定时器/计数器 0(高位字节) 8CHTL0 定时器/计数器 0(低位字节) 8AHTH1 定时器/计数器 1(

40、高位字节) 8DHTL1 定时器/计数器 1(低位字节) 8BH+TH2 定时器/计数器 2(高位字节) CDH+TL2 定时器/计数器 2(低位字节) CCH+RLDH 定时器/计数器 2 自动再装载 CBH+RLDL 定时器/计数器 2 自动再装载 CAH*SCON 串行控制 98HSBUF 串行数据缓冲器 99HPCON 电源控制 87H AC(PSW 6)辅助进位标志。当进行加法或减法操作而产生由低 4 位数(BCD 码一位)向高 4 位数进位或借位时,AC 将被硬件置位,否则就被清零。AC 被用于 BCD 码调整。详见 DA A 指令。 F0(PSW 5)用户标志位,F0 是用户定义

41、的一个状态标记,用软件来使它置位或清零。该标志位状态一经设定,可由软件测试 F0,以控制程序的流向。 RS1,RS0(PSW 4,PSW 3)寄存器区选择控制位。可以用软件来置位或清零以确定工作寄存器区。RS1,RS0 与寄存器区的对应关系见表 2-3。 OV(PSW 2)溢出标志。当执行算术指令时,由硬件置位或清零,以指示溢出状态。当执行加法指令 ADD 时,位 6 向位 7 有进位而位 7 不向 CY 进位时,或位 6 不向位7 进位而位 7 向 CY 进位时,溢出标志 OV 置位,否则清零。溢出标志常用于 ADD 和 SUBB 指令对带符号数作加减运算时,OV=1 表示加减运算的结果超出

42、了目的寄存器 A 所能表示的带符号数(2 的补码)的范围(-128-+127) ,参见第 3 章中关于 ADD 和 SUBB 指令的说明。在 MCS-51 中,无符号数乘法指令 MUL 的执行结果也会影响溢出标志。若置于累加器 A 和寄存器 B 的两个数的乘积超过 255 时,OV=1,否则 OV=0。此积的高 8 位放在 B 内,低 8 位放在 A 内。因此,OV=0 意味着只要从 A 中取得乘积即可,否则要从 B A 寄存器对中取得乘积。除法指令 DIV 也会影响溢出标志。当除数为 0 时,OV=1,否则 OV=0。 P(PSW0)奇偶标志,每个指令周期都由硬件来置位或清“0” ,以表示累

43、加器A 中 1 的位数的奇偶数。若 1 的位数为奇数,P 置“1” ,否则 P 清“0” 。P 标志位对串行通信中的数据传输有重要的意义,在串行通信中常用奇偶校验的办法来检验数据传输的可靠性。在发送端可根据 P 的值对数据的奇偶置位或清零。通信协议中规定采用奇校验的办法,则 P=0 时,应对数据(假定由 A 取得)的奇偶位置位,否则就清 0。 栈指针,栈指针 SP 是一个 8 位特殊功能寄存器。它指示出堆栈顶部在内部 RAM中的位置。系统复位后,SP 初始化为 07H,使得堆栈事实上由 08H 单元开始。考虑到08H-1FH 单元分属于工作寄存器区 1-3,若程序设计中要用到这些区,则最好把

44、SP 值改置为 1FH 或更大的值,SP 的初始值越小,堆栈深度就可以越深,堆栈指针的值可以由软件改变,因此堆栈在内部 RAM 中的位置比较灵活。除用软件直接改变 SP 值外,在执行 PUSH,POP 指令,各种子程序调用,中断响应,子程序返回(RET)和中断返回(RETI)等指令时,SP 值将自动调整。 数据指针,数据指针 DPTR 是一个 16 位特殊功能寄存器,其高位字节寄存器用DPH 表示,低位字节寄器用 DPL 表示,既可以作为一个 16 位寄存器 DPTR 来处理,也可以作为两个独立的 8 位寄存器 DPL 和 DPL 来处理。DPTR 主要用来存放 16 位地址,当对 64KB

45、外部存储器寻址时,可作为间址寄存器用。可以用下列两条传送指令:MOVX A,DPTR 和 MOVX DPTR,A。在访问程序存储器时,DPTR 可用作基址寄存器,有一条采用基址+变址寻址方式的指令 MOVC A,A+DPTR,常用于读取存放在程序存储器内的表格常数。 端口 P0-P3,特殊功能寄存器 P0,P1,P2 和 P3 分别是 I/O 端口 P0-P3 的锁存器。P0-P3 作为特殊功能寄存器还可用直接寻址方式参与其它操作指令。 串行数据缓冲器,串行数据缓冲器 SBUF 用于存放欲发送或已接收的数据,它实际上由两个独立的寄存器组成,一个是发送缓冲器,另一个是接收缓冲器。当要发送的数据传

46、送到 SBUF 时,进的是发送缓冲器。当要从 SBUF 读数据时,则取自接收缓冲器,取走的是刚接收到的数据。 定时器/计数器。MCS-51 系列中有两个 16 位定时器/计数器 T0 和 T1。它们各由两个独立的 8 位寄存器组成,共有四个独立的寄存器:TH0,TL0,TH1,TL1。可以对这四个寄存器寻址,但不能把 T0,T1 当作一个 16 位寄存器来寻址。表 2-6 特殊功能寄存器地址表位 地 址SFR 字节地址 D0 D1 D2 D3 D4 D5 D6 D7P0.0 P0.1 P0.2 P03 P04 P0.5 P0.6 P0.7P0 8080 81 82 83 84 85 86 87

47、SP 81DPL 82DPH 83PCON 87IT0IE0IT1IE1TR0TF0TR1TF1TCON 88 88 89 8A 8B 8C 8D 8E 8FTMOD 89TL0 8ATL1 8BTH0 8CTH1 8DP1.0 P1.1 P1.2 P1.3 P1.4 P1.5 P1.6 P1.7P1 9090 91 92 93 94 95 96 97RI TI RB8 TB8 REN SM2 SM1 SM0SCON 9898 99 9A 9B 9C 9D 9E 9FSBUF 99P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7P2 A0A0 A1 A2 A3 A

48、4 A5 A6 A7EX0 ET0 EX1 ET1 ES EAIE A8A8 A9 AA AB AC AFP3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7P3 B0B0 B1 B2 B3 B4 B5 B6 B7PX0 PT0 PX1 PT1 PSIP B8B8 B9 BA BB BCP OV RS0 RS1 F0 AC CYPSW D0D0 D1 D2 D3 D4 D5 D6 D7ACC E0 E0 E1 E2 E3 E4 E5 E6 E7B F0 F0 F1 F2 F3 F4 F5 F6 F7 其它控制寄存器。IP,IE,TMOD,TCON,SCON 和 PCO

49、N 寄存器分别包含有中断系统、定时器/计数器、串行口和供电方式的控制和状态位,这些寄存器将在以后有关章节中叙述。2 单片机的外部结构21 MCS-51 单片机引脚功能MCS 单片机都采用 40 引脚的双列直插封装方式。图 2-9 为引脚排列图, 40 条引脚说明如下:1、主电源引脚 Vss 和 Vcc Vss 接地 Vcc 正常操作时为+5 伏电源2、外接晶振引脚 XTAL1 和XTAL2 XTAL1 内部振荡电路反相放大器的输入端,是外接晶体的一个引脚。当采用外部振荡器时,此引脚接地。 XTAL2 内部振荡电路反相放大器的输出端。是外接晶体的另一端。当采用外部振荡器时,此引脚接外部振荡源。3、控制或与其它电源复用引脚 RST/VPD,ALE/ ,PROG和 /VppPSENA RST/VPD 当振荡器运行时,P1.01 P1.2 P1.23 P1.34P1.45 P1.56 P1.67

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报