第二章 单片机硬件结构及原理_第1页
第二章 单片机硬件结构及原理_第2页
第二章 单片机硬件结构及原理_第3页
第二章 单片机硬件结构及原理_第4页
第二章 单片机硬件结构及原理_第5页
已阅读5页,还剩75页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第2章MCS-51

单片机硬件结构及原理

MCS-51单片机主要功能特点

MCS-51单片机内部结构分析

MCS-51单片机的引脚功能

MCS-51单片机的存储器组织

MCS-51CPU时序2.1MCS-51单片机主要功能特点8位的CPU,片内有振荡器和时钟电路,工作频率为1~12MHz(Atmel89Cxx为0~24MHz)片内有

128/256字节

RAM片内有

0K/4K/8K字节程序存储器ROM可寻址片外

64K字节

数据存储器RAM可寻址片外

64K字节

程序存储器ROM片内

21/26个

特殊功能寄存器(SFR)4个8位

的并行I/O口(PIO)1个

全双工串行口(SIO/UART)2/3个16位定时器/计数器(TIMER/COUNTER)可处理

5/6个中断源,两级中断优先级内置1个布尔处理器和1个布尔累加器(Cy)MCS-51指令集含

111条指令MCS-51系列单片机配置一览表系列片内存储器(字节)定时器计数器并行I/O串行I/O中断源片内ROM片内RAM无有ROM有EPROMIntelMCS-51子系列803180C31805180C51(4K字节)875187C51(4K字节)128字节2x164x8位15IntelMCS-52子系列803280C32805280C52(8K字节)875287C52(8K字节)256字节3x164x8位16ATEML89C系列(常用型)1051(1K)/2051(2K)/4051(4K)(20条引脚DIP封装)1282151589C51(4K)/89C52(8K)(40条引脚DIP封装)128/2562/33215/62.2MCS-51单片机内部结构分析内部结构框图MCS-51单片机功能框图单片机的组成

单片机要自动完成计算,它应该具有哪些最重要的部分呢?

以打算盘计算一道算术题为例。例:111+109×188-199÷32。现在要进行运算,首先需要一把算盘,其次是纸和笔。我们把要计算的问题记录下来,然后第一步先算109×188,把它与111相加的结果记在纸上,然后计算199÷32,再把它从上一次结果中减去,就得到最后的结果。现在,用单片机来完成上述过程,显然,它首先要有代替算盘进行运算的部件,这就是“运算器”;其次,要有能起到纸和笔作用的器件,即能记忆原始题目、原始数据和中间结果,还要记住使单片机能自动进行运算而编制的各种命令。这类器件就称为“存贮器”。此外,还需要有能代替人作用的控制器,它能根据事先给定的命令发出各种控制信号,使整个计算过程能一步步地进行。但是光有这三部分还不够,原始的数据与命令要输入,计算的结果要输出,都需要按先后顺序进行,有时还需等待。

如上例中,当在计算109×188时,数字111就不能同时进入运算器。因此就需要在单片机上设置按控制器的命令进行动作的“门”,当运算器需要时,就让新数据进入。或者,当运算器得到最后结果时,再将此结果输出,而中间结果不能随便“溜出”单片机。这种对输入、输出数据进行一定管理的“门”电路在单片机中称为“口”(Port)。在单片机中,基本上有三类信息在流动,一类是数据,即各种原始数据(如上例中的111、109等)、中间结果(如199÷32所得的商6、余数7等)、程序(命令的集合)等。这样要由外部设备通过“口”进入单片机,再存放在存贮器中,在运算处理过程中,数据从存贮器读入运算器进行运算,运算的中间结果要存入存贮器中,或最后由运算器经“出入口”输出。用户要单片机执行的各种命令(程序)也以数据的形式由存贮器送入控制器,由控制器解读(译码)后变为各种控制信号,以便执行如加、减、乘、除等功能的各种命令。所以,这一类信息就称为控制命令,即由控制器去控制运算器一步步地进行运算和处理,又控制存贮器的读(取出数据)和写(存入数据)等。第三类信息是地址信息,其作用是告诉运算器和控制器在何处去取命令取数据,将结果存放到什么地方,通过哪个口输入和输出信息等。

