第2章- MCS—51单片机基本组成原理

更新时间:2023-11-05 20:35:01 阅读量: 教育文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

单片机应用系统设计

第二章 MCS—51单片机基本组成原理

MCS—51系列单片机包括许多类型,常用的有8031、8051、8751以及80C31、80C51、87C51等,它们的内部结构基本相同。本章具体介绍MCS—51系列单片机的引脚定义、内部组成原理与结构、存储器配置、时钟、复位、时序以及I/O端口结构与功能等。

2.1 MCS—51单片机的引脚描述与内部结构

2.1.1 MCS—51单片机的组成与性能

MCS—51单片机芯片采用40引脚双列直插封装(DIP)方式或44引脚方型封装(PLCC)方式。图2-1-1描述了DIP封装方式的引脚排列与逻辑符号图。

MCS—5l是高性能单片机,因为受到集成电路芯片引脚数目的限制,所以有许多引脚具有双重功能。MCS—51单片机引脚大致可分为数据总线、地址总线和控制总线等几部分,40条引脚中,2条为电源线,2条为外接晶体振荡器,4条控制线,32条I/O引脚。它们的引脚功能说明如表2-1-1。

(a)引脚排列

(b)逻辑符号

图2-1-1 MCS—51单片机的引脚与逻辑描述

MCS—51单片机的主要性能为:

◆ 1个由运算器和控制器组成的8位微处理器CPU;

◆ 128B的片内数据存储器RAM,用来存放运算的中间结果和最终结果; ◆ 4KB片内程序存储器ROM,可用来存放程序、原始数据和表格;

- 11 -

第二章 MCS—51单片机基本组成原理

表2-1-1:引脚定义

序号 1?8 符号 P1.0?P1.7 主要功能描述 带内部上拉电阻的8位双向I/O静态口线, 灌/拉电流能力为4个LS TTL。简称P1口 内部ROM或EPROM编程/校验时,接收低8位地址 9 RST/VPD 正常运行时,此引脚上持续2个机器周期的高电平可使单片机复位。简称复位端 掉电保护时的+5V外接电源,可保护内部RAM数据不丢失 P3.0?P3.7 10 11 10?17 12 13 14 15 RXD TXD /INT0 /INT1 T0 T1 带内部上拉电阻的8位双向I/O静态口线, 灌/拉电流能力为4个LS TTL。简称P3口 串行口接收端 串行口输出端 外部中断输入0,低有效 外部中断输入1,低有效 计数器0的外部输入 计数器1的外部输入 外部扩展RAM时的写选通信号,低有效 外部扩展RAM时的读选通信号,低有效 外接晶体振荡器引脚1 外接晶体振荡器引脚2 电源地 带内部上拉电阻的8位双向I/O静态口线, 灌/拉电流能力为4个LS TTL。简称P3口 21?28 P2.0?P2.7 访问外部扩展程序/数据存储器时作为高8位地址A8?A15使用 内部ROM或EPROM编程/校验时,接收高4位地址 29 /PSEN 外部程序存储器读选通信号,8个LS TTL驱动能力。 访问外部程序/数据存储器时自动产生低8位地址锁存信号,8个LS TTL驱动能力。 不访问外部程序/数据存储器时,产生1/6晶体振荡器频率的周期信号。 内部EPROM型单片机编程输入脉冲 EA=1时,访问内部程序存储器,超出内部地址范围时,自动指向外部; EA=0时,强行访问外部程序存储器而不管内部是否有程序存储器。 内部EPROM型单片机编程时,施加+21V编程电压 漏极开路双向I/O静态口,8个LS TTL驱动能力。简称P0口 访问外部程序/数据存储器时,分时复用为低8位地址和8位双向动态数据总线DB。 内部ROM或EPROM编程/校验时,输入输出数据。 40 VCC 电源+5V 8051根据访问的地址是否处于外部空间而自动产生该信号。 复用口,可按位复用为特殊功能或普通I/O口 高电平复位 说明 4个LS TTL驱动能力 18 19 20 16 /WR 17 /RD XTAL1 XTAL2 VSS 复用 外部程序/数据存储器时,AB 内部程序/数据存储器时,I/O 30 ALE/PROG 31 /EA/VDD 32?39 P0.7?P0.0 8个LS TTL驱动能力 可复用为DB+AB或I/O ◆ 扩展片外数据存储器的寻址范围可达到64KB; ◆ 扩展片外程序存储器的寻址范围可达64KB;

