前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >C51 单片机开发 SFR 及 SBIT 的作用

C51 单片机开发 SFR 及 SBIT 的作用

作者头像
码农UP2U
发布2024-03-18 14:44:22
3420
发布2024-03-18 14:44:22
举报
文章被收录于专栏:嵌入式码农UP2U嵌入式

前面几篇文章已经把单片机的开发环境和写入程序都整理完了,然后什么是单片机,什么是开发板也简单的整理了一下。这次整理一下两个比较重要的指令。

0x01:特殊功能寄存器(SFRs)

单片机和外接传感器等是通过 I/O 的引脚进行通信的。也就是说,把传感器通过杜邦线接到开发板的一个引脚上,然后通过指令读写这个引脚,就可以完成单片机与传感器的通信。

那么怎么找到 I/O 口,怎么找到 I/O 口的具体的某一个引脚呢?这就要来说一下 SFRs 了的概念了。根据手册中的描述,SFR 的意思如下:

特殊功能寄存器(SFR)是用来对片内各功能模块进行管理、控制、监视的控制寄存器和状态寄存器,是一个特殊功能的 RAM 区。STC89C51RC/RD+ 系列单片机内的特殊功能寄存器(SRF)与内部高 128 字节 RAM 貌似共用相同的地址范围,都使用 80H ~ FFH,但特殊功能寄存器(SFR)必须用直接寻址指令访问。

上面这段内容出自手册中,然后手册中提供了一个图,截图如下:(手册第59页)

手册基本上已经把概念描述清楚了,也很直观。对于寄存器、直接寻址这些概念没必要过多地考虑,如果了解汇编语言的话,对这些概念就非常熟悉了。

上面的图就是内存 80H ~ FFH 定义的一个具体的说明。

0x02:sfr 和 sbit 指令

对于前面的内容没有太多的理解其实不要紧,有些概念是通过不断的学习和深入逐步去建立的,有一天会豁然开朗!

这里来简单的举个例子来说明一下上面的图吧,通过一段简单的代码,就可以理解。

这个例子也出自手册,不过这个例子和上面的图,两个内容不在同一个章节,具体来说已经跨章了。看一下例子吧!

手册中写道,“对 STC89C51RC/RD+ 系列单片机的 P4 口的访问,如同访问常规的 P1/P2/P3 口,并且均可位寻址,P4 的地址 E8H。”(手册第 66 页)

看完这句话,到上图中去找一下 P4 的地址的确在 E8H 的位置,但是为什么这里会提到访问 P4 口和访问 P1/P2/P3 口相同呢?因为在 reg51.h 头文件中并没有 P4 口的定义,甚至我在 52.h 头文件中也没有找到关于 P4 口的定义。所以手册中提到了 P4 口。那么同时手册中给出了 P4 口的定义。这里我截个图:(手册第 66 页)

可以看到图中通过 sfr 定义了 P4 口的地址,然后通过 sbit 定义了 P4 口的每个引脚的地址。

那么通过上面的定义就可以了解 sfr 和 sbit 两个指令的用途了。

在手册中也提到了这两个指令,说明如下(手册第 288 页):

新增特殊功能寄存器用 sfr 声明,新增特殊功能寄存器位用 sibt 声明。

可以看到,这两个指令的介绍在 第 10 章,而上面的图和说明分别在 第 3 章和第 4 章,离得好远!

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-03-10,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 码农UP2U 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档