存贮器又分为只读存贮器和读写存贮器,前者存放调试好的固定程序和常数,后者存放一些随时有可能变动的数据。顾名思义,只读存贮器一旦将数据存入,就只能读出,不能更改。而读写存贮器可随时存入或读出数据。

实际上,人们往往把运算器和控制器合并称为中央处理单元——CPU。单片机除了进行运算外,还要完成控制功能。所以离不开计数和定时。因此,在单片机中就设置有定时器兼计数器。到这里为止,我们已经知道了单片机的基本组成,即单片机是由中央处理器(即CPU中的运算器和控制器)、只读存贮器(ROM)、随机读写存贮器(RAM)、输入/输出口(又分为并行口和串行口,表示为I/O口)等等组成。实际上单片机里还有时钟电路,使单片机在进行运算和控制时,都能有节奏地进行。另外,还有所谓的“中断系统”,这个系统有“传达室”的作用,当单片机控制对象的参数到达某个需要加以干预的状态时,就可经此“传达室”通报给CPU,使CPU根据外部事态的轻重缓急来采取适当的应付措施。

现在,我们已经知道了单片机的组成,余下的问题是如何将它们的各部分连接成相互关联的整体。实际上,单片机内部有一条将它们连接起来的“纽带”,即所谓的“内部总线”。此总线有如大城市的“干道”,而CPU、ROM、RAM、I/O口、中断系统等就分布在此“总线”的两旁,并和它连通。从而,一切指令、数据都可经内部总线传送,有如大城市内各种物品的传送都经过干道进行。

什么是总线

计算机电路是以微处理器为核心,各器件都要与微处理器相连,各器件之间的工作必须相互协调,所以需要的连线很多,如果仍如同模拟电路一样,在各微处理器和各器件间单独连线,则线的数量将多得惊人,所以在微处理机中引入了总线的概念,各个器件共同享用总线,所有器件的数据线全部接到8根公用的线上,即相当于各个器件并联起来,但仅这样还不行,如果有两个器件同时送出数据,一个为0,一个为1,那么,接收方接收到的究竟是什么呢?这种情况是不允许的,所以要通过控制线进行控制,使器件分时工作,任何时候只能有一个器件发送数据(可以有多个器件同时接收)。器件的数据线被称为数据总线,器件所有的控制线被称为控制总线。在单片机内部或者外部存储器及其它器件中有存储单元,这些存储单元要被分配地址,才能使用,分配地址当然也是以电信号的形式给出的,由于存储单元比较多,所以,用于地址分配的线也较多,这些线被称为地址总线。单片机的指令系统和汇编语言程序

前面已经讲述了单片机的几个主要组成部分,这些部分构成了单片机的硬件(Hardware)。但是,光有硬件,还只是有了实现计算和控制功能的可能性。单片机要真正地能进行计算和控制,还必须有软件(Software)的配合。软件主要指的是各种程序。只有将各种正确的程序存入单片机,它才能有效地工作。单片机所以能自动地进行运算和控制,正是由于人把实现计算和控制的步骤一步步地用命令的形式,即一条条指令(Instruction)预先存入到存贮器中,单片机在CPU的控制下,将指令一条条地取出来,并加以翻译和执行。就以两个数相加这一简单的运算来说,当需要运算的数已存入存贮器后,还需要进行以下几步:

第一步:把第一个数从它的存贮单元(Location)中取出来,送至运算器。

第二步:把第二个数从它所在的存贮单元中取出来,送至运算器;

第三步:相加;

第四步:把相加完的结果,送至存贮器中指定的单元。所有这些取数、送数、相加、存数等等都是一种操作(Operation),我们把要求计算机执行的各种操作用命令的形式写下来,这就是指令。但是怎样才能辨别和执行这些操作呢?这是在设计单片机时由设计人员赋予它的指令系统所决定的。一条指令,对应着一种基本操作;单片机所能执行的全部指令,就是该单片机的指令系统(Iustruction

Set),不同种类的单片机,其指令系统亦不同。

2.3MCS-51单片机的引脚功能Vcc,Vss

2XTAL1,XTAL2

2RESET

1EA/Vpp

1ALE/PROG1PSEN

1P0.0—P0.78P1.0—P1.78P2.0—P2.78P3.0—P3.7880C51的引脚封装总线型非总线型2.3.1时钟电路——用于产生供单片机各部分同步工作的时钟信号XTAL1,XTAL2:片内振荡电路输入/输出端15~45pf1~12MHz(MCS-51)

