
51单片机c语言中 P2&=0x0F; P2|=(1<<4+c); 是什么意思
展开全部
P2&=0X0F;就是 P2=P2&0X0F;就是将高4位清空;
P2|=(1<<4+c); 等效于:P2=P2|((1<<(4+c));就是将P2的第4+c位 赋值1;
P2|=(1<<4+c); 等效于:P2=P2|((1<<(4+c));就是将P2的第4+c位 赋值1;
展开全部
P2&=0X0F;就是 P2=P2&0X0F;就是将高4位清空;---------这句好像没异议。
P2|=(1<<4+c); 等效于:P2=P2|((1<<(4+c));就是将P2的第4+c位 赋值1; -----------这句我怎么觉得不对啊,我理解P2|=(1<<4+c); 表示,4加上c的和左移一位,然后和P2进行或运算,再赋给P2口。
P2|=(1<<4+c); 等效于:P2=P2|((1<<(4+c));就是将P2的第4+c位 赋值1; -----------这句我怎么觉得不对啊,我理解P2|=(1<<4+c); 表示,4加上c的和左移一位,然后和P2进行或运算,再赋给P2口。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一句,位与操作,把p2的8个管脚与00001111 相位与,得到结果,p2.4到p2.7输出低电平,p2.0到p2.3维持不变。任何数与0相与结果为0,与1相与结果为它本身。
..那是我弄错了。。。还是1楼的正确
第二句,把1左移四位,那就0001 0000 ,然后加上c的值,然后在位或,任何数与1或结果为1,与0或结果为它本身。
..那是我弄错了。。。还是1楼的正确
第二句,把1左移四位,那就0001 0000 ,然后加上c的值,然后在位或,任何数与1或结果为1,与0或结果为它本身。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
P2&=0x0F即为P2=P2&0x0F含义为P2和十六进制数0F位与,值赋给P2。 P2|=(1<<4+c)即为P2=P2|(1<<4+c) 先进行括号里面的运算1<<4为0x01向左移四位变为0x10(十进制数为16)然后和c相加 最后和P2相或 将最终结果赋给P2
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
第一条其他答案都说完了;
第二条,应该是4+C,然后把位1向左移动(4+C)个位,再把结果与P2进行“或”操作。(C是某一个作者预设的值)
第二条,应该是4+C,然后把位1向左移动(4+C)个位,再把结果与P2进行“或”操作。(C是某一个作者预设的值)
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询