把一个字节的数据从高位依次间隔赋给单片机的一个管脚。
a=0x05; // 01010101
sbit led=P1^0; //单片机管脚
for(i=7;i>=0;i--) //赋值8次
{
led=a>>7; //高位移到低位
a=a<<1; //把用过的数据移走
}第一次a右移7位就是最高位移到最低位嘛,然后a自己左移一次,第二次实际就是把次高位右移7次。
同理 我像下面这样写
for(i=7;i>=0;i--)
{
led=a>>i;
}为什么这样不对呢?我把变量i作为移动的次数,7,6,....1.也是相当于把数据依次移动到低位啊
求解。
|