打印
[国产单片机]

STC12C5201AD有问题

[复制链接]
2263|3
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
明天及以后|  楼主 | 2011-1-7 21:14 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
这几天搞电池电压检测,采用STC12C5201AD。发现ADC_CONTR这个寄存器的第3位(AD转换的启动位)和第5、6位(转换速度选择位)无法写入数据。例如:
#define AD_POWER 0x80;
#define SPEED        0x60;
#define CH             0x06;
#define AD_START 0x08;
unsigned char  AD_POWER_temp;
unsigned char  AD_START_temp;
unsigned char  CH_temp;
unsigned char  SPEED_temp;
void AD()
{
      ADC_CONTR=AD_POWER|SPEED;      //开启ADC电源
      _NOP_();
     _NOP_();
     _NOP_();
     _NOP_();
      ADC_CONTR=AD_POWER|SPEED|CH|AD_START;//选择转换通道,启动AD转换
     _NOP_();
     _NOP_();
     _NOP_();
     _NOP_();
    AD_POWER_temp=ADC_CONTR&AD_POWER;
   AD_START_temp=ADC_CONTR&AD_START;
   CH_temp=ADC_CONTR&CH;
   SPEED_temp=ADC_CONTR&SPEED;
}
   结果我发现AD_POWER_temp的值为0x80,AD_START_temp的值为0x00,CH_temp的值为0x06,SPEED_temp的值为0x00;这是为什么呀?

相关帖子

沙发
明天及以后|  楼主 | 2011-1-7 23:49 | 只看该作者
解决了。谢谢!

使用特权

评论回复
板凳
老鱼探戈| | 2011-1-8 17:46 | 只看该作者
LZ速度挺快的嘛

使用特权

评论回复
地板
明天及以后|  楼主 | 2011-1-10 12:48 | 只看该作者
我查了三天,结果没有办法才贴上来。最后想想厂家的能力肯定比我强,结果继续查,就查出来了。把
#define AD_POWER 0x80;
#define SPEED        0x60;
#define CH             0x06;
#define AD_START 0x08;
后面的“;”去掉 就可以了。

使用特权

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

本版积分规则

5

主题

75

帖子

1

粉丝