标题:
请教C语言逻辑语句含义?
[打印本页]
作者:
wrlsohu
时间:
2024-2-13 14:30
标题:
请教C语言逻辑语句含义?
void Move_LED()
{
if((P1 & 0x01) == 0x00) //
如何解读?
P0 ^= 0x01; //异或的目的是什么
}
作者:
xuyaqi
时间:
2024-2-14 08:43
(P1 & 0x01) == 0x00,判断P1末位是否为0。
作者:
xuyaqi
时间:
2024-2-14 09:04
P0 ^= 0x01; //对P0末位进行翻转。
作者:
andy5114
时间:
2024-2-14 10:24
如果P1.0的引脚为低电平,就让它翻转置为高电平
作者:
xiaobendan001
时间:
2024-2-14 10:43
P0 ^= 0x01;异或不怎么用,好像是保留7-1位不变,只吧0位取反
作者:
新昌小徐
时间:
2024-2-14 12:09
P0 ^= 0x01;
就是
P0 = P0 ^0x01
意思就是P0的8位二进制数与0000 0001进行按位异或,异或的意思是二者不同则结果为1,两者相同则结果为0,与P0相异或的数的1-7位都为0,则P0相对应的位的为1则为1,为0则为0,而与P0异或的0位为1,如果P0的0位为1,那么相同结果为0,如果P0的0位为0,那么相异为1,取反。
所以运算的结果P0的0位取反,其它保持不变。
如果要使P0口的1位取反呢,那么异或的数是多少?只要那位为1,其它为0就可以了。
此值为(二进制)0000 0010
这样:P0^=0x02;
这样就可以对端口的任意位进行操作,不影响其它位的值。
作者:
wangxiangtan
时间:
2024-2-15 09:15
用大白话就是:P1口的末位是0的话就把P0口的末位电平翻转一下
作者:
QQ_BF2CAC
时间:
2024-2-18 15:53
读取P1端的最低位是否为低电平,若是,则翻转P0端的最低位输出电平;
异或运算在单片机编程中一般用来翻转,0异或0等于0,0异或1等于1,1异或0等于0,1异或1等于0,分析以上结果可以看出,0或者1异或0之后不变,异或1之后则变相反数
作者:
wrlsohu
时间:
2024-3-4 07:52
感谢各位。
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1