◆ 21B专用寄存器块SFR,主要用来实现对内部功能部件的控制和数据运算; ◆ 4个8位并行可编程接口P0、P1、P2、P3,既可用作输入,也可用作输出; ◆ 1个全双工UART(通用异步接收发送器)串行接口,可用于单片机之间或单片机与微机之间的串行通信;

- 12 -

单片机应用系统设计

◆ 2个16位定时/计数器,可用于确定时间间隔或对外部事件的多少进行计数; ◆ 中断系统包括5个中断源,其中,2个为外部引脚中断,2个定时/计数器内部中断和1个串行接口内部中断。可编程为两个优先级;

◆ 111条指令,含有乘法指令和除法指令。大部分指令为单周期、双周期指令,大部分指令为单字节、双字节指令;

◆ 内含布尔处理器,有很强的位寻址、位处理能力; ◆ 片内时钟振荡器,外接晶体频率范围为1.2~12MHz; ◆ +5V电源。

2.1.2 MCS—51单片机内部结构

MCS—5l单片机的内部结构框图如图2-1-2所示。

图2-1-2 MCS—5l单片机内部结构框图

单片机内部各基本部件之间通过总线交换信息。所谓总线是信息流通的公共通道,总线上的信息可以同时输送给几个部件,但不允许几个信息同时输送给总线,否则将产生信息冲突。总线按传送信息不同来分,可分为数据总线(DB)、控制总线(CB)、地址总线(AB)。数据总线用于CPU与存储器、输入输出接口之间传送数据,数据总线是双向的,控制总线

- 13 -

第二章 MCS—51单片机基本组成原理

是传送CPU发出的控制信号,也可以是其它部件输入到微处理器的状态信息,对于每一条控制线,其传送方向是固定的。地址总线用来传输CPU发出的地址信息,以选择需要访问的存储器和接口电路。地址总线是单向的,只能是CPU向外传送地址信息。单片机采用上述三组总线的连接方式,常被称为三总线结构。

MCS—51单片机内部各部分的功能简述如下: (1)微处理器CPU

CPU是单片机的控制和指挥中心,由运算器和控制器两大部分组成。

◆ 运算器以算术逻辑运算单元ALU为核心,含累加器A、暂存器1、暂存器2、程序状态寄存器PSW、寄存器B等部件;

◆ 算术逻辑单元ALU

算术逻辑单元ALU在控制器所发出内部控制信号作用下,进行各种算术运算和逻辑运算。如带进位位加法、不带进位位加法、带借位位减法、加1、减1、BCD数十进制调整、逻辑与、逻辑或、逻辑异或、求补、循环移位以及数据传送、程序转移等操作。此外,还具有以下功能:

◇ 在B奇存器配合下,完成乘法与除法操作; ◇ 可进行内容交换操作; ◇ 能作比较判断跳转操作; ◇ 很强的位操作功能。 ◆ 累加器A

累加器A是最常用的专用寄存器。进入ALU中进行算术运算和逻辑运算的操作数大多来自累加器A,其操作的结果也常送回累加器A。有许多单操作数指令都是直接通过累加器A完成的,如:指令INC A 是执行A中内容自加1的操作;指令CLR A 是执行将A内容清零的操作;指令RL A 是执行使A中各位内容依次向左移动一位的操作。很多双操作指令的一个操作数也来自累加器A,例如指令ADD A,#data是执行A←(A)+data操作,指令ANL A,#data是执行A←(A)∧data操作。除此之外,累加器A还经常用作数据传送的中转站,实现将一个存储单元中的数送到另一个存储单元的任务。

◆ 程序状态字PSW(Program State Word)

PSW是一个8位特殊功能寄存器,用于存放指令执行后结果的状态信息,称为程序状态寄存器,简称程序状态字。其各位的含义如图2-1-3所示,其中D1位未定义。

进位(借位)标志C(PSW.7):在执行某些算术操作、逻辑操作指令时,如8位加法运算时,如果运算结果的最高位D7向更高位有进位时,则C=1,否则C=0;又如8位减法运算时,如果出现被减数不够减,被减数的最高位D7向更高位有借位,则C=1,否则C=0。

半数以上的位操作类指令都与C有关,在布尔处理器操作时,它起着“位累加器”的作用。例如指令ORL C,bit执行任意可寻地址位的内容和C相或的运算,运算结果又放回C,即执行C←(C)∨(bit)操作。C可被软件置位或清零。

- 14 -

单片机应用系统设计

