sfr,sfr16,esfr,sbit

本文详细介绍了51单片机中用于定义特殊功能寄存器(SFR)的伪指令sfr、sfr16和sbit,以及仅适用于AX51宏汇编器的esfr伪指令。通过示例展示了如何使用这些伪指令来定义SFR及SFR位。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

 伪指令 sfrsfr16sbitCx51 编译器完全兼容,我们可以在两种情况下都使用 SFR 寄存器定义文件:Ax51 宏汇编器和 Cx51 编译器。伪指令 esfrPhilips 80C51MX 架构的扩展 SFR 空间定义符号。该伪指令只能在 AX51 宏汇编器中使用。这些伪指令的格式如下:
sfrsfr_symbol = address;
esfrsfr_symbol = address;
sfr16sfr_symbol = address;; 被 Ax51 忽略
sbitsfr_symbol = bit_address;

其中

sfr_symbol是要定义的特殊功能寄存器(SFR)符号的名称。
address是在 0x80 - 0xFF 范围内的一个 SFR 地址。
bit_address是一个 SFR 位的地址,形式为地址^位位置(address^bitpos)或 sfr_symbol ^ bitpos。地址(address)或特殊功能寄存器符号(sfr_symbol)指向一个位可寻址的 SFR 和位位置,指明 SFR 中的位位置,范围为 0-7。

使用伪指令 esfr、sfr 或 sbit 定义的符号可以用在适合 SFR 地址或 SFR 位地址使用的任意位置。

例程

sfrP0= 0x80;
sfrP1= 0x90;
sbitP0_0= P0^0;
sbitP1_1= 0x90^1;
esfrMXCON= 0xFF;/* 扩展的 Philips 80C51MX SFR */
sfr16T2= 0xCC;/* 被 Ax51 忽略 */
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值