
用容栅作为传感器的数显量具.doc)
5页用容栅作为传感器的数显量具,它的数据处理部分是一个模块,模块上设置了一个串行接口,用此接口和单片机连接可以对其功能进行扩展,如增加某些控制功能,或用此模块开发自己的长度测量或控制仪器本文以 BJ200 卡尺模块为例给出它与 51 单片机的接口电路和接口程序引脚: 图 1 、数显模块引脚图图 1 示出了接口的相对位置,1 为负 1.5V;2 为数据信号;3 为同步信号;4 为 0V,即接地端如果不使用电池,而采用稳压电源,可将电源电压提高为 1.8~2.0V,以提高其抗干扰能力数据格式: 串行口的数据是二进制码,约 0.2 秒输出一次,每次输出两组数据,第一组为绝对相移,不受人工控制,对测量没有意义,第二组为相对相移,是相对于零位置的相移,即是我们所要采集的数据一组数据 24 位,低位在前,高位在后,最后一位是符号位最后一位为“1”表示数据为负数,以补码输出,为“0”表示数据为正数,以原码输出若用 D 作为此数据的十进制表示,则最终测得的位移量“l”可表示如下:与 8051 接口: 信号电平转换电路: 电路见图 2由于模块使用负 2V 电源,所以它的输出信号需经过转换才能和 8051 相容。
R2、Q2、U1D 和U1E 对数据信号进行变换,输出用 DATA 表示;R1、Q1 和 U1A 对同步信号进行变换,输出用 CLK 表示;CLK 后面的电路用来给单片机提供一个中断信号,信号未传送时,INT 信号为低电平,信号传送期间,由于 R3、C1 积分电路的作用,INT 保持高电平,信号传送完毕,INT 又回到低电平,单片机设为脉冲中断方式,检测到这个脉冲下降沿即转入中断服务程序,从串行口读入数据与 8051 接口电路: 电路见图 3,其中 DATA、CLK、INT 各端分别和图 2 中同名端口相连MC14053 是 3 刀双掷模拟开关,我们选用其中一组;MC14557 是长达 64 位的可变移位寄存器,移位位数由 L1、L2、L4、L8、L16、L32 的接法决定,在此接成 24 位((16+4+2+1)+1=24),其输出端接到 8051 的串行口8051 复位后,P1.7 置 0,MC14557 的时钟端接至模块同步信号 CLK数据传送完毕,INT 产生负跳变,单片机转入中断服务程序,将 P1.7 置 1,MC14557 时钟端接至 8051 的串行时钟,程序分三次将 24 位数据读入单片机,数据通信任务完成。
此后,即可对数据进行各种加工处理,达到工作要求编程: 为了和以上电路配合,程序中先将 P1.7 置 0,主程序中开放外中断,中断方式设为脉冲方式8051 采用串行通信方式 0 从 MC14557 读取数据,一次读取 8 位,需三次读完 24 位程序中用到 R0、R1 寄存器,数据读入后按高位在前的顺序存入 30H、31H、32H 单元,即 30H 的最高位为符号位开始----------------CLR P1.7 ;MC14557 时钟接到模块同步信号MOV IE, #81H ;开放外中断 0SETB IT0 ;中断方式置为脉冲方式;以下为数据接收子程序:MOV IE, #00H ;禁止中断MOV SCON,#00H ;串行通信方式 0SETB P1.7 ;将 MC14557 的时钟转为 CPU 控制MOV R0,#32HMOV R1,#03H ;分三次读取数据L0:SETB REN ;开始接收数据JNB RI,$MOV A,SBUF ;数据从缓冲区移至 RAM 单元MOV @R0,ACLR RIDEC R0DJNZ R1,L0CLR P1.7 ;MC14557 时钟转换到 CLKRET除了本例所用的串行读取数据方式以外,还可以使用串入并出寄存器将模块输出的串行数据转换为并行数据,再读入单片机。
此接口电路已用于笔者设计的数显测厚仪,用来测量光学玻璃元件的厚度在这个仪器中,笔者利用采集的数据添加了公差输入、绝对/相对测量方式转换、超差报警等功能,以满足用户的要求。