0~24MHz(Atmel-89C)XTAL1XTAL2也可以由

XTAL2端接入外部时钟,此时应将

XTAL1接地XTAL1XTAL2外部时钟通常外接一个晶振两个电容

MCS-51单片机的时钟电路

图2‑13MCS-51时钟接法几个周期的概念CPU总是按照一定的时钟节拍与时序工作振荡周期/时钟周期:

Tc=晶振频率fosc(或外加频率)的倒数状态周期:Ts=2个时钟周期(Tc)(很少用到此概念)机器周期:Tm=6个状态周期(Ts)=12个振荡周期(Tc)指令周期:

Ti:执行一条指令所需的机器周期(Tm)数牢牢记住振荡周期=晶振频率fosc的倒数;1个机器周期=12个振荡周期;1个指令周期=1、2、4个机器周期2.3.2控制信号1、RST/VPD(9脚)复位信号复位的概念复位:将单片机系统置成特定初始状态的操作。复位后程序从头(0000H)开始重新执行。何时复位刚通电时——上电复位,进入初始状态重新启动时——回到初始状态、重新开始程序故障时——回到初始状态、重新开始复位是什么?一般在什么时候需要进行复位?复位后内部寄存器状态复位后单片机的特点寄存器初始状态值寄存器初始状态值PC0000HTMOD00HACC00HTCON00HB00HTH000HPSW00HTL000HSP07HTH100HDPTR0000HTL100HP0、P1

P2、P30FFHSCON00HIPXX000000BPCON0XX00000BIEN00XX00000BSBUF不定复位后单片机是什么样的呢?51单片机的复位复位端

RST/VPD:RST是复位信号输入端,高电平有效。当此输入端保持2个机器周期的高电平时,就可以完成复位操作。RST引脚的第二功能是备用电源的输入端。51单片机的复位电路上电复位51单片机的复位与复位电路手动复位51单片机的复位电路手动复位51单片机的复位电路采用专用的复位芯片MAX810复位51单片机的复位电路复位电路——复位芯片MAX810MAX810是一种单一功能的微处理器复位芯片,用于监控微控制器和其他逻辑系统的电源电压。它可以在上电、掉电和节电情况下向微控制器提供复位信号。当电源电压低于预设的门槛电压时,器件会发出复位信号,直到在一段时间内电源电压又恢复到高于门槛电压为止。特性参数:监控5.0V、3.3V、3V电源;典型值17μA的低电源电流;高电平有效的RESET输出;抗电源的瞬态干扰;51单片机的复位电路复位电路——复位芯片MAX810特性参数(续)复位延时时间最小为140ms;低至1.1V电源时仍能产生有效的复位信号;小型的三管脚SOT-23封装;无需外部配件;适用于-40℃~+105℃的温度范围。2.3.2控制信号2、ALE/(AddressLatchEnable/Programming)

(30脚)地址锁存信号访问片外存储器时,ALE作锁存扩展地址的低位字节的控制信号,即此信号为高电平时,P0给出低8位地址,可用此信号加于外接锁存器控制端。不访问片外存储器时,该端以六分之一的时钟振荡频率固定输出正脉冲,供定时或其它需要使用。对8751片内EPROM编程(固化)时,此引脚

用于输入编程脉冲。2.3.2控制信号3、(29脚)片外程序存储器读选通当51系列单片机访问片外程序存储器时,输出低电平。在每个机器周期内两次有效(变低)。单片机P0.0-P0.7ALEPSENP2.0-P2.48D8QOEA8-A12A0-A7D0-D7GEAOECEEPROM2.3.2控制信号4、/Vpp(31脚)当访问内部程序存储器时,端应保持高电平,当PC超出4KB(8052为8KB)时,将自动执行片外程序存储器的程序。当端接低电平时,只访问片外程序存储器(8031的该引脚必须接地)。在对8751EPROM编程时,此引脚Vpp需施加编程电压。2.3.3I/O口——P0口P0口某一位的电路包括:(1)一个数据输出锁存器,用于数据位的锁存(2)两个三态的数据输入缓冲器。(3)一个多路转接开关MUX,使:P0口可作通用I/O口,或地址/数据线口。(4)数据输出的驱动和控制电路,由两只场效应管(FET)组成,上面的场效应管构成上拉电路。P0口传送地址或数据时,CPU发出控制信号为高电平,打开上面的与门,使多路转接开关MUX打向上边,使内部地址/数据线与下面的场效应管2.3.3I/O口——P0口

