打印

求助!!!15系列单片内置A/D转换

[复制链接]
829|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
YANG5815|  楼主 | 2016-11-1 20:11 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
各位大佬们,我最近在研究IAP15W4K58S4的内置ADC,根据STC公司的15数据手册,我写出了一个程序、但是、采集到的数据是固定不变的,这我就有点慌了、恳请各位帮忙!!
void delay_main(uint z)
{
        uint x,y;
        for(x=z;x>0;x--)
                for(y=110;y>0;y--);
}
void adc_init()
{
        P1=0xff;
        P1ASF=0x08;
        CLK_DIV|=0X20;
        ADC_CONTR|=0X80;
        delay_main(80);
        P1M1=0x04;P1M0=0x04;
}
uint ADC()
{
        unsigned char DATA_H,DATA_L;
        ADC_DATA  =0;    //清除转换结果
        ADC_CONTR =0xE0; //保持电源开,设置转换速度                 
        _nop_();
        _nop_();
        _nop_();
        _nop_();
        ADC_CONTR =0xE3;
        delay(10);
        ADC_CONTR =0xEB; // 开转换开关 ,开始转换                              
        while(ADC_CONTR & 0x10==0);//查询转换是否结束,结束后读取结果
        
         ADC_CONTR &=0xE7;
         DATA_H=ADC_RES;
          DATA_L=ADC_RESL;
           
          ADC_DATA=DATA_H;
          ADC_DATA=ADC_DATA<<2;
          ADC_DATA |=ADC_RESL;
          ADC_CONTR=0x00;
          return(ADC_DATA);   //返回转化结果
}
void main()
{
        adc_init();
        init();
        delay_main(10);
        while(1)
        {
                ADC();
                write_com(0x80);
                write_data((ADC_DATA/1000)+0x30);
                write_data((ADC_DATA/100%10)+0x30);
                write_data((ADC_DATA/10%10)+0x30);
                write_data((ADC_DATA%10)+0x30);
                delay_main(1000);
        }
}
这是程序、请各位大佬指出错误、谢谢!!

相关帖子

沙发
YANG5815|  楼主 | 2016-11-1 20:12 | 只看该作者
两个延时程序名称不要在意、这些不重要!

使用特权

评论回复
板凳
coody| | 2016-11-1 21:29 | 只看该作者
STC官方的例程你试过没有? 现成的例程。

使用特权

评论回复
地板
YANG5815|  楼主 | 2016-11-20 12:41 | 只看该作者
coody 发表于 2016-11-1 21:29
STC官方的例程你试过没有? 现成的例程。

就是参考例程写的一个程序、

使用特权

评论回复
5
YANG5815|  楼主 | 2016-11-20 12:42 | 只看该作者
coody 发表于 2016-11-1 21:29
STC官方的例程你试过没有? 现成的例程。

手册里面那里也试过、

使用特权

评论回复
6
cjseng| | 2016-11-21 00:29 | 只看该作者
write_data函数是什么?
输入信号是什么?
ADC_DATA数据有没有变化?

使用特权

评论回复
7
coody| | 2016-11-22 15:06 | 只看该作者
YANG5815 发表于 2016-11-20 12:41
就是参考例程写的一个程序、

你先直接测试官方例程吧,然后再改。都不测试一下,怎么知道呢?

使用特权

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

本版积分规则

6

主题

37

帖子

0

粉丝