图2-1-3 程序状态字PSW

辅助进位(借位)标志AC(PSW.6):又称半进位(借位)标志,8位加法(减法)运算时,如果低半字节的最高位D3向D4进位(借位),则AC=1,否则AC=0。AC主要用于在BCD码运算时,进行二—十进制调整。例如,以下程序完成89与28的BCD码加法

MOV

ADD DA

A,#89 A,#28 A

;此时,A=B1H

;调整后C=1,A=17,BCD加法结果=117

二—十进制调整指令DA A需要根据进位C和半进位AC的状态来执行对加法结果的BCD码调整,具体调整过程可参见3.2节指令系统部分(PXXX页)。

软件标志F0(PSW.5):是用户自定义的一个状态标志,用户可在编程时对它置位或清零,然后,通过测试其状态进行程序分支选择。

工作奇存器组选择位RSl、RS0(PSW.4、PSW.3):MCS—51单片机内部RAM区中有4个通用寄存器区,每个区都包含R0~R7等8个寄存器。可由软件对RSl、RS0置位、清零,以确定4个工作寄存器组中的一个组投入工作。具体选择如表2-1-2。MCS—51单片机复位时, RSl、RS0=00,即自动选择0区通用寄存器。

表2-1-2:工作奇存器组选择位RSl、RS0

RS1 0 0 1 1 RS0 0 1 0 1 寄存器区 0区 1区 2区 3区 内部RAM地址 00H-07H 08H-0FH 10H-17H 18H-1FH 溢出标志OV(PSW.2):在做有符号数加法、减法时由硬件置位或清零,以表示运算结果是否溢出。在作加法(减法)时,如最高、次高二位之一有进位(借位)并且不是同时有进位(借位),OV将被置位,运算结果溢出。当OV=1时,反映运算结果已超出了累加器以补码形式表示一个有符号数的范围(-128~+127),运算结果错误。

执行乘法指令MUL AB也会影响OV标志。当乘积>255时OV=l,否则OV=0。由于积的高8位存于B中,低8位存于A中,OV=0意味着只要从A取积既可。执行除法指令DIV AB也会影响OV标志:如B中所放除数为0,OV=l,否则OV=0。

奇偶标志P(PSW.0):每执行一条指令后,单片机都将自动对累加器A中数据位的奇偶性进行测试,若A中数据位有奇数个“1”,则P=1,否则P=0。此标志主要用于串行通信的数据传输时,通过奇偶校验来检验传输的正确性。

◆ 8位特殊功能寄存器B

- 15 -

单片机应用系统设计

无效。地址空间为

内部4KB:0000H~0FFFH

外部(64-4)KB:1000H~FFFFH

MCS—51单片机的三种程序存储器配置情况可由图2-3-1描述。 2.数据存储器空间

(1)内部RAM和SFR寄存器

MCS—51单片机内嵌有数据存储器RAM和特殊功能寄存器SFR块,内部RAM以及SFR的地址为8位宽度,占用空间00H~FFH。其中,数据存储器有128个字节,其编址为00H~7FH;特殊功能寄存器SFR占用了高128B空间中的21个字节,它们离散的分布在80H—FFH范围之间。

对于52子系列,数据存储器有256个字节,其编址为00H~FFH特殊功能寄存器有26个字节,离数分布在80H~FFH范围之间,显然它与数据存储器的高128个字节的编址是重叠的,但由于不同的存储区访问时所用的指令寻址方式不同,所以不会引起混乱。

(2)外部RAM

MCS—51单片机片内数据存储器RAM的容量很小,常需扩展片外数据存储器。51单片机有一个16位数据地址指针寄存器DPTR,由高8位DPH和低8位DPL两个特殊功能寄存器组成,用于寻址外部数据存储器单元,外部RAM数据存储器地址空间为

64KB:0000H~FFFFH

对于一些存储较大的应用场合,可根据需要外部扩展2KB、4KB、8KB直至64KB的片外RAM,这些片外数据存储器可利用数据指针DPTR进行寻址,例如,MOVX A,@DPTR指令可将片外RAM中(DPTR)单元中的内容读到累加器A。

对于一些存储量较小应用场合,如果总片外RAM需求容量不超过256个单元,则也可按8位二进制数编址,地址00H~FFH。这时,对于片外扩展256B的小容量RAM的读写访问可以利用短变址指令 MOVX A,@Ri来完成。

2.3.2 MCS—51单片机程序存储器的7个入口地址