处于反相接通状态。此时输出驱动电路由于上下两个FET处于反相,形成推拉式电路结构,大大提高负载能力。

P0口作通用的I/O口使用。这时,CPU发来的“控制”信号为低电平,上拉场效应管截止,多路转接开关MUX打向下边,与D锁存器的Q*端接通。(1)P0作输出口使用来自CPU的“写入”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并向端口引脚P0.x输出。注意:由于输出电路是漏极开路(因为这时上拉场效应管截止),必须外接上拉电阻才能有高电平输出。(2)P0作输入口使用区分“读引脚”和“读锁存器”。“读引脚”信号把下方缓冲器打开,引脚上的状态经缓冲器读入内部总线;“读锁存器”信号打开上面的缓冲器把锁存器Q端的状态读入内部总线。2.3.3I/O口——P0口

P0.0—P0.7:双向I/O

(内置场效应管上拉)

寻址外部程序存储器时分时作为双向8位数据口和输出低8位地址复用口;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制引脚P0.X34Vcc2.3.3I/O口——P0口

P0.0—P0.7:双向I/O

(内置场效应管上拉)控制=0,作8位输入口使用。21DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制引脚P0.X34控制=0

时,此脚作输入口(事先必须对它写“1”)00100截止截止=0Vcc2.3.3I/O口——P0口

P0.0—P0.7:双向I/O

(内置场效应管上拉)控制=0,作8位输出口。数据经由内部总线被存于锁存器,并向引脚输出。由于此时T0截止,需外接上拉电阻。21DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制引脚P0.X34控制=0

时,P0作输出口(同P1)00截止=0VccVCC2.3.3I/O口——P0口

P0.0—P0.7:双向I/O

(内置场效应管上拉)控制=1,作双向8位数据口和输出低8位地址复用口。21DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(1)输出地址/数据=0

时1011=0导通截止=0Vcc2.3.3I/O口——P0口

P0.0—P0.7:双向I/O

(内置场效应管上拉)控制=1,作双向8位数据口和输出低8位地址复用口。21DQCK/Q读引脚读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34控制=1时,此脚作地址/数据复用口:(2)输出地址/数据=1

时1100=1截止导通=1Vcc2.3.3I/O口——P0口

P0.0—P0.7:双向I/O

(内置场效应管上拉)控制=1,作双向8位数据口和输出低8位地址复用口。21DQCK/Q读引脚=1读锁存器写锁存器内部总线地址/数据控制=1引脚P0.X34(3)输入数据时,输入指令将使引脚与内部总线直通Vcc2.3.3I/O口——P1口P1口只作通用的I/O口使用,在电路结构上与P0口有两点区别:(1)因为只传送数据,不再需要多路转接开关MUX。(2)由于P1口用来传送数据,因此输出电路中有上拉电阻,这样电路的输出不是三态的,所以P1口是准双向口。因此:(1)P1口作为输出口使用时,外电路无需再接上拉电阻。(2)P1口作为输入口使用时,应先向其锁存器先写入“1”,使输出驱动电路的FET截止。2.3.3I/O口——P1口

P1.0—P1.7:准双向I/O口(内置了上拉电阻)准双向:在作输入口用时要先对其写“1”。21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻2.3.3I/O口——P1口P1.0—P1.7:作输出口21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻输出数据=1时110截止=12.3.3I/O口——P1口P1.0—P1.7:作输出口21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻输出数据=0时001=0导通2.3.3I/O口——P1口

P1.0—P1.7:作输入口,读引脚,先对其写“1”。21DQCK/Q读引脚=1读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻110截止2.3.3I/O口——P1口

P1.0—P1.7:作输入口,读锁存器,指令形式为“读-改-写”指令,即:口地址作目的操作数。如:ANL

