C51串行移位低位先移

[复制链接]
2778|7
 楼主| 低功耗 发表于 2008-11-29 17:33 | 显示全部楼层 |阅读模式
请问在C51中,如何实现8位串行移位,且低位先移。我想到的愚蠢办法是将要移位的数倒置,后用高位先移的方法,不知哪位高手能指点一些简单的方法。
xwj 发表于 2008-11-29 17:36 | 显示全部楼层

51要硬件移位就只能这样,做好是换芯片

 楼主| 低功耗 发表于 2008-11-29 17:39 | 显示全部楼层

自顶!

自顶!发个高位先移的函数,让大伙们看看是否存在bug
sbit Data_out=P3^0;
void msb8bit(uchar tem)
{
         uchar i;        
         for(i=8;i>0;i--)
         {
            Data_out=(tem&0x80);
            tem<<=1;
          }
}
xwj 发表于 2008-11-29 18:05 | 显示全部楼层

唉,软件的话,当然高位低位先都可以,没必要爱先颠倒

ayb_ice 发表于 2008-11-29 18:29 | 显示全部楼层
 楼主| 低功耗 发表于 2008-11-29 20:03 | 显示全部楼层

不懂!

请问怎样将tem的低位赋值给Data_out?
ayb_ice 发表于 2008-11-29 20:05 | 显示全部楼层

Data_out >>= 1,tem = CY;

 楼主| 低功耗 发表于 2008-11-29 20:13 | 显示全部楼层

谢谢ayb_ice

明白了!原来>>后的最低位是在CY的,又学到一点东西了。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

2

主题

11

帖子

0

粉丝
快速回复 在线客服 返回列表 返回顶部