MCS—51单片机程序存储器ROM中有7个地址单元留作特殊用途,分别用作复位、中断的入口地址。

表2-3-1:7个入口地址

入口地址 0000H 0003H 000BH 0013H 001BH 0023H 002BH 用途 复位入口 INT0中断入口 CTC0中断入口 INT1中断入口 CTC1中断入口 串行口中断入口 CTC2中断入口(52系列) - 21 -

第二章 MCS—51单片机基本组成原理

何谓入口地址?以单片机复位入口为例,MCS—51单片机复位后,计算机系统将自0000H送至程序指针PC中,引导计算机自动从0000H单元开始执行程序。另外6个单元对应于6个中断源的中断服务程序的人口地址,见表2-3-1。单片机响应中断后,自动将该中断源的入口地址,送至程序指针PC中,引导计算机自动从该入口单元执行相应的中断服务程序。

需要说明的是,上述这7个入口单元相互离得很近,只隔几个单元,容纳不下稍长的程序段,所以,这些单元中实际存放的往往是一条无条件转移指令,分别跳转到用户程序真正的起始地址或所对应的中断服务程序真正的入口地址。以下的例子可简要说明这一过程。

例2-3-1:7个入口单元引导程序

ORG AJMP ORG AJMP ORG AJMP ORG AJMP ORG AJMP ORG AJMP ORG …. RETI ORG

0000H MAIN 0003H SUB-IT0 000BH SUB-CT0 0013H SUB-IT1 001BH SUB-CT1 0023H SUB-UT 050H

;INT0中断服务,子程序

SUB-IT0:

SUB-CT0:

MAIN:

0100H ;CTC0中断服务,子程序

…. RETI ORG …. END

0500H

;RST复位入口,主程序

2.3.3 MCS—51单片机内部128 B RAM

51系列单片机内部RAM总寻址空间为256B,其中,低128B作为RAM块。高128B为专用寄存器SFR块。图2-3-2描述了内部RAM地址分配与功能应用分配情况。 1.通用寄存器区R0?R7

地址00H~1FH分成4个快速定位寄存器区,又称通用寄存器区,每个区中有R0~R7共8个寄存器,供用户编程时暂时寄存8个字节信息。

MCS—51单片机工作时只能选用其中一组作为工作寄存器,其它各组待用。51单片机程序设计主要围绕R0~R7进行。这4个区的定位由PSW标志寄存器中的RS1、RS0位选定,

- 22 -

单片机应用系统设计

见表2-1-2。MCS—51单片机复位时,RS1、RS0均为0,默省状态选择0区,若需重新定位,则必须对RS1、RS0进行操作,例如,执行下列程序段

CLR SETB MOV

PSW.4 PSW.3 R0,#28H

第一、二条指令使PSW.4(RS1)=0、PSW.3(RS0)=1,选择了工作寄存器1区,因此,第3条指令将立即数28H送去工作寄存器第1组的R0,即送入片内RAM的08H单元中。

7FH 一般RAM区

30H 2FH 20H 7FH ………… . .. 07H 1FH 18H 17H 10h 1FH 08H 07H 00H ………… R7 : R0 R7 : R0 R7 : R0 R7 : R0 00H 3区 78H 布尔操作区 16字节 128位单元 栈区 80字节 2区 寄存器区 32字节 1区 0区 图2-3-2 内部RAM地址分配

2.布尔操作区(位寻址区)

地址20H~2FH除正常作为RAM单元外,其中的每个字节中的每一位均可“位寻址”,作为布尔处理机的存储空间,此外,51单片机SFR区中有12个单元中的每一位均可“位寻址”,作为布尔处理机的存储空间。

RAM中的布尔操作区位地址空间00H~7FH,共128个位单元。有了位地址就可以用位寻址方式对特定位进行操作,如置1、清零、判断是否为1或0、位内容传送等,可用作软件标志位或用于布尔处理器,这种位寻址和位处理能力是MCS—51 单片机的一个重要持点。位寻处操作给编程带来很大方便,布尔处理器以及位操作的原理以后章节将作详细描述。 3.一般RAM区

MCS—51单片机内部RAM中的30H~7FH共80个字节单元,可以作为一般RAM使用,这80个字节单元没有像00H~1FH、20H~2FH那样兼有工作寄存器区、位寻址区等特殊的用途。

严格说,51单片机内部RAM的00H?7FH区域均可作为一般RAM使用,但应用程序

- 23 -

第二章 MCS—51单片机基本组成原理

