新第6章MCS-51系列单片机硬件结构(3)

2019-03-29 15:32

特殊功能寄存器,又称为专用寄存器,专用于控制、管理片内的各功能部件。用户在编程时可以置数设定,却不可以像RAM一样移作它用。实际上SFR是微处理器的内部寄存器或I/O口,地址为80H~0FFH。它不是用于存储一般的数据,而是专用于控制、管理单片机内并 行I/O口锁存器、串行口数据缓冲器、定时器/计数器、中断系统等功能模块的工作。这些SFR是可读可写的,只能直接寻址。在SFR里,凡是字节地址末尾为0或8的,有位地址,并且最低位的位地址就是它的字节地址。表6-4给出了26个SFR的地址映象。表6-5给出了特殊功能寄存器位地址映象。

表6-4特殊功能寄存器器地址映象 80 P0 88 TCON 90 P1 98 SCON A0 P2 A8 IE B0 P3 B8 IP D0 PSW E0 ACC F0 B

表6-5 特殊功能寄存器位地址映象 符号 字节 地址 80H 88H 90H 98H A0H A8H B0H B8H D0H E0 D7 P0.7 87H TF1 8FH P1.7 97H SM0 9FH P2.7 A7H EA AF P3.7 B7H __ __ Cy D7H Acc.7 E7H D6 P0.6 86H TR1 8EH P1.6 96H SM1 9EH P2.6 A6H __ __ P3.6 B6H __ __ AC D6H Acc.6 E6H D5 P0.5 85H TF0 8DH P1.5 95H SM2 9DH P2.5 A5H ET2 AD P3.5 B5H PT2 BDH F0 D5H Acc.5 E5H 位名称与位地址 D4 P0.4 84H TR0 8CH P1.4 94H REN 9CH P2.4 A4H ES AC P3.4 B4H PS BCH RS1 D4H Acc.4 E4H D3 P0.3 83H IE1 8BH P1.3 93H TB8 9BH P2.3 A3H ET1 AB P3.3 B3H PT1 BBH RS0 D3H Acc.3 E3H D2 P0.2 82H IT1 8AH P1.2 92H RB8 9AH P2.2 A2H EX1 AA P3.2 B2H PX1 BAH OV D2H E2H D1 P0.1 81H IE0 89H P1.1 91H TI 99H P2.1 A1H ET0 A9 P3.1 B1H PT0 B9H __ D1H E1H D0 P0.0 80H IT0 88H P1.0 90H RI 98H P2.0 A0H EX0 A8 P3.0 B0H PX0 B8H P D0H Acc.0 E0H SP TMOD SBUF DPL TL0 DPH TL1 TH0 TH1 PCON 87 8F 97 9F A7 AF B7 BF D7 E7 F7

P0 TCON P1 SCON P2 IE P3 IP PSW A Acc.2 Acc.1 符号 B

字节 地址 F0 D7 F7H D6 F6H D5 F5H 位名称与位地址 D4 F4H D3 F3H D2 F2H D1 F1H D0 F0H 通过特殊功能寄存器可实现对单片机内部资源的操作和管理,下面介绍常用特殊功能寄存器,其余将在后面的相关章节中介绍。

① 程序状态字PSW。

程序状态字寄存器PSW(Program State Word),是8位寄存器,用作程序运行时状态的标志,字节地址为0D0H,可位寻址。PSW的各位定义如下:

当CPU进行各种逻辑操作或算术运算时,为反映操作或运算结果的状态,把相应的标志位置位或清0。这些标志的状态,可由专门的指令来测试,也可通过指令读出。它为计算机程序确定程序的下一步运行提供依据。PSW寄存器中各位的名称说明如下:

●CY(PSW.7):进位标志位。当进行加减运算时,如果操作结果最高位(7位)有 进位(或借位),CY置1,否则清0。在进行位操作时,CY又作为位操作累加器C。

●AC(PSW.6):辅助进位(或称半进位)标志。当进行加减运算时,如果低半字节 (第3位)向高半字节(第4位)有进位(或借位),AC置1,否则清0。AC亦可用于BCD码调整时的判别位。

●F0(PSW.5)、F1(PSW.1):用户标志。由用户置位或复位。

