首页 51单片机的硬件结构和工作原理

51单片机的硬件结构和工作原理

举报
开通vip

51单片机的硬件结构和工作原理 13 第二章 MCS-51 单片机的硬件结构与工作原理 在 MCS-51 单片机中除了有CPU、存储器和并行输入 / 输出接口外,还包含有定时 / 计 数器、串行 I/O 接口和中断管理逻辑等部件。虽然单片机在形态只是一块芯片,但它已具有 了微型计算机的基本结构和功能。本章主要介绍 MCS-51 单片机的基本组成、存储器的组织 结构、并行 I/O 口的工作原理和和操作特点以及 MCS-51 单片机的引脚功能等。 第一节 MCS-51 单片机的基本组成 一、 MCS—51 单片微机的...

51单片机的硬件结构和工作原理
13 第二章 MCS-51 单片机的硬件结构与工作原理 在 MCS-51 单片机中除了有CPU、存储器和并行输入 / 输出接口外,还包含有定时 / 计 数器、串行 I/O 接口和中断管理逻辑等部件。虽然单片机在形态只是一块芯片,但它已具有 了微型计算机的基本结构和功能。本章主要介绍 MCS-51 单片机的基本组成、存储器的组织 结构、并行 I/O 口的工作原理和和操作特点以及 MCS-51 单片机的引脚功能等。 第一节 MCS-51 单片机的基本组成 一、 MCS—51 单片微机的硬件组成 1. MCS—51 单片机简介 通用型单片机的种类很多,且适合不同应用场合的新产品不断出现,就目前我国的应用 情况看,尤以 8 位中档 MCS—51 系列单片机的应用最为普遍,并把它作为实时检测及控制等 领域应用中的优选机种。 MCS—51 系列单片机的主要特性如下: 1) 8 位字长 CPU 和指令系统。 2) 一个片内时钟振荡器和时钟电路。 3) 64K 外部数据存储器的地址空间。 4) 64K 外部程序存储器的地址空间。 5) 32条双向且分别可位寻址的 I / O 口线。 6) 128 字节的片内RAM(52子系列为 256 字节 ) 。 7) 2 个16位定时器/计数器 (52 子系列为 3 个 ) 。 8) 具有 2 个优先级的 5 个中断源结构 (52 子系列有 6 个 ) 。 9) 一个全双工串行口。 10) 1 个布尔处理器。 MCS—51 系列不同类型的单片机除上述主要特性外,还有一些不同的附加特性。 2. MCS—51 单片机的内部结构 MCS—51 单片机的功能模块框图如图2—1所示。在一小块芯片上,集成了一个微型计算 机的各个部分。由图中可见, MCS—5l 单片机是由 8 位 CPU 、只读存储器 EPROM / ROM 、读 写存储器 RAM 、并行 I / O 口、串行 I / O 口、定时器/计数器、中断系统、振荡器和时钟 电路等部分组成。各部分之间通过内部总线相连。图2—2为 MCS—51 的内部结构框图。 时 钟 源 T0 T1 P0 P1 P2 P3 TXD RXD INT0 INT1 时 钟 电 路 SFR 和 RAM ROM 定 时 / 计 数 CPU 串 行 I/O 口 中 断 系 统 并 行 I/O 口 系 统 总 线 图 2—1 MCS—51 单 片 机 的 功 能 模 块 框 图 MCS—51 单片机的核心部分是中央处理器 CPU ,它由运算器和控制器两大部分组成。 运算器用来完成算术运算、逻辑运算和进行位操作 ( 布尔处理 ) ,由算术逻辑单元 (ALU) 、 位处理器、累加器 ACC 、寄存器 B 、暂存器TMPl和TMP2等组成,与一般运算器的作用类似。 控制器是用来统一指挥和控制计算机进行工作的部件,它由定时和控制逻辑、内部振荡 电路 OSC 、指令寄存器及其译码器、程序计数器PC及其增量器、程序地址寄存器、程序状态 字寄存器 PSW 、 RAM 地址寄存器、数据指针DPTR、堆栈指针SP等部分组成。 MC5—51 单片机中的 CPU 和通用微处理器 ( 如 Z80 CPU) 基本相同,只是增设了“面向控 制”的处理功能。例如:位处理、查表、多种跳转、乘除法运算、状态检测、中断处理等, 增强了实时性。 14 二、 MCS—51 单片机的引脚功能 采用HM0S制造工艺制造的 MCS—51 单片机,都采用40引脚双列直插式封装。而采用 CHMOS 制造工艺的 80C51 / 80C31 ,除采用40脚双列直插式封装外,还采用方形的封装方 式。图 2 — 3 为采用双列直插式封装的 MCS—5l 系列单片机引脚图。 RAM 地 址 寄 存 器 RAM P0口驱动器 P0口锁存器 P2口驱动器 P2口锁存器 ROM (EPROM) 4K×8 程序地址 寄存器 缓冲器 程序计数 器(PC) PC 加法器 DPTR Acc SP TMP2 TMP1 PSW ALU SCONPCON TMCD TCONTH0 TL0 TH1 TL1 T2CON TH2 TL2 RCAP2L RCAP2H SBUF IE IP 中断 串行口定时器 B寄存器 定时 与 控制 指 令 寄 存 器 振荡器 P1口驱动器 P1口锁存器 P3口锁存器 P3口驱动器 8 8 Vcc Vss P0.0~P0.7 P2.0~P2.7 P1.0~P1.7 P3.0~P3.7 PSEN ALE EA RST XTAL1 XTAL2 88 图 2—2 MCS—51 的 内 部 结 构 框 图 15 各引脚功能说明如下: 1. 电源引脚 Vcc(40脚 ) :接 +5V ;Vss(20脚 ) :接地。 2. 时钟信号引脚 XTALl(19 脚 ) , XTAL2(18 脚 ) :外部时钟信号的两个引脚。具体用法见图 2-4 、图 2-5 。 3.控制线 16 1)RST /VPD(9脚 ) :当作为 RST 使用时,为复位输入 端。在时钟电路工作以后,此引脚上出现两个机器周期的 高电平将使单片机复位。在 RST 与 Vcc 引脚之间连接一个 10μF~20μ F 的电容, RST 与 Vcc 引脚之间连接一个约 8.2KΩ的电阻,就可实现上电复位功能。 当作为VPD使用时,当 Vcc 处于掉电情况下,此引脚可 接上备用电源,只为片内 RAM 供电,保持信息不丢失。 2) EA / VPP(31 脚 ) : EA 为访问内部或外部程序存 储器的选择信号。如使用 CPU 片内的程序存储器单元, EA 端必须接高电平,当PC值小于 0FFFH 时, CPU 访问内 部程序存储器;当PC值大于 0FFFH 且外部有扩充的程序存储器时, CPU 将自动转向执行外部 程序存储器内的程序。若使用片内无 ROM / EPROM 的 CPU 时, EA 必须接地。 CPU 全部访问 外部程序存储器。 图 2 — 3 8031 引 脚 对片内 EPROM 编程时,此引脚 ( 作 VPP) 接人 21V 编程电压。 3)ALE / PROG (30 脚 ) :当访问外部存储器时, ALE 信号的负跳变将P0口上的低 8 位 地址送入锁存器。即使不访问外部存储器, ALE 端仍以振荡器振荡频率的 1 / 6 固定速率输 出正脉冲信号,此时可用它作为对外输出的时钟或定时脉冲。但要注意,每当访问外部数据 存储器时,将跳过一个 ALE 脉冲,以 1 /12的振荡频率输出。 对片内 EPROM 编程时,该引脚 ( PROG ) 用于输入编程脉冲。 ALE 端能驱动 ( 吸收或输 出电流)8个 LSTTL 负载。 4) PSEN (29 脚 ) :外部程序存储器读选通控制信号,低电平有效。以区别读取外部数 据存储器。在读取外部程序存储器指令 ( 或常数 ) 时,每个机器周期产生两次 PSEN 有效信 号。但执行片内程序存储器取指令时,不产生 PSEN 信号。 PSEN 信号同样能驱动 8 个 LSTTL 负载。 4.输入/输出口线 1) P0 口 (32—39 脚 ) : 8 位漏极开路型双向并行 I / O 口。在访问外部存储器时,P0 口作为低 8 位地址/数据总线复用口,通过分时操作,先传送低 8 位地址,利用 ALE 信号的 下降沿将地址锁存,然后作为 8 位双向数据总线使用,用来传送 8 位数据。 在对片内 EPROM 编程时,P0口接收指令代码;而在内部程序验证时,则输出指令代码, 并要求外接上拉电阻。 外部不扩展而单片应用时,则作双向 I / O 口用,P0口能以吸收电流的方式驱动 8 个 LSTTL 负载。 2) P1 口 (1—8 脚 ) :具有内部上拉电阻的 8 位准双向 I / O 口。在片内 EPEOM 编程及 校验时,它接收低 8 位地址。P1口能驱动 4 个 LSTTL 负载。 对8032/8052,其中P1.0和P1.1还具有第二变异功能: P1. 0(T2) 为定时器/计数器 2 的外部事件脉冲输入端。 P1.1(T2Ex) 为定时器/计数器 2 的捕捉和重新装入触发脉冲输入 端。 3) P2 口 (21—28 脚 ) : 8 位具有内部上拉电阻的准双向 I / O 口。在外接存储器时, P2口作为高 8 位地址总线。在对片内 EPROM 编程、校验时,它接收高位地址。P2口能驱动 4 个 LSTTL 负载。 4) P3 口 (10 一17脚 ) : 8 位带有内部上拉电阻的准双向 I / O 口。每一位又具有如下 的特殊功能 ( 或称第二功能 ) : P3.0(RXD) :串行输入端。 P3.1(TXD) :串行输出端。 17 P3.2( INT0 ) :外部中断 0 输入端,低电平有效。 P3.3( INT1 ) :外部中断 1 输入端,低电平有效。 P3.4(T0) :定时/计数器 0 外部事件计数输入端。 P3.5(T1) :定时/计数器 1 外部事件计数输入端。 P3.6( WR ) :外部数据存储器写选通信号,低电平有效。 P3.7( RD ) :外部数据存储器读选通信号,低电平有效。 三、振荡器、时钟电路及时序 1.时钟电路 MCS—5l 单片机内部有一个用于构成振荡器的高增益反相放大器,引脚 XTALl 和 XTAL2 分别是反相放大器的输入端和输出端,由这个放大器与作为反馈元件的片外晶体或陶瓷谐振 器一起构成了一个自激振荡器,如图2—4所示。这种方式形成的时钟信号称为内部时钟方 式。图2—5所示,为外部时钟方式。 2.有关 CPU 时序的概念 计算机在执行指令时,一条指令经译码后产生若干个基本的微操作,这些微操作所对应 的脉冲信号在时间上的先后次序称为计算机的时序。下面介绍有关 CPU 时序的几个概念。 ( 1 )振荡周期 指为单片机提供定时信号的振荡源的周期,若为内部产生方式时,为石英晶体的振荡周 期。 18 ( 2 )时钟周期 也称为状态周期,用 S 表示。时钟周期是计算机中最基本的时间单位,在一个时钟周期 内, CPU 完成一个最基本的动作。 MCS—51 单片机中一个时钟周期为振荡周期的 2 倍。 ( 3 )机器周期 为便于管理,常把一个指令的执行过程划分为若干个阶段,每一阶段完成一个基本操 作,例如,取指令、存储器读、存储器写等。完成一个基本操作所需要的时间称为机器周 期。 MCS—51 的一个机器周期含有 6 个时钟周期。 ( 4 )指令周期 完成一条指令所需要的时间称为指令周期。 MCS—5l 的指令周期含 1 ~ 4 个机器周期不等, 其中多数为单周期指令,还有 2 周期和 4 周期指令。 4 周期指令只有乘、除两条指令。 不论是内部时钟还是外部时钟,均需经过内部时钟发生器(一个二分频触发器)而成为 内部时钟信号,它向单片机提供了一个二节拍时钟信号,在每个时钟的前半个周期,节拍 1 信号P1有效,后半周期,节拍 2 信号P2有效,如图2—6所示。 如前所述, MCS—51 指令的每个机器周期包含六个时钟周期(用 S 表示)。每个时钟周 期由节拍信号P1和节拍信号P2组成。每个节拍持续一个振荡周期。因此,一个机器周期包含 S1P1~S6P2共 6 个状态的12个振荡周期。 P1 P2 S1 振 荡 周 期 时 钟 周 期 机 器 周 期 机 器 周 期 指 令 周 期 XTAL2 (OSC) S2 S3 S4 S5 S6 S1 S2 S4 S5S3 S6 P1 P1 P1 P1 P1 P1 P1 P1 P1 P1 P1P2 P2 P2 P2 P2 P2 P2 P2 P2 P2 P2 图 2-6 MCS-51 单 片 机 各 种 周 期 的 相 互 关 系 19 第二节 并行 I/O 接口 如前所述, MCS—5l 单片机内有四个 8 位并行 I / O 端口,分别记作P0、P1、P2和P3。 每个端口都是 8 位准双向 I / O 口,共占32根引脚。每个端口都包含一个锁存器、一个输出 驱动器和一个输入缓冲器。 在无片外扩展存储器的系统中,这四个端口的每一位都可以作为准双向通用 I / O 端口 使用。在具有片外扩展存储器的系统中,P2口作为高 8 位地址线,P0口作为双向总线,分时 送出低 8 位地址和数据的输入/输出。 MCS—51 单片机的四个 I / O 口在结构和特性上是基本相同的,但又各具特点。这些端 口的电路 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 非常巧妙,学习 I / O 端口逻辑电路,不但有利于正确合理地使用这些端口而 且会对设计单片机外围逻辑电路有所启发。 一、并行 I/O 接口的内部结构 1. P0 口的位结构与功能 图2—7为P0口某一位的结构图,它由一个输出锁存器、两个三态输入缓冲器和输出驱动 电路及控制电路组成。 & D Q Q Vcc 控制端 地址/数据 读锁存器 内部总线 写锁存器 读引脚 T1 T2 P0.x 引脚 锁存器 1 图 2—7 为 P0 口 某 一 位 的 结 构 图 I / O 口的每位锁存器均由 D 触发器组成,用来锁存输出的信息。在 CPU 的“写锁存 器”信号驱动下,将内部总线上的数据写入锁存器中。 20 两个三态缓冲器(T3、T4),一个用来“读引脚”信息,即将 I / O 端引脚上的信息读 入内部总线,送 CPU 处理;另一个用来“读锁存器”,即把锁存器内容读入内部总线上,送 CPU 处理。因此,对某些 I / O 指令可读取锁存器的内容,而另外一些指令则是读取引脚上 的信息,应注意两者之间的区别。 输出控制电路由一个与门、一个反相器和一个模拟转换开关 (MUX) 组成。多路转换开关 用于在对外部存储器进行读/写时要进行地址/数据的切换。 输出驱动电路由两个串联的FET(场效应管 ) 组成。T1相当于T2的负载电阻。当P0口作为 一般 I / O 口使用时, CPU 送来的控制信号为低电平,此时模拟开关处于如图2—7所示的位 置, Q 端与T2的栅极接通。因控制信号为低,与门输出为 0 ,T1截止。这时,当 CPU 向P0口 输出数据时,即 CPU 对P0口进行写操作时,写脉冲加到锁存器的时钟端CL上,锁存器的状态 取决于 D 端的状态。当 Q 端为高, Q 为低,而 Q 与T2的栅极连通,故P0端口的状态刚好与内 部总线的状态一致。 当输入数据时,由于外部输入信号既加在缓冲输入端上,又加在驱动电路的漏极上。如 果这时T2是导通的,则引脚上的电位始终被钳位在 0 电平上,输人数据不可能正确地读人。 因此,在输入数据时,应先把P0口置 1 ,使两个输出 FET 均关断,使引脚“浮置”,成为高 阻状态,这样才能正确地插人数据。这就是所谓的准双向口。 在有外部扩展存储器时,P0口必须作地址/数据总线用,这时就不能在把它作为通用的 I / O 口使用了。当从P0口输出地址/数据时,控制信号为高,使 Mux 向上与反相器输出端 接通,与此同时与门打开,地址/数据便通过与门及T1传送到P0口.当从P0口输人数据时, 则通过下面的缓冲器进入内部总线。 2. P1 口的位结构与功能 P1口也是—个准双向 I / O 口,其结构如图2—8所示,与P0口不同,没有多路开关 MUX 和控制电路部分。输出驱动电路只有一个 FET 场效应管,同时内部带上拉电阻,此电阻与电 源相连。P1口可作通用双向 I / O 口用,而不必再外接上拉电阻。当端口用作输入时,和P0 口一样,为了避免误读,必须先向对应的输出锁存器写入“ l ”,使 FET 截止。然后再读端 21 口引脚。由于片内负载电阻较大,约20~ 40K Ω,所以不会对输入的数据产生影响。 D Q Q 读锁存器 内部总线 写锁存器 读引脚 锁存器 T2 P1.x 引脚 内部上拉电阻 图 2—8 P1 口某一位结构 在8032/8052系列单片机中,P1.0和P1.1是多功能位。除作一般双向 I / O 口外,P1.0 还可以作为定时器/计数器 2 的外部输入端,这时此引脚以T2来表示;P1.1还可作为定时器 /计数器 2 的外部控制输入,以T2EX来表示。 3. P2 口的位结构与功能 P2口的每一位结构如图2—9所示 , 在结构上比P0口少了一个输出转换控制部分,多路开 关 MUX 的倒向由 CPU 命令控制,且P2口内部接有固定的上拉电阻。 D Q Q 地址 读锁存器 内部总线 写锁存器 读引脚 锁存器 1 Vcc T2 P2.x 引脚 内部上拉电阻 控制 图 2—9 P2 口某一位结构图 P2口既可作为通用 I / O 口使用,又可作为地址总线口。当P2口用来作通用 I / O 口 时,是一个准双向的 I / O 口 , 此时, CPU 送来的控制信号为低电乎,使转换开关 (MUX) 与 锁存器的 Q 端接通。当输出信息时,引脚上的状态即为 Q 端的状态。当输人信息时,也要先 用软件使输出锁存器置 l ,然后再进行输入操作。 当单片机外部扩展有存储器时,P2口可用于输出高 8 位地址,这时 CPU 送来的控制信号 22 应为高电平,使 MUX 与地址接通,此时引脚上得到的信息为地址。 在外接程序存储器的系统中,由于访问外部程序存储器的操作连续不断.P2口将不断输 出高八位地址,故这时P2口不再作通用 I / O 口使用。 在无外部程序存储器而扩展有外部数据存储器的系统中,P2口的使用情况有所不同。若 外接 RAM 容量为256B,则可用 “MOVX A ,@Ri”类指令由P0口送出 8 位地址,而不需要高 8 位地址,这时P2口仍可作通用 I /O 口使用。 4. P3 口的位结构与功能 P3口与Pl口的输出驱动部分及内部上拉电阻相同,但比P1口多了一个第二功能控制部分 的逻辑电路〔由一个与非门和一个输入缓冲器组成〕,P3口某位的结构如图 2—10 所示。 23 图 2-10 P3 口某一位结构 图 D Q Q 读锁存器 内部总线 写锁存器 读引脚 锁存器 Vcc T2 P3.x 引脚 内部上拉电阻 & 第二输入功能 第二输出功能 P3口是一个多功能的端口,当作为第一功能(一般 I/O 口)使用时,第二输出功能输出 端保持为高电平,打开与非门,其操作与P1口基本相同。同样,输入时引脚数据通过三态缓 冲器在读引脚选通控制下进入内部总线。 P3口除了作通用 I / O 使用外,它的各位还具有第二功能。当P3口某一位用于第二功能 作输出时,该位的锁存器应置 “1” ,打开与非门,第二功能端内容通过“与非门”和 FET 送至端口引脚。当作第二功能输入时,端口引脚的第二功能信号通过第一个缓冲器送到第二 输入功能端。 无论P3口作通用输入口还是作第二输入功能口用,相应位的输出锁存器和第二输出功能 端都应置 “l” ,使 T 截止。实际上,由于MCS-51单片机所有口的锁存器在上电复位时均被 24 置 1 ,自然能满足上述要求。所以,用户不必做任何操作,就可直接使用P3口的第二功能。 二、并行 I/O 接口的读—修改—写操作 从图2—7~图 2—10 可见,每个 I / O 口均有两种读人方法:读锁存器和读引脚,并有 相应的指令。读锁存器指令是从锁存器中该取数据,送 CPU 处理,再把处理后的数据重新写 入锁存器中,这类指令称为读—修改—写指令。 在“读—修改—写”指令中,目的操作数必须是一个 I / O 口或 I / O 口的某一位。例 如:INC P2, CLR P1.0 及 ANL P1, A 等。 读引脚指令一般都是以 I / O 端口为源操作数的指令,执行读引脚指令时,三态门打 开,为输入口状态。例如,读P1口引脚指令为 MOV A ,P1。 对“读—修改—写”指令,直接读锁存器 Q 端而不是读引脚的原因是为了避免错读引脚 上电平的可能性。例如,若用某一位口线去驱动一个晶体管的基极,当向此位写 1 时,晶体 管导通,并把引脚上的电平拉低,这时若从引脚上读取数据,则读的是晶体管的基极电平 “ 0 ”,与口锁存器状态 1 不一样。而从锁存器 Q 端读取,就能避免这样的错误,得到正确 的数据。 三、并行 I/O 接口的负载能力 P0口的每位输出可驱动 8 个 LSTTL 输入,但把它作为通用 I / O 口使用时,输出级是开 漏电路,故用它驱动NMOS输入时需外接上拉电阻;而把它作地址/数据总线用时,则无需外 接上拉电阻。 P1~P3口的输出级均接有内部上拉电阻,它们的每一位输出可驱动 4 个 LSTTL 输人。对 HMOS型单片机,当P1口和P3口作输入方式时,任何 TTL 或NM0S电路都能以正常的方式去驱动 这些接 /*- 口。不论是HMOS型还是 CHMOS 型的单片机,它们的Pl~P3口的输出端都可以被集 电极开路电路所驱动,而不必再外加上拉电阻。 第三节 MCS-51 单片机的复位 复位是单片机的初始化操作,其作用是使 CPU 和系统中其它部件都处于一个确定的初始 状态,并从这个状态开始工作。 MCS—5l 的 RST /VPD引脚是复位输入端,通过一个施密特触发器与复位电路相连。图 2 -11所示为复位电路的结构,图中的施密特触发器用来抑制噪声,它的输出在每个机器周期 的S5P2由复位电路采样一次。不论是HMOS型还是 CHMOS 型,在振荡器运行时, RST 端至少要 保持 2 个机器周期 (24 个振荡周期 ) 为高,才完成一次复位。 图 2—l1(b) 所示为 CHMOS 型复位结构,其复位引脚只是单纯为 RST ,而不包含 VPD ,这 是因为 CHMOS 单片机的备用电源也是由VCC引脚提供的。 片内RAM 复位电路 Vcc Vss D1 D2 RST/Vpd 施密特 触发器 ( a ) HMOS 型 复 位 结 构 ( b )CHMOS型 复 位 结 构 图 2 —11 MCS— 51 复 位 结 构 在 RST 端变为高电平的第二个机器周期执行内部复位,此后每个周期重复一次,直至 RST 端出现低电平。复位后片内各专用寄存器的状态如表2—1。 表 2—1 复 位 后 片 内 各 专 用 寄 存 器 的 状 态 寄存器 内容 寄存器 内 容 PC 00H TMOD 00H A 00H TCON 00H B 00H TH0 00H PSW 00H TL0 00H SP 07H TH1 00H DPTR 0000H TL1 00H P0~P3 0FFH SCON 00H IP ( XXX00000 ) B SBUF 不变 IE ( 0XX00000 ) B PCON ( 0XXXXXXX ) B 25 复位期间, ALE 和 PSEN 输出高电平,片内 RAM 的状态不受复位的影响。复位后,PC的 值为 0000H ,所以单片机总是从起始地址 0000H 开始执行程序。当单片机运行出错或进入死 循环时,可按复位键重新启动。 MCS—51 单片机的复位电路有上电复位和按钮复位两种形式,最简单的复位电路如图 2—12 所示。 上电复位如图 2—12(a) 所示,在 Vcc 与 Vss 引脚之间接入RC电路。上电瞬间 RST 端的电 位与 Vcc 相同,随着电容充电电流的减小, RST 端的电位逐渐下降。只要 Vcc 的上升时间不 超过 1ms ,振荡器建立时间不超过10ms,按图中的时间常数(C=22μ, R1=1k Ω),上电复 位电路就能保证在上电开机时完成复位操作。上电复位所需的最短时间是振荡器建立时间加 上 2 个机器周期.在这段时间内 RST 端的电平应维持高于施密特触发器的下阀值。 图 2—12(b) 为一种上电与按钮复位电路。在实际应用系统中有些外围芯片也需要复位, 如果这些复位端的复位电平要求与单片机的要求一致,则可以与之相连。 RST 8031 8051 +5V+5V 22uF 1K RST 8031 8051 +5V+5V 22uF 1K RST 8031 8051 +5V+5V 22uF 1K 200 R1 R2 C1C1 R1 (a)上电复位 200 R1R2 C1 C2 (b)按键电平复位 (C)按键脉冲复位 图 2—12 几 种 实 用 的 复 位 电 路 为了防止干扰串人复位端,引起内部某些寄存器错误复位,可在 RST 引脚上接一去耦电 容。 在应用系统中,为了保证复位电路可靠地工作,常将RC电路在接施密特电路后再接入单 片机复位端和外围电路复位端,如图2-12( C )所示。这样,系统有多个复位端时,能保证 可靠地同步复位。 26 第四节 存储器组织与操作 MCS—51 系列单片机内集成有一定容量的程序存储器和数据存储器。其存储结构特点之 一是将程序存储器和数据存储器分开,并有各自的寻址机构和寻址方式,这种结构的单片微 机称为哈佛型结构单片微机。 一、 MCS—51程序存储器地址空间 MCS—51 在物理上有 4 个存储器空间:片内程序存储器和片外程序存储器以及片内数据 存储器和片外数据存储器。从逻辑上划分有三个存储器地址空间:片内外统一编址的 64K 字 节程序存储器地址空间,内部 128 字节或 256 字节 ( 对52于系列 ) 数据存储器地址空间和外 部 64K 字节的数据存储器地址空间,片内 128 字节的特殊功能寄存器( SFR )。在访问这三 个不同的逻辑空间的时候,应选用不同形式的指令。图 2—13 为 MCS—5l 系列存储器的分配 图。 27 外 部 ROM 内 部 ROM (EA=1) 外 部 ROM (EA=0) 0000H 0FFFH 1000H FFFFH 外 部 RAM (I/O口) 0000H 0FFFFH 程序存储器(c) 特 殊 功 能 寄 存 器 区 一 般 RAM 区 00H 30H 0FFH 图 2—13 MCS—5l 系 列 存 储 器 地 址 空 间 分 配 图 程序存储器用于存放调试好的应用程序和表格常数。 MCS—5l 采用16位的程序计数器PC 和l6位的地址总线,使64KB的程序存储器空间连续、统一。 对于内部有 ROM 的单片机 ( 如8051/ 8751) ,在正常运行时应把 EA 引脚接高电平,使 程序从内部 ROM 开始执行,当PC值超过内部 ROM 地址空间 (0FFFH) 时,会自动转向外部程序 2FH 80H 工 作 寄 存 器 区 位 寻 址 区 20H 1FH 7FH 0000H 0FFFH a) 外部数据存储器(b内部数据存储器( ) 28 存储器的 1000H ~ 0FFFFH地址空间上去执行程序。对内部无 ROM 的单片机 ( 如8031/ 8032) ,应始终接低电平,迫使 CPU 从外部程序存储器取指令。不论是执行内部或外部程序 存储器的程序,其运行速度是相同的。 64K 程序存储器中有 7 个入口地址具有特殊功能。 0000H 单元:系统复位后程序计数器PC的值为 0000H ,它是程序的起始地址,一般在该 单元中设置一条绝对转移指令,使之转向用户设计的主程序处执行。因此, 0000H ~ 00002H 单元被保留用于初始化。 其它 6 个特殊功能的入口地址分别对应 6 种中断源的中断服务程序入口地址,见表2—2 所列。一般在这些人口地址处安放一条无条件转移指令,使之转到相应的中断服务程序处去 执行。 表 2 - 2 中 断 向 量 入 口 地 址 表 中 断 源 入 口 地 址 外 部 中 断 0 0003H 定 时 计 数 器 0 溢 出 000BH 外 部 中 断 1 0013H 定 时 计 数 器 1 溢 出 001BH 串 行 口 中 断 0023H 定 时 计 数 器 2 溢 出 或 T2EX 输 入 负 跳 变 002BH 二、 MCS—51 数据存储器地址空间 数据存储器地址空间由内部和外部数据存储器空间组成。内部和外部数据存储器空间存 在重叠,通过不同指令来区别。当访问内部 RAM 时,用 MOV 类指令;当访问外部 RAM 时,则 用MOVX类指令,所以地址重叠不会造成操作混乱。 内部数据存储器在物理上又可分成三部分:低 128 字节 RAM 、高 128 字节RAM(仅8032/ 0852才有 ) 和专用寄存器 (SFR) 。 在51子系列中,只有低 128 字节 RAM ,占有 00H ~ 7FH 单元和 l28 个字节 RAM 的专用寄 存器区,占有 80H ~0FFH单元。对52子系列,低 128 字节 RAM 仍占有 00H ~ 7FH 单元,而高 29 128 个字节 RAM 所占数据存储器地址空间与专用寄存器 (SFR) 区所占空间重合,均为 80H ~ 0FFH。究竟访问哪一部分,系统是通过不同的寻址方式来加以区别。当访问高 128 字节 RAM 存储空间时,须采用寄存器间接寻址方式;访问专用寄存器 (SFR) 区时则只能用直接寻址方 式。对于访问低 128 字节 RAM ,则无此区别,两种寻址方式都可采用。 图 2—14 所示为内部数据存储器地址空间的分配。其中,低 128 个字节 RAM 由工作寄存 器区、位寻址区和数据缓冲区组成。 片 内 RAM 字 节 地 址 ( 高 位 ) ( 低 位 ) 7FH … 通 用 RAM 区 2FH 7FH 7EH 7DH 7CH 7BH 7AH 79H 78H 2EH 77H 76H 75H 74H 73H 72H 71H 70H 2DH 6FH 6EH 6DH 6CH 6BH 6AH 69H 68H 2CH 67H 66H 65H 64H 63H 62H 61H 60H 2BH 5FH 5EH 5DH 5CH 5BH 5AH 59H 58H 2AH 57H 56H 55H 54H 53H 52H 51H 50H 29H 4FH 4EH 4DH 4CH 4BH 4AH 49H 48H 28H 47H 46H 45H 44H 43H 42H 41H 40H 27H 3FH 3EH 3DH 3CH 3BH 3AH 39H 38H 26H 37H 36H 35H 34H 33H 32H 31H 30H 25H 2FH 2EH 2DH 2CH 2BH 2AH 29H 28H 24H 27H 26H 25H 24H 23H 22H 21H 20H 23H 1FH 1EH 1DH 1CH 1BH 1AH 19H 18H 22H 17H 16H 15H 14H 13H 12H 11H 10H 21H 0FH 0EH 0DH 0CH 0BH 0AH 09H 08H 20H 07H 06H 05H 04H 03H 02H 01H 00H 1FH … 18H 工 作 寄 存 器 组 3 17H … 10H 工 作 寄 存 器 组 2 0FH … 08H 工 作 寄 存 器 组 1 07H … 00H 工 作 寄 存 器 组 0 图 2—14 内 部 数 据 存 储 器 地 址 空 间 30 1.工作寄存器区 00H ~ 1FH 共32个单元为通用工作寄存器区,共分为 4 组,每组包含 8 个通用工作 寄存器,编号为R0~R7。在某一时刻,只能选择一个工作寄存器组使用,选择哪个工作寄存 器组是通过软件对程序状态字 PSW 的第 3 、 4 位 ( 即 RS0 、RS1)设置实现的。 CPU 复位后, 选中第 0 组工作寄存器。 2.位寻址区 内部 RAM 中的 20H ~ 2FH 是16个单元的位寻址区。对这16个单元既可进行字节寻址,又 可进行位寻址。这16个单元共有 16×8 = 128 位,其位地址为 00H ~ 7FH ,它们和 SFR 区中 可位寻址的专用寄存器一起,构成了布尔 ( 位 ) 处理器的数据存储器空间。图 2—15 所示为 内部 RAM 中的位寻址区,而图 2—16 所示为专用寄存器中的位寻址区。所谓位寻址,是指 CPU 能直接寻址这些位,对其置 “l” 、清 “0” 、求反、传送等逻辑操作。 3. 数据缓冲区(一般 RAM 区) 内部 RAM 中 30H ~ 7FH 为80个单元的数据缓冲区 ( 对52子系列,还有高 128 个字节的数 据缓冲区 ) ,这些单元只能按字节寻址。 4.外部数据存储器 外部数据存储器地址空间寻址范围为 64K 字节,采用R0、R1或DPTR寄存器间址方式访 问。当采用R0、R1间址时只能访问低 256 字节,采用DPTR间址可访问整个 64K 字节空间。 三、特殊功能寄存器地址空间 在 MCS—51 系列单片机中,共有26个专用寄存器 SFR(Special Functional Register ) , 它们离散地分布在片内 RAM 的高 128 字节地址 80H ~0FFH中。专用寄存器并末占满高 128 字 节 RAM 地址空间,但对没有被 SFR 使用的空闲地址的操作是无意义的。 并且,程序计数器PC不占据 RAM 单元,它在物理上是独立的,因此是唯—一个不可寻址 的专用寄存器。在除PC外的专用寄存器 SFR 中,有12个专用寄存器既可字节寻址,又可位寻 址,如图 2—15 所示,其余的 SFR 则只能字节寻址。 31 地 址 ( 高 位 ) 位 地 址 ( 低 位 ) 寄 存 器 F0H F7H F6H F5H F4H F3H F2H F1H F0H B E0H E7H E6H E5H E4H E3H E2H E1H E0H A CY AC F0 RS1 RS0 OV F1 P D0H D7H D6H D5H D4H D3H D2H D1H D0H PSW TF2 EXF2 RCLK TCLK EXEN2 TR2 C/T CP/RL2 C8H CFH CEH CDH CCH CBH CAH C9H C8H T2CON T2 PS PT1 PX1 PT0 PX0 B8H — — BDH BCH BBH BAH B9H B8H IP B0H B7H B6H B5H B4H B3H B2H B1H B0H P3 EA ET2 ES ET1 EX1 ET0 EX0 A8H AFH — ADH ACH ABH AAH A9H A8H IE A0H A7H A6H A5H A4H A3H A2H A1H A0H P2 SM0 SM1 SM2 REN TB8 RB8 TI RI 98H 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H SCON 90H 97H 96H 95H 94H 93H 92H 91H 90 P1 TF1 TR1 TF0 TR0 IE1 IT1 IE0 IT0 88H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H TCON 80H 87H 86H 85H 84H 83H 82H 81H 80H P0 图 2 - 15 特 殊 功 能 寄 存 器 位 地 址 空 间 表 2 — 3 为特殊功能寄存器及其地址分配表。下面将对其中一些专用寄存器的功能进行 介绍,另外一些将留待后面有关章节介绍。 1.累加器 ACC 在累加器操作指令中,累加器的助记符简记为 A 。 MCS—51 中的 8 位算术逻辑部件 ALU 的结构,从总体上说仍是以累加器 A 为核心的结 构。累加器 A 在大部分的算术运算中存放某个操作数和运算结果。在很多的逻辑运算、数据 传送等操作中作为源或目的操作数,这和典型的以累加器 A 为中心的微处理器相同。但是, 它在内部硬件结构上作了改进,一部分指令在执行时不经过累加器 A ,以直接或间接寻址方 式使数据在内部的任意地址单元和寄存器之间直接传输。逻辑操作等也可以不经过 A 而直接 进行,进一步提高了操作速度。 2.寄存器 B 寄存器 B 主要用于与累加器 A 配合执行乘法和除法指令的操作。对其他指令也可作为暂 存寄存器。 3.程序状态字 PSW 程序状态字 PSW 是一个 8 位寄存器,用来存放程序状态信息。某些指令的执行结果会自 动影响 PSW 的有关状态标志位,有些状态位可用指令来设置。 PSW 寄存器各位的定义如下: D7 D6 D5 D4 D3 D2 D1 D0 Cy AC F0 RS1 RS0 OV — P 字节地址0D0H 1 ) CY(PSW.7) 进位标志。可由硬件或软件置位或复位。在进行加法 ( 或减法 ) 运算 时如果操作结果最高位 ( 位7)向上有进位 ( 或借位 ) ,CY置 1 ,否则清 0 。此外在进行位操 作时CY又作为位累加器使用。 2 ) AC(PSW.6) 半进位标志。在进行加法 ( 或减法 ) 运算时,如果运算结果低半字节 ( 位3)向高半字节有进位 ( 或借位 ) ,AC置 1 ,否则清 0 。AC也可用于 BCD 码调整时的判别 位。 3 ) F0(PSW.5) 用户标志位。用户可以根据自己的需要对F0位赋予一定的含义。F0 可用软件置位或复位,也可以通过软件测试F0来控制程序的流向。 4 ) RS1 、 RS0(PSW.4 、 PSW.3) 工作寄存器组选择控制位。用软件可对 RS1 、 RS0 作 不同的组合,以确定工作寄存器 (R0 ~ R7) 的组号。这两位与寄存器组的对应关系如下: RS1 RS0 寄 存 器 组 内 部 RAM 地 址 0 0 工作寄存器组 0 00H ~ 07H 0 1 工作寄存器组 1 08H ~ 0FH 1 0 工作寄存器组 2 10H ~ 17H 1 1 工作寄存器组 3 18H ~ 1FH 32 33 5 ) OV(PSW.2) 溢出标志。当进行带符号数补码运算时,如果有溢出,即当运算结果 超出- 128 ~+ 127 的范围时,OV置 1 ;无溢出时,OV清 0 。 6 ) —(PSW.l) 为保留位,8051未用,8052作为F1用户标志位,同F0。 7 ) P(PSW.0) 奇偶标志。每个指令周期均由硬件来置位或清零,以指出累加器 A 中 1 的个数的奇偶性。若 1 的个数为奇数,则 P 置位,否则清零。在串行通信中常用此标志位来 校验数据传输的可靠性。 表 2 — 3 特 殊 功 能 寄 存 器 及 其 地 址 分 配 表 寄存器符号 名 称 字节地址 ACC 累 加 器 0E0H B B 寄 存 器 0F0H PSW 程 序 状 态 字 0D0H SP 堆 栈 指 针 81H DPTR 数 据 指 针 ( 分 DPH 和 DPL ) 83H,82H P0 P0 口 锁 存 器 80H P1 P1 口 锁 存 器 90H P2 P2 口 锁 存 器 0A0H P3 P3 口 锁 存 器 0B0H IP 中 断 优 先 级 控 制 寄 存 器 0B8H IE 中 断 允 许 控 制 寄 存 器 0A8H TMOD 定 时 / 计 数 器 方 式 控 制 寄 存 器 89H T2CON 定 时 / 计 数 器 T2 控 制 寄 存 器 0C8H TCON 定 时 / 计 数 器 控 制 寄 存 器 88H TH0 定 时 / 计 数 器 0( 高 字 节 ) 8CH TL0 定 时 / 计 数 器 0( 低 字 节 ) 8AH TH1 定 时 / 计 数 器 1( 高 字 节 ) 8DH TL1 定 时 / 计 数 器 1( 低 字 节 ) 8BH TH2 定 时 / 计 数 器 2( 高 字 节 ) 0CDH TL2 定 时 / 计 数 器 2( 低 字 节 ) 0CCH RCAP2H 定时/计数器 2陷井寄存器(高字节) 0CBH RCAP2L 定时/计数器 2陷井寄存器(低字节) 0CAH SCON 串 行 控 制 寄 存 器 98H SBUF 串 行 数 据 缓 冲 器 99H PCON 电 源 控 制 寄 存 器 97H 34 4.堆栈指针SP 堆栈是一个特殊的存储区,用来暂时存放数据和地址,它是按照“先进后出”的原则存 放数据。这种数据结构方式对于处理中断、调用子程序都非常方便。 在805l单片机中通常指定内部中的一部分作为堆栈。第一个进栈的数据所在的存储单元 称为栈底,最后进栈的叫栈顶。堆栈指针SP为一个 8 位专用寄存器,它指出栈顶在内部 RAM 中的位置 . 每存入 ( 或取出 ) 一个字节数据,SP就自动加1(或减1),SP始终指向新的栈顶。 由于系统复位后钱指针初始化为 07H ,这使得堆栈实际从 08H 单元开始工作。堆栈指针SP的 内容可由软件修改。因 08H ~ 1FH 单元分属于工作寄存器组 1 ~ 3 ,当在程序中用到这些组 时,则应将SP值改为 1FH 或更大的值,以免发生冲突。 5.数据指针DPTR 数据指针DPTR是一个16位的专用寄存器,由高位字节 DPH 和低位字节 DPL 组成。它主要 用于存放16位地址,常用作间址寄存器和基址寄存器,以便对外部数据存储器和程序存储器 进行访问。DPTR既可以作为一个16位寄存器来使用,也可以作为 2 个独立的 8 位寄存器 DPH 和 DPL 使用。 6.I/O 端口P0~P3 专用寄存器P0~P3分别是 I/O 端口P0~P3的锁存器。在 MCS —51中可以把 I/O 口当作— 般的专用寄存器来使用,没有专门设置的口操作指令,全部采用统一的 MOV 指令,使用方 便。 第五节 MCS—51 的中断系统 MCS-51极其5l子系列的其它成员都具有相同的中断结构。下面以5l子系列为例介绍中断 系统结构。如图 2—16 所示。8051有 5 个中断源,它们是 2 个外部中断源INT0和INT1, 2 个 片内定时器/计数器溢出中断源, 1 个片内串行口中断源。 这 5 个中断源的优先级分为两级——高级中断和低级中断。其中任何一个中断源的优先 级均可由软件设定为高级或低级,能实现两级中断服务程序嵌套。 35 的优先 级分别 还要 通过内 的中 断矢量 5 个中断源的中断要求能否得到响应,受中断允许寄存器IE中各位的控制;它们 由中断优先级寄存器IP的各位确定;同一优先级内的各中断源同时申请中断时, 部的查询逻辑来确定响应的次序。不同的中断源有不同的中断矢量。各个中断源 ,系统设定见表2—2所列。 一、 MCS—51 的中断源 1. 中断源 1) INT0 :外部中断 0 请求,由P3.2引脚输入。它有两种触发方式,通过 IT0 (TCON.0)来决定是电平触发方式还是边沿触发方式。一旦输入信号有效,则向 CPU 申请中 断,并且将中断标志 IE0 置 1 。 2) INT1 :外部中断 1 请求,由P3.3引脚输入。通过 IT1(TCON.2) 来决定是电平触发方 式还是边沿触发方式。一旦输人信号有效,则向 CPU 申请中断,并将中断标志 IE1 置 1 。 3 片内定时器T0溢出中断请求。当定时器T0产生溢出时,T0中断请求标志TF0 置 1 ,请 求中断处理。 4)片内定时器T1溢出中断请求。当定时器T1产生溢出时,T1中断请求标志 TF1 置 l ,请 求中断处理。 5)片内串行口发送/接收中断请求。当通过串行口发送或接收完一帧串行
本文档为【51单片机的硬件结构和工作原理】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: 免费 已有0 人下载
最新资料
资料动态
专题动态
is_971604
暂无简介~
格式:pdf
大小:305KB
软件:PDF阅读器
页数:30
分类:工学
上传时间:2012-02-23
浏览量:54