PIC16F723A AD 转换问题

[复制链接]
2443|7
 楼主| jiandan642 发表于 2013-12-30 10:40 | 显示全部楼层 |阅读模式
      本人刚接触PIC16F723A ,现需要AN9跟AN11读取电压,然后比较两个值,根据结果进行不同的处理。需指点。
yuxinmei 发表于 2013-12-30 11:10 | 显示全部楼层
看datasheet,按资料给的顺序配置AD,读取AD值后根据精度需要数值转换,然后比较就可以了。需要注意的是AD采样的时间要根据管脚对地电阻值而定,电阻越大,采样时间越长。
yuxinmei 发表于 2013-12-30 11:27 | 显示全部楼层
贴上曾经做过的PIC16f723的程序
unsigned char ADchange(unsigned char i)
{
        unsigned char dat;
        ADCON1 = 0x53;  //0101 0011, 16分频,内部参考电压
        FVRCON = 0xA3;        //11 0000 11;参考电压4.096V
        ADCON0 = ADcon_Amp[i];  //设置模拟通道,ADcon_Amp[i]为一数组
        NOP();NOP();NOP();NOP();NOP();//电阻10K,等待采样完毕
        GODONE = 1;
        while(GODONE);//wait
        dat = ADRES;
        dat = dat >> 3; //数据转换
        if(dat > 30)
        {
                dat = 30;
        }
        return dat;
}
Rain_King 发表于 2013-12-30 16:40 | 显示全部楼层
不知道你什么问题......但是按照数据手册上一步步来,应该就没问题了.........
yewuyi 发表于 2013-12-30 17:05 | 显示全部楼层
如果不关注信号的相位差,则可以用两路ADC分别转换两次得到AD值,然后根据AD值比较即可。

如果信号的相位差对准确判断有影响,则必须使用用电压比较器或者是可以两路同步转换的ADC才能实现。
 楼主| jiandan642 发表于 2014-1-11 16:36 | 显示全部楼层
负的电压值跟正的电压值转换方式一样吗
 楼主| jiandan642 发表于 2014-1-13 21:22 | 显示全部楼层
读到的AD值跟电压的值怎么对应起来
小屁孩彡 发表于 2015-3-22 15:30 | 显示全部楼层

楼主我连灯都点不亮,求指导啊。

int main(int argc, char** argv) {
    PORTA = 0x00;
    ANSELA = 0x00;
    TRISA = 0x00;
    while(1)
    {
        RA6=1;
        dog();
    }
    return (EXIT_SUCCESS);
}

这个程序烧进去723a里面 RA6为什么不输出高电平?
您需要登录后才可以回帖 登录 | 注册

本版积分规则

1

主题

3

帖子

0

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