●OV(PSW.2):溢出标志位。有符号运算时,如果发生溢出,OV置1,否则清0。对于 有符号数,如果用最高位表示正、负号,则只有7位有效位,能表示-128~+127之间的数。如果运算结果超出了这个数值范围,就会发生溢出,此时,OV=1,否则OV=0。在乘法运算中,OV=1表示乘积超过255;在除法运算中,OV=1表示除数为0。由硬件置位或清零。

●P(PSW.0):奇偶标志位。该位始终跟踪累加器A的内容的奇偶性。如果A中有奇数 个1,则置P为1,否则清0。

●RS1(PSW.4)、RS0(PSW.3):工作寄存器组(区)选择位。用以选择指令当前工作 的寄存器组(区)。由用户用软件改变RS0和RS1的组合,以切换当前工作的寄存器组,单片机在复位后,RS0=RS1=0,CPU自然选中第0组为当前工作寄存器组。

② 累加器ACC。

ACC(Accumulator)是8位累加器,可简记为A,A为寄存器寻址,ACC为直接地址。通过暂存器与ALU相连。其地址为0E0H,可位寻址。它是CPU中工作最繁忙的寄存器,因为在进行算术、逻辑类操作时,运算器的一个输入多为ACC,而运算器的输出即运算结果也大多要送到ACC中。在汇编指令中。所有的加法指令和减法指令,其中一个操作数必须是累加器。例如ADD A,#01H

③ B寄存器。

B寄存器是一个辅助寄存器,也叫乘除法寄存器。其地址为0F0H,可位寻址,单独的B在指令中只能直接寻址。乘法时,必须是一个数放在A,一个数放在B;乘积结果:高8位放在B中,低8位放在A中。除法时,被除数必须放在累加器A,除数放在B;结果:商放在A,余数放在B。例如:

MOV A,#32

MOV B,#4 ;32*4=128=80H MUL AB ;(A)=80H,(B)=00H

在其它指令中,B寄存器可作为RAM的一个单元使用。

④ 堆栈指针SP。

堆栈区是一个特殊的存储区,SP是8位的堆栈指针,地址是81H。主要功能是暂时存放数据和地址,通常用来保护断点和现场。CPU复位后SP的值为07H,第一个断点保护数据将装入08H单元。实际应用时,一般设在30H以后的范围内(为了避开工作寄存器区和位寻址区)。

堆栈操作是在内存RAM区专门开辟出来的按照“先进后出”原则进行数据存取的一种工作方式,主要用于子程序调用及返回和中断处理断点的保护及返回,它在完成子程序嵌套和多重中断处理中是必不可少的。为保证逐级正确返回,进入栈区的“断点”数据应遵循“先进后出”的原则。SP用来指示堆栈所处的位置,在进行操作之前,先用指令给SP赋值,以规定栈区在RAM区的起始地址(栈底层)。当数据压入栈区后,SP的值也自动随之变化。MCS-51每次进出是一个字节,进栈时SP是加1,出栈时SP是减1,这一点与一般的CPU不同。

堆栈的特点:

●是一个符合“先进后出、后进先出”的RAM区域; ●SP总是指向堆栈的顶部(保存有数据);

●堆栈可以设在内部RAM中的任意区域,一般开辟在片内RAM的后半部分中。 堆栈的功能:

●保护断点。子程序调用,中断时保护程序的断点,在程序转移发生时自动完成。 ●保护现场。对子程序、中断程序中要用到的、现场的某些寄存器的内容进行保护,以保证返回时恢复。软件指令方式实现。

⑤ I/O端口控制/数据寄存器P0~P3。特殊功能寄存器P0~P3分别是I/O端口P0(80H)、P1(90H)、P2(0A0H)和P3(0B0H)的锁存器。为准双向口。即当其用作输入方式时,各口对应的锁存器必须先置“1”,然后才能进入输入操作。

⑥ 数据指针寄存器DPTR。数据指针DPTR是一个16位的专用寄存器,主要用以存放16位地址,作为间址寄存器使用,它可对外部存储器和I/O口进行寻址,也可拆分成高位字节寄存器DPH和低位字节寄存器DPL。既可作为一个16位寄存器DPTR来处理,也可作为两个独立的8位寄存器DPH和DPL来处理。地址分别为83H和82H。

