单片机C语言

我看到单片机C语言一书中有这样一句:sbitIP_2=IP^2这个我根据上下文,它好象是把IP_2定义成IP的第2位但是我好象没发现C语言里有sbit这个指令,“^”好象... 我看到 单片机C语言 一书中有这样一句: sbit IP_2=IP^2 这个我根据上下文,它好象是把 IP_2定义成 IP的第2位
但是我好象没发现C语言里有sbit这个指令,“^”好象是按位异或,IP和2异或怎么会变成定义成IP第2位的这个意思啊?
展开
 我来答
sernia
推荐于2016-07-09 · TA获得超过733个赞
知道小有建树答主
回答量:436
采纳率:0%
帮助的人:511万
展开全部
sbit 是C51拓展出来的关键字,是对Byte的位进行定义

sbit IP_2 = IP^2就是把 中断优先级寄存器IP的第三位(从0开始的)定义成IP_2这个名称,以后你操作IP的第三位就可以直接用IP_2的这个名字了。另外sbit只能用在可被位寻址的寄存器上,也就是地址可以被8整除的寄存器,否则编译器报错。

C51有异或的命令,但是在sbit后面的这个^表示的是位,不是异或的意思。

sbit还可以这么用

char temp
sbit temp_2 = temp^2

int temp
sbit temp_14 = temp^14

但是不支持float的,不可以用,会报错,其他均可,比如long
祭尧To
2009-09-24 · TA获得超过587个赞
知道小有建树答主
回答量:331
采纳率:0%
帮助的人:0
展开全部
是s51,c51,s52,c52这一系列的单片机,定义P口的位定义方法.C语言里没有什么P口,所以不会有这些指令.
如定义: sbit IP_2=IP^2.指IP_2定义为IP口的第二位.
程序中对IP_2可读,可写.
例如,如果IP_2接一个光敏信号,则可通过读IP_2的高低电平得到信号.
如果IP_2接发光二极管,则可通过写,控制发光与否.
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
做而论道
高能答主

2009-09-24 · 把复杂的事情简单说给你听
知道大有可为答主
回答量:3万
采纳率:80%
帮助的人:1.2亿
展开全部
“^”,这是单片机C语言里面的记法。

“这样一句: sbit IP_2=IP^2 根据上下文,它好象是把 IP_2定义成 IP的第2位”,

是的。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
hepday
2009-09-24 · TA获得超过718个赞
知道小有建树答主
回答量:1074
采纳率:73%
帮助的人:305万
展开全部
sbit位声明,不是异祸
IP_2=IP^2就是IP寄存器的低4位中间的一位,事实上应该是第3位
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
佟佳金生力庚
2020-03-05 · TA获得超过3.5万个赞
知道大有可为答主
回答量:1.3万
采纳率:31%
帮助的人:799万
展开全部
调用库函数<intrins.h>;
这个函数定义了这些函数:
_crol_字符循环左移
_cror_字符循环右移
_irol_整数循环左移
_iror_整数循环右移
_lrol_长整数循环左移
_lror_长整数循环右移
_nop_空操作8051NOP指令
_testbit_测试并清零位8051JBC指令
因此,在程序里就可以直接使用上面想用的函数了。
当然,你可以在C:\Keil\C51\INC找到。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 1条折叠回答
收起 更多回答(3)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式