51单片机bit、sfr、sbit介绍和用法
2023-12-28 20:40:10
1.bit型变量
位变量:表示存储空间中的一个位的值(0或1)
定义形式:
bit name = 0; bit name = 1;
2.sfr型变量
80C51内部有21个特殊功能寄存器(SFR),除了DPTR为16位寄存器外,其余都是8位寄存器,每个SFR都有特定的字节地址。
如果想要访问这些SFR,其变量地址就不能由编译器来指定,因此C51中便采用了两个专属的变量类型说明符,即:
-
sfr
-
sfr16
定义形式:
sfr name = 8位地址变量 sfr16 name = 16位地址变量
例如:
sfr P1 = 0x90; sfr PSW = 0xd0; sfr16 DPTR = 0x82; ? ? ? ? ? //由于C51中只有一个16位寄存器,因此这里的字节地址只能位0x82
3.bit型变量
sbit是用于定义SFR中具有位地址变量的类型说明符,变量定义有以下三种不同的用法:
sbit name = 位地址; sbit name = 可位寻址的SFR字节地址^相对位置; sbit name = 可位寻址变量^相对位置;
例子:
假定CY是程序状态字寄存器PSW的位7,其位地址为0xd7
因为地址明确,因此可以用下面的方法进行CY定义:
sbit CY = 0xd7;
由于PSW的字节地址为0xd0,因此也可以用第2中用法定义:
sbit CY = 0xd0^7;
如果变量PSW已用sfr PSW = 0xd0
进行过定义了,那么可以用第三种方式进行定义:
sbit CY = PSW^7;
文章来源:https://blog.csdn.net/weixin_74239689/article/details/135277206
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。 如若内容造成侵权/违法违规/事实不符,请联系我的编程经验分享网邮箱:veading@qq.com进行投诉反馈,一经查实,立即删除!