03第二章:MCS-51单片机的硬件结构(2)
单片机第二章MCS-51系列单片机硬件结构

3. P1口(P1.0~P1.7,1脚~8脚)
P1口仅用作I/O使用,它也是自带上拉电阻的8 位准双向I/O接口,每一位可驱动4个LSTTL负载。 当P1口作为输入接口时,应先向口锁存器写“1”。 4. P3口(P3.0~P3.7,10脚~17脚)
除了和P1口的功能一样外, P3口的每一引脚还具有第二功能。
第二章 单片机的硬件结构
2.1 MCS-51单片机的总体结构
2.2 微处理器 2.3 MCS-51存储器 2.4 MCS-51基本电路及引脚电路 2.5 实例演练
2.1MCS-51单片机的总体结构
一,8031芯片实照
二,MCS-51单片机外形是一个40脚的双列直插式集成块:
P10 P1.1 P12 P1.3 P1.4 P1.5 P1.6 P1.7 RST/VPD RXD/P3.0 TXD/P3.1 INT0/P3.2 INT1/P3.3 T0/P3.4 T1/P3.5 WR/P3.6 RD/P3.7 XTAL2 XTAL1 Vss 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 40 39 38 37 36 35 34 33 32 31 30 29 28 27 26 25 24 23 22 21 Vcc P0.0 P0.1 P0.2 P0.3 P0.4 P0.5 P0.6 P0.7 EA/VPP ALE/PROG PSEN P2.7 P2.6 P2.5 P2.4 P2.3 P2.2 P2.1 P2.0
ALE地址锁存使能信号输出端。存取 片外存储器时,用于锁存低8位地址。 PROG是对于EPROM型单片机,在 EPROM编程期间,此引脚用于输入编 程脉冲。
ALE/ PROG (30脚)
控制 引脚
第二章--MCS-51单片机的结构

基 本 组 成
5)布尔处理器 MCS-51的CPU是8位微处理器,它还具有1位微处理器的 功能。布尔处理器具有较强的布尔变量处理能力,以位 (bit)为单位进行运算和操作。它以进位标志(Cy)作为累 加位,以内部RAM中所有可位寻址的位作为操作位或存储 位,以P0~P3的各位作为I/O位,同时布尔处理器也有自 己的指令系统。
FFFFH 片外ROM 1000H 0FFFH 0FFFFH
片外RAM或 I/O口
片内ROM
EA =1
片外ROM
EA =0
0000H
0000H
基 本 组 成
图2-2 8051存储器配置图
从用户使用的角度看,8051存储空间分为三类:片内、 片外统一编址0000H~0FFFFH的64KB的程序存储器地址 空间;256字节数据存储器地址空间,地址从00H~0FFH; 64KB片外数据存储器或I/O口地址空间,地址也从 0000H~0FFFFH。上述三个空间地址是重叠的,即程序 存储器中片内外低4KB地址重叠,数据存储器与程序存储 器64KB地址全部重叠,虽然地址重叠,但由于采用了不 同的操作指令及控制信号EA、PSEN的选择,因此不会发生 混乱。
基 本 组 成
在任一时刻,CPU只能使用其中的一组寄存器,并且 把正在使用的那组寄存器称为当前寄存器组。当前寄存器 组由程序状态寄存器PSW中RS1、RS0位的状态组合决定。 非当前寄存器组可作为一般的数据缓冲器使用。
基 本 组 成
图2-3 8051内部数据寄存器配置图
位寻址区(20H~2FH) 内部RAM的20H~2FH单元为位寻址区 ,这16个单元 (共计128位)的每一位都有一个8位表示的位地址,位寻址 范围为00H~7FH。位寻址区的每一个单元既可作为一般 RAM单元使用,进行字节操作,也可以对单元中的每一 位进行位操作。
单片机课后习题答案

