关于给P0口赋值的问题

2020-01-30 13:31发布

一般给P0口赋值,直接可以写成P0=0x45  即P0^0~P0^7=0100 0101
可是现在想让P0^7~P0^0=0100 0101,也即是说把0x45倒过来赋给P0,哪位高手有方法,求助!!!
友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
11条回答
benqme
1楼-- · 2020-01-31 09:58
#include <reg52.h>
#include <intrins.h>
unsigned char temp,i;
main()
{
        temp=0x45;
        P1=temp;
        temp=_cror_(temp,1);        //         循环右移一位
        P1=temp;                                //P1=0xa2
        while(1);
}

#include <reg52.h>
#include <intrins.h>
unsigned char temp,i;
main()
{
        temp=0x45;
        P1=temp;
        for(i=0;i<4;i++)
        {
                temp=_crol_(temp,1);
        }
        P1=temp;    //p1=0x54;
        while(1);
}
学电子
2楼-- · 2020-01-31 15:28
benqme 发表于 2013-5-23 23:18
#include
#include
unsigned char temp,i;

谢谢你了,可是我需要的是针对一类数的算法,不只是针对0x45变成0xA2
Tliang
3楼-- · 2020-01-31 17:16
本帖最后由 Tliang 于 2013-5-24 10:27 编辑

1、改硬件
2、改数据
3、写个转换函数。
如下
uint8 tranition(uint8 dat)
{
    uint8 i, temp = 0;
    for(i = 0;i < 8;i++)
    {
        temp >>= 1;
        temp |= (dat & 0x80);
        dat  <<= 1;
    }
    return temp;
}
学电子
4楼-- · 2020-01-31 18:10
 精彩回答 2  元偷偷看……
zbn2010
5楼-- · 2020-01-31 22:44
Tliang 发表于 2013-5-24 10:22
1、改硬件
2、改数据
3、写个转换函数。

这个方法好,学习了。谢谢

一周热门 更多>