容栅数显百分尺是一种新型位移传感器,提供的接口有4条信号线,包括电源线(+1.55V)、地线、时钟控制线CLK、串行数据输出线Data。接口信号不是标准的TTL信号,其信号‘1’为1.5V左右,其信号‘0’为0V左右。因此,必须进行电平转换,随后再经过反向器整形,送到相应芯片接口。

容栅数显卡尺采用串行数据采集,其中数据线波形见图2所示。在最快20ms的周期内,包括一个下述数据采集周期。每个周期输出两组数据,其中第一组为绝对值,第二组为相对值,在本系统中我们采用第二组数值。每组数值包括24个二进制位,其中前13位为整数位,后11位为小数位,换算后的数据单位为0.1inch。

图2 容栅数据信号时序

采用89C52单片机以及12MHz系统时钟,单指令周期在为1us,而传感器每位采集时间为11us,故采用汇编语言进行采集,确保数据的正确性。

软件设计的关键在于确定数据采集的起始条件,容栅传感器输出的快速周期为20ms,慢速周期为250ms,因此起始条件就是大于一个时钟周期并且小于20ms的连续时钟低电平以及接在上述低电平之后的44us的连续高电平。

READ: MOV A, TMOD

ANL A, #0F0H

ORL A, #01H

MOV TMOD, A

MOV TH0, #0FCH

MOV TL0, #66H

CLR TF0

SETB TR0

PG1: JB TF0, PG7

CLR A

MOV R1, #08H

PG2: MOV C, P1.2

RLC A

DJNZ R1, PG2

JNZ PG1

MOV R1, #00H

PG3: MOV TH0, #00H

MOV TL0, #00H

CLR TF0

SETB TR0

PG4: JB TF0, PG6

CLR A

MOV R2, #04H

PG5: MOV C, P1.2

RLC A

DJNZ R2, PG5

CJNE A, #0FH, PG4