文章目录

  • 51单片机的组成
  • 优点
  • 各部件的功能
  • 引脚的功能
  • 1.电源引脚
  • (1)**VCC(40脚)**:+5V电源引脚
  • (2)**VSS(20脚)**:数字接地
  • 2.时钟引脚
  • (1)XTAL1(19脚)
  • (2)XTAL2(18脚):
  • 3. 控制引脚
  • (1)RST (RESET,9脚)
  • (2)EA*/VPP (31脚)
  • (3)ALE/PROG*(30脚)
  • 4. 并行I/O端口
  • P0口
  • 电路结构
  • 工作过程
  • p0口总结
  • P1口
  • p1口电路结构:
  • 1.位电路结构
  • 2.工作过程分析
  • 3.P1口的特点
  • P2口
  • P2口位电路结构
  • 1.位电路结构
  • 2.工作过程分析
  • 3.P2口的特点
  • P3口
  • P3口的位电路结构
  • 1.位电路结构
  • 2.工作过程分析
  • 3.P3口的特点
  • 时钟电路与时序
  • 时钟电路设计
  • 机器周期、指令周期与指令时序
  • 指令周期
  • 复位操作和复位电路
  • 复位操作
  • CPU
  • 运算器
  • 特殊功能寄存器PSW各位功能:
  • 控制器
  • 存储器
  • 1. 程序存储器空间
  • 2.数据存储器空间
  • 3.特殊功能寄存器SFR
  • 4.位地址空间
  • 51单片机的组成

    (1)8位微处理器(CPU
    (2)数据存储器(128B RAM
    (3)程序存储器(4KB Flash ROM
    (4)4个8位并行I/O口(P0口~P3口)
    (5)1个全双工异步串口
    (6)2个16位定时器/计数器
    (7)1个看门狗定时器
    (8)中断系统:5个中断源、5个中断向量;
    (9)特殊功能寄存器(SFR)26个;
    (10)低功耗的空闲模式和掉电模式;
    (11)3个程序加密位;

    优点

    相比AT89C51,AT89S51有
    (1)增加在线可编程功能ISP功能(In System Program),现场程序调试和修改更加方便灵活
    (2)数据指针2个,方便对片外RAM的访问过程
    (3)看门狗定时器,提高系统抗干扰能力
    (4)增加断电标志;
    (5)增加掉电状态下的中断恢复模式;

    各部件的功能

  • CPU(微处理器)
    8位,包括运算器和控制器两部分,还有位处理功能。
  • 数据存储器RAM
    128B(52子系列为256B),最多可扩64KB。片内RAM为高速RAM,可加快速度和降低功耗
  • 程序存储器(Flash ROM
    4KB Flash(AT89S52 则为8KB;AT89C55片内20KB),如不够,片外可外扩至64KB。
  • 中断系统
    5个中断源,2级中断优先权。
  • 定时器/计数器
    2个16位定时器/计数器(52子系列有3个),4种工作方式。
  • 1个看门狗定时器WDT
    当CPU由于干扰使程序陷入死循环或跑飞时,WDT可使程序恢复正常运行
  • 串行口
    全双工异步串行口,4种工作方式。可进行串行通信,扩展并行I/O口,可与多个单片机构成多机系统
  • P1口、P2口、P3口、P0口:4个8位并行I/O口。
  • 特殊功能寄存器(SFR)
  • 26个,对片内各功能部件管理、控制和监视。是各功能部件的控制寄存器和状态寄存器,映射在片内RAM区80H~FFH内。

    引脚的功能

    1.电源引脚

    (1)VCC(40脚):+5V电源引脚

    (2)VSS(20脚):数字接地

    左下脚接地,右上脚接电源

    2.时钟引脚

    (1)XTAL1(19脚)

    输入端,使用片内振荡器时,应接外部石英晶体和微调电容。外接时钟源时,该脚接外部时钟振荡器输出的信号。

    (2)XTAL2(18脚):

    片内振荡器反相放大器的输出端

  • 使用片内振荡器,该脚连接外部石英晶体和微调电容。
  • 当使用外部时钟源时,本脚悬空。
  • 3. 控制引脚

    (1)RST (RESET,9脚)

    复位信号输入端
    单片机要想复位,需要在RST加持续时间大于2个机器周期的高电平,可使单片机复位。
    正常工作应≤0.5V。

    看门狗定时器溢出输出时,该脚将输出长达96个时钟振荡周期的高电平

    (2)EA*/VPP (31脚)

    1. EA*:第一功能:允许访问外部程序存储器控制。
    2. EA*=1
      PC值≤0FFFH时,单片机读片内4KB Flash中的程序,
      PC值 >0FFFH时 (超出片内4KB Flash地址范围),转向读取片外60KB(1000H-FFFFH)程序存储器空间中的程序。
    3. EA*=0
      只读取外部程序存储器中的内容,读取地址范围0000H~FFFFH片内4KB Flash无效
    4. VPP:第二功能,对片内Flash编程,接编程电压。

    (3)ALE/PROG*(30脚)

    1. ALE:第一功能
      为访问外部存储器提供低8位地址锁存信号,将低8位地址锁存在片外地址锁存器中。

    2. PROG*:第二功能
      对片内 Flash编程的编程脉冲输入

    4. 并行I/O端口

    剩下的32个引脚都是并行I/O口引脚
    p0,p1,p2,p3共四个引脚,每个引脚8位

    4个8位并行I/O端口,为P0、P1、P2、P3。
    输出锁存器属特殊功能寄存器。
    端口组成:每位均由输出锁存器、输出驱动器和输入缓冲器组成,
    4个端口均可位寻址。

    P0口

    8位,漏极开路的双向 I/O口
    漏极开路意味着有一个高阻态
    可作为系统总线低8位地址总线及数据总线分时复用端口。
    也可作通用I/O口,需加上拉电阻,这时为准双向口。如作通用I/O输入,应先向端口写入1,可驱动8个LS型TTL负载。

    双功能的8位并行端口,字节地址为80H,位地址为80H~87H

    电路结构

    P0口位电路包括:
    (1)1个数据输出的锁存器
    (2)2个三态的数据输入缓冲器,分别是用于读锁存器数据的输入缓冲器BUF1和读引脚数据的输入缓冲器BUF2。
    (3)1个多路转接开关 MUX,它的一个输入来自锁存器的 Q*端,另一个输入为地址/数据信号的反相输出。 MUX由“控制”信号控制,实现锁存器输出和地址/数据信号间转接。
    (4)数据输出的控制和驱动电路,由2个场效应管(FET)组成。

    工作过程

    (1)P0口用作地址/数据总线
    P0口作为复用的地址/数据总线使用。
    当作为地址或数据输出时,“控制”信号为1,硬件自动使转接开关MUX打向上面,接通反相器的输出,同时使“与门” 开启。
    当输出的地址/数据信息=1,“与门”输出为1,上方场效应管导通,下方场效应管截止,P0.x引脚输出为1
    当输出的地址/数据信息=0,上方场效应管截止,下方场效应管导通,P0.x引脚输出为0。
    由上、下两个场效应管形成的推拉式结构,大大提高负载能力,上方的场效应管这时起到内部上拉电阻的作用。
    当P0口作为数据输入时,仅从外部引脚读入信息, “控制”信号为0,MUX接通锁存器Q*端
    P0口作为地址/数据复用方式访问外部存储器时,CPU自动向P0口写入FFH,使下方场效应管截止,上方场效应管由于控制信号为0也截止,从而保证数据信息的高阻抗输入,从外部输入的数据直接由P0.x引脚通过输入缓冲器BUF2进入内部总线。
    具有高阻抗输入的I/O口应具有高电平、低电平和高阻抗3种状态的端口。因此,P0口作为地址/数据总线使用时是真正的双向端口,简称双向口。

    (2)P0口用作通用I/O口
    对应的“控制”信号=0,MUX打向下面,接通锁存器的Q端,“与门”输出为0,上方场效应管截止,形成的P0口输出电路为漏极开路输出
    P0口作输出口时,CPU的“写”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并由引脚P0.x输出。
    当D锁存器为1时, Q
    端为0,下方场效应管截止,输出为漏极开路,此时,必须外接上拉电阻才能有高电平输出;当D锁存器为0时,下方场效应管导通,P0口输出为低电平。
    P0口作I/O输入使用时,两种读入方式:“读锁存器”和“读引脚”。
    当CPU发出**“读锁存器”指令时,锁存器的状态由Q端经上方的三态缓冲器BUF1进入内部总线;
    当CPU发出
    “读引脚”指令**时,锁存器的输出状态Q=1(Q*端为0),而使下方场效应管截止,引脚的状态经下方的三态缓冲器BUF2进入内部总线。

    p0口总结

    双功能口——地址/数据复用口通用I/O口
    (1)当用作地址/数据复用口时,为真正双向口
    (2)当P0口用作通用I/O口时,需在片外接上拉电阻,端口不存在高阻(悬浮)状态,是一准双向口。

    为保证正确读入引脚,应先向锁存器写1
    单片机复位后,锁存器自动被置1;
    P0口大多作地址/数据复用口,就不能再作通用I/O口使用。

    P1口

    8位,准双向I/O口,具有内部上拉电阻。
    准双向I/O口,作为I/O输入时,应先向端口锁存器写1

    p1口电路结构:


    仅作I/O口,字节地址为90H,位地址为 90H~97H

    1.位电路结构

    P1口位电路结构由以下3部分组成:
    (1)数据输出位输出锁存器。
    (2)2个三态的数据输入缓冲器BUF1和BUF2,控制读锁存器数据和读引脚数据。
    (3)数据输出驱动电路,由一个场效应管(FET)和一个片内上拉电阻组成。

    2.工作过程分析

    P1口只作为通用I/O口。
    (1)作输出时:
    若CPU输出1,Q=1,Q*=0,场效应管截止,P1.x脚输出为1
    若CPU输出0,Q=0,Q*=1,场效应管导通,P1.x脚输出为0

    (2)作输入口时,分为“读锁存器”和“读引脚” 。
    “读锁存器”,输出Q状态经输入缓冲器BUF1进入内部总线;
    “读引脚”,先向锁存器写1,使场效应管截止,P1.x引脚上的电平经输入缓冲器BUF2进入内部总线。

    3.P1口的特点

    由于内部有上拉电阻,无高阻抗输入状态,故为准双向口。
    P1口“读引脚”输入时,必须先向锁存器写入1。

    P2口

    8位,准双向I/O口,具有内部上拉电阻。
    当外扩存储器及I/O口时,P2口输出高8位地址。
    P2口也可作为通用I/O使用。当作输入时,应先向端口输出锁存器写1。
    可驱动 4个LS型TTL负载。

    双功能口,字节地址为A0H,位地址为A0H~A7H。

    P2口位电路结构

    1.位电路结构

    P2口某一位的电路包括:
    (1)1个数据输出锁存器,用于输出数据的锁存。
    (2)2个三态数据输入缓冲器BUF1和BUF2,分别用于读锁存器数据和读引脚数据的输入缓冲。
    (3)1个多路转接开关MUX,一个输入是锁存器的Q端,另一个输入是高8位地址。
    (4)输出驱动电路,场效应管+内部上拉电阻。

    2.工作过程分析

    (1)P2口用作地址总线
    在控制信号作用下,MUX与 “地址”接通。当“地址”为0时,场效应管导通,P2口引脚输出0;当“地址”线为1时,场效应管截止,P2口引脚输出1。
    (2)P2口用作通用I/O口
    在内部控制信号作用下,MUX与锁存器Q端接通。
    CPU输出1时,Q=1,场效应管截止,P2.x引脚输出1;
    CPU输出0时,Q=0,场效应管导通,P2.x引脚输出0。
    P2口输入时,分“读锁存器”和“读引脚”两种方式:
    “读锁存器”时,Q端信号经输入缓冲器BUF1进入内部总线
    “读引脚”时,先向锁存器写1,使场效应管截止,P2.x引脚上的电平经输入缓冲器BUF2进入内部总线。

    3.P2口的特点

    作为地址输出线时,P2输出高8位地址,P0输出低8位地址寻址64KB地址空间。
    作为通用I/O口时,P2口为准双向口。功能与P1口一样。
    一般情况下,P2口大多作为高8位地址总线口使用,这时就不能再作为通用I/O口使用。

    P3口

    8位,准双向I/O口,具有内部上拉电阻。
    可作为通用I/O口使用。如作通用I/O输入,应先向端口输出锁存器写入1。可驱动4个LS型TTL负载。
    P3口还可提供第二功能,定义如表2-1,应熟记。

    由于引脚数目有限,P3口增加第二功能。每1位都可分别定义为第二输入/输出功能。P3口字节地址B0H,位地址B0H~B7H。

    P3口的位电路结构

    1.位电路结构

    P3口位电路包括:
    (1)1个数据输出锁存器,锁存输出数据位。
    (2)3个三态数据输入缓冲器BUF1、BUF2和BUF3,分别用于读锁存器、读引脚数据和第二功能数据的输入缓冲。
    (3)输出驱动,由“与非门”、场效应管(FET)和内部上拉电阻组成。

    2.工作过程分析

    (1)P3口用作第二输入/输出功能
    当选择第二输出功能时,该位的锁存器需要置“1”,使“与非门”为开启状态。
    当第二输出为1时,场效应管截止,P3.x引脚输出为1;
    当第二输出为0时,场效应管导通,P3.x引脚输出为0。
    当选择第二输入功能时,该位的锁存器和第二输出功能端均应置1,保证场效应管截止,P3.x引脚的信息由输入缓冲器BUF3的输出获得。
    (2)P3口用作第一功能——通用I/O口
    用作第一功能通用输出时,第二输出功能端应保持“1”,“与非门” 开启。CPU输出1时,Q=1,场效应管截止,P3.x引脚输出为1;CPU输出0时,Q=0,场效应管导通,P3.x引脚输出为0。
    用作第一功能通用输入时,P3.x位的输出锁存器和第二输出功能均应置1,场效应管截止,P3.x引脚信息通过输入BUF3和BUF2进入内部总线,完成“读引脚”操作。
    当P3口第一功能通用输入时,也可执行“读锁存器”操作,此时Q端信息经过缓冲器BUF1进入内部总线。

    3.P3口的特点

    P3口内部有上拉电阻,无高阻抗输入态-准双向口。P3口作为第二功能的输出/输入,或第一功能通用输入,均须将相应位的锁存器置1。实际应用中,由于复位后P3口锁存器自动置1,满足第二功能所需的条件,所以不需要任何设置工作,就可以进入第二功能操作。
    当某位不作为第二功能用时,可作为第一功能通用I/O使用。
    引脚输入部分有两个缓冲器,第二功能的输入信号取自缓冲器BUF3的输出端,第一功能的输入信号取自缓冲器BUF2的输出端。

    时钟电路与时序

    时钟电路产生必需的控制信号,严格按时序执行指令。
    执行程序时,CPU首先取指令,然后译码,由时序电路产生一系列控制信号完成规定的操作。
    CPU时序信号两类:
    (1)对片内各个功能部件控制,用户无须了解;
    (2)对片外存储器或I/O端口的控制,这部分时序对分析、设计硬件接口电路至关重要。

    时钟电路设计

    时钟频率直接影响单片机运行速度,电路质量直接影响单片机系统的稳定性。常用的时钟电路有两种方式,一种是内部时钟方式,另一种是外部时钟方式

    1. 内部时钟方式
      AT89S51内部有一个用于构成振荡器的高增益反相放大器,输入端为芯片引脚XTAL1,输出端为引脚XTAL2。这两个引脚跨接石英晶体振荡器和微调电容,构成一个稳定的自激振荡器,如下图AT89S51内部时钟方式的电路。


    C1和C2的典型值通常选择为30pF。
    电容大小会影响振荡器频率高低、振荡器的稳定性和起振的快速性。

    晶振频率范围通常是1.2~12MHz。频率越高,单片机速度就越快。速度快对存储器的速度要求就高,印制电路板的工艺要求也高,即线间寄生电容要小。晶体和电容应尽可能与单片机靠近,以减少寄生电容,保证振荡器稳定、可靠工作。为提高温度稳定性,采用温度稳定性能好的电容。
    常选6MHz或12MHz的石英晶体。随着集成电路制造技术的发展,单片机的时钟频率也在逐步提高,已达33MHz。

    1. 外部时钟方式
      用现成的外部振荡器产生脉冲信号,常用于多片AT89S51同时工作,便于多片AT89S51同步,一般为低于12MHz的方波。
      外部时钟源接到XTAL1端,XTAL2端悬空,如图

    外部时钟方式电路

    1. 时钟信号的输出
      当使用片内振荡器,XTAL1、XTAL2引脚还能为应用系统中的其他芯片提供时钟,但需增加驱动能力。其引出的方式有两种,如图

    机器周期、指令周期与指令时序

    各种指令时序与时钟周期相关。

    1. 时钟周期
      时钟控制信号的基本时间单位。
      若晶振频率为fosc,则时钟周期Tosc=1/fosc。如fosc=6MHz,Tosc=166.7ns。
    2. 机器周期
      CPU 完成一个基本操作所需时间为机器周期。
      执行一条指令分为几个机器周期。每个机器周期完成一个基本操作,如取指令、读或写数据等。每12个时钟周期为1个机器周期

    1个机器周期包括12个时钟周期,分6个状态:S1~S6。每个状态又分两拍:P1和P2。因此,一个机器周期中的12个时钟周期表示为S1P1、S1P2、S2P1、S2P2、…、S6P2,如图

    1. 指令周期
      执行一条指令所需的时间。
      简单的单字节指令,取出指令立即执行,只需一个机器周期的时间。而有些复杂的指令,如转移、乘、除指令则需两个或多个机器周期。

    从指令执行时间看:

  • 单字节和双字节指令一般为单机器周期和双机器周期;
  • 3字节指令都是双机器周期;
  • 乘、除指令占用4个机器周期。
  • 指令周期

    执行一条指令所需的时间。
    简单的单字节指令,取出指令立即执行,只需一个机器周期的时间。而有些复杂的指令,如转移、乘、除指令则需两个或多个机器周期。
    从指令执行时间看:
    单字节和双字节指令一般为单机器周期和双机器周期;
    3字节指令都是双机器周期;
    乘、除指令占用4个机器周期。

    复位操作和复位电路

    单片机初始化操作,给复位脚RST加上大于2个机器周期(即24个时钟振荡周期)的高电平就使AT89S51复位。

    复位操作

    复位时,PC初始化为0000H,程序从0000H单元开始执行。
    除系统正常初始化外,当程序出错(如程序跑飞)或操作错误使系统处于死锁状态时,需按复位键使RST脚为高电平,使AT89S51摆脱“跑飞”或“死锁”状态,而重新启动程序。

    复位操作还对其他一些寄存器有影响,这些寄存器复位时的状态如表2-7。
    由表2-7,复位时,SP=07H ,而P0~P3引脚均为高电平。
    在某些控制应用中,要注意考虑P0~P3引脚的高电平对接在这些引脚上的外部电路的影响。
    例如,当P1口某个引脚外接一个继电器绕组,当复位时,该引脚为高电平,继电器绕组就会有电流通过,就会吸合继电器开关,使开关接通,可能会引起意想不到的后果。

    CPU

    由运算器和控制器构成。

    运算器

    功能:对操作数进行算术、逻辑和位操作运算
    组成:算术逻辑运算单元ALU、累加器A、位处理器、程序状态字寄存器PSW及两个暂存器等。
    1.算术逻辑运算单元ALU
    可对8位变量逻辑运算(与、或、异或、循环、求补和清零),还可算术运算(加、减、乘、除)
    ALU还有位操作功能,对位变量进行位处理,如置“1”、清“0”、求补、测试转移及逻辑“与”、“或”等。
    2.累加器A
    使用最频繁的寄存器,可写为Acc。“A”与“Acc”书写的差别,将在第3章介绍。
    作用如下:
    (1)ALU单元的输入数据源之一,又是运算结果存放单元。
    (2)数据传送多通过A,数据中转站。为解决“瓶颈堵塞”问题,AT89S51增加了一部分可不经过累加器的传送指令。
    A进位标志Cy是同时又是位处理机的位累加器
    3.程序状态字寄存器PSW
    PSW位于片内特殊功能寄存器区,字节地址为D0H。
    包含程序运行的状态信息,其中4位保存当前指令执行后的状态,供查询和判断。
    特殊功能寄存器在内存中的位置:80H~FFH
    PSW格式:

    特殊功能寄存器PSW各位功能:

    (1)Cy(PSW.7)进位标志位
    可写为C。在算术和逻辑运算时,若有进位/借位,Cy=1;否则,Cy=0。在位处理器中,它是位累加器。
    (2)Ac(PSW.6)辅助进位标志位
    BCD码运算时,用作十进位调整。即当D3位向D4位产生进位或借位时,Ac=1;否则,Ac=0。
    (3)F0(PSW.5)用户设定标志位
    由用户使用的一个状态标志位,用指令使它置“1”或清“0,控制程序流向,应充分利用。
    (4)RS1、RS0(PSW.4、PSW.3)4组工作寄存器区选择
    选择片内RAM区中的4组工作寄存器区中的某一组为当前工作寄存区。
    (5)OV(PSW.2)溢出标志位
    当执行算术指令时,用来指示运算结果是否产生溢出。如溢出,OV=1;否则,OV=0。
    (6)PSW.1位:保留位
    (7)P(PSW.0):奇偶标志位
    指令执行完,A中“1”的个数是奇数还是偶数。
    P=1,A中“1”的个数为奇数。
    P=0,A中“1”的个数为偶数。
    此标志位对串行通信有重要意义,常用奇偶检验来检验数据串行传输的可靠性。

    控制器

    任务:识别指令,控制单片机各功能部件,保证各部分自动协调工作。
    控制器包括:PC、指令寄存器、指令译码器、定时及控制逻辑电路等。
    功能:控制指令的读入、译码和执行,对各功能部件进行定时和逻辑控制。
    程序计数器PC 是一个独立的16位计数器,不可访问。单片机复位时,PC内容为0000H,从程序存储器0000H单元取指令,,执行程序。
    PC工作过程:CPU取指令时,PC内容为所取指令的地址,程序存储器按此地址输出指令字节,同时PC自动加1。

    存储器

    存储器空间分为4类:

    1. 程序存储器空间

  • 片内和片外两部分。
  • 片内4KB Flash ,编程和擦除完全是电气实现。可用通用编程器对其编程,也可在线编程。
  • 当片内4KB Flash 存储器不够用时,可外扩,最多可扩展至64KB程序存储器。
  • 51单片机中,当片内4k不够的时候可以外扩
  • 存程序和表格的固定常数
    片内为4KB的Flash ,地址为0000H~0FFFH。16位地址线,外扩的程序存储器空间最大为64KB,地址为0000H~FFFFH。使用应注意:

    1. 片内和片外两部分,访问片内还是片外程序存储器,由EA*脚电平确定。
    2. EA*=1,CPU从片内0000H开始取指令,当PC值没有超出0FFFH时,只访问片内Flash ,当PC值超出0FFFH自动转向读片外程序存储器1000H~FFFFH 内的程序。
    3. EA*=0,不理会片内4KB Flash 存储器,只执行片外程序存储器(0000H~FFFFH)中的程序。
    4. 程序存储器5个固定单元为各中断源中断入口。

    2.数据存储器空间

  • 片内与片外两部分。
  • 片内有128B RAM(52子系列为256B)。
  • 片内RAM 不够用时,在片外可扩展至64KB RAM 。
  • 片内和片外的空间地址一样,但是数据不会发生冲突, 因为访问片内和片外使用不同的指令
    1. 片内RAM
      片内数据存储器(RAM)共128个单元,字节地址为00H~7FH。结构:

      00H~1FH 4组通用工作寄存器区,每区包含8B,为R7~R0。可用指令改变RS1、RS0两位来选择。
      20H~2FH的16个单元的128位可位寻址,也可字节寻址。
      30H~7FH的单元只能字节寻址,用作存数据以及作为堆栈区。

    2. 片外数据存储器
      当片内RAM不够用时,需外扩,最多可外扩64KB的RAM。
      注意,片内RAM与片外RAM两个空间是相互独立的,片内RAM与片外RAM的低128B的地址是相同的,但由于使用的是不同的访问指令,所以不会发生冲突

    3.特殊功能寄存器SFR

    各功能部件的控制寄存器及状态寄存器。
    SFR综合反映了整个单片机基本系统内部实际的工作状态及工作方式。

    映射在片内RAM的80H~FFH区域中,共26个,有些可位寻址
    与AT89C51相比,新增5个SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST
    凡是可位寻址的SFR,字节地址末位只能是0H或8H
    若读/写未定义单元,将得到一个随机数。
    下面介绍部分SFR。

    1. 堆栈指针SP
      指示栈顶在内部RAM中的位置。
      堆栈向上生长。单片机复位后,SP为07H,堆栈从08H单元开始,由于08H~1FH单元分别是属于1~3组的工作寄存器区,最好在复位后把SP值改置为60H或更大的值,避免堆栈与工作寄存器冲突。
      堆栈主要为子程序调用和中断操作而设。保护断点和现场
      (1)保护断点。无论子程序调用还是中断服务子程序调用,最终都要返回主程序。应预先把主程序断点在堆栈中保护起来,为程序正确返回做准备。
      (2)现场保护。执行子程序或中断服务子程序时,要用到一些寄存器单元,会破坏原有内容。要把有关寄存器单元的内容保存起来,送入堆栈,这就是所谓的“现场保护”。
      两种操作:数据压入(PUSH)堆栈,数据弹出(POP)堆栈。

    2. 寄存器B
      为执行乘和除而设。不执行乘、除的情况下,可把它当作一个普通寄存器来使用。
      乘法,两乘数分别在A、B中,执行乘法指令后,乘积在BA中(高8位存到B里,低8位存到A里)
      除法,被除数取自A,除数取自B,商存放在A中,余数存B中。

    3. AUXR寄存器
      AUXR是辅助寄存器

      DISALE:ALE的禁止/允许位。
      0:ALE有效,发出脉冲;
      1:ALE仅在执行MOVC和MOVX类指令时有效,不访问外部存储器时,ALE不输出脉冲信号;
      DISRTO:禁止/允许WDT溢出时的复位输出。
      0:WDT溢出时,在RST引脚输出一个高电平脉冲;
      1:RST引脚仅为输入脚。
      WDIDLE:WDT在空闲模式下的禁止/允许位。
      0: WDT在空闲模式继续计数;
      1: WDT在空闲模式暂停计数。。

    4. 数据指针DPTR0DPTR1
      双数据指针寄存器,便于访问数据存储器
      DPTR0:AT89C51原有的数据指针,
      DPTR1:新增加的数据指针。
      寄存器AUXR1的DPS位用于选择两个数据指针。
      DPS=0,选用DPTR0;DPS=1,选用DPTR1。
      可作为一个16位寄存器来用,也可作为两个独立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)来用。

    5. AUXR1寄存器
      为辅助寄存器,格式如图2-6:
      DPS:数据指针寄存器选择位。
      0:选择数据指针寄存器DPTR0;
      1:选择数据指针寄存器DPTR1。

    6. 看门狗定时器WDT
      WDT包含一个14位计数器和看门狗复位寄存器(WDTRST)。
      WDT提供一种使程序恢复正常运行的有效手段。
      有关WDT在抗干扰设计中的应用以及低功耗模式下运行的状态,将在相应章节具体介绍。
      上面介绍的特殊功能寄存器,除SP和B以外,其余均为AT89S51在AT89C51基础上新增加的SFR。

    4.位地址空间

    211个寻址位的位地址,位地址范围为00H~FFH,其中00H~7FH,这128位处于片内RAM 字节地址20H~2FH 单元中。其余的83个可寻址位分布在特殊功能寄存器SFR

    可被位寻址的特殊寄存器有11个,共有位地址88个,5个位未用,其余83个位的位地址离散地分布于片内数据存储器区字节地址为80H~FFH的范围内,其最低位的位地址等于其字节地址,且其字节地址的末位都为0H或8H

    各类存储器的结构图

    物联沃分享整理
    物联沃-IOTWORD物联网 » 51单片机硬件结构详解

    发表评论