P0,A;(P0)(P0)&(A)21DQCK/Q读引脚读锁存器写锁存器内部总线Vcc引脚P1.X内部上拉电阻P1口应用实例简单测控实例原理图P1口应用实例P1.3作输入端口2.3.3I/O口——P2口在实际应用中,因为P2口用于提供高位地址,有一个多路转接开关MUX。但MUX的一个输入端不再是“地址/数据”,而是单一的“地址”,因为P2口只作为地址线使用。当P2口用作为高位地址线使用时,多路转接开关应接向“地址”端。正因为只作为地址线使用,口的输出用不着是三态的,所以,P2口也是一个准双向口。P2口也可以作为通用I/O口使用,这时,多路转接开关接向锁存器Q端。2.3.3I/O口——P2口

P2.0—P2.7:双向I/O(内置了上拉电阻)

寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚读锁存器写锁存器内部总线地址高8位控制引脚P2.X3内部上拉电阻Vcc2.3.3I/O口——P2口

P2.0—P2.7:双向I/O(内置了上拉电阻)

寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制引脚P2.X控制=0时,此脚作通用输出口:输出=1时110截止3内部上拉电阻11Vcc=1=02.3.3I/O口——P2口

P2.0—P2.7:双向I/O(内置了上拉电阻)

寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制引脚P2.X控制=0时,此脚作通用输出口:输出=0时001导通3内部上拉电阻00Vcc=0=02.3.3I/O口——P2口

P2.0—P2.7:双向I/O(内置了上拉电阻)

寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制=1引脚P2.X控制=1

时,此脚作高8位地址A8—A15输出口:当输出=1时10截止3内部上拉电阻1=1Vcc=12.3.3I/O口——P2口

P2.0—P2.7:双向I/O(内置了上拉电阻)

寻址外部程序存储器时输出高8位地址;不接外部程序存储器时可作为8位准双向I/O口使用。21DQCK/Q读引脚=0读锁存器写锁存器内部总线地址高8位控制=1引脚P2.X01导通3内部上拉电阻0=0Vcc=0控制=1

时,此脚作高8位地址A8-A15输出口:当输出=0时2.3.3I/O口——P3口

P3.0—P3.7:双功能口(内置了上拉电阻)

它具有特定的第二功能。在不使用它的第二功能时它就是普通的通用准双向I/O口。21DQCK/Q读引脚读锁存器写锁存器内部总线第二功能输出引脚P3.X3内部上拉电阻Vcc第二功能输入42.3.3I/O口——P3口

P3.0—P3.7:双功能口(内置了上拉电阻)第二功能输出:21DQCK/Q读引脚读锁存器写锁存器内部总线第二功能输出(WR,RD,TxD)引脚P3.X3内部上拉电阻Vcc4第二功能输出时,内部自动D=1111反相器2.3.3I/O口——P3口

P3.0—P3.7:双功能口(内置了上拉电阻)第二功能输入:21DQCK/Q读引脚读锁存器写锁存器内部总线此端自动=1引脚P3.X3内部上拉电阻Vcc

第二功能输入(RxD,T0,T1,INT0,INT1)4第二功能输入时,信号经缓冲器4直接进入内总线1110截止P3口第二功能表引脚第二功能P3.0RxD:

串行口接收数据输入端P3.1TxD:

串行口发送数据输出端P3.2INT0:

外部中断申请输入端0P3.3INT1:

外部中断申请输入端1P3.4T0:

外部计数脉冲输入端0P3.5T1:

外部计数脉冲输入端1P3.6WR:

写外设控制信号输出端P3.7RD:

读外设控制信号输出端2.4MCS-51的存储器组织片内RAM128字节(00H—7FH);

片内RAM前32个单元是工作寄存器区(00H—1FH)

片内RAM有128个可按位寻址的位,占16个单元。位地址编号为:00H—7FH,分布在20H—2FH单元片内21个特殊功能寄存器(SFR)中:地址号能被8整除的SFR中的各位也可按位寻址(P43)可寻址片外RAM64K字节(0000H—FFFFH)可寻址片外ROM64K字节(0000H—FFFFH)片内Flash

ROM4K字节(000H—FFFH)2.4.1MCS-51程序存储器内部(EA=1)外部(EA=0)外部0FFFH0000H0FFFH0000HFFFFH1000H内部(EA=1)外部(EA=0)外部1FFFH0000H1FFFH0000HFFFFH2000H51子系列程序存储器配置52子系列程序存储器配置程序存储器中7个特殊定义的地址入口意义0000H系统程序的启动地址0003H外部中断0入口地址000BH定时器0溢出入口地址0013H外部中断1入口地址001BH定时器1溢出入口地址0023H串行口中断002BH定时器2溢出或T2EX(P1.1)端负跳通常在这些入口地址都安放一条绝对跳转指令,跳转到相应中断服务程序入口去执行中断服务程序。2.4.2数据存储器片内RAM

