icl7135 使用方法

icl7135 使用方法,第1张

一:传统使用方法 ICL7135精度高、抗干扰性能好、价格低,应用十分广泛。本文介绍ICL7135的引脚定义、主要特性及其与单片机的接口。 1. ICL7135的引脚功能及主要特性 ICL7135是双斜积分式4位半单片A/D转换器,28脚DIP封装。其引脚功能如下:{1}脚(V-)-5V电源端;{2}脚(VREF)基准电压输入端;{3}脚(AGND)模拟地;{4}脚(INT)积分器输入端,正雹接积分电容;{5}脚(AZ)积分器和比较器反相输入端,接自零电容;{6}脚(BUF)缓冲器输出端,接积分电阻;{7}脚(CREF+)基准电容正端;{8}脚(CREF-)基准电容负端;{9}脚(IN-)被测信号负输入端;{10}脚(IN+)被测信号正输入端;{11}脚(V+)+5V电源端;{12}、{17}~{20}脚(D1~D5)位扫描输出端;{13}~{16}脚(B1~B4)BCD码输出端;{21}脚(BUSY)忙状态输出端;{22}脚(CLK)时钟信号输入端;{23}脚(POL)负极性信号输出端;{24}脚(DGND)数字地端;{25}脚(R/H)运行/读数控制端;{26}脚(STR)数据选通输出端;{27}脚(OR)超量程状态输出端;{28}脚(UR)欠量程状态输出端。 TCL7135的主要性能特点为: 1)输入阻抗达109Ω以上,对被测电路几乎没有影响;2)自动校零;3)有精确的差分输入电路;4)自动判别信号极性;5)有超、欠压输出信号�6)采用位扫描与BCD码输出。 2. ICL7135与单片机的接口 1)电路原理 图1是ICL7135与单片机的接口电路。图中C1、R2是积分元件,C2是自零电容,C3是基准电容;R3、C5组成标准输入滤波网络;R4、C9、D1、D2组成输入过压保护电路;RP1为基准电压调整电位器,可根据要显示的满度值选择基准电压的大小,这里设计为1.0000V,它们的关系是:满度值为基准电压的两倍。IC4为六反相器,两个反相器组成振荡电路为ICL7135提供时钟信号,振荡频率f=0.45/(R6×C4)。ICL7135要求每秒钟至少进行3次A/D转换,每次转换需要40000个时钟脉冲,因此时钟频率应大于120kHz,这里取f=125kHz。STR为选通脉冲输出端。一次A/D转换结束后,在该端连续输出5个负脉冲,分别对应5组BCD码数据。74LS244是三态缓冲器,1G、2G分别选通两组信号:1G=0、2G=1时,选通第一组信号:1G=1、2G=唤隐0时,选通第二组信号。单片机的P3.1接1G,当P3.1为0时接通显示数码管;P3.7接2G,当P3.7为0时接通ICL7135的B1~B4。 2)ICL7135 STR端时序图 图2为ICL7135 STR端输出时序图。STR端在1秒内输出3 次,每次5个、共15个负脉冲,每次输出时间约333ms,连续负脉冲间的时间差远小于65ms。程序中设定T1中断时间间隔至少65ms,因而可准确检测出STR发出的5个连续的负脉冲,分别接收4位半A/D转换器输出的5个BCD码数据。 3)A/D转换相关软件工作原理 STR的负脉冲1号~5号、6号~10号、11号~15号,分别对应于数据1、数据2、数据3的BCD码的低位到高位……。ICL7135的STR接89C2051的P3.2。IDTB为取数中断(外中断IET0)程序。每次进入取数中断程序,接通74LS244第二组数据输入开关,读P1.3~P1.0口,送到以举链帆13H单元为指针的单元中(初始化时13H单元内容为1CH),然后13H单元数据指针减1。待5个BCD码取完,置位转换成功标志20H.6,将13H单元送1CH,调用子程序DTB将18H~1CH的BCD码数据转换为两个8位二进制数送6EH、6FH(高位存6EH单元)。IET1为T1中断程序,T1工作于方式1,不送入时间常数(即初始值为0000H),若晶振为12MHz,则每次中断的时间间隔为65.536ms。进入IET1中断时,如果20H.0=1,表示正在测量周期或频率;如果20H.0=1,且13H单元内容不为1CH、20H.7=0,表示是在连续取数过程中第一次进入IET1;如果20H.0=1,且13H单元内容不为1CH、20H.7=1,表示第二次进入IET1,在这两次进入IET1之

/*查询法实现AD转换,接4位7段共阴数码管数码管,单片机P00~P03接位选,P20~P27接段选,ALE接CD4040分频,

频率为500kHz,再接到ICL7135的CLOCKIN上。稳压管为TCL431,扒春通过多圈电位器给ICL7135的参考电压分为1V,

ICL7135的负电压端通过ICL7660来供给(接近-5V就行了),ICL7135的电容要用CBB电容,质量好一些。

有一个值得注意的问题,单片机、显示、还有7135的模块要共地。如果熟悉单片机,想看下边的程序应该不会碧搏

很难。 */

#include<reg52.h>

#include<math.h>

#define uchar unsigned char

#define uint unsigned int

sbit BUSY=P3^2

uint tt,temp

float v,Rx,t

double c

uchar code table[]={0x3f,0x06,0x5b,0x4f,

0x66,0x6d,0x7d,0x07,

0x7f,0x6f}

uchar code table1[]={0xbf,0x86,0xdb,0xcf,

0xe6,0xed,0xfd,0x87,

0xff,0xef}

void delay(uchar z)

{

uchar x,y

for(x=20x>0x--)

for(y=zy>悔此祥0y--)

}

void init()

{

EA=1

TMOD=0x09

TH0=0

TL0=0

ET0=1

// IT0=1

}

void main()

{

uint i

init()

while(1)

{

while(BUSY)

TH0=0

TL0=0

TR0=0

while(!BUSY)

TR0=1

while(BUSY)

TR0=0

temp=(TH0*256+TL0)/2-10001

v=(float)(temp)/10000

v=v/50.4

Rx=5000/(50.0/51.0-v/2.45)-5000

c=39.08*39.08-4*0.58*(Rx-100)

t=(39.08-sqrt(c))*100/(2*0.58)

for(i=0i<50i++)

{

P2=table[(unsigned int)(t*100)%10]

P0=0xf7

delay(10)

P2=table[(unsigned int)(t*10)%10]

P0=0xfb

delay(10)

P2=table1[(int)(t)%10]

P0=0xfd

delay(10)

P2=table[(int)(t/10)%10]

P0=0xfe

delay(10)

P0=0xff

}

}

}


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8269213.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-14
下一篇 2023-04-14

发表评论

登录后才能评论

评论列表(0条)

保存