void SendByte(unsigned char c)
{
unsigned char BitCnt;
for(BitCnt=0;BitCnt<8;BitCnt++) /*要传送的数据长度为8位*/
{
if((c<<BitCnt)&0x80)SDA=1; /*判断发送位*/
else SDA=0;
_Nop();
SCL=1; /*置时钟线为高,通知被控器开始接收数据位*/
_Nop();
_Nop(); /*保证时钟高电平周期大于4μs*/
_Nop();
_Nop();
_Nop();
SCL=0;
}
_Nop();
_Nop();
SDA=1; /*8位发送完后释放数据线,准备接收应答位*/
_Nop();
_Nop();
SCL=1;
_Nop();
_Nop();
_Nop();
if(SDA==1)ack=0;
else ack=1; /*判断是否接收到应答信号*/
SCL=0;
_Nop();
_Nop();
}
C<<bitcnt 如果bitcnt=1, 就你说的C=0x01000000,那么 (c<<BitCnt)&0x80=0x10000000=0x80,,怎么会等于0呢,不懂请不要装懂!
追答???
if((c<<BitCnt)&0x80)SDA=1; 谁能解释一下 ,(c<<BitCnt)&0x80是什么...
&1 0 0 0 0 0 0 0 =1 0 0 0 0 0 0 0 此时if语句判断为真,则sda =1;发送出去。接着执行循环,C在左移一位后为 0 1 0 1 0 1 0 0和0x80相与结果为 0 0 0 0 0 0 0 0 if语句判断为0,则sda=0 发送出去。以此类推 ...
...中 字符传送函数 if((c<<BitCnt)&0x80)SDA=1; \/\/判断发送位 else S...
这句话是这样的:C为你要写的数,bitcnt是一个变量,用它来表示一个字节8位(BitCnt<8即0到7共8位),C左移bitcnt(c<<BitCnt)if((c<<BitCnt)&0x80)SDA=1;else SDA=0; 的意思呢,if((c<<BitCnt)&0x80)这个是判断C的最高位是否为1,如果为1,则把SDA数据线拉高,反之,则把SDA数据线拉...
c语言中的a&0x80是什么意思
& 是按位与运算 ox表示十六进制数 关于按位与运算,先要将其他的进制数转化为二进制数,然后计算 ox80转化为二进制就是10000000 比如a是十进制数15,转化为二进制数就是 00001111 10000000 上下比较没有相同的位,结果就为0 刚刚查了sbuf,原来是什么单片机啊,虽然没有学过,但刚刚的回答应该没错 ...
if((temp&0x80)==0x80) 什么意思
如果表达式为真,说明 temp 高位为 1, 则是双字节字符
sbit v =(x & 0x80) 怎么理解这个c语句?&不是按位与吗?怎么能付给一
sbit=定义特殊功能寄存器的位变量 v=变量 = =赋值 (x & 0x80)=x与0x80是一样的值
C语言(bit)(tab[i]&0x80);
tab[i]&0x80);这个是位与 0x80在二进制中是10000000 这两个相与,就会取出tab[i]的二进制数的第8位,如果这个结果是大于0的话,那么tab[i]第8位是1,否则是0
单片机c程序中if(dat&0x01)和dat|=0x80是什么意思?
dat&0x01就是取dat的最低位\\x0d\\x0a如果dat=0x08 dat=0000 1000 dat&0x01=0\\x0d\\x0a如果dat=0x09 dat=0000 1001 dat&0x01=1\\x0d\\x0a\\x0d\\x0aif(dat&0x01)就是指如果dat最低位为1\\x0d\\x0a\\x0d\\x0adat|=0x80 就是指\\x0d\\x0adat=dat|0x80\\x0d\\x0a将dat|0x80的结果重新...
这C语句怎么理解if(BitCnt>1=1& & BitCnt<=8),其中的"BitCnt>1=1"是...
这个if语句是没有问题的。在c语言中,大于小于号其实也是一个函数,它也是有返回值的。所以bitcnt>1=1是指,bitcnt>1的返回值是否=1.不过在c语言中判断是否等于是用== 所以,你给的代码是否有误呢?如果你给的代码没错的话,这是绝对不能通过编译的。v\/=2的意思是v=v\/2,也就是v除以2...
单片机C语言语句DIN=(bit)(address&0x80);是什么意思?
address与0x80相“与”,之后用bit进行强制转换成位变量。
result=(bool)(P0&0x80); 这一句怎么该怎么解释
result=(bool)(P0&0x80); 这一句意思是为0再强制转换为bool型,就是说这个结果非零则是1,否则是0,再给result 。编程语言(programming language),又称程序设计语言(program design language,简称PDL),是一组用来定义计算机程序的语法规则。它是一种被标准化的交流技巧,用来向计算机发出指令。一...