关于单片机的C语言

[复制链接]
2336|6
 楼主| 一曲离殇 发表于 2010-11-20 21:04 | 显示全部楼层 |阅读模式
我用单片机学习板做模数转换的实验,可是那个实验板把ADC0809的数字信号输出端接到了P2口,而且是把输出的数字信号的高位接到了P2口的地位,就是DB0-P2.7,DB1-P2.6,......但我需要把输出信号用数码管显示,求大侠把颠倒的输出数字信号顺过来。
     PS:我把P2得到的数据赋给了getdata,希望大家给个简单的实现程序,文字说明也行。
liang7143 发表于 2010-11-20 23:29 | 显示全部楼层

  1. unsigned char BitSwap(unsigned char dat)
  2. {
  3.     unsigned char val;
  4.     unsigned char uci;
  5.     for(uci = 0;uci < 7;uci++)
  6.    {
  7.          val |= (dat & 0x01);
  8.          dat >>= 1;
  9.          val <<= 1;
  10.    }
  11.    return val;
  12. }
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的提示也很重要  谢谢:)
liang7143 发表于 2010-11-21 20:37 | 显示全部楼层
:)随手写的~~不好意思~
 楼主| 一曲离殇 发表于 2010-11-21 21:03 | 显示全部楼层
5# liang7143
 楼主| 一曲离殇 发表于 2010-11-21 21:04 | 显示全部楼层
刚刚试了下,效果良好:D
您需要登录后才可以回帖 登录 | 注册

本版积分规则

0

主题

15

帖子

1

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