设计时通常规划出一个区域作为过程数据暂存,例如:30H~7FH,共80个字节。52系列片内RAM有256个单元,工作寄存器区和位寻址区的单元数与地址范围都和51系列一致,但用户一般RAM区从30H~FFH,共有208个单元。 4.栈区

为使CPU在处理中断事件、子程序调用过程中能保存程序断点和现场数据,通常的处理器都有栈区,堆栈有两种操作,一种是保存数据叫压人(PUSH),另一种叫数据弹出(POP),栈区数据的存取以“先进后出,后进先出”的方式处理。

图2-3-3 堆栈操作示意图

51单片机由栈指针SP指定栈顶位置,专用于指出当前堆栈区顶部是片内RAM的哪一单元,51单片机系统复位后SP的初值为07H,也就是说系统复位后,将从08H单元开始堆放信息。但是,51子系列的栈区不是固定的,可以通过软件改变SP的值以更动栈区。应用程序设计时必须对SP栈指针赋值,以合理规划栈区,为了避开工作寄存器区和位寻址区,SP的初值可设定为2FH或更大的地址值。严格说,00H~7FH区域也均可作为栈区,例如SP=40H,40H~7FH为栈区,共64个字节。

压入和弹出的过程如图2-3-3所示。当数据压人堆栈时,SP自动加1指出当前栈顶位置,压入所要保护的数据;当数据弹出时,先弹出数据,然后SP的值自动减1。在栈区中从栈顶到栈底之间所有数据都是被保护的对象。

2.3.4 MCS—51单片机内部的SFR

特殊功能寄存器SFR也称专用寄存器,专用于管理控制单片机内部的并行I/O接口、串

- 24 -

单片机应用系统设计

行I/O接口、定时/计数器、中断系统等功能模块的工作。专用寄存器在51/52单片机编程中具有重要意义,用户可编程设定为不同的值,以控制相应功能部件的工作模式。

除程序指针PC独立存在,不属于SFR区外,SFR与单片机片内RAM统一编址,且可作为直接寻址字节来直接寻址操作。51系列单片机有18个专用寄存器,其中数据指针DPTR、定时/计数器1与定时/计数器2的时间常数等3个寄存器为双字节寄存器,共占用21个存储单元,如表2-3-2所示。52子系列有2l个专用寄存器,其中5个为双字节寄存器.共占用26个单元。另外,51单片机有12个SFR单元中的每一位均可“位寻址”,作为布尔处理机的存储空间,例如,定时/计数器方式控制字TMOD就不能位寻址。可“位寻址”单元地址如图2-3-4。

表2-3-2:SFR寄存器 符号 B ACC PSW IP P3 IE P2 SBUF SCON P1 地址 F0H E0H D0H B8H B0H A8H A0H 99H 98H 90H B寄存器 累加器 程序状态字 中断优先级控制寄存器 P3口寄存器 中断允许控制寄存器 P2口寄存器 串行口寄存器 串行口控制寄存器 P1口寄存器 功能介绍 符号 TH1 TH0 TL1 TL0 TMOD TCON PCON DPH DPL SP P0 地址 8DH 8CH 8BH 8AH 89H 88H 87H 83H 82H 81H 80H 功能介绍 定时器/计数器1(高8位) 定时器/计数器1(低8位) 定时器/计数器0(高8位) 定时器/计数器0(低8位) 定时器/计数器方式控制寄存器 定时器/计数器控制寄存器 电源控制寄存器 数据地址指针(高8位) 数据地址指针(低8位) 堆栈指针 P0口寄存器

图2-3-4 SFR中的位寻址单元

- 25 -

第二章 MCS—51单片机基本组成原理

必须注意,在128B的SFR块中,仅有21个(51系列)或26个(52系列)字节是有定义的专用寄存器,若用指令去访问该块中未定义的字节是没有意义的,可能会发生意想不到的错误。

我们已经在第2.1节中介绍了累加器A、乘法寄存器B、程序状态字PSW等特殊功能寄存器,其它SFR单元的功能在以后的相关章节中会作详细介绍。

2.4 MCS—51单片机的输入/输出接口

8051单片机的4个I/O端口功能采取了复用结构,电路设计的非常巧妙,熟悉I/O端口逻辑电路特性,不但有利于正确合理地使用I/O端口,而且会对设计系统外围输入输出电路有所帮助。

2.4.1 P0口

图2-4-1是P0口8位端口中的某1位P0.X的结构原理图。它由一个输出锁存器,两个三态输入缓冲器,输出控制电路及输出驱动电路组成。

