打印

请教ICL7135使用问题

[复制链接]
6797|20
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
zhzy724|  楼主 | 2010-6-10 12:57 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
利用BUSY,{25}脚(R/H)运行/读数控制端怎么控制?
是不是转换一次就行了?
转化电压=n-10000就行了?   n为BUSY变高开始计数到下降所计的数
7135的工作频率多少比较好?
用单片机控制先将25脚置1,然后检测BUSY,检测到BUSY马上开始计数,BUSY 下降送到中断,将25脚置0.           这样可以吗?
得到的电压准确稳定吗?
要是用STR产生5次中断编程是要注意哪些,才能使输出稳定准确?
编程时BUSY,R/H,STR用单片机要怎么编程?

相关帖子

沙发
coody| | 2010-6-10 14:11 | 只看该作者
用BUSY和CLK,转换一次读一次,n-10001

使用特权

评论回复
板凳
zkkov2000| | 2010-6-10 17:36 | 只看该作者
icl7135有两种工作方式,我用的是利用BUSY信号积分时间的长短作为结果的。ICL7135外围电路参考芯片手册,VREF我用TL431给定1V,很稳。注意积分电容和归零电容的选择,一般采用低介质吸收材料的电容,聚乙烯,聚四氟乙烯或高压聚丙烯或聚酯薄膜电容都可以,前两种价格贵,我用过CBB105/630V和薄膜电容(就是平常间道德黄色小方块,也可能是校正电容,具体说不上来名字,查看具体资料,呵呵),还有注意PCB板子布线,ICL7135是个AD转换片子,精度高,对走线有些讲究,ICL7135外围电路的数字地和其他模拟部分建议单点连接,CLK我是用的HCF4060外加4M晶振得到的,最后输入到ICL7135上的频率是250K,这个频率和最终的程序编写有关,频率不一样,程序也得作相应的修改。你可以参考“ICL7135的两种用法”这个**,网上很多。我用ICL7135做过产品。需要的话我有硬件设计和PCB走线以及程序。可以给你一份。希望你能多学知识。也希望你能多帮助别人!

使用特权

评论回复
评分
参与人数 1威望 +1 收起 理由
小飞侠hy + 1 赞一个!
地板
zkkov2000| | 2010-6-10 17:38 | 只看该作者
你又原始电路吗,发上来,大家给你分析。程序编写也是很简单的。

使用特权

评论回复
5
zhzy724|  楼主 | 2010-6-10 18:43 | 只看该作者
怎么贴图啊

使用特权

评论回复
6
zhzy724|  楼主 | 2010-6-10 18:50 | 只看该作者
谢谢了!特别要感谢3楼!我想要硬件设计和PCB走线以及程序,可以发给我吗?
我的邮箱1045232930@qq.com

使用特权

评论回复
7
invinliang| | 2010-6-11 22:50 | 只看该作者
还有一个,你采样的时候,猜来的数据要放一个数组里面观察,刚开始的一两次应该是不稳定的,不用,后面的数据是对的。如果你一直数据不对的话,就有问题了。

使用特权

评论回复
8
原野之狼| | 2010-6-12 00:04 | 只看该作者
请不要刷屏

使用特权

评论回复
9
zkkov2000| | 2010-6-12 14:40 | 只看该作者
7楼,你又解决办法吗?我以前的电路第一两次也很准,现在不知道哪出错了,竟然出现前一两次不正确的现象。怀疑是不是积分电容出了问题,一直困扰。

使用特权

评论回复
10
dengm| | 2010-6-12 17:06 | 只看该作者
用100KHZ比较好, 采样时间为0.1秒(50HZ 的5个波 or 60hz的6个波)

使用特权

评论回复
11
invinliang| | 2010-6-12 21:56 | 只看该作者
我刚前一次玩样用过这AD,我是多路采集用的,基本刚转换通道的前面和最后一两次都是不准的,你取中间的那几次就行了,不过这AD速度有点慢啊

使用特权

