51单片机 P2口 高低位数据交换编个流水灯程序,有32个LED对应32个IO口,由于P2口的高低位

发布时间:2021-03-05 17:13:36

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);  就反过来了.
以上问题属网友观点,不代表本站立场,仅供参考!