AT89S51单片机. 联系客服

发布时间 : 星期六 文章AT89S51单片机.更新完毕开始阅读bc9cabf9dcccda38376baf1ffc4ffe473268fd08

图2-5 AUXR寄存器的格式

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

双数据指针寄存器,便于访问数据存储器。 DPTR0:AT89C51单片机原有的数据指针; DPTR1:新增加的数据指针。

AUXR1的DPS位用于选择两个数据指针。当DPS=0时,选用DPTR0;当DPS=1时,选用DPTR1。 数据指针可作为一个16位寄存器来用,也可作为两个独立的8位寄存器DP0H(或DP1H)和DP0L(或DP1L)来用。 5. AUXR1寄存器

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

6. 看门狗定时器WDT

WDT包含一个14位计数器和看门狗定时器复位寄存器——(WDTRST)。

当CPU由于干扰,程序陷入死循环或跑飞状态时,WDT提供了一种使程序恢复正常运行的有效手段。 有关WDT在抗干扰设计中的应用以及低功耗模式下运行的状态,将在相应的章节中具体介绍。

上面介绍的特殊功能寄存器,除了前两个SP和B以外,其余的均为AT89S51在AT89C51基础上新增加的SFR。

位地址空间

211个寻址位的位地址,位地址范围为 00H~FFH,其中 00H~7FH 这128位处于片内RAM 字节地址 20H~2FH 单元中,如表2-5所示。其余的83个可寻址位分布在特殊功能寄存器SFR中,见表2-6。 可被位寻址的特殊寄存器有11个,共有位地址88个,5个位未用,其余83个位的位地址离散地分布于片内数据存储器区字节地址为80H~FFH的范围内,其最低的位地址等于其字节地址,且其字节地址的末位都为0H或8H。

特殊功能 位 地 址 寄存器 D7 D6 B Acc PSW IP P3 IE P2 SCON P1 TCON P0 D5 D4 D3 D2 D1 D0 字 节地 址 F7H F6H F5H F4H F3H F2H F1H F0H F0H E7H E6H E5H E4H E3H E2H E1H E0H E0H D7H D6H D5H D4H D3H D2H D1H D0H D0H — — — BCH BBH BAH B9H B8H B8H B7H B6H B5H B4H B3H B2H B1H B0H B0H AFH — — ACH ABH AAH A9H A8H A8H A7H A6H A5H A4H A3H A2H A1H A0H A0H 9FH 9EH 9DH 9CH 9BH 9AH 99H 98H 98H 97H 96H 95H 94H 93H 92H 91H 90H 90H 8FH 8EH 8DH 8CH 8BH 8AH 89H 88H 88H 87H 86H 85H 84H 83H 82H 81H 80H 80H 作为对AT89S51存储器结构的总结,图2-7为各类存储器的结构图。从图中可清楚看出各类存储器在存储器空间的位置。

图2-7 AT89S51单片机的存储器结构

AT89S51的并行I/O端口

4个双向的8位并行I/O端口,分别记为P0、P1、P2和P3,其中输出锁存器属于特殊功能寄存器。端口的每一位均由输出锁存器、输出驱动器和输入缓冲器组成,4个端口按字节输入/输出外,也可位寻址。 P0口

P0口是一个双功能的8位并行端口,字节地址为80H,位地址为80H~87H。端口的各位具有完全相同但又相互独立的电路结构,P0口某一位的位电路结构如图2-8所示。

图2-8 P0口某一位的位电路结构

1.位电路结构

P0口某一位的电路包括:

1)一个数据输出的锁存器,用于数据位的锁存。

2)两个三态的数据输入缓冲器,分别是用于读锁存器数据的输入缓冲器BUF1和读引脚数据的输入缓冲器BUF2。

3)一个多路转接开关MUX,它的一个输入来自锁存器的 端,另一个输入为地址/数据信号的反相输出。MUX由“控制”信号控制,实现锁存器的输出和地址/数据信号之间的转接。 4)数据输出的控制和驱动电路,由两个场效应管(FET)组成。

2.工作过程分析

1)P0口用作地址/数据总线

外扩存储器或I/O时,P0口作为单片机系统复用的地址/数据总线使用。 当作为地址或数据输出时,“控制”信号为1,硬件自动使转接开关MUX打向上面,接通反相器的输出,同时使与门处于开启状态。

当输出的地址/数据信息为1时,与门输出为1,上方的场效应管导通,下方的场效应管截止,P0.x引脚输出为1;当输出的地址/数据信息为0时,上方的场效应管截止,下方的场效应管导通,P0.x引脚输出为0。

输出电路是上、下两个场效应管形成的推拉式结构,大大提高了负载能力,上方的场效应管这时起到内部上拉电阻的作用。

当P0口作为数据输入时,仅从外部存储器(或I/O)读入信息,对应的“控制”信号为0,MUX接通锁存器的端。

由于P0口作为地址/数据复用方式访问外部存储器时,CPU自动向P0口写入FFH,使下方场效应管截止,上方场效应管由于控制信号为0也截止,从而保证数据信息的高阻抗输入,从外部存储器输入的数据信息直接由P0.x引脚通过输入缓冲器BUF2进入内部总线。

具有高阻抗输入的I/O口应具有高电平、低电平和高阻抗3种状态的端口。因此,P0口作为地址/数据总线使用时是一个真正的双向端口,简称双向口。 2)P0口用作通用I/O口

当P0口不作为系统的地址/数据总线使用时,此时P0口也可作为通用的I/O口使用。 作通用的I/O口时,对应的“控制”信号为0,MUX打向下面,接通锁存器的 端,“与门”输出为0,上方场效应管截止,形成的P0口输出电路为漏极开路输出。

P0口作输出口时,来自CPU的“写”脉冲加在D锁存器的CP端,内部总线上的数据写入D锁存器,并由引脚P0.x输出。

当D锁存器为1时, 端为0,下方场效应管截止,输出为漏极开路,此时,必须外接上拉电阻才能有高电平输出;当D锁存器为0时,下方场效应管导通,P0口输出为低电平。

P0口作输入口使用时,有两种读入方式:“读锁存器”和“读引脚”。

当CPU发出“读锁存器”指令时,锁存器的状态由Q端经上方的三态缓冲器BUF1进入内部总线; 当CPU发出“读引脚”指令时,锁存器的输出状态=1(即 端为0),而使下方场效应管截止,引脚的状态经下方的三态缓冲器BUF2进入内部总线。 3.P0口的特点

P0口为双功能口——地址/数据复用口和通用I/O口。

1)当P0口用作地址/数据复用口时,是一个真正的双向口,输出低8位地址和输出/输入8位数据。

2)当P0口用作通用I/O口时,由于需要在片外接上拉电阻,端口不存在高阻抗(悬浮)状态,因此是一个准双向口。

为保证引脚信号的正确读入,应首先向锁存器写1。单片机复位后,锁存器自动被置1;当P0口由原来输出转变为输入时,应先置锁存器为1,方可执行输入操作。

P0口大多作为地址/数据复用口使用,就不能再作为通用I/O口使用。 P1口

单功能的I/O口,字节地址为 90H,位地址为 90H~97H。P1口某一位的位电路结构如图2-9所示。 1.位电路结构

P1口位电路结构由以下三部分组成:

1)一个数据输出锁存器,用于输出数据位的锁存。