零基础学习8051单片机(四)

本文详细介绍了51单片机的硬件结构,包括片内和片外数据存储器、特殊功能寄存器(SFR)的功能与使用、堆栈指针SP的作用以及乘除运算寄存器B。还涵盖了新增的AUXR和数据指针寄存器DPTRO/DPTR1,以及看门狗定时器WDT的作用。
摘要由CSDN通过智能技术生成

续上一篇,介绍剩余的51单片机硬件部分。

1.数据存储器空间

分为片内和片外两部分


1.1 片内数据存储器(RAM)

共128个单元,字节地址为00H~7FH,如图:

 注:

(1)0~3位寄存器区,任何时候都可以通过PSW寄存器的RS1、RS0这两位,选择其中额的一组作为当前工作的寄存器区。

(2)可位寻址区不仅可以进行字节寻址,还可以进行位寻址,对每一位进行编写。

(3)用户RAM区,用户进行程序的编写。

(4)从80H~FFH是特殊功能寄存器的地址。

(5)由于单片机本身硬件资源少,在编程时要充分利用好这些资源。

1.2 片外数据存储器


当片内RAM不够用时,需外扩,最多可外扩64KB的RAM。

注:片内RAM与片外RAM两个空间是相互独立的,片内RAM与片外RAM的低128B的地址是相同的,但由于使用的是不同的访问指令,所以不会发生冲突。

2.特殊功能寄存器(SFR)

在片内RAM的 80H~FFH 区域中,共26个,占用片内的后128个单元地址。如图

注:

(1)与AT89C51相比,新增5个SFR:DP1L、DP1H、AUXR、AUXR1和WDTRST
(2)凡是可位寻址的SFR,字节地址未位只能是0H或8H。若读/写未定义单元,将得到一个随机数。有相应的指令进行访问。有些可进行位寻址,只有末位为8和0的才能进行位寻址。

注:图中标注阴影的是比89C51多出来的。 

 3.堆栈指针SP


指示栈顶在内部RAM中,堆栈向上生长。

注:单片机复位后,SP为07H,堆栈从08H单元开始,由于08H~1FH单元分别是属于1~3组的工作寄存器区,最好在复位后把SP值改置为60H或更大的值,避免堆栈与工作寄存器冲突。

作用:

堆栈主要为子程序调用和中断操作而设,保护断点和现场。

(1)保护断点。

无论子程序调用还是中断服务子程序调用最终都要返回主程序。应预先把主程序断点在堆栈中保护起来,为程序正确返回做准备。

(2)现场保护。

执行子程序或中断服务子程序时,要用到一些寄存器单元,会破坏原有内容。要把有关寄存器单元的内容保存起来,送入堆栈,这就是所谓的“现场保护”两种操作:数据压入(PUSH)堆栈,数据弹出(POP)堆栈。

两种操作:数据压入(PUSH)堆栈,致据弹出(POP)堆栈。

注:当要往堆栈里压一个数据时,堆栈指针先增1,然后数据放进去,当弹出数据时,数据先弹出来,堆栈指针减1。

4.寄存器B


为执行乘和除而设。。

乘法,两乘数分别在A、B中,执行乘法指令后,乘积在BA中

除法,被除数取自A,除数取自B,商存放在A中,余数存B中,

注:

(1)高8位存到B里面,低8位存到A里面。

(2)不执行乘、除的情况下,可把它当作一个普通寄存器来使用。

5.AUXR寄存器


AUXR是辅助寄存器,其格式如图

注:8EH是寄存器地址

其中:

 注:

(1)DISALE是低8位地址的地址锁存信号

(2)DISRTO 写0,输出看门狗复位信号使单片机复位,写1不让其输出

(3)空闲模式是节电模式下的一种模式,为了省电很多都不运行,WDIDLE就是看让不让他运行

6.数据指针DPTRO和DPTR1

双数据指针寄存器,便于访问数据存储器

DPTRO:AT89C51单片机原有的数据指针
DPTR1:新增加的数据指针。
AUXR1的DPS位用于选择两个数据指针。

当DPS=0时,选用DPTRO,当DPS=1时,选用DPTR1。

数据指针可作为一个16位寄存器来用,也可作为两个独立的8位寄存器DPOH(或DP1H)和DPOL(或DP1L)来用,是用来访问外部RAM的指针寄存器。

7.AUXR1寄存器

为辅助寄存器,格式如图
DPS:数据指针寄存器选择位。
        0:选择数据指针寄存器DPTRO:
        1:选择数据指针寄存器DPTR1.

 注:字节地址:A2H

8.看门狗定时器WDT

WDT包含一个14位计数器和看门狗定时器复位寄存器(WDTRST)
当CPU由于干扰,程序陷入死循环或跑飞状态时,WDT提供了一种使程序恢复正常运行的有效手段。

注:除SP和B以外,其余的均为S51在C51基础上新增加的SFR。

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值