DPTR主要用来存放16位地址,当对64KB外部数据存储器空间寻址时,作为间址寄存器用。在访问程序存储器时,用作基址寄存器。

⑦两个16位的定时/计数器T0和T1。定时/计数器0和1分别占用两个字节单元。T0由TH0和TL0两个8位计数器组成,字节地址分别是8CH和8AH。T1由TH1和TL1两个8位计数器组成,字节地址分别是8DH和8BH。

(3) 位寻址空间

在MCS-51单片机的内部数据寄存器RAM块和特殊功能寄存器SFR块中,有一部分地址空间可以按位寻址,按位寻址的地址空间又称之为位寻址空间。位寻址空间一部分在内部RAM的20H~2FH的16个字节内,共128位,位地址00~7FH;另一部分在SFR的80H~0FFH空间内,凡字节地址能被8整除的专用寄存器都有位地址,共93位。因此,MCS-51系列单片机共有221个可寻址位,其位地址见表6-3和表6-5所示。

布尔处理(即位处理)是MCS-51单片机ALU所具有的一种功能。单片机指令系统中的布尔指令集(17条位操作指令),存储器中的位地址空间,以及借用程序状态标志寄存器PSW中的进位标志CY作为位操作“累加器”,构成了单片机内的布尔处理机。

6.6 并行输入/输出接口

前面已经讲过,MCS-51有4个双向的8位并行I/O口(P0~P3)。在无片外RAM时,这4个I/O口可以并行输入/输出8位数据,也可按位使用,即每一个输入/输出脚都能独立地用

作输入或输出。在有片外RAM时,P2口作为地址总线的高8位,P0口分时作为地址总线的低8位和双向数据总线,P3部分引脚作为控制总线用。

MCS-51单片机4个I/O端口在结构上是基本相同的,但又各具特点。学习I/O端口逻辑电路,不但有利于正确、合理地使用端口,而且可以对单片机外围逻辑电路的设计提供帮助。

考虑到目前MCS-51单片机已经全部CMOS化,这里以CMOS型为例来介绍其I/O口结构。在下列图中,分别给出了CMOS型MCS-51单片机4个8位I/O端口P0、P1、P2、P3的一位结构图。

6.6.1 P0口

图6-16是P0口1位的结构原理图。注意:除“引脚”在单片机以外,其它部分在单片机以内。T1、T2构成输出驱动器,与门、反相器及模拟开关构成输出控制电路。三态门是输入缓冲器。

图6-16 P0口位结构原理图

1.地址/数据分时复用总线

单片机系统扩展片外存储器时,P0口作为地址/数据分时复用总线使用。在访问片外存储器时,CPU送来的控制信号为高电平,模拟开关MUX打在上方。如果执行输出数据的指令,分时输出的地址/数据经反相器、驱动器送到引脚上,当地址或数据信息为1时,T2截止而T1导通,引脚上出现高电平;当地址或数据信息为0时,T2导通而T1截止,引脚上出现低电平。如果执行取指操作或输入数据的指令,地址仍经T1、T2输出,而输入的数据经输入缓冲器2进入总线。

2.通用I/O接口

如系统未扩展片外存储器,P0口作为准双向通用I/O接口使用,所谓“准”的意思是当P0作为输入口用时必须先对其输出1。此时图6-16所示控制信号为0,模拟开关打开在下面。由于控制信号为0,使T1截止。

(1)P0作为输入口用时,要求先对该口输出1(复位时已如是),此时T1、T2皆截止,方能输入数据。这就是P0为什么叫准双向通用I/O接口的由来。T2的漏电极处于悬空状态,输入数据经“读引脚”控制的门输入。

(2)P0作为输出口用时,由于T1截止,对外不能提供高电平,应外接电源加上拉电阻。P0口输出时能驱动8个TTL负载,通常把100μA的输入电流定义为一个TTL负载的输入电流,即输出电流不小于800μA。

6.6.1 P1口

1.P1口结构

图6-17是P1口1位的结构原理图,P1口由8个这样的电路组成,图中,锁存器起输出锁存作用。P1口的8个锁存器组成特殊功能寄存器,该寄存器也用符号P1表示。三态门1是输入锁存器状态,三态门2是输入引脚状态。

