单片机中,常sbit LED=P2 然后用LED=0,不能直接写P2=0吗?
6个回答
展开全部
这种写法是不对的,sbit有三种使用方法如下:
第一种方法:sbit 位变量名=地址值
第二种方法:sbit 位变量名=SFR 名称^变量位地址值
第三种方法:sbit 位变量名=SFR 地址值^变量位地址值
如定义PSW中的OV可以用以下三种方法:
sbit OV=0xd2 (1 )说明:0xd2是OV的位地址值
sbit OV=PSW^2 (2 )说明:其中PSW必须先用sfr定义好
sbit OV=0xD0^2 (3 )说明:0xD0就是PSW的地址值
P2可以直接操作,用为单片机头文件里面已经sfr P2 = A0这样已经可以直接赋值。
第一种方法:sbit 位变量名=地址值
第二种方法:sbit 位变量名=SFR 名称^变量位地址值
第三种方法:sbit 位变量名=SFR 地址值^变量位地址值
如定义PSW中的OV可以用以下三种方法:
sbit OV=0xd2 (1 )说明:0xd2是OV的位地址值
sbit OV=PSW^2 (2 )说明:其中PSW必须先用sfr定义好
sbit OV=0xD0^2 (3 )说明:0xD0就是PSW的地址值
P2可以直接操作,用为单片机头文件里面已经sfr P2 = A0这样已经可以直接赋值。
展开全部
你写错了,SBIT表达的是位信息,而P2是整个端口,你而以写成:sbit=P2^0或sbitP2^7等。也可以直接写sbit=P2^0或sbitP2^7,但用sbit=P2^0或sbitP2^7后P2^0或sbitP2^7就定义成LED了,这样LED等介于 P2^0或sbitP2^7了,以后如果你要更换端口就很方便,只在这里改一下就好了,如果直接使用 P2^0或sbitP2^7,修改起来不方便。
追问
能不能直接用P2=0?
追答
可以啊,但如查这样写的话其它没有用到的端口也被占用了啊,就比如你只用了P2^0端口,但如果你写上P2=0的话P2^1到P2^7也被占用了,可选择性就低了嘛!当然如果你8个端口全都用了,用这种方法也不错的。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
P2=0;; 这样写是可以的
sbit 定义只是想单独控制其中的一个管脚,如果全部控制就不用sbit 定义了 。
sbit 定义只是想单独控制其中的一个管脚,如果全部控制就不用sbit 定义了 。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
sbit是定义某一位的,这么写不对。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
2013-10-23
展开全部
睡觉~也不鸟尼~
追问
.....
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询