这个不是问题,完全可以用软件实现。
之所以这样连接,也许是这样硬件连接比较简单。主要是考虑到PCB布线问题。
除此之外,也有可能是因为之前硬件设计上的失误,但考虑到可以用软件解决这个问题,干脆不更改硬件啦。
以前在做毕设的时候,有同学把线连反啦,就是想你所说的情况。
转换的算法是通过移位将一个char的高位移到CY(进位标志),通过进位标志对另一个char的变量最高位置位,然后将第二个char变量移位。循环8次之后得到的就是我们想要的结果啦。当然还有其他的算法,这个比较好理解。
uchar convert(uchar dat)
{
uchar i,tmp,result;
result = 0;
for(i=0;i<8;i++)
{
tmp = dat;
CY = 0;
tmp <<= (i+1);
if(CY)
result |= 0x80;
result >>= 1;
}
return result;
}