搜索
bottom↓
回复: 9

中颖 SH79F166A 单片机 AD 和定时器问题

[复制链接]

出0入0汤圆

发表于 2012-8-16 17:48:41 | 显示全部楼层 |阅读模式
有没有哪位大侠,用过中颖 SH79F166A 单片机 的!我是个新手,刚用这款单片机,用它的AD,AD值总是在乱跳,定时器的时间也不对!
请各位大侠,给个例程,学习下,谢谢!!

阿莫论坛20周年了!感谢大家的支持与爱护!!

你熬了10碗粥,别人一桶水倒进去,淘走90碗,剩下10碗给你,你看似没亏,其实你那10碗已经没有之前的裹腹了,人家的一桶水换90碗,继续卖。说白了,通货膨胀就是,你的钱是挣来的,他的钱是印来的,掺和在一起,你的钱就贬值了。

出0入0汤圆

发表于 2012-8-17 08:18:49 | 显示全部楼层
内部晶振还是外部晶振、是否分频?
看门狗是否开启??
AD乱跳是什么概念?跳了多少数,模拟信号接的什么信号?可以接一个恒定的信号,再看看还跳不跳。

出0入0汤圆

 楼主| 发表于 2012-8-17 09:51:56 | 显示全部楼层
wallelectronics 发表于 2012-8-17 08:18
内部晶振还是外部晶振、是否分频?
看门狗是否开启??
AD乱跳是什么概念?跳了多少数,模拟信号接的什么信 ...

用的是 内部晶振,没分频!
看门狗 没开!
AD 跳的范围很大,有几十的误差, 我是直接用精密滑动电阻器分压来做的,信号应该是很稳的,以前用STC的单片机这种方法没有问题!
我想应该是 单片机不熟悉,哪里设置不清楚,所以会有这样的结果!我把相关代码 贴上去,望大侠指教,谢谢!
AD相关代码
//-------AD define--------
#define AN0 0x00
#define AN1 0x02
#define AN2 0x04
#define AN3 0x06
#define AN4 0x08
#define AN5 0x0a
#define AN6 0x0c
#define AN7 0x0e

//*****************系统初始化**********************//
void        system_int()
{       
        P1CR=0xff;
        P1PCR=0xff;
        P1=0X00;
       
        P2CR=0xff;
        P2PCR=0xff;
        P2=0X00;
       
        P3CR=0xff;
        P3PCR=0xff;
        P3=0X00;
       
        P4CR=0x0f;          //设置p4.0为输入
        P4PCR=0x0f;          //关上拉电阻
        P4=0X00;
       
        P5CR=0xff;
        P5PCR=0xff;       
        P5=0X00;
       
}
//***************AD 采集****************//

uint get_adc(uchar ch)
{
//        int i,adc;
        ADCON        =        0x80;        //允许ADC模块
        ADT                =        0x20;        //DC时钟为系统时钟的32分频
        ADCH         =   0x01;           //选择AD输入通道       
        ADCON        |=  ch;           //选择CH1通道
        for(i=0;i<250;i++);
        ADCON        |=  0x01;        //开始ADC转换
        while(ADCON&0x01);
        adc = ADDH;
        adc<<=2;
        adc = adc + ADDL;

        return adc;
       
}
//********************AD 求平均******************//
void AD_COUNT()
{
        AD1=get_adc(AN0);//ADchange(AN0);//
        AD_zhong=AD_zhong+AD1;
        c++;
        if(c==50)
        {
                AD_jun=AD_zhong/50        ;
                AD_zhong=0;
                c=0;
        }
}


定时器相关代码
//*****************系统初始化**********************//
void        system_int()
{       
       
        P1CR=0xff;
        P1PCR=0xff;
        P1=0X00;
       
        P2CR=0xff;
        P2PCR=0xff;
        P2=0X00;
       
        P3CR=0xff;
        P3PCR=0xff;
        P3=0X00;
       
        P4CR=0x0f;          //设置p4.0为输入
        P4PCR=0x0f;          //关上拉电阻
        P4=0X00;
       
        P5CR=0xff;
        P5PCR=0xff;       
        P5=0X00;
       
}
//*****************定时器 初始化********************//
void time_int()
{

        CLKCON = 0x00;
        T2CON=0X00;        //定时器2 控制寄存器 16位自动重载方式
        T2MOD=0x00;//
        RCAP2H = 0xff;
        RCAP2L = 0xad;
        TH2    = 0xff;
        TL2    = 0xad;
        IEN0 = 0xa0;
        TR2=1;
        TF2=0;                       
        ET2=1;//使能T2中断
        EA=1;//开总中断                   
}
void Time2(void) interrupt 5
{  
    TF2=0;
    aa++;
}       

出0入0汤圆

发表于 2012-8-17 10:02:44 | 显示全部楼层
hengjng_t 发表于 2012-8-17 09:51
用的是 内部晶振,没分频!
看门狗 没开!
AD 跳的范围很大,有几十的误差, 我是直接用精密滑动电阻器分 ...

我没用过这个片子,用的是165,有几个小建议:
1.不用每次读数据都配置AD吧,初始化一次就够了……,配置AD后有个建立时间;
2.adc = adc + ADDL;    ADDL只有低两位有效,把高六位清零后再和adc相加吧;
3.先别平均,光看看读出来的数据,虽然平均很简单,但也有可能出错,不要引入那么多不确定的因素。

出0入0汤圆

 楼主| 发表于 2012-8-17 10:11:28 | 显示全部楼层
wallelectronics 发表于 2012-8-17 10:02
我没用过这个片子,用的是165,有几个小建议:
1.不用每次读数据都配置AD吧,初始化一次就够了……,配置 ...

好的,谢谢指教!!我再调调看!!

出0入0汤圆

发表于 2013-6-24 16:40:44 | 显示全部楼层
想问一下  解决问题了吗

出0入0汤圆

发表于 2013-11-18 09:33:24 | 显示全部楼层
也是马上要开始用中颖的芯片了。

出0入0汤圆

发表于 2014-4-6 14:22:33 | 显示全部楼层
解决了吗??

出0入0汤圆

发表于 2014-4-6 22:00:34 | 显示全部楼层
这个片子我还真用过,没觉得AD有什么问题。参照4楼的建议,同时考虑ADC的时钟是不是太快,或输入阻抗太大了。

出0入0汤圆

发表于 2014-4-7 12:14:19 | 显示全部楼层
在用166A的ADC,暂时没有发现什么问题
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-10-3 04:28

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

快速回复 返回顶部 返回列表