针对内部RAM中SFR的原理

本文详细解释了编程中头文件的重要性,以IAP15F2K61S2芯片为例,介绍了头文件如何通过命名区分不同芯片的功能,以及SFR在内部结构中的位置和位寻址规则。头文件通过易读的寄存器名称简化编程过程。
摘要由CSDN通过智能技术生成

我们都知道在写程序时,头文件是必不可少的,可是我们却往往忽视了头文件原理,所以我就来讲讲它具体的深层原理究竟是什么?!

一、命名

以IAP15F2K61S2芯片为例

不同芯片所实现的功能和内部结构是有区别的,所以头文件就会有差异,为了方便查找,就会命名不同 芯片的名字,以名字来区别芯片的作用和功能。

例如、STC,IAP和IRC的区别就是EEPROM是否能当作FLASH来用。

              主要的是2K指的是SRAM大小为2048个字节,61为ROM大小为61K等等

二、内部结构(SFR)

RAM是分为内扩RAM和内部RAM

内部结构中最需要理解就是内部RAM其中的SFR。

编程所用到的特殊功能寄存器就是SFR,也就是编程中头文件所定义好的寄存器,例如P0,P1等

SFR是在内部RAM中,地址是与高128位RAM共用的。

值得注意的是:寄存器地址只有被8整除时才可以位寻址!否则就不可以

我在刚开始学习的时候也是非常困惑?!这是为什么?

后来学习后,得知

一个8位的单片机,这意味着MCU中的寄存器大小是8位的。如果一个寄存器地址可以被8整除的话,它地址的后三位就一定为0!那我们就可以利用这三位·(bit2,bit1,bit0)来干点别的事,(bit2,bit1,bit0)表示的范围是0~7,即寄存器内部的8bit空间,这样我们把固定为0的这后三位利用起来表示寄存器内部的位偏移的话,这个寄存器就变成可以进行位操作的寄存器了

也可以比作74H138译码器,3位转8位,这里就相当于用最低3位(都为零用不到)来寻找我们需要的一位地址!

三、头文件

编程大都需要有头文件的参与,否则将是非常艰难的编程体验。

可以看到我们SFR的地址,根据指针对其经行寻址后定义,但是这会非常难以理解并且不易读

所以在头文件中做的事情就是把地址定义为我们可以理解的寄存器名称

例如

定义0x80为P0,并且把不同位给单独定义,这样就可以方便编程和理解。

  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值