128字节(00H—7FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区SFR分布在80H-FFH其中92个位可位寻址80HFFH所有的RAM区(包括位寻址区、工作寄存器区)都可以用于存放数据,故也称为数据缓存寄存器89C51128字节2.4.2数据存储器片内RAM前32个单元是工作寄存器区(00H—1FH)00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区R0R2R1R3R4R5R6R707H02H01H00H06H04H05H03H08H1FH工作寄存器区3工作寄存器区2工作寄存器区1工作寄存器区00FH10H17H18H工作寄存器使用哪一组由特殊功能寄存器(PSW)的RS1(PSW.4)、RS0(PSW.3)位状态来选择:

RS1,RS0=00则选择了工作寄存器组

0区

R0~R7分别代表08H~0FH单元。

RS1,RS0=01则选择了工作寄存器组

1区

R0~R7分别代表08H~0FH单元。

RS1,RS0=10则选择了工作寄存器组

2区

R0~R7分别代表10H~17H单元。

RS1,RS0=11则选择了工作寄存器组

3区

R0~R7分别代表18H~1FH单元。CYACF0RS1PSW.7PSW.4RS0OVPPSW.0PSW.32.4.2数据存储器

片内RAM中有128个可按位寻址的位。

位地址:00H—7FH

分布在:20H—2FH单元00H20H2FH7FH1FH30H80HFFH52子系列才有的RAM区普通RAM区位寻址区工作寄存器区27H22H21H20H26H24H25H23H28H2FH单元地址07060504030201000F0E0D0C0B0A090817161514131211101F1E1D1C1B1A191827262524232221202F2E2D2C2B2A292837363534333231303F3E3D3C3B3A393847464544434241407F7E7D7C7B7A7978位地址2.4.3专用寄存器

SFR-SpecialFunctionRegister

MCS-51共有23个特殊功能寄存器(3个属于8032/8052),其中5个是双字节寄存器,程序计数器PC在物理上是独立的,其余22个寄存器都属于片内数据存储器SFR块,共占26个字节。2.4.3专用寄存器1.程序计数器PC(16bit)2.累加器A3.寄存器B4、程序状态字PSW5、堆栈指针SP6、数据指针DPTR7、I/O端口P0~P3

程序计数器PC(ProgramCounter)用来存放下一条要执行的指令在程序存储器中的地址。

基本工作方式有以下几种:

(1)程序计数器自动加1

(2)执行有条件转移或无条件转移指令时,程序计数器将被置入新的数值,从而使程序的流向发生变化。(3)在执行调用子程序调用或中断调用,完成下列操作: ①PC的现行值保护②将子程序入口地址或中断向量的地址送入PC。累加器A

使用最频繁的寄存器,可写为Acc。

A的作用:(1)是ALU的输入之一,又是运算结果的存放单元。(2)数据传送大多都通过累加器A。MCS-51增加了一部分可以不经过累加器的传送指令,即可加快数据的传送速度,又减少A的“瓶颈堵塞”现象。

A的进位标志Cy同时又是位处理机的位累加器。特殊功能寄存器(PSW)OV(PSW.2)溢出标志位。

OV=1时特指累加器在进行带符号数(-128—+127)运算时出错(超出范围);OV=0时未出错。PSW.1未定义。P(PSW.0)奇偶标志位。

P=1表示累加器中“1”的个数为奇数

P=0表示累加器中“1”的个数为偶数

CPU随时监视着ACC中的“1”的个数,并反映在PSW中CYACF0RS0OVPRS1PSW.7PSW.0PSW.2PSW.1CY(PSW.7)进位/借位标志位。AC(PSW.6)半进位/借位标志位。F0(PSW.5)可由用户定义的标志位。RS1(PSW.4)、RS0(PSW.3)工作寄存器组选择位。该两位的四种组合状态用来选择0~3寄存器组。见下表。

CYACF0RS0OVPRS1PSW.7PSW.0PSW.6PSW.5程序状态字PSWRS1RS0工作寄存器组000组(00-07)011组(08-0F)102组(10-17)113组(18-1F)

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论