打印

请教ICL7135问题

[复制链接]
2392|6
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhzy724|  楼主 | 2010-6-6 21:51 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
沙发
zkkov2000| | 2010-6-10 11:24 | 只看该作者
icl7135有两种工作方式,我用过其中的一种,就是利用BUSY管脚判断转换是否完成。STR连续输出5个脉冲还真没搞过,你可以去“落泪米兰的电子信息世界”博客去看看,或许有帮助。

使用特权

评论回复
板凳
zhzy724|  楼主 | 2010-6-10 12:29 | 只看该作者
好的,谢谢!!!:handshake

使用特权

评论回复
地板
zhzy724|  楼主 | 2010-6-10 12:50 | 只看该作者
利用BUSY,{25}脚(R/H)运行/读数控制端怎么控制?
是不是一次就行了?
转化电压=n-10000就行了?   n为BUSY变高开始计数到下降所计的数
7135的工作频率多少比较好?
用单片机控制先将25脚置1,然后检测BUSY,检测到BUSY马上开始计数,BUSY 下降送到中断,将25脚置0.这样可以吗?
得到的电压准确稳定吗?
要是用STR产生5次中断编程是要注意哪些,才能使输出稳定准确?

使用特权

评论回复
5
zkkov2000| | 2010-6-10 21:27 | 只看该作者
你先把我给你说的那个**先好好读读,OK?

使用特权

评论回复
6
zkkov2000| | 2010-6-10 21:28 | 只看该作者
别等着什么都让别人给你教,最起码基本的东西掌握下吧先!

使用特权

评论回复
7
invinliang| | 2010-6-11 22:41 | 只看该作者
下面是我搞过的玩样,ICL7135
楼上说得对,最好还是要靠自己调试出来,
我在调试这个AD的时候,整个英文的datasheet不晓得研究了多少遍。
下面的程序希望对你有参考意义


#include<reg52.h>
#include<intrins.h>

#define uchar unsigned char
#define uint  unsigned int

bit ad_over;   //每次AD读到数据中断标志位
uint idata ad_pul;    //用于存放每次读到的AD计数值
uchar idata s_num;    //采样次数存放
bit readad_flag;//采样次数到,读取计算数据标志
uchar chan;     //通道号
uchar schan;
int idata tem_buf[17];       //tem——buf[0]未用

/*******************************************************************/
/*                                                                 */
/*  数据采集 把温度数据存入tem_buf[]中                             */
/*   存到全局变量数组tem——buf【】中
/*                                                                 */
/*******************************************************************/
void get_data()
{
   // uchar i;
    uint ad_buf[7];     //用于存放读取的AD数值,临时存放
    long f_addat;       //用于存放计算AD数值总数,临时存放
    if(ad_over==1)      //AD有数据来,存数据,          在主程序大循环里,数据采集是实时的,主要扫描对象
    {
        ad_over=0;
        ad_buf[s_num]=ad_pul;
        s_num++;           //记录采样次数
    }
    if(readad_flag==1)    //采样次数到,计算数据
    {
        readad_flag=0;   //清标志位
        f_addat=(ad_buf[5]+ad_buf[3]+ad_buf[4])/3; //取中间几次稳定数据,求总和
        tem_buf[chan]=(f_addat*1.232863)/2.3826-2731.5;       //求平均值,乘一个系数K
        chan++;
        if(chan==17)
        {
            chan=1;
        }
        chsel(chan);
    }
}

main()
{
    TMOD=0x1d;
    TH0=0xd8;
    TL0=0xf0;
    EA=1;
}

/*******************************************************************/
/*                                                                 */
/*  ICL7135                                                        */
/*                                                                 */
/*******************************************************************/
void icl7135_ex0_int() interrupt 0
{
        ad_pul=256*TH0+TL0;
        ad_over=1;
        if(pol==0)
    {
            ad_pul=0-ad_pul;            //这里不会用到负电压
    }
    if(s_num==6)
    {
        s_num=0;
        readad_flag=1;
    }
    TH0=0xd8;
    TL0=0xf0;
}

使用特权

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

本版积分规则

59

主题

132

帖子

0

粉丝