ICL7135怎样实现量程自动转换

请问要检测欠量程信号,怎样用C语言编程实现
2024-12-05 06:15:49
推荐回答(1个)
回答1:

性能好、价格低,应用十分广泛。本文介绍ICL7135的引脚定义、主要特性及其与单片机的接口。

1. ICL7135的引脚功能及主要特性

ICL7135是双斜积分式4位半单片A/D转换器,28脚DIP封装。其引脚功能如下:脚(V-)-5V电源端;脚(VREF)基准电压输入端;脚(AGND)模拟地;脚(INT)积分器输入端,接积分电容;脚(AZ)积分器和比较器反相输入端,接自零电容;脚(BUF)缓冲器输出端,接积分电阻;脚(CREF+)基准电容正端;脚(CREF-)基准电容负端;脚(IN-)被测信号负输入端;脚(IN+)被测信号正输入端;脚(V+)+5V电源端;、~脚(D1~D5)位扫描输出端;~脚(B1~B4)BCD码输出端;脚(BUSY)忙状态输出端;脚(CLK)时钟信号输入端;脚(POL)负极性信号输出端;脚(DGND)数字地端;脚(R/H)运行/读数控制端;脚(STR)数据选通输出端;脚(OR)超量程状态输出端;脚(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之间IDTB没有取过数据,则将13H单元送1CH,以便IDTB将低位BCD送入1CH单元。例如:由于干扰使第4个STR脉冲的对应的数据送入1CH,第5个STR脉冲对应的数据送入1BH,则第5个脉冲过后到第6个脉冲到来时,已过了大约333ms,已进入过五次T1中断,在第二次进入IET1时已将13H单元的内容置为1CH,这样,在STR第6个~第10个脉冲到来时,IDTB将对应的BCD码分别送入1CH~18H,使本次A/D转换成功,自动纠正了错误的脉冲。