P0口有两种工作方式:地址数据分时复用总线使用方式、通用I/O接口使用方式。 1.通用I/O口使用方式

这一方式又分输入、输出及端口操作三种工作状态。当系统未扩展片外存储器时,P0口作准双向通用I/O接口使用,对片内存储器和I/O口读写。此时控制信号C=0,开关MUX处在图示位置,把锁存器/Q端与输出级T2栅极接通。同时,因“与门”4使T1截止。

(1)输出数据

图2-4-1 P0.X端口的结构原理图

图2-4-1 P0.X端口结构

P0口输出数据时,写脉冲加在D锁存器的CP上,与内部总线相连的D端的数据取反后,就出现在/Q端,又经过输出级T2反相,因此,在P0.X上输出的数据正好是内部总线上的数据,这是一般的数据输出情况。

(2)输入数据

PO口输人数据时,缓冲器2用于CPU直接读端口数据。当执行一条输入指令时,“读

- 26 -

单片机应用系统设计

引脚”选通脉冲把三态缓冲器2打开,端口上的数据经过缓冲器2读人到内部总线。

此外,在读端口引脚时由于输出驱动T2接在引脚上,如果读引脚前T2为导通状态,就会将输入的高电平拉成低电乎,从而产生读引脚错误。所以.在端口作为输入端口前,应先向端口锁存器写入1,使锁存器/Q=0,使T1、T2截止,引脚处于悬浮状态,作高阻抗输入。

(3)端口操作

MCS—51单片机有11条指令可直接进行P0、Pl、P2、和P3端口操作,如下:

ANL ORL

P0,#data P0,#data

;(P0)←(P0)∧data ;(P0)←(P0)∨data

2.P0口作为地址/数据总线

P0口还可以作为地址总线低8位AB0-7或数据总线DB,供系统扩展时使用。这时控制信号C=1,多路开关MUX接到非门3。有两种工作情况:一种是总线输出,另一种是外部引脚数据输入。

(1)总线输出

P0总线输出时,从“地址/数据”端输入的地址或数据信号通过门4驱动T1,同时经门3反相后驱动T2,结果在引脚上得到地址或数据输出信号。

(2)引脚数据输入

P0作为数据总线输入数据时,读指令产生读引脚信号,打开缓冲器2,从引脚上输入的外部数据经过读引脚缓冲器进入内部数据总线。

(3)读端口寄存器

通常情况,端口寄存器状态Q与输出引脚的状态是相同的,那么,读端口引脚与读端口寄存器有什么不同?设执行以下指令:

MOV

P0,#0FFH

MOV A,P0

结果如何?A中的数据不一定就是FFH。因为P0.X端口引脚输出的高电平可能已经被外部负载拉低了,P0.X端口引脚的电平和P0.X端口寄存器Q不一定一致,因此,直接从端口引脚取数据则其结果则是无法预料的。

因此,为保证逻辑关系的正确,一些“读——修改——写”指令(例如,ANL P0,A),采取这样的执行过程:打开缓冲器1,读端口寄存器→对读到的数据进行运算→写回端口寄存器。

综上所述,P0口既可以作为地址/数据总线口,这时它是真正的双向口,也可作通用的I/O口,但只是一个准双向口。准双向口的特点是:复位时,口寄存器均置“1”,8根引脚可当一般输入线使用,而在某引脚由原输出状态变成输入状态时,则应先写入“1”,以免错读引脚上的信息。P0口已当作地址/数据总线口使用时,就不能再作通用I/O口使用。

需要说明的是,作为普通I/O口使用时,控制信号C=0,T1关断,P0口为输出开漏电路,内部无上拉电阻,必须外接上拉电阻。作为地址/数据总线使用时,内部由上下2个FET

- 27 -

第二章 MCS—51单片机基本组成原理

推拉驱动,不得再外接上拉电阻。

对于8051、8751单片机,Po口能作为I/O口或地址/数据总线使用。对于803l单片机,Po口只能用作地址/数据总线。

2.4.2 P1口

P1口的内部寄存器情况与P0相似,其输出端带有内部上拉电阻,如图2-4-2所示。耗尽型FET1提供固定上拉电阻,但是这个上拉电阻阻值较大。当/Q从“1” →“0”时, FET2由导通→截止,但是由于FET1的阻值较大,动态特性差。

图2-4-2 P1.X端口结构

