发新帖我要提问
123
返回列表
打印

求大侠指导!!!急啊!

[复制链接]
楼主: wang074581
手机看帖
扫描二维码
随时随地手机跟帖
41
NE5532| | 2014-3-26 22:59 | 只看该作者 回帖奖励 |倒序浏览
本帖最后由 NE5532 于 2014-3-26 23:02 编辑
wang074581 发表于 2014-3-26 22:10
前辈 我还想问个问题! PIC单片机 读取单个I/O口电平进行比较(就分别读取RB2 RB3进行比较嘛) 如 ...


if ((RB & 0x04) == 0x00)
then

判断RB.2 = 0时执行

其实就是位操作,如果编译器支持端口直接操作位,也可以直接写位,但是以字节方式操作的,都支持。

使用特权

评论回复
42
wang074581|  楼主 | 2014-3-27 10:14 | 只看该作者
NE5532 发表于 2014-3-26 22:59
if ((RB & 0x04) == 0x00)
then

呵呵 越聊越觉的投机! 你写的是对整个B端口进行判断。对于单个端口的判断我认为:

uchar m1,m2,m3;
m1=RB0;m2=RB1;m3=RB2;
if(m1&&m2&&m3&&)
{
}else
你觉得我这种写法有没有错误!

使用特权

评论回复
43
NE5532| | 2014-3-28 08:25 | 只看该作者
不太清楚,因为在PIC上基本都写汇编,没有写C,但是操作字节的方法肯定是对的。实在要这样写,你得问一下本版斑竹。

使用特权

评论回复
44
wang074581|  楼主 | 2014-3-28 13:35 | 只看该作者
NE5532 发表于 2014-3-28 08:25
不太清楚,因为在PIC上基本都写汇编,没有写C,但是操作字节的方法肯定是对的。实在要这样写,你得问一下本 ...

亲测是对的! 谢谢你陪我聊这么久! 结贴!

使用特权

评论回复
45
十月风城| | 2014-3-29 22:31 | 只看该作者
wang074581 发表于 2014-3-27 10:14
呵呵 越聊越觉的投机! 你写的是对整个B端口进行判断。对于单个端口的判断我认为:

uchar m1,m2,m3;

m1&&m2&&m3  你的这种写法我不太赞成。
你这种判断是有顺序的,就是有优先级之分的(m1>m2>m3).
程序要体现出你设计的思路,如果你想表现出m1,m2和m3都必须是1,那就应该(m1&m2&m3)这样写。

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则