STC15系列单片机学习1:存储器、特殊功能寄存器

STC15系列单片机的存储器分为两种,程序存储器数据存储器。其实单片机的程序存储器就是Flash,类似于我们电脑上的硬盘;单片机的数据存储器就是SRAM,类似于我们电脑上的内存条。我们常说的单片机烧录或者下载,就是把产生的固件放在单片机的程序存储器Flash中,就像我们在电脑上装软件,软件是装在硬盘上。

一、程序存储器Flash

单片机的程序存储器就是用来存储程序的,STC15W4K系列单片机根据不同的型号,集成了不同大小的Flash,如下图所示:

单片机复位后,程序计数器PC里面存的内容就是0000H,表示单片机从程序存储器的0000H地址处开始执行程序。

单片机的中断向量也在程序存储器中,中断向量也就是中断服务程序的入口地址,也就是中断程序开始执行的地址,关于中断工作原理,后面单独讨论。

单片机的程序存储器Flash,可以反复擦写10万次以上,我们下载程序到单片机,其实就是重新擦写单片机的程序存储器Flash。

二、数据存储器SRAM

单片机的数据存储器SRAM,就是一种RAM,那个S是static的缩写,表示静态存储器,相对的就是动态存储器DRAM,这些以后再讨论。

单片机的SRAM用于存放程序执行的中间结果和过程数据STC15W系列单片机数据存储器的容量如下表所示:

STC15W4K系列单片机的内部SRAM和内部扩展RAM,在物理和逻辑上都分别属于不同的地址空间,也就是说内部SRAM和内部扩展RAM是两个相互独立的东西。

40引脚以上的STC15系列单片机还可以再单片机外扩展64kB的外部数据存储器。

2.1 内部RAM

STC15W4K系列单片机内部RAM一共256字节,这256个字节还分3个部分:

低128字节、高128字节、特殊功能寄存器区

低128字节:与传统的8051单片机兼容,因为8051单片机的RAM只有128个字节,低128字节的数据存储区,既可以直接寻址,也可以间接寻址。低字节RAM区也叫通用RAM区,它还可以继续分为工作组区(地址从00H--1FH,共32个字节大小)、可位寻址区(20H--2FH,共16个字节大小,既可以按字节为单位读写,也可以按照位为单位读写)、用户RAM区、堆栈区。

高128字节:51单片机的内核是intel公司,Intel再8052中扩展了高128字节的RAM,高128字节存储区只能间接寻址

特殊功能寄存器区:只能直接寻址,看起来与高128字节存储器的地址都是80H--FFH,但是它们是不同的东西,通过寻址方式来区分。

2.2 内部扩展RAM

STC15W4K系列单片机除了内部集成的256字节的内部RAM,还集成了3840字节的扩展RAM,扩展的3840字节RAM地址范围是0000H--0EFFH,可以看出他的地址也是从0000H开始的,而不是延续内部SRAM,说明它是一个独立的东西。

访问STC15W单片机内部扩展RAM的方法与访问8051单片机外部扩展RAM方法是相同的。

内部扩展RAM是否可以访问受辅助寄存器AUXR中的EXTRAM位控制:

EXTRAM位为0时,内部扩展的RAM可以读写;

EXTRAM位为1时,内部扩展的RAM禁止读写;

三、特殊功能寄存器SFR

特殊功能寄存器, Special Function Register的缩写SFR,是一种控制寄存器和状态寄存器,是用来对单片机内各个功能模块进行管理、控制和监视的。

特殊功能寄存器实际上就是一个特殊功能的RAM区。

STC15 单片机的特殊功能寄存器与高128字节RAM共用相同的地址范围,都是80H--FFH,但是SFR必须使用直接寻址指令访问。

STC15W系列单片机的特殊功能寄存器名称及地址分布如下:

红框部分可位寻址,蓝框部分不可位寻址。

 四、几种常用的寄存器

4.1 程序计数器 PC

程序计数器 PC(Program Counter的首字母缩写),PC是一个独立的寄存器,不属于特殊功能寄存器。PC有16位,用来控制指令的执行顺序。单片机复位后,PC = 0000H,强制单片机从程序存储器的0地址处开始执行程序。

4.2 累加器 ACC

累加器ACC,是单片机内部最常用的寄存器,是一个SFR,也可以写作A,常用于存放参加算术或逻辑运算的操作数和运算结果。

4.3 B寄存器

B寄存器在乘法和除法运算中,与累加器ACC配合使用。

4.4 程序状态字寄存器 PSW

4.5  堆栈指针 SP

堆栈指针是一个8位专用寄存器,是一个SFR,它用来指示栈顶的位置,系统复位后,SP初始化为07H。

4.6 数据指针 DPTR

数据指针是一个16位专用寄存器,有DPL和DPH组成。DPTR是传统8051单片机中唯一可以直接进行16位操作的寄存器,也可以对DPL和DPH单独进行字节操作。

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值