改善端口动态特性的方法是引入附加上拉电阻。当Q从“1” →“0”时,或门输出产生“ ”过程,高电平持续时间2个振荡周期,此间,FET3导通,FET3的导通电阻远小于FET1,可很好地改善端口的动态特性。

P1、P2、P3口的输出级结构相同。

2.4.3 P2口

当系统中接有外部存储器时,P2口可用于输出高8位地址,若作通用I/O口用,P2则是一个准双向口。因此说P2口能作通用I/O口或地址总线,其“位”结构如图2-4-3所示。

图2-4-3 P2.X、P3.X端口结构

当控制信号为低电平时,多路开关接到左端,P2口作为通用I/O口使用,其功能和使用方法与P1口相同。

当控制端输出高电平时,多路开关接到右端,地址信号经反相器从引脚输出。这时P2口输出地址总线高8位,供系统扩展使用。

对8051、8751单片机,P2口能作为I/O口或地址总线。对于8031单片机,P2口只能用作地址总线。

2.4.4 P3口

- 28 -

单片机应用系统设计

P3口可以作为通用I/O口使用,同时每一引脚还有第二替代功能。P3口的一位结构如图2-4-3所示。

当“替代功能输出”端为高电平时,P3口作通用I/O口。这时与非门对于输入端Q来说相当于非门,位结构与P2口完全相同,因此P3口作通用I/0口时的功能和使用方法与P2口、P1口相同。

当P3口的某一位作为替代功能输出使用时,将该位的锁存器Q置“1”,使与非门的输出状态只受“替代功能输出”端的控制。“替代功能输出”端的状态经与非门和驱动管输出到该位引脚上。

当P3口的某一位作为替代功能输入使用时,该位的锁存器和“替代功能输出”端都置为“l”,这时,输出驱动管关闭,该位引脚上的输入信号可经缓冲器输入。

至此,可以对组成一股单片机应用系统时各个并行口的分工小结如下: P0口:地址低8位AB0-7与数据线DB分时使用,或作为I/O口。 P1口:按位可编程的I/O口。 P2口:地址高8位AB8-15,或I/O口。

P3口:双功能口,若不用第二功能,可作为一般的I/O口。

2.4.5 P0、以及P1、P2、P3口的负载能力

组成应用系统时,并行口常用来进行系统的扩展,例如实现单片机和存储器以及输入输出接口的连接,也可直接利用并行口与外界进行信息传送,这时就必须考虑并行口的负载能力。P0口的输出级与P1~P3口的输出级在结构上是不同的,因此,它们的负栽能力和接口要求也不尽相同。

P0口的输出能驱动8个LSTTL负载,输出电流不小于800μA(通常把100μA输入电流定义为一个TTL负载输人电流),P1~P3口的输出能驱动4个LSTTL负载。

P1~P3口是三个内部带提升电阻的8位准双向I/O口,在作输入时,即使由集电极开路电路或漏极开路电路驱动,也无需外接上拉电阻.但必须先对相应端口锁存器写1。对于MOS型负载,P1、P2、P3无须外加电阻就可以直接驱动。P0口作I/O口使用时需外加上拉电阻,P0口用作地址/数据线时,它可以直接驱动MOS型负载,而不必加上拉电阻。

不同厂家的单片机的驱动能力可能不同,特别是一些MCS—51兼容型单片机,在负载能力、速度、功耗等方面均比标准51单片机有很大改进。例如,P87LPC76X可提供20mA灌电流能力,因此,进行应用系统设计时,需要综合分析接口电路的驱动能力、电平匹配、速度匹配等多方面因素。

2.5 MCS—51单片机的时钟、复位与时序

2.5.1 时钟电路

晶体振荡电路为计算机提供基准时序,MCS-51单片机的基准时钟可采用2种方法,如图2-5-1所示。

- 29 -

第二章 MCS—51单片机基本组成原理

图2-5-1 时钟电路

① 石英晶体振荡电路。MCS-51单片机外接石英晶体振荡器的频率范围为1.2 MHZ~12MHZ,外接电容C1、C2起抗扰动作用,取值一般为30±10pF;

② 外接同步时钟。当系统需要与其它系统时钟统一时,可以通过OC门将外时钟接入,HMOS型单片机XTAL2接片外时钟,XTAL1接地。CHMOS型工艺的单片机XTAL2悬浮,XTAL1接片外时钟。

2.5.2 复位