图6-17 P1口位结构原理图

2.功能

P1口作为准双向通用I/O接口使用。

(1)P1作为输入口用时,要求先对该口输出1(复位时已如是),则此时T2截止, 输入数据经“读引脚”控制的门输入。

计算机机执行读P1口的指令如MOV A,P1时,P1口工作于输入方式,CPU发出的“读信号”打开下三态门,引脚P1.x上的数据经下三态门进入芯片的内部总线,并送到累加器ACC,因此输入时无锁存功能。

(2)P1作为输出口用时,能驱动4个TTL负载,通常把100μA的输入电流定义为一个TTL负载的输入电流,即输出电流不小于400μA。

计算机执行写P1口的指令如:MOV P1,#data时,P1口工作于输出方式,此时数据data经内部总线送入锁存器锁存。如果某位的数据为1,该位锁存输出端Q=1、=0,使场效应管T2截止,由内部上拉电路将引脚P1.x拉成高电平,输出“1”。反之,如果数据为0,则Q=0、=1,使T2导通,P1.x出现低电平。

P1口内部有上拉电路。但是对于Atmel公司的89C51系列,P1口内部无上拉电路,需要外接上拉电阻。

6.6.2 P2口

P2口有两种用途:通用I/O接口或高8位地址总线。图6-18是P2口1位的结构原理图,图中的模拟开关受内部控制信号控制,用于选择P2口的工作状态。

图6-18 P2口位结构原理图

1.地址总线状态

计算机从片外ROM中取指令,或者执行访问片外RAM、片外ROM的指令时,模拟开关打向上边,P2口出现程序计数器PC的高8位地址或数据指针DPTR的高8位地址(A8~A15)。一般地说,P2口用地址总线,就不应再作为通用I/O口使用。

2.通用I/O接口状态

P2口作为准双向通道I/O接口使用时,其功能与P1口相同,工作方式、负载能力也相同。

6.6.3 P3口

P3口1位的结构原理图如图6-19所示,P3口除了作为准双向通用I/O接口使用外,每一根线还具有第二功能,详见表6-1。

P3口作为I/O接口时,其功能与P1口相同。

P3作为第二功能输入操作时,其锁存器Q端必须为高电平,否则T管导通,引脚被钳位在低电平,无法输入或输出第二功能信号。单片机复位时,锁存器输出端为高电平。P3口第二功能中的输入信号RXD、INT0、INT1、T0、T1经缓冲器输入,可直接进入芯片内部。

图6-19 P3口的一位

综上所述,可以得出如下结论:

(1)MCS-51的32条I/O线隶属于4个8位双向端口。每个端口均由锁存器、输出驱动器和输入缓冲器组成。

(2)P1、P2和P3口均有内部上拉电阻,当它们用作通用I/O时,在读引脚状态时,各口对应的锁存器必须置1,所以为准双向口。

(3)P0口内部无上拉电阻,作为I/O口时,必须接上拉电阻。

(4)P0和P2口既可作为通用I/O口,又可作为地址数据总线,内部有模拟开关用于切换。P3口的某些第二功能用作控制总线。

习题与思考题

1 MCS-51系列单片机的基本组成部分是什么?片内各基本部件的主要功能是什么? 2 决定程序执行地址的寄存器是哪个?它是几位寄存器?它是不是特殊功能寄存器? 3 DPTR是什么寄存器?它的作用是什么?它由哪几个特殊功能寄存器组成?

4 MCS-51引脚中有多少I/O接口线?它们和单片机对外的地址总线和数据总线有什么关系?地址总线和数据总线各是几位?

5 什么叫堆栈?堆栈指针寄存器SP的作用是什么?在复位时MCS-51的栈底是多少?为什么MCS-51的堆栈只能设在片内RAM中?

6 8051单片机的内部数据存储器可以分为几个不同区域?各有什么特点? 7 MCS-51单片机的程序存储器和片外数据存储器的寻址范围是多少?

8 什么叫指令周期?什么叫机器周期?什么叫时钟周期?MCS-51的一个机器周期包括多少时钟周期?

9.简述单片机系统总线时序是怎么推导出来的?


新第6章MCS-51系列单片机硬件结构(3).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:计算机组成原理第二版课后习题答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: