全新论坛MCU智学网上线,欢迎访问新论坛!稀缺资源、技术干货、参考设计、原厂资料尽在MCU智学网
更新自动建库工具PCB Footprint Expert 2023.13 Pro / Library Expert 破解版

单片机AD控制问题

[复制链接]
2873 1

本文包含原理图、PCB、源代码、封装库、中英文PDF等资源

您需要 登录 才可以下载或查看,没有帐号?注册会员

x
想用ICL7135采集电压,单独控制AD的时候程序没有问题,但是程序联调的时候就不正确了,在>2V输入时,单片机的计数器无法计数到20000,目前最惨的时候只有5000左右,联调的时候,低电压的计数倒是没有问题,这是怎么回事?编译用的是KEIL。

一下是AD部分代码,AD的时钟由T0定时器提供,频率为1MHz,控制用的是查询模式,用中断模式会莫名的丢失T1计数器的计数值,这点我也一直没想明白。
void sys_init()
{
        /*系统时钟设置*/
        CLK_DIV = 0x02;                        //4分频 = 2MHz
        /*外设驱动时钟设置*/
        TMOD |= 0x02;
        TL0 = 0xff;
        TH0 = 0xff;                                //2分频
        AUXR |= 0xc0;                        //T0,T1工作在1T模式下
        WAKE_CLKO |= 0x01;                                 //允许T0输出时钟
        TR0 = 1;
        /*PCA软件定时器设置*/
        CCON = 0;
        CMOD = 0x09;                        //系统时钟,2MHz,CF中断使能
        CCAPM0 = 0x49;                        //PCA软件定时模式,使能中断
        /*启用P4口*/
        P4SW = 0xff;       
        /*开启总中断*/
        EA = 1;
}
/*
* ADC控制函数
*/
void ADC_init()
{
        TMOD |= 0x50;                        //16位计数器
        TL1 = 0;
        TH1 = 0;
}
void ADC_sample(uint sample_addr[],uchar sample_pol_addr[],uchar times)
{
        uchar i;
        sample_start:
        for(i=0;i<times;i++)
        {
                TL1 = 0;
                TH1 = 0;
                while(!ADC_BUSY) _nop_();
                TR1 = 1;
                while(ADC_BUSY)  _nop_();
                TR1 = 0;
                ADC_POL = 1;
                sample_pol_addr = ~ADC_POL;
                sample_addr = TH1 * 256 + TL1;
                if(sample_addr < 10001)        sample_addr = 0;
                else   sample_addr = sample_addr - 10001;                //正向积分10000个时钟,关闭定时器1个时钟
        }
}
单独调试上面这段程序和LCD显示,完全没问题!_(:з」∠)_

再付一个全程序,里面有硬件接口示意图: LCR.zip (4.73 KB, 下载次数: 1)
求大家帮我看看,这是怎么回事

举报

回复

1 个评论

eqg***  新手上路  发表于 2014-4-3 17:19:41  | 显示全部楼层
忘说了,单片机是STC12C5A60S2
*滑块验证:
您需要登录后才可以回帖 登录 | 注册会员

本版积分规则

打开支付宝扫一扫,最高立得1212元红包
搜索

图文热点

更多

社区学堂

更多

客服中心

QQ:187196467 服务时间:周一至周日 8:30-20:30

关注我们

关于我们
关于我们
友情链接
联系我们
帮助中心
网友中心
购买须知
支付方式
服务支持
资源下载
售后服务
定制流程
关注我们
官方微博
官方空间
官方微信
快速回复 返回顶部 返回列表