复位方式 MCS—51系列单片机与其他微处理器一样,在启动时都需要复位,使CPU的系统各部件处于确定的初始状态,并从初始状态开始工作。51单片机的复位信号是从RST引脚输入到芯片内部施密特触发器中的。当系统处于正常工作状态(振荡稳定)后,如果在RST引脚上有一个高电平并维持两个机器周期,CPU就可以响应并引导系统复位。

系统复位时,ALE和/PSEN将拉成高电平。在RST端电压变低后,经过1—2个机器周期后退出复位状态,ALE和/PSEN恢复输出。系统复位时,内部寄存器中,除了端口锁存器P0~P3,堆栈指针SP和串行口寄存器SBUF外,其余的寄存器全部清“0”,端口锁存器的复位值为0FFH,堆栈指针SP值为07H,SBUF为不定值。内部RAM的状态不受复位的影响,在系统上电时,内部RAM的内容是不确定的。

RST引脚上持续2 TCY以上的高电平即可使51单片机复位,但是,对于开机上电复位情况,由于,时钟振荡电路从起振到稳定需要大约10ms的时间,因此,要求上电复位电路提供持续10ms以上的高电平复位脉冲。典型复位电路如图2-5-2所示。

图2-5-2 典型复位电路

2.5.3 时序逻辑

1.时钟节拍、机器状态和机器周期

MCS—51片内的时钟发生器如图2-5-3所示,时钟发生器是一个2分频的触发器电路,它将

- 30 -

第二章 MCS—51单片机基本组成原理

2.持机方式

对于CHMOS型工艺的MCS—51单片机来说,PCON.0(IDL)=“1”,进入待机方式。只由中断和系统复位才能解脱这种状态。

IDL置“1”时,单片机进人待机方式。这时振荡器仍然运行。并向中断逻辑、串行口和定时器/计数器电路提供时钟,CPU停止工作,中断功能继续有效。但与CPU有关的PC、SP、ACC等停止在原状态。

在待机方式下,若中断请求有效时,单片机响应中断,同时PCON.0(IDL)被硬件自动清“0”,单片机退出待机方式进人正常工作方式。这种方式主要用来设计一些平时只走时钟不工作的应用系统,对用电池作电源的系统是很有意义的。

普通HMOS型MCS—51单片机没有待机方式。另外,许多兼容型MCS—51单片机内置有诸如“看门狗(WDT)”等完善的低功耗工作电路,能够自动实现待机或掉电工作,掉电电流仅约μA级。

小结

本章主要介绍了单片机的内外部结构,包括引脚描述、内部结构与基本工作原理、程序存储器ROM、数据存储器RAM及其使用区域划分、特殊功能寄存器SFR、端口功能与结构、时序、复位、单片机工作方式等内容。通过对本章的学习,读者应对单片机的内部结构、内部资源的功能与使用方法有一个较为具体的认识和了解。

[习题]

1. 单片机的基本组成包括哪几部分? 2. 8051单片机中的ALE信号有何作用?

3. 8051信号/EA的功能是什么?对于8031单片机如何处该引脚? 4. 8051单片机中的/PSEN信号与/WR、/RD信号在使用上有何不同? 5. 8051单片机内部RAM可划分为几个区域?各个区域的特点是什么?

6. MCS—51单片机内部的特殊功能寄存器有哪些?它们的功能是什么?寻址方式有何特点? 7. 怎样进行工作寄存器区的选择?

8. 解释以下程序执行完后,内部RAM中00H?1FH各单元的数值为多少?

CLR MOV MOV

LOOP:

MOV DEC

DJNZ SETB SETB

A R0,#31 R1,#16 @R0,A R0

R1,LOOP PSW.4 PSW.3

- 36 -

单片机应用系统设计

MOV CLR MOV

R7,#45 PSW.3 R7,#33

9. MCS—51单片机堆栈操作的规则是什么?

10.简述80C51单片机的4个I/O口在使用上有哪些分工和特点? 11.P0口作普通I/O口使用时,应注意什么?

12.设单片机的晶振频率为6MHz时,试求机器周期和ALE引脚的信号周期。 13.单片机复位的作用是什么?复位操作对寄存器有哪些影响? 14.简述程序状态寄存器PSW中各位的含义。

15.简述HMOS型和CHMOS型MCS—51单片机的低功耗工作方式。

16.MCS—51单片机RST引脚上持续2 TCY以上的高电平即可使单片机复位,为什么开机上电复位还需要10mS以上的复位脉冲?

- 37 -

本文来源:https://www.bwwdw.com/article/dlr2.html

Top