评论回复
12
zkkov2000| | 2010-6-14 13:41 | 只看该作者
不对,我们公司的产品时一批次一批次采购件,有的批次产品从焊接装机到最后调试,一直都很顺利,有的批次的件装完以后,出一些挺怪的问题,我怀疑是元件的问题,单一直找不到原因。就你说的第一次不准,最后几次才准的问题。我程序里是把第一次测试的数给抛弃了,留了接下来的3次。看来我的把前两次的都抛弃不要了。
但我很奇怪,前几次产品和这后几次的产品一样的板子,一样的件,单就出现了第一次转换不准的问题,。难道真是元件的问题??

使用特权

评论回复
13
invinliang| | 2010-6-14 21:51 | 只看该作者
呵呵,很正常嘛。我做毕业设计,好多被别人扔在哪里晒太阳的ICL7135芯片,我捡来试了,各芯片差距还是有点得

使用特权

评论回复
14
liaoyaohui| | 2010-12-13 17:06 | 只看该作者
可否给我份,我最近也在学习它,看评论干扰是关键问题,[email=1181196068@qq.com1181196068@qq.com[b[/email]] 3# zkkov2000

使用特权

评论回复
15
rdong| | 2010-12-14 16:19 | 只看该作者
本人网上找的程序,还是写不了

  #include <reg52.h>
#include<hong.h>
#define uchar unsigned char
#define uint  unsigned int
#define ulong unsigned long

sbit RUN=P1^4;
uint t,n,c;
uchar high,low,w;
uchar SData0,SData1;
void display();
bit t_sign=0;
uchar i,j;
uint d[5];
uchar code led[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//共阳极数码管10个数字的七段代码表.
//==============================================
//通用延时子程序
void delay(unsigned int n)
{
  unsigned int i;
  for(i=0;i<n;i++);   //65536*2*0.54253472uS=71111us(71ms)
}                    //6*8*200=9600;

void T0_Initial(void)
{
    TMOD|=0x0d;           
    TH0=0;                 //门控的16位计数器.
    TL0=0;
   ET0=1;
   EA=1;
}
//==============================================
char code DX516[3] _at_ 0x3b;
void main(void)
{
    RUN=1;
    IT0=1;    //外部中断负跳变触发;
    EX0=1;    //开外部中断0;
    TR0=1;    //开定时器0;
    EA=1;
    T0_Initial();
    while(1)
    {  
    display();  
       if (t_sign)
       {
                uint temp;           
                temp=SData1; //高8位放入temp
                temp<<=8;    //左移8位,进入高8位
                temp+=SData0; //低8位放入temp
                temp-=10001;  //减掉正向积分期间的10001个计数值.
                t=temp; //赋值到t
            //    t=temp();
       d[4]=t/10000;                 
       d[3]=(t%10000)/1000;
       d[2]=(t%1000)/100;
       d[1]=(t%100)/100;
       d[0]=(t%10);
       P2=0xff;
    P0=0xff;
       for (i=0;i<50;i++)
       {                 
           {     
           for(j=0;j<5;j++)
                 if(j==2)
           P0=led[d[j]]&0x7f;
                 else
           P0=led[d[j]];
           P2=pos[j];
           delay(500);           
          }
       }
        P2=0xff; P0=0xff;
        t_sign=0;
       }
       //else {RUN=0; RUN=1;delay(500);RUN=0; };//t=temp();//
       //delay(35000);
    }
}

Int0 () interrupt 0 using 1      
{
    SData0=TL0;      
    SData1=TH0;    //读取转换数据
    TL0=0;        //关闭定时器0,并清除;
    TH0=0;
    t_sign=1;      
}
void display()
{
   seg1=led[d[0]];
delay(20);
seg2=led[d[1]];
delay(20);
   seg3=led[d[2]];
delay(20);
seg4=led[d[3]];
delay(20);
seg5=led[d[4]];
delay(20);

}




//这是宏定义

#include <absacc.h>
#define uchar unsigned char
   #define uint  unsigned int
   #define off 0xff
   //这是键盘的地址宏定义
   #define key1 XBYTE[0X9F80]
   #define key2 XBYTE[0X9F40]
   #define key3 XBYTE[0X9F20]
   #define key4 XBYTE[0X9F10]
   #define key5 XBYTE[0X9F08]
   #define key6 XBYTE[0X9F04]
   #define key7 XBYTE[0X9F02]
   #define key8 XBYTE[0X9F01]
   //这是数码管的宏定义?
   #define seg1 XBYTE[0X9F01]
   #define seg2 XBYTE[0X9F02]
   #define seg3 XBYTE[0X9F04]
   #define seg4 XBYTE[0X9F08]
   #define seg5 XBYTE[0X9F10]
   #define seg6 XBYTE[0X9F20]
   #define seg7 XBYTE[0X9F40]
   #define seg8 XBYTE[0X9F80]

使用特权

评论回复
16
rdong| | 2010-12-14 16:20 | 只看该作者
3楼的能把资料发一份吗?444218103@qq.com

使用特权

评论回复
17
刘前辈| | 2010-12-14 18:08 | 只看该作者

4位半A/D转换器ICL7135与8031单片机的接口方法

本帖最后由 刘前辈 于 2010-12-14 18:11 编辑

很简单的原理实验:仅用3根连线接单片机即可。不用上传图了吧。

          4位半A/D转换器ICL7135与8031单片机的接口方法
ICL7135A/D转换器由于其成本低、分辨率(14位)高而获得广泛应用。本实验采用了由它构成的面板表。为将面板显示数据送入8031单片机,利用7135的串行输出数据功能和8031的T0计数器来实现简单的接口方法。
图1是7135的转换时序图。BUSY引脚电平为高表示转换开始,前10001个脉冲是积分阶段,以后所记录的脉冲数即为Vi 对应值。Vi最大为20000个脉冲,相当于二进制14位,因此16位计数器T0足够用来记录Vi 值。由于积分阶段前10001个脉冲与Vi值无关,所以T0计数应从-10001开始。这样当7135积分段结束时,T0计数器溢出清零,并继续记录以后的脉冲数,当转换结束BUSY变为无效时,低电平自动关闭T0,(见图2),这时T0记录的就是Vi值。




T7135.ASM是8031以查询方式采集数据时的子程序。10进制10001等于16进制2711H,用T0溢出值减去这个数,10000-2711=D8EFH,即-10001值。程序如下:
T7135.ASM
L0:        MOV        TMOD, #0DH                ;T0按模式1操作
             MOV        TCON, #00H                ;关闭T0
L1:        MOV         TH0, #0D8H                ;T0置初值
             MOV         TL0, #0EFH
        JB                P3.2, $                        ;寻找BUSY无效点
        SETB        TR0                                ;打开T0
        JNB                P3.2, $                      ;等待BUSY有效
        JB                P3.2, $                         ;等待BUSY无效
        CLR                TR0                          ;关闭T0
        RET                                                  ;程序结束

使用特权

评论回复
18
小飞侠hy| | 2013-1-15 15:47 | 只看该作者
zkkov2000 发表于 2010-6-10 17:36
icl7135有两种工作方式,我用的是利用BUSY信号积分时间的长短作为结果的。ICL7135外围电路参考芯片手册,VR ...

硬件设计和PCB走线以及程序,可以发给我吗?我想参考一下,做毕设用,邮箱1154602125@qq.com

使用特权

评论回复
19
d5252yh0307| | 2013-3-23 15:04 | 只看该作者
zkkov2000 发表于 2010-6-10 17:36
icl7135有两种工作方式,我用的是利用BUSY信号积分时间的长短作为结果的。ICL7135外围电路参考芯片手册,VR ...

你好,我现在用icl7135做电流表。我现在遇到个问题就是,当两表笔短接的时候,数码管显示的不是00000,而是最高位会0.1.2的不断反复变化,当我接入负载的时候,最高位也是一样的不断的变化,不会稳定下来。用单片机给它250KHZ,基准电压是1v的。检查了几次电路,还是不行,请问这是哪方面的问题?

使用特权

评论回复
20
he969240| | 2014-11-24 00:03 | 只看该作者
能否发一份给我,365790490·QQ。COM

使用特权

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

本版积分规则

59

主题

132

帖子

0

粉丝