关于51单片机c语言编程的问题
//启动A/D转换函数:StartADC()voidStartADC(ucharAddress){PinC=(bit)(Address&0x04);PinB=(bit)(...
//启动A/D转换函数:StartADC()
void StartADC(uchar Address)
{
PinC = (bit) (Address & 0x04);
PinB = (bit) (Address & 0x02);
PinA = (bit) (Address & 0x01);
PinSTART = 0;
}
我用的是STC98C52,这个(bit)是什么意思啊?假如Address取值为4的话,PINA,PinB,PinC分别等于什么值啊?是几位的啊?如果可以说的详细一些,谢谢高手指点。 展开
void StartADC(uchar Address)
{
PinC = (bit) (Address & 0x04);
PinB = (bit) (Address & 0x02);
PinA = (bit) (Address & 0x01);
PinSTART = 0;
}
我用的是STC98C52,这个(bit)是什么意思啊?假如Address取值为4的话,PINA,PinB,PinC分别等于什么值啊?是几位的啊?如果可以说的详细一些,谢谢高手指点。 展开
展开全部
答:
PinC PinB PinA是位变量(只有两个值0、1);
Address是字节变量(八位二进制数,用16进制表示是从00H到FFH)。
这几句:
PinC = (bit) (Address & 0x04);
PinB = (bit) (Address & 0x02);
PinA = (bit) (Address & 0x01);
的意思是把 Address和后面的 0x04 0x02 0x01 进行“与”运算后,转换成位变量。赋给PinC PinB PinA。
bit是位变量的定义。
假如Address取值为4的话,PINA,PinB,PinC分别等于什么值啊?是几位的啊?
PINA为0,PinB为0,PinC为1.
举例说明如下:
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 与运算,按位相“与”
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 与运算,按位相“与”
0 1 1 0 1 1 1 0
0 0 1 1 0 0 1 0
0 0 1 0 0 0 1 0 与运算,按位相“与”
两者全为1时结果才是1.
PinC PinB PinA是位变量(只有两个值0、1);
Address是字节变量(八位二进制数,用16进制表示是从00H到FFH)。
这几句:
PinC = (bit) (Address & 0x04);
PinB = (bit) (Address & 0x02);
PinA = (bit) (Address & 0x01);
的意思是把 Address和后面的 0x04 0x02 0x01 进行“与”运算后,转换成位变量。赋给PinC PinB PinA。
bit是位变量的定义。
假如Address取值为4的话,PINA,PinB,PinC分别等于什么值啊?是几位的啊?
PINA为0,PinB为0,PinC为1.
举例说明如下:
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0
0 0 0 0 0 1 0 0 与运算,按位相“与”
0 0 0 0 0 1 0 0
0 0 0 0 0 0 1 0
0 0 0 0 0 0 0 0 与运算,按位相“与”
0 1 1 0 1 1 1 0
0 0 1 1 0 0 1 0
0 0 1 0 0 0 1 0 与运算,按位相“与”
两者全为1时结果才是1.
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询