打印

Proteus 仿真pic单片机 总提示adc 转换时间违反规定

[复制链接]
1609|1
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
djnxqc|  楼主 | 2013-9-8 15:10 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
Proteus 仿真pic18单片机 总提示adc 转换时间违反规定,单片机时钟设置为16M,adc转换相关代码如下,求大神指教,我自己检查没发现错误
//============AD初始化程序============
void AD_init()
{
        //RA0设置为输入
        TRISAbits.TRISA0=1;
        PORTAbits.RA0=0;
        //-- ADCS1 ADCS0 CHS2 CHS1 CHS0 GO/DONE —— ADON
        //--   1     0    0    0    0      0     0    1
    //选择通道0(AN0),AD上电
        ADCON0=0x81;

        //-- ADFM ADCS2 —— —— PCFG3 PCFG2 PCFG1 PCFG0
        //--  1     0    0   0    1     1     1     0
        //右对齐(ADRESH寄存器的高6位读作0),AN0为模拟输入位,参考正负电压分别为VDD和VSS
        ADCON1 = 0xce;
}


//============AD转化程序============
unsigned int AD_Trs()
{
        unsigned int adval;
        float advalf;
        ADGO = 1;                      //启动AD转化
        while(ADGO);                 //说明AD转化完成
        adval = ADRESH;                        
        adval = adval<<8|ADRESL;      
        advalf = adval/1023.0*5.0;     //因为参考电压为5伏
        adval = advalf*1000;           //转化为整数,以便显示
        return (adval);       
}

相关帖子

沙发
djnxqc|  楼主 | 2013-9-8 15:12 | 只看该作者
好久不发帖有发错版块了

使用特权

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

本版积分规则

10

主题

49

帖子

1

粉丝