51单片机 P2口 高低位数据交换编个流水灯程序,有32个LED对应32个IO口,由于P2口的高低位与其他IO口顺序相反,所以控制整个LED时要注意P2的顺序,有什么好的算法可以交换P2寄存器高低位的值,即第7位与0位交换,6位与1位交换,等等.要求是数据变换一次,即交换一次,要求简单.
网友回答
unsigned char fan(unsigned char dat)
{ unsigned char led1,i;
for(i=0;i<8;i++)
{
led1>>=1;
if((dat<<i)&0x80)
led1+=0x80;
}
return led1;
}用法很简单,比如你要原来写P2=0x01;现在写成P2=fan(0x01); 就反过来了.