第1 章 8051 单片机基本结构 本章学习目标 ● 掌握8051单片机的内部结构; ● 掌握8051单片机的存储器结构; ● 掌握8051单片机的引脚功能; ● 掌握8051单片机的并行I/O 口; ● 了解时钟电路与时序; ● 了解单片机应用系统的开发过程。 1.1 单片机概述 1.单片机的概念 单片机是单片微型计算机的简称,是把组成微型计算机的各功能部件(中央处理单元 CPU、随机存取存储器RAM、只读存储器ROM、并行I/O 接口、串行通信接口、定时器/计 数器、中断系统、系统时钟及系统总线等)封装在一块尺寸有限的集成电路芯片中。由于单 片机体积小,因此很容易嵌入其他系统中,以实现各种方式的检测、计算或控制。单片机主 要应用于控制领域,它的结构与指令功能都是按照工业控制要求设计的,故又称为微控制器 (microcontrollerunit,MCU)。由于单片机在应用时通常是被控系统的核心并融入其中, 即以嵌入的方式工作,也将单片机称为嵌入式微控制器(embeddedMCU,EMCU)。在国际 上,“微控制器”的叫法更通用些,而我国习惯于使用“单片机”这一名称。 2.单片机的应用领域 由于单片机具有可靠性高、体积小、性价比高和应用灵活性强等特点,因而在工业自动 检测与控制、机器人、数据采集、智能仪器仪表、机电一体化产品、汽车电子设备、武器装备、 办公自动化设备、武器装备、智能终端、通信设备、导航系统、智能家用电器、计算机外部设 备、通信产品和玩具等领域获得广泛应用。 3.常用的单片机系列 单片机经历了8位机、16位机和32位机3个发展阶段。8位机以Intel公司的MCS-51 (microcontrolsystem)为代表;16位机以Intel公司的MCS-96为代表;32位机以意法半导 体(ST)公司采用ARM 核的STM32为代表。位数指单片机能够一次处理的数据宽度。 4.MCS-51系列单片机 自从Intel公司于20世纪80年代初推出MCS-51系列单片机以后,几乎所有MCS-51 单片机原理及应用——基于C51 和Proteus 仿真(微课版) 系列单片机都以Intel公司最早的典型产品8051 为核心,且增加了一定的功能部件,所以人 们习惯于用8051 来称呼MCS-51 系列单片机。MCS-51 系列是最早进入我国且在我国得 到广泛应用的单片机主流品种。MCS-51 系列分为两大子系列:51 子系列(基本型)和52 子系列(增强型)。51 子系列主要有8031 、8051 、8751 和8951 四种机型;52 子系列主要有 8032 、8052 、8752 和8952 四种机型。 8031 内部包括1个8位CPU 、128BRAM 、21 个特殊功能寄存器、4个8位并行I/O 口、1个全双工串行口、2个16 位定时器/计数器和5个中断源,无片内程序存储器,需扩展 外部程序存储器芯片。所有兼容8031 指令系统并且内核相似的单片机统称51 单片机。 8051 是在8031 的基础上集成有4KBROM 的片内程序存储器。 8751 与8051 相比,以4KB 的EPROM 取代了4KB 的ROM 。 8951 与8051 相比,以4KB 的E2PROM(或FlashROM)取代了4KB 的ROM 。 增强型子系列片内RAM 容量从128B 增加到256B,定时器/计数器从2个增加到3个, 中断源从5个增加到6个,8052/8752/8952 片内程序存储器扩展到8KB 。 80C51 单片机系列是在MCS-51 系列的基础上发展起来的,按照原MCS-51 系列芯片 的规则命名,如80C31 、80C51 、87C51 、89C51 。C表示采用CHMOS 工艺。CHMOS 工艺芯 片的基本特征是低功耗以及允许的电源电压波动范围较大(5V±20%), 并有三种功耗控制 方式(增加了待机和掉电保护两种方式)。习惯上仍然把80C51 系列作为MCS-51 的子 系列。 8051 单片机可分为无ROM 型和ROM 型两种。无ROM 型的芯片必须外接EPROM 才能应用(典型芯片为8031 )。ROM 型芯片又分为EPROM 型(典型芯片为8751 )、 FLASH 型(典型芯片为89C51 )、掩膜ROM 型(典型芯片为8051)和一次性可编程ROM 型 (典型芯片为97C51 )。各种型号MCS51 系列单片机的部件构成如表1. -1所示。 表1.MCS51 系列单片机的部件构成 1 系列型号片内ROM 片内RAM 定时器/计数器中断源/个串行I/O/个并行I/O 8031 无128B 2个16 位5 1 4个8位 IntelMCS-51 8051 4KBROM 128B 2个16 位5 1 4个8位 子系列8751 4KBEPROM 128B 2个16 位5 1 4个8位 89C51 4KBFLASH 128B 2个16 位5 1 4个8位 8032 无256B 3个16 位6 1 4个8位 IntelMCS-52 8052 4KBROM 256B 3个16 位6 1 4个8位 子系列8752 4KBEPROM 256B 3个16 位6 1 4个8位 89C52 4KBFLASH 256B 3个16 位6 1 4个8位 89C51 和80C51 芯片各脚的定义是完全兼容的,唯一的区别是89C51 内部集成了4K 的FlashROM,而80C51 内部是厂家做好的掩膜式ROM,除了在烧写ROM 时方式不同, 电路功能是一样的。 MCS-51 系列单片机具有64KB 的外部程序存储器寻址能力以及64KB 的外部RAM 和I/O口寻址能力。MCS-51 单片机设计上的成功及较高的市场占有率,已成为许多厂家、 公司竞相选用的对象。从20 世纪80 年代中期开始,l公司将MCS51 的内核使用权以 Inte 第 1 章 8051 单片机基本结构 专利互换或出售的形式转让给其他半导体芯片生产厂家,如ATMEL 、Philips、Dalas、 Siemens和STC宏晶等公司,故有很多公司在做以51内核为核心的单片机。 5.AT89系列单片机 ATMEL公司1994年以E2PROM技术与Intel公司80C51内核的使用权进行交换, 将Flash技术与80C51内核相结合,形成了片内带有Flash存储器的AT89C5x/AT89S5x 系列单片机。AT89系列与MCS-51系列在核心功能、总体结构、引脚以及指令系统方面完 全兼容。众多80C51衍生单片机系列中,AT89系列单片机在8位单片机市场中占有较大 的市场份额。 AT89S5x系列是ATMEL公司继AT89C5x系列之后推出的机型,表示含有串行下载 的Flash存储器。AT89C51单片机已不再生产,可用AT89S51直接替换。 6.STC系列单片机 STC系列单片机是由宏晶科技公司自主研发的基于80C51内核的单片机,在国内的应 用非常广泛。传统8051单片机的每个机器周期包含12个时钟周期,而STC单片机的每个 机器周期只需1个时钟周期,指令执行速度大大提高。 7.AVR 单片机 AVR单片机是指1997年由ATMEL公司研发的增强型内置Flash的精简指令集高速 8位单片机。AVR单片机可应用于计算机外部设备、工业实时控制、仪器仪表、通信设备和 家用电器等各个领域。 8.STM32单片机 STM32是意法半导体公司基于ARMCortex-M内核开发的32位单片机。 9.数制及转换 数制是计数的方法。计算机中的数制有二进制、十进制和十六进制三种。部分十进制 数、二进制数及十六进制数对照表如表1. 2所示。 表1.2 十进制数、二进制数及十六进制数对照表 十进制十六进制二进制十进制十六进制二进制 0 0 0000 8 8 1000 1 1 0001 9 9 1001 2 2 0010 10 A 1010 3 3 0011 11 B 1011 4 4 0100 12 C 1100 5 5 0101 13 D 1101 6 6 0110 14 E 1110 7 7 0111 15 F 1111 10.RTX51 RTX51是基于8051的嵌入式系统的实时操作系统,由KeilSoftware公司开发。 RTX51的最新版本是RTX51TinyV3,发布于2010年。RTX51提供了一系列的功能和服 务,如任务调度、时间管理、内存管理和通信机制等。它支持多任务操作,允许用户编写并行 程序,以增强嵌入式系统的实时性能和可靠性。RTX51具有高度可定制化的特点,用户可 以根据特定应用程序的需求进行调整。此外,它还提供了许多示例程序,这些示例程序可以 帮助用户快速上手,并为他们提供了一个起点,以构建更复杂的应用程序。本书内容不涉 及RTX51。 1.2 8051 单片机的内部结构 8051单片机把基本功能部件都集成在一个集成电路芯片上。8051单片机的内部宏观 结构如图1.1所示,主要由10个部件(CPU、ROM、RAM、并行I/O 口、串行I/O 口、定时 器/计数器、中断系统、时钟电路、位处理器和特殊功能寄存器)以及系统总线组成。 图1.1 8051单片机的内部宏观结构 图1.2 8051单片机的内部微观结构 8051单片机的内部微观结构如图1.2所示。各个功能部件通过片内总线连接。总线有 4 单片机原理及应用——基于C51 和Proteus 仿真(微课版) 三种:①地址总线(addressbus,AB),用来传送存储单元的地址;②数据总线(databus, DB),用来传送数据和操作码;③控制总线(controlbus,CB),用来传送各种控制信号。总 线结构减少了单片机的连线和引脚,提高了集成度和可靠性。 下面结合图1.1和图1.2分别对各个功能部件进行介绍。 1.3 CPU CPU(centralprocessingunit,中央处理器)是单片机的核心部件,是一个8位微处理 器,用于完成各种运算和控制操作。CPU 由运算器、控制器和面向控制的位处理器组成。 CPU 的处理速度以每秒执行多少条指令衡量,常用的单位是MIPS(millioninstructionsper second)。 1.3.1 运算器 运算器包括算术逻辑单元(arithmeticandlogicunit,ALU)、暂存寄存器(TMP1、TMP2)、 累加器(ACC)、B寄存器和程序状态字寄存器(PSW)等部件。运算器以ALU为核心。 ALU 主要用于完成8位二进制数的算术运算和逻辑运算,并根据运算结果设置PSW 中的相关位。算术运算包括加、减、乘、除、增量、减量、十进制调整和比较等。逻辑运算包括 与、或、非和异或等。 累加器A 是CPU 中使用非常频繁的一个8位寄存器,既是ALU 单元的输入数据源之 一,又是ALU 运算结果的存放单元。数据传送时通常都会通过累加器A,A 相当于数据的 中转站。 PSW(programstatusword,程序状态字寄存器)包含了程序运行状态的信息。其中的 进位标志位CY比较特殊,它同时是位处理器的位累加器。 1.3.2 控制器 控制器是单片机的控制核心,它负责从程序存储器中取出指令并对指令进行译码和执 行,发出控制信号对各功能部件进行控制。控制器包括:程序计数器(programcounter, PC)、指令寄存器(instructionregister,IR)、指令译码器(instructiondecoder,ID)、数据指针 寄存器(datapointerregister,DPTR)、栈指针(stackpointer,SP)、地址寄存器(address register,AR)、缓冲器以及时序与控制电路等。 (1)程序计数器PC:一个独立的16位计数器,用来存储下一条要执行的指令的地址。 在单片机中,指令序列存储在程序存储器中,每条指令都有一个唯一的地址。当CPU 需要 执行指令时,它会按照PC所指向的地址从程序存储器中取出一条指令并存储在指令寄存 器IR,PC的值会自动增加刚被取出指令长度(指令的字节数),即指向下一条指令。单片机 复位时,PC内容为0000H,从程序存储器0000H 单元取指令,开始执行程序。 PC递增器是程序计数器PC中的一个模块,主要用于在单片机中执行程序时自动递增 PC寄存器中的值。当CPU 将指令从程序存储器读出并存储在IR中时,PC递增器会将PC 寄存器中的值加上一个固定值,以便获取下一条将要执行指令的地址。PC递增器在单片 5 第1 章 8051 单片机基本结构 机中起着非常重要的作用,它使CPU 能够按照指令序列的顺序执行程序。 (2)指令寄存器IR:用于暂存当前正在执行的指令。 (3)指令译码器ID:当指令送入IR后,由ID对该指令进行译码,CPU 根据译码器输 出的电平信号使定时控制电路产生执行该指令所需的各种控制信号。 (4)时序电路:发出的时序信号用于对片内各个功能部件以及片外存储器或I/O 端口 的控制。 (5)控制电路:完成指挥控制工作,协调单片机各部件正常工作。 (6)栈指针SP:用来存放栈顶元素的地址。51单片机的栈位于片内RAM 中,而且属 于递增型满栈,复位后SP被初始化为07H,使得栈实际上由08H 单元开始。 (7)数据指针寄存器DRTR:一个16位寄存器,由高字节DPH 和低字节DPL组成, 用来存放16位数据存储器的地址,以便对片外64KB的RAM 区进行寻址操作。 (8)地址寄存器AR:用于存放程序或数据存储器的地址。当CPU 需要访问程序或数 据存储器中的某个位置时,它首先将该位置的地址放入AR 中。然后,CPU 使用AR 中的 地址来访问该位置中的数据。 (9)缓冲器:①控制信号放大,当单片机控制输出的电流或电压不能满足外部设备的 要求时,缓冲器可以放大控制信号,使其能够驱动外部设备。②保护单片机控制器,当外部 设备反向电压或噪声等干扰信号进入单片机控制器时,缓冲器可以充当隔离器,防止这些干 扰信号对单片机控制器造成损害。 单片机执行指令是在控制电路的控制下进行的。首先从程序存储器中读出指令,送到 指令寄存器保存,然后送到指令译码器进行译码,译码结果送到定时控制逻辑电路,由定时 控制逻辑电路产生各种定时信号和控制信号,再送到系统的各个部件进行相应的操作。这 就是执行一条指令的全过程。 1.3.3 位处理器 单片机主要用于控制,因此需要有较强的位处理能力。在8051单片机中,与字节处理 器相对应,还特别设置了一个位处理器。位处理器又称布尔处理器。位处理器的功能是通 过ALU 实现的,因此在图1.2中没有画出。位处理器以PSW 寄存器中的进位标志位CY 为累加位,可进行置位、复位、取反、等于0转移、等于1转移以及累加位CY 与可寻址位之 间的比特数据传送、逻辑与、逻辑或等位操作。 1.4 8051 单片机的存储器结构 1.4.1 8051存储器结构 存储器用于存储程序和数据。哈佛结构和冯·诺依曼结构是计算机组成中的两种基本 结构。哈佛结构是指将计算机的存储器分为程序存储器和数据存储器两部分,程序存储器 和数据存储器有各自独立的地址空间。哈佛结构在嵌入式系统和信号处理等领域得到广泛 应用。冯·诺依曼结构是将程序和数据存储在同一个存储器中,这种结构被广泛应用于个 6 单片机原理及应用——基于C51 和Proteus 仿真(微课版) 第 1 章 8051 单片机基本结构 人计算机、服务器等通用计算机系统中。8051 单片机在存储器的配置上采用哈佛结构,如 图1. 3所示。 图1. 38051 单片机的存储器结构 8051 在物理结构上有4个存储空间:片内程序存储器、片外程序存储器、片内数据存储 器和片外数据存储器。 从用户使用的角度看,8051 单片机有3个存储空间:片内外统一编址的64KB 程序存 储器(用16 位地址)、256B 片内数据存储器(用8位地址)和64KB 片外数据存储器(用16 位地址)。访问这3个不同的存储空间时应采用不同的指令形式(MOV 、MOVX 、MOVC), 将在第3章介绍。 1.2 程序存储器 4. 程序存储器用于存放程序代码和表格之类的固定常数。80C51 片内程序存储器为4KB (0000H~0FFFH)的掩膜ROM,89C51 片内程序存储器为4KB 的Flash存储器。程序存 储器有16 位地址线,当片内程序存储器不够用时,可在片外扩展程序存储器,最多可扩展至 64KB(0000H~FFFFH )。 注意:本书后续章节中,为了描述方便,有些地方使用ROM 表示程序存储器,从而不 明确指出是ROM 、EPROM 和FLASH 芯片中的哪一种。 在设计单片机应用系统时要注意以下两个问题。 1.EA 引脚电平的确定 对于80C51 的0000H~0FFFH 地址空间来说,访问片内还是片外程序存储器,是由 EA 引脚电平确定的。 EA=1(高电平): 当读取0000H~0FFFH 地址空间中的内容时,访问的是片内程序存 储器;当读取1000H~FFFFH 地址空间中的内容时,访问的是片外程序存储器。 EA=0(低电平): 只访问片外程序存储器(0000H~FFFFH)中的内容,忽略片内程序 存储器。 2. 特殊功能地址段 在程序存储器的开始部分定义一段具有特殊功能的地址段,用作单片机复位地址和各 单片机原理及应用——基于C51和Proteus仿真(微课版) 种中断服务程序的入口地址。程序存储器中的特殊地址及其功能如表1. 3所示。 表1.程序存储器中的特殊地址及其功能 3 特殊地址功能说明或中断源特殊地址功能说明或中断源 0000H 复位地址001BH 定时器/计数器T1 0003H 外部中断0 0023H 串行口 000BH 定时器/计数器T0 002BH 定时器/计数器T2(8052 才有) 0013H 外部中断1 8051 单片机复位后,程序计数器PC 的内容为0000H,所以CPU 必须从程序存储器地 址0000H 处开始执行程序,因此称0000H 为复位地址。由于外部中断0的中断服务程序 入口地址为0003H,为使主程序不与外部中断0的中断服务程序发生冲突,用汇编语言编程 时,一般在0000H 处存放一条绝对跳转指令,用来将执行流程转向主程序的入口地址。 除0000H 外,其余6个特殊地址分别对应6种中断源的中断服务程序的入口地址。在 程序设计时,通常会在这些入口地址处存放一条绝对跳转指令,用来将执行流程转向真正的 中断服务程序的入口地址。因为两个中断服务程序入口地址的间隔仅有8字节单元,不足 以存放一个完整的中断服务程序。中断服务程序的设计将在第6章介绍。 注意:本书后续章节使用的是AT89C51 单片机,片内程序存储器为8KB 的Flash存 储器。 1.3 片内数据存储器 4. AT89C51 单片机片内RAM 有256 字节的地址空间,地址范围是00H~FFH,分为两 部分:低128B(00H~7FH )、高128B(80H~FFH )。00H~7FH 地址空间是直接寻址区 (DATA 空间),80H~FFH 的地址空间是间接寻址区(IDATA 空间), 由于00H~7FH 地 址空间也可以间接寻址,因此00H~7FH 地址空间也可以是间接寻址区( IDATA 空间)。 直接寻址区(00H~7FH)分为工作寄存器区、位寻址区和数据缓冲区。 1. 工作寄存器区 工作寄存器也称为通用寄存器,是供用户编程时使用,用于临时存储8位数据信息。 00H~1FH 地址空间为工作寄存器区,共有32 个通用寄存器,划分为4组,每组包含8 个寄存器,依次命名为R0~R7 。每个工作寄存器组都可被选为CPU 的当前工作寄存器。 在某一时刻,CPU 只能使用其中一组工作寄存器, 见表1.中的 具体哪一组是由PSW( 8) RS0 和RS1 决定。可通过编程的方式改变RS1 、RS0 的值来选择使用哪一组工作寄存器。 程序中不使用的工作寄存器组中的存储单元可以作一般的数据缓冲区使用。 工作寄存器组的选择、工作寄存器和RAM 地址对照表如表1. 4所示。 表1.4 工作寄存器组的选择、工作寄存器和RAM 地址对照表 寄存器组RS1 RS0 R0 R1 R2 R3 R4 R5 R6 R7 片内RAM 地址 第0组0 0 00H 01H 02H 03H 04H 05H 06H 07H 00H~07H 第1组0 1 08H 09H 0AH 0BH 0CH 0DH 0EH 0FH 08H~0FH 第2组1 0 10H 11H 12H 13H 14H 15H 16H 17H 10H~17H 第3组1 1 18H 19H 1AH 1BH 1CH 1DH 1EH 1FH 18H~1FH 第 1 章 8051 单片机基本结构 2. 位寻址区(20H~2FH) 单片机CPU 不仅具有字节寻址功能,而且具有位寻址功能。8051 共有211 个可寻址 位,构成了位地址空间。它们位于内部RAM(共128 位)和特殊功能寄存器区(共83 位) 中。片内RAM 中的20H~2FH 地址空间为位寻址区,共有16 字节,其中每字节的每一位 都规定了位地址,共有16×8=128(位), 地址范围是00H~7FH 。这16 个RAM 单元具有 双重功能,既可以像普通RAM 单元一样按字节寻址,也可以按位单独寻址。 位寻址区(20H~2FH)如表1. 5所示。 表1.位寻址区( 5 20H~2FH) 字节位地址 地址D7 D6 D5 D4 D3 D2 D1 D0 2FH 7F 7E 7D 7C 7B 7A 79 78 2EH 77 76 75 74 73 72 71 70 2DH 6F 6E 6D 6C 6B 6A 69 68 2CH 67 66 65 64 63 62 61 60 2BH 5F 5E 5D 5C 5B 5A 59 58 2AH 57 56 55 54 53 52 51 50 29H 4F 4E 4D 4C 4B 4A 49 48 28H 47 46 45 44 43 42 41 40 27H 3F 3E 3D 3C 3B 3A 39 38 26H 37 36 35 34 33 32 31 30 25H 2F 2E 2D 2C 2B 2A 29 28 24H 27 26 25 24 23 22 21 20 23H 1F 1E 1D 1C 1B 1A 19 18 22H 17 16 15 14 13 12 11 10 21H 1F 1E 0D 0C 0B 0A 09 08 20H 07 06 05 04 03 02 01 00 3. 数据缓冲区 30H~7FH 地址空间为数据缓冲区,共80 个单元,只能字节寻址,用于临时存取数据 或作为栈区。中断系统中的栈一般都设在该区。 1.4 片外数据存储器 4. 当片内128B 或256B 的RAM 不够用时,需使用片外数据存储器(XDATA 空间), 最多 可扩展64KB 的片外RAM 。片内RAM 与片外RAM 两个地址空间是相互独立的,片内 RAM 与片外RAM 的低128B 或低256B 的地址是相同的,但由于使用不同的访问指令,所 以不会发生冲突。在片外RAM 中,数据区和扩展的I/O端口是统一编址的,使用的指令也 完全相同,因此,用户在设计单片机应用系统时,要合理进行外部RAM 和I/O端口的地址 分配,保证地址译码的唯一性。 单片机原理及应用——基于C51 和Proteus 仿真(微课版) 4.特殊功能寄存器 1.5 CPU 对各个功能部件的控制采用特殊功能寄存器(specialfunctionregister,SFR)的集 中控制方式,用于控制、管理单片机内部算术逻辑部件、并行I/O口、串行I/O口、定时器/ 计数器、中断系统等功能模块的工作。SFR 实质上是各个外围部件的控制寄存器和状态寄 存器,反映单片机内部实际的工作状态及工作方式。 AT89C51 单片机片内RAM 有256 字节的地址空间,其中高128 字节的地址空间与片 内SFR 占据的地址空间重叠,都为80H~FFH 。虽然地址相同,但它们是两个不同的区域, 一个是RAM 区(间接寻址), 另一个是特殊功能寄存器区(直接寻址)。 SFR 的地址映射到片内RAM 区80H~FFH 地址空间中。SFR 的个数与单片机的型 号有关,51 子系列有21 个SFR,52 子系列有26 个SFR,它们离散地分布在80H~FFH 的 地址空间中,SFR 没有占用的RAM 单元是不存在的,访问这些地址是没有意义的。 AT89C51 共有21 个特殊功能寄存器,按其使用功能可分为5类:CPU 控制寄存器 (ACC 、B、PSW 、SP 、DPL 、DPH )、中断控制寄存器(IP 、IE )、定时器/计数器(TMOD 、 TCON 、TL0 、TH0 、TL1 、TH1 )、并行I/O口(P0 、P1 、P2 、P3)和串行口控制(SCON 、SBUF 、 PCON )。这些SFR 的助记符、名称和地址如表1. 6所示。带*号的SFR 的字节地址末位 是0H 或8H(地址能够被8整除), 每个位都可位寻址。注意,如果读/写未定义的单元,将 得到一个随机数。对SFR 只能采用直接寻址方式,书写时既可以使用寄存器符号,也可以 使用寄存器单元地址。 表1.名称和地址 6 SFR 的助记符、 SFR 符号SFR 名称地址SFR 符号SFR 名称地址 *B B寄存器F0H TH0 定时器/计数器0(高字节) 8CH *ACC 累加器E0H TL1 定时器/计数器1(低字节) 8BH *PSW 程序状态字D0H TL0 定时器/计数器0(低字节) 8AH *IP 中断优先级控制寄存器B8H TMOD 定时器/计数器工作方式寄存器89H *P3 P3 锁存器B0H *TCON 定时器/计数器控制寄存器88H *IE 中断允许控制寄存器A8H PCON 电源控制及波特率选择寄存器87H *P2 P2 锁存器A0H DPH 数据指针DPTR 高8位83H SBUF 串行数据缓冲器99H DPL 数据指针DPTR 低8位82H *SCON 串行口控制寄存器98H SP 栈指针81H *P1 P1 锁存器90H *P0 P0 锁存器80H TH1 定时器/计数器1(高字节) 8DH 可被位寻址的特殊寄存器有11 个,共有88 个位地址,5个位没有被使用,其余83 个位 的位地址离散地分布于片内数据存储器区字节地址为80H~FFH 的范围内,其最低的位地 址等于其字节地址,且其字节地址的末位都为0H 或8H 。 7所示。 位寻址区(80H~FFH)或SFR 中的位地址分布如表1. 10