第一章计算机基础知识1-1微型计算机主要由哪几部分组成?各部分有何功能?答:一台微型计算机由中央处理单元(CPU)、存储器、I/O接口及I/O设备等组成,相互之间通过三组总线(Bus):即地址总线AB、数据总线DB和控制总线CB来连接。
CPU由运算器和控制器组成,运算器能够完成各种算术运算和逻辑运算操作,控制器用于控制计算机进行各种操作。
存储器是计算机系统中的“记忆”装置,其功能是存放程序和数据。
按其功能可分为RAM和ROM。
输入/输出(I/O)接口是CPU与外部设备进行信息交换的部件。
总线是将CPU、存储器和I/O接口等相对独立的功能部件连接起来,并传送信息的公共通道。
1-3什么叫单片机?其主要由哪几部分组成?答:单片机是指把CPU、RAM、ROM、定时器/计数器以及I/O接口电路等主要部件集成在一块半导体芯片上的微型计算机。
1-4在各种系列的单片机中,片内ROM的配置有几种形式?用户应根据什么原则来选用?答:单片机片内ROM的配置状态可分四种:(1)片内掩膜(Mask)ROM型单片机(如8051),适合于定型大批量应用产品的生产;(2)片内EPROM型单片机(如8751),适合于研制产品样机;(3)片内无ROM型单片机(如8031),需外接EPROM,单片机扩展灵活,适用于研制新产品;(4)EEPROM(或FlashROM)型单片机(如89C51),内部程序存储器电可擦除,使用更方便。
1-5写出下列各数的另两种数制的表达形式(二、十、十六进制)1100010100111001000111100100100111111101101100111011011101011119862H200394E47H585249H162363F6CH291D14955D71-6写出下列各数的BCD参与:59:01011001,1996:0001100110010110,4859.2:0100100001011001.0010389.41:001110001001.01000001第二章MCS-51单片机的硬件结构2-1 8052单片机片内包含哪些主要逻辑功能部件?答:8052单片机片内包括:①8位中央处理器CPU一个②片内振荡器及时钟电路③256B数据存储器RAM。
第2章MCS--51系列单片机的结构及原理

(4)工作寄存器组选择位RS1、RS0(PSW.4,
PSW.3): RS1、RS0与工作寄存器组的对应关系
如下:
RS1 RS0 工作寄存器组 片内RAM地址
00
第0组
00H~07H
01
第1组
指令执行后,A=D1H最高位无进位,故C=0;低半字节有进位,AC=1; OV=0 1=1,发生溢出;A中1的个数为偶数,故P=0。
CPU时序
一.振荡器
CPU执行指令的一系列动作是在时序电路的控制下一拍一拍进行的。 其节拍信号由振荡器产生,MCS--51系列单片机的内部有一个高增益的反 相放大器。外接晶体后可构成自激振荡器产生节拍信号,接法见图2-1, 也可使用片外振荡器,采用不同工艺制造的单片机芯片接法不同:
RST/VPO:双功能引脚,在单片机工作期间, 当此引脚上出现连接2个机器周期的高电平时可 实现复位操作,详见2.4节。
在Vcc掉电期间,若该引脚接备用电源 (+5v),可向片内RAM供电,以保存片内RAM中 的信息。
2.2 MCS—51系列单片机的微处理器与CPU时序
运算器由算逻运算单元ALU、累加器A、B寄存器、暂存器1、 暂存器2、及程序状态字PSW构成。程序状态字PSW是1个8位 的专用寄存器,用于存放程序运行中的各种状态信息,可 进行位寻址,
P
图2—3 程序状态字各位的含义
(1)进位标志C(PSW.7);很多算术逻辑运算指令执行 后都会影响进位标志C。例如加减运算,若运算结果有进 位或借位,则C=1,若无,则C=0。可用专门的指令或硬件 将C置位或清零,在进行位操作时,C又起着位累加器的作 用,类似于累加器A。
MC51单片机的硬件结构

取指令
分析
执行
2.1 MCS - 51系列单片机旳基本构造
单片机是一种大规模集成电路芯片,其上集成有CPU、 存储器、I/O口(串行口、并行口)、其他辅助电路(如中断 系统,定时/计数器,振荡电路及时钟电路等)。
其基本构造框图如下:
VCC VS S
RAM地 址 寄存器
最终止果
原始数据
输入设备 与程序
数
中间成果/
据
最终成果
存储器 最终
成果
输出设备
程 序
控制器
计算机系统旳硬件构成框图
单片机 微机 返回
CPU
存储器
DB
AB CB I/O口
微机旳构造框图
单片机 计算机 返回
2.2 中央处理器CPU
DPTR RAM PC ROM
SP
A TMP B
PSW ALU
P0
P0
当A中1旳个数为奇数时, P =1; 当A中1旳个数为偶数时, P =0。
D0 P
返回
DPTR RAM PC ROM
P0
SP
A TMP B
P1
P2
PSW
P3
1、SP称为堆栈指针,8位寄存器
2、 SP用来存储堆栈栈顶旳地址。
X1 X2
振P 荡 L IDIR
A
串口
中断
定时
PSEN RST ALE EA
P2
P2
P3
P3
X1 X2
振P 荡 L IDIR
A
串口 中断
定时
PSEN RST ALE EA
80C51单片机旳内部构造
返回
DPTR RAM PC ROM
51单片机汇编语言4-MCS51硬件结构-2

第1章
单片机硬件系统
(2) PC的内容自动加1变为0001H,指向下一个指令字节。 (3) 地址寄存器中的内容0000H通过地址总线送到存储器,
经存储器中的地址译码选中0000H单元。 (4) CPU通过控制总线发出读命令。 (5) 被选中单元的内容74H送内部数据总线,该内容通过 内部数据总线送到单片机内部的指令寄存器。至此,取指令 过程结束,进入执行指令过程。
第1章
单片机硬件系统
MCS-51单片机片内有256B的数据存储器,它分为低
128B的片内RAM区和高128B的特殊功能寄存器区。低128B 的片内RAM又可分为工作寄存器区(00H~1FH)、位寻址区 (20H~2FH)和数据缓冲器(30H~7FH)。累加器A、程序状态 寄存器PSW、堆栈指针SP、数据存储器地址指针DPTR、程 序存储器地址指针PC,均有着特殊的用途和功能。 MCS-51单片机有4个8位的并行I/O口,它们在结构和特 性上基本相同。当需要片外扩展RAM和ROM时,P0口分时 传送低8位地址和8位数据,P2口传送高8位地址,P3口常用 于第二功能,通常情况下只有P1口用作一般的输入/输出引脚。
第1章
单片机硬件系统
图1.15 MCS-51单片机的取指/执行时序 (a) 单片机的机器周期;(b) 单字节单周期指令,如INC A;(c) 双字节单 周期指令,如ADD A,data;(d) 单字节双周期指令,如INC DPTR
第1章
单片机硬件系统
1.5 单片机的工作过程
单片机的工作过程实质上是执行用户编制程序的过程。 一般程序的机器码都已固化到存储器中,例如实训1中的步骤 (3),因此开机复位后,就可以执行指令。执行指令又是取指 令和执行指令的周而复始的过程。 例如指令MOV A,#56H表示把立即数56H这个值送入A 累加器。该指令对应的机器码是74H、56H,假设它们已存在 0000H开始的单元中。下面我们来说明单片机的工作过程。 接通电源开机后,PC =0000H,取指令过程如下: (1) PC中的0000H 送到片内的地址寄存器。
第2章 MCS-51单片机的内部结构
当3个准双向I/O口作输入口使用时,要向该口先写“1”, 个准双向I/O口作输入口使用时,要向该口先写“ I/O口作输入口使用时 P3.5 T1 计数器1外部输入 计数器 外部输入 P3.6 WR 外部数据存储器 另外准双向I/O口无高阻的“浮空”状态。 I/O口无高阻的 另外准双向I/O口无高阻的“浮空”状态。
2.4.2 内部数据存储器 共128个字节, 128个字节, 128个字节 字节地址为00H 7FH。 00H~ 字节地址为00H~7FH 00H~1FH:32个单 00H~1FH:32个单 元,是4组通用工作 寄存器区 20H~2FH:16个单 20H~2FH:16个单 可进行128 128位的 元,可进行128位的 位寻址 30H FH: 用户RAM 30H ~ 7FH : 用户 RAM 区 , 只能进行字节寻 址 , 用作数据缓冲区 以及堆栈区。 以及堆栈区。
I/O口引脚 2.2.3 I/O口引脚 P0口 双向8位三态I/O I/O口 地址总线( (1) P0口:双向8位三态I/O口,地址总线(低8位)及 数据总线分时复用口,可驱动8个LS型TTL负载。 数据总线分时复用口,可驱动8 LS型TTL负载。 负载 P1口 准双向I/O I/O口 可驱动4 LS型TTL负载 负载。 (2) P1口:8位准双向I/O口,可驱动4个LS型TTL负载。 转义引 引脚 与地址总线 ( 高 8 位 ) 复 功能说明 准双向I/O I/O口 (3) P2口:8位 准双向I/O 口, 与地址总线( 脚 可驱动4 LS型TTL负载 负载。 用,可驱动4个LS型TTL负载。RXD 串行数据接收端 P3.0 准双向I/O I/O口 双功能复用口,可驱动4 (4) P3口:8位 准双向I/O 口, 双功能复用口 ,可驱动 4 P3.1 TXD 串行数据发送端 P3.2 INT0 外部中断0请求 外部中断 请求 LS型TTL负载 负载。 个LS型TTL负载。 注意:准双向口与双向三态口的差别。 注意:准双向口与双向三态口的差别。
第2章 MCS-51单片机的硬件结构
(2)通用I/O接口功能
P2口作准双向口使用,与P1口相同,也有输入、 输出、端口操作三种工作方式。
3.P2口负载能力
4个LSTTL负载,输出电流≥ 400uA
三、P3口
1. P3口1位结构原理图如图所示
P 奇偶标志
A中1的个数若为奇数P=1,否则P=0
例如:MOV A, #7FH ADD A, #4FH 0111,1111B + 0100,1111B 1100,0110B
结果:(A)=C6H, C=0,AC=1,OV=1,P=0
2.控制器 3.片内存储器
4.4个I/O接口
5.串行接口
6.定时/计数器
先片内、后片外,片内片外连续,二者 一般不作重叠。 EA=0,只访问片外程序存储器 EA=1,先访问片内程序存储器。当PC >0FFFH(51子系统)或PC>1FFFH(52子系统) ,再去访问片外程序存储器。
存储器编址图如下图所示
0000H
片内ROM /EA=1 0FFFH 0FFFH 1000H 片外ROM 0000H 片外ROM /EA=0 00H 7FH 80H FFH 片外RAM 片内RAM 0000H
有5个中断源
11.111条指令,含乘、除法,有很强
的位处理能力 12.片内采用单总线结构,单一+5V
电源
52系列主要有8032、8052两种机型。 与51系列不同在于:片内数据存储器增 至256个字节,3个16位定时/计数器,6 个中断源。
二、内部结构
MCS-51系列单片机的内部结构如 下图所示:
1 2 . . .
单片微机原理系统设计与应用课后部分习题答案
第二章 MCS-51单片机硬件结构2-5. 8051单片机堆栈可以设置在什么地方?如何实现?答:8051单片机堆栈可以设置在内部RAM中。
当系统复位时,堆栈指针地址为07H,只要改变堆栈指针SP的值,使其为内部RAM中地址量,就可以灵活的将堆栈设置在内部RAM中。
2-16. 8051单片机内部数据存储器可以分为几个不同的区域?各有什么特点?2-21.复位后,CPU内部RAM各单元内容是否被清除?CPU使用的是哪一组工作寄存器?它们的地址是什么?如何选择确定和改变当前工作寄存器组?答:复位并不清除CPU内部RAM单元中内容,掉电会清除内部RAM 中内容。
复位以后因为PSW=00H,所以选择工作寄存器0区,所占地址空间为00H-07H。
工作寄存器组可以查询PSW中的RS1(PSW.4)和RS0(PSW.3)来确定,改变当前RS1和RS0的值即可改变当前工作寄存器组。
2-22.指出复位后工作寄存器组R0-R7的物理地址,若希望快速保护当前工作寄存器组,应采取什么措施?答:复位工作寄存器组R0-R7的物理地址为00H-07H。
如希望快速保护当前工作寄存器组,可以通过改变PSW中RS1(PSW.4)和RS0(PSW.3)的当前值来完成。
第三章 MCS-51指令系统3-6.设系统晶振为12MHz,阅读下列程序,分析其功能,并人工汇编成机器代码。
答:因为AJMP指令必须有PC指针地址,所以本题解题时设程序开始地址为1000H。
本程序完成功能是使P1.0口输出方波:T=2*((3*250+2+2)*10+1+2+2)=15090us=15.09ms翻译成机器语言的难点在于AJMP一句,根据AJMP指令代码可知,该指令为2个字节,高8为字节构成为“A10A9A800001”,低8位字节构成为“A7-A0”。
又有设置了程序起始地址为1000H,很容易可以写出各指令的地址,AJMP的绝对转移目标地址为1002H,A10=0、A9=0、A8=0,所以机器代码为“01 02”,目标地址在2区,因为A15-A11为“00010”。
第二章 MCS-51系列单片机结构与工作
2.3.1运算器 2.3.1运算器
• 4.程序状态字寄存器PSW • 程序状态字寄存器PSW是8位寄存器,用来存储当前指令执行后的状 态,便于程序查询和判别。程序状态字寄存器各位的定义如表2-2。
• (1)进位标志位C:又名CY,在加法和减法运算时, 表示运算结果 最高位的进位或借位情况。
2.3.1运算器 2.3.1运算器
2.2.1 MCS-51系列单片机的引脚与功能 MCS-51系列单片机的引脚与功能
• (8)XTAL2(18脚):片内振荡电路反向放大器的输出端,采用外 部时钟时该引脚为振荡信号的输入端。 • (9)P0口:P0.0~P0.7依次为第39~32脚,P0口除了可以作普通 的双向I/O口使用外,也可以在访问外部存储器时用作低8位地址线和 数据总线。 • (10)P1口:P1.0~P1.7依次为第1~8脚,P1口是带内部上拉电 阻的双向I/O口,向P1口写入“1” 时,P1口被内部上拉为高电平, 可用作输入口。当作为输出脚时,被外部拉低的P1口会因为内部上拉 电阻的存在而输出电流。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.P0口的结构
地址/数据 控制 读锁存器 3 2 内部 总线 写锁 存器
D CP Q /Q
Vcc
4
引脚P0.X
1 读引脚
1.P0口的结构
读锁存器 2 内部 总线 写锁 存器
D CP Q /Q
地址/数据 控制 =0 0 3 0
3 2H 3 1H 3 0H 2 FH SP
3 2H 3 1H 3 0H 2 FH SP
3 2H 3 1H 3 0H 2 FH B SP
(a)
(b)
(c)
图 “PUSH B”指令的执行过程 (a) PUSH B指令执行前;(b)SP加1;(c) 寄存器B存入SP指定的单元中
3 2H 3 1H 3 0H 2 FH B SP
52 系 列 内 部 数 据 存 储 器 结 构
~ ~
~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~
工作寄存器组的选择:
通过对特殊功能寄存器PSW中RS1、RS0两位的 编程设置,可选择任一寄存器组作为工作寄存器组 ,方法如下:
RS1 0 0 1 1 RS0 0 1 0 1 所选择的寄存器组 选中寄存器0组 选中寄存器1组 选中寄存器2组 选中寄存器3组
3 2H 3 1H 3 0H 2 FH SP
3 2H 3 1H 3 0H 2 FH SP
(a)
(b)
(c)
图 “POP B”指令的执行过程 (a) POP B指令执行前; (b)将SP指定单元内容传送到寄存器B中; (c) SP减1
数据入栈的操作过程为:先将SP加1(即SP←SP+1), 然后将要入栈的数据存放在SP指定的存储单元中。而将 数据从堆栈中弹出时,先将SP寄存器指定的存储单元内 容传送到POP指令给定的寄存器或内部RAM单元中, 然后SP减1(即SP←SP-1)。 另外,可以看出堆栈的底部是固定的,而堆栈的顶 部则随着数据入栈和出栈而上下浮动。
CLR 23H SETB 23H CPL 23H ORL C,23H
; 位清零指令,即将位地址23H单元清零 ; 位置1指令,即将位地址23H单元置1 ; 位取反操作,即将位地址23H单元内容取反 ; 或运算,23H位单元与位累加器C相或, 结果存 放在位累加器C中
ANL C,23H
; 与运算,23H位单元与位累加器C相与, 结果存 放在位累加器C中
P0、P1、P2、P3口寄存器实际上就是P0~P3口对应的I/O 端口锁存器,用于锁存通过端口输出的数据。
在MCS-51中,特殊功能寄存器分别隶属于CPU内不同的
单元电路,具体如下:
CPU单元包含的寄存器:Acc、B、SP、PSW、DPTR和程
序计数器PC。 PC是一个16位的地址寄存器,用于存放下一条要执行的指 令在程序存储器中的地址,但PC不属于特殊功能寄存器,它 没有物理地址。
尽管书写形式不同,但汇编时,汇编程序均自动将它们转
换成位地址方式,因此这三条指令完全等效,不过使用“位定 义名”和“寄存器名.位”的方式更容易理解。
内部数据存储器中的位地址
2.4.5 外部数据存储器
使用(2)程序存储器与数据存储器在使用上是严 格区分的,不同的操作指令不得混用; (3)位地址空间共有2个区域; (4)片外数据存储区中,RAM存储单元与
MOV 0E0H,#30H
; 将立即数30H传送到直接地址0E0H 中,这条指令的目的操作数使用了 直接寻址方式
4) B寄存器
B寄存器也是CPU内特有的一个寄存器,主要用于乘法和
除法运算。在乘法运算中,被乘数放在累加器Acc中,乘数放
在B寄存器中,积的高8位存放B寄存器中,低8位放在累加器 Acc中,如: MUL AB ; BA←A×B
在除法运算中,被除数放在累加器Acc中,除数放在B寄 存器中。运算后,商放在累加器Acc中,而余数放在B寄存器 中。
5)串行数据缓冲器SBUF 6)定时器/计数器
T0、T1
2.4.4 位地址空间
MCS-51系列单片机既是8位机,同时也是一个功能完善的一
位机。作为一位机时,它有自己的CPU、位存储区(位于内部
2.4.3 特殊功能寄存器(SFR)
MCS-51中有21个特殊功能寄存器(SFR),起着
专用寄存器的作用,用来设置片内电路的运行方式,记
录电路的运行状态,并表明有关标志等。此外特殊功能 寄存器中,还有把并行I/O端口映射过来的寄存器,对
这些寄存器的读写,可实现从相应的I/O端口的输入、
输出操作。 21个SFR不连续的分布在128个字节的SFR存储空
RAM的20H~2FH单元)、位寄存器, 如将进位标志Cy作为“位
累加器”,以及具有完整的位操作指令,包括置1、清零、非(取
反)、与、或、传送等。
对于位存储器(即20H~2FH单元中的128个位),只能使用直
接寻址方式确定操作数所在的存储单元,如:
MOV C,23H
; 位传送指令,即将位地址23H单元(对应20H字节 单元的D3位)内容传送到 ; 位累加器C中
选择寄存器2组方法: (page64)
SETB RS1 CLR RS0
当某一组被设定成工作寄存器组后,该组
中8个寄存器,从低地址到高地址就分别被称 为R0~R7,从而可以把它们用作通用寄存器, 并可按寄存器寻址方式被访问。一旦工作寄存 器组被指定以后,另外三组寄存器则同其它数
据RAM一样,只能按字节地址被访问。
系统复位后,PSW的D4 (RS1) 、D3 (RS0) 位为00,即选择 了工作寄存器区中的0区作为当前工作寄存器区,SP寄存器的
初值为07H,当有数据进入堆栈时,将从08H单元开始存放,
这一般是不允许的,因为08H~1FH属于工作寄存器区,不宜
占用;20H~2FH是位地址区,也需要部分或全部保留。因此,
堆栈的功能:
① 保护断点----保护从主程序转向子程序、中断时的断 点,发生转移时程序自动完成。
② 保护现场----对子程序、中断程序中要用到的、现场
的某些寄存器的内容进行保护,以保证返回时能够正 确恢复。用软件指令方式实现,由编程人员完成。 ③ 数据的临时存放。
2) 数据指针DPTR
数据指针DPTR是一个16位的专用寄存器,由DPH(数据指针 高8位)和DPL(数据指针低8位)组成,用于存放外部数据存储器的 存储单元地址。由于DPTR是16位的寄存器,因此通过DPTR寄 存器间接寻址方式可以访问0000H~FFFFH全部64KB的外部数 据存储器空间。
涉及入栈出栈操作的指令有:
PUSH direct POP direct ; 将内部RAM单元压入堆栈中 ; 从堆栈中将数据弹入内部RAM单元中
堆栈的特点: ① 是一个符合“先进后出、后进先出”的RAM区域; ② SP总是指向堆栈的顶部(保存有数据); ③ 堆栈可以设在内部RAM中的任意区域,一般开辟在 30H~7FH中。
在计算机内,需要一块具有“先进后出”(First In Last Out,
主程序。这一存储区称为堆栈区。为了正确存取堆栈区内的数据, 堆栈指针SP寄存器就是为此设计的。
需要一个寄存器来指示最后进入堆栈的数据所在存储单元的地址,
在MCS-51系列单片机中,SP可以指向内部RAM中任一单元,
且堆栈向上生长,即将数据压入堆栈后,SP寄存器内容增大。假 设SP当前值为2FH,则入堆指令“PUSH B”(将寄存器B内容压入 堆栈)的执行过程如下图所示。
必须通过数据传送指令重新设置SP的初值,将堆栈底部设在 30H~7FH , 如: MOV SP,#5FH ; 将堆栈设在60H单元之后
CPU内30H~7FH单元既可以作为堆栈区,同时也是用户 数据存储区。由于单元数量有限,必须充分利用,因此应认 真考虑将堆栈底部设在何处。随着入栈数据的增多,对于仅 有低128字节内部RAM的80C31、80C51来说,当SP超出7FH
另外,MCS-51系列单片机有些特别,CPU单元内的寄存器,
如累加器A、寄存器B、堆栈指针SP、程序状态字PSW,以及工 作寄存器组R7~R0等具有字节地址,这样在汇编语言指令中, 对这些寄存器操作时,可以使用寄存器名,也可以直接引用这 些寄存器对应的字节地址。例如: MOV A,#30H ; 将立即数30H传送到累加器A中,这条指 令的目的操作数使用了寄存器寻址方式
内部数据存储器又称为内部数据RAM,共 128字节,地址范围为00H~7FH 。 前32个单元(00H~1FH)称为寄存器区。 其中,每8个寄存器形成一个寄存器组。 寄存器0组 寄存器1组 寄存器2组 寄存器3组 地址00H~07H 地址08H~0FH 地址10H~17H 地址18H~1FH
~ ~ ~ ~
例如,可用如下指令将累加器A的内容传送到外部数据存储 器的107FH单元中:
MOV DPTR , #107FH ; 将外部数据存储地址107FH以立即数方式 传送到DPTR寄存器 ; 将累加器A的内容传送到DPTR 寄存器内 容指定的外部数据存储器单元中
MOVX @DPTR , A
3) I/O端口P0~P3
R7 R0 R7 R0 R7 R0 R7 R6 R5 R4 R3 R2 R1 R0
~ ~
51 系 列 内 部 数 据 存 储 器 结 构
~ ~
~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~
~ ~ ~ ~ ~ ~
R7 R0 R7 R0 R7 R0 R7 R6 R5 R4 R3 R2 R1 R0
~ ~ ~ ~
对于具有位地址的特殊功能寄存器中的位,除了使用位地 址寻址外,还可以使用“位定义名”或“寄存器名.位”表示,
如将程序状态字寄存器PSW中的D3 位置0,可以用:
CLR 0D3H CLR RS0 ; 位地址方式 ; 位定义名方式(作为一个良好的习惯,建议使用 位定义名方式) CLR PSW.3 ; “寄存器名.位”方式