打印

关于单片机的C语言

[复制链接]
1307|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
一曲离殇|  楼主 | 2010-11-20 21:04 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
我用单片机学习板做模数转换的实验,可是那个实验板把ADC0809的数字信号输出端接到了P2口,而且是把输出的数字信号的高位接到了P2口的地位,就是DB0-P2.7,DB1-P2.6,......但我需要把输出信号用数码管显示,求大侠把颠倒的输出数字信号顺过来。
     PS:我把P2得到的数据赋给了getdata,希望大家给个简单的实现程序,文字说明也行。

相关帖子

沙发
liang7143| | 2010-11-20 23:29 | 只看该作者

unsigned char BitSwap(unsigned char dat)
{
    unsigned char val;
    unsigned char uci;
    for(uci = 0;uci < 7;uci++)
   {
         val |= (dat & 0x01);
         dat >>= 1;
         val <<= 1;
   }
   return val;
}

使用特权

评论回复
板凳
GZSH| | 2010-11-21 17:52 | 只看该作者
这个程序有BUG,  最后一次循环执行val <<= 1;时, val最低位固定是0了, 然后就return val;返回了.
# for(uci = 0;uci < 7;uci++)
#    {
#          val |= (dat & 0x01);
#          dat >>= 1;
#          val <<= 1;                                //  **************
#    }
#    return val;                                     //  ***************

使用特权

评论回复
地板
一曲离殇|  楼主 | 2010-11-21 20:02 | 只看该作者
谢谢2L,不过这程序最后得到的结果:val=D0 D1 D2 D3 D4 D5 D6 0    我想执行玩for语句再加句val |= (dat & 0x01);应该可以得到结果吧
3L的提示也很重要  谢谢:)

使用特权

评论回复
5
liang7143| | 2010-11-21 20:37 | 只看该作者
:)随手写的~~不好意思~

使用特权

评论回复
6
一曲离殇|  楼主 | 2010-11-21 21:03 | 只看该作者
5# liang7143

使用特权

评论回复
7
一曲离殇|  楼主 | 2010-11-21 21:04 | 只看该作者
刚刚试了下,效果良好:D

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

15

帖子

1

粉丝