51单片机 P2口 高低位数据交换

问题描述:

51单片机 P2口 高低位数据交换
编个流水灯程序,有32个LED对应32个IO口,由于P2口的高低位与其他IO口顺序相反,所以控制整个LED时要注意P2的顺序,有什么好的算法可以交换P2寄存器高低位的值,即第7位与0位交换,6位与1位交换,等等.要求是数据变换一次,即交换一次,要求简单.
1个回答 分类:综合 2014-11-27

问题解答:

我来补答
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);  就反过来了.
 
 
展开全文阅读
剩余:2000