您当前的位置:五五电子网电子知识单片机-工控设备综合-其它基于PIC单片机的智能深度检测仪系统 正文
基于PIC单片机的智能深度检测仪系统

基于PIC单片机的智能深度检测仪系统

点击数:7348 次   录入时间:03-04 11:55:44   整理:http://www.55dianzi.com   综合-其它

1 引言
在很多工程领域,深度的测量是必不可少的测量项目。如矿山开采中的炮孔深度;在水利工程中河道的深度。测量以及相关数据的处理实现自动化,成为建设急需解决的重要课题。


本文讨论基于高性能PIC16F877单片机为主构成的距离测试仪,详细介绍该仪器的工作原理、基本功能框图、关键技术以及相应的工作软件流程。

2 系统组成及工作原理
系统基于声纳测量原理。测量仪器的系统结构框图如图1所示。下位机系统中单片机芯片选用价格低廉,性能优良的PIC16F877单片机,充分利用其提供的软硬件资源,配以响应的外围电路完成距离检测。主要组成部分包括:PIC单片机;外存储器(E2PROM);触摸式键盘;液晶显示器(LCD);通讯电路;电池电源通断控制电路。下位机主要实现声波的发射与接收、数据的处理及传输。除此之外,各下位机还具有独立显示温度的功能,避免因为通信网络的故障而造成整个系统的瘫痪。上位机是整个控制系统起统一管理和协调指挥的作用。它的主要功能有:数据采集处理;数据显示;超限报警;文件处理等。
点击看大图
 

2.1 微处理器系统
PIC 单片机是Microchip 公司推出的单片机系列, 它采用先进的RISC 技术, 具有低价格、低功耗、高性能、全静态、易使用等特点。目前已在仪器仪表、工业自动化、计算机通讯以及民用产品等领域得到广泛的应用, 本设计中采用了PIC 系列中的PIC16F877 作为电路系统的控制核心,在本系统中,以I2C 总线方式利用RCO、RC1 口与存储器24WC02 进行数据通讯,并通过RC2、RC3 口对电源进行监测, RC4、RC5用于声波的发射与接受,RC6、RC7与上位机通讯, RB2、RB3、RB4 口驱动液晶显示模块, RA口进行键盘的输入。


2.2 声波发射模块
电路上电以后,程序读取外部存储电路中记录下的声波发生器晶体频率。系统工作时,每隔2秒系统发射一次5个连续矩形波,矩形波占空比为50%。矩形波的频率和声波发生器内晶体频率须一致,这样才能产生最佳的声波。为了提高声波发射功率,RC0在正半周期输出为5V,负半周期为0V,RC1在正半周期输出为0V,负半周期为5V。


2.3 变增益声波接收模块
当有声波返回时,接收电路将捕捉到返回的声波。由于声波在传播过程中,随传播距离呈指数衰减,图中放大器U6A的增益随着时间也要呈指数变大。所以选用了具有32级可调电阻的数字电位器(X9315),在检测声波信号时,随着时间给数字电位器脉冲,以减小其电阻值。如果收到信号,信号在经过电位整形、去除毛刺、做比较之后,送到RC2口的是一个5V信号。如果没有检测到回波,可能出现情况是回波的幅值过小。通过调整阻值大小,增加放大器增益。放大器增益不可过大,否则会带来引进干扰信号及高次回波的问题。 利用单片机提供的预分频器,记录下此刻时间T。根据D=0.5VT(V为声波在介质中传播速度)计算出回波单程走过的距离。


2.4 与上位机通讯
单片机在处理完数据以后,需要将数据传输给上位机,让上位机做处理、记录。上位机也需要将声波在介质中的传播速度数据输送到下位机。
通用同步异步接收发送模块(USART) 是两个串行通信接口之一,USART 又称为SCI(Serial Communication Interface)。USART 可以设置为全双工异步串行通信系统, 这种方式可以与个人计算机PC 或串行接口CRT等外围设备进行串行通信;也可以设置为半双工异步串行通信系统, 与串行接口的A / D 或D / A 集成电路、串行EEPROM等器件连接。USART是二线制串行通信接口,它可以被定义为如下三种工作方式:全双工异步方式、半双工同步主控方式、半双工同步从动方式。为了把RC6 和RC7 分别设置成串行通信接口的发送/时钟(TX/CK)线和接收/ 数据(TX/DT)线,必须首先把SPEN位(TCSTAT的RD7) 和方向寄存器TRISC 的D7:D6 置1。USART功能模块含有两个8 位可读/ 写的状态/ 控制寄存器,它们是发送状态/ 控制寄存器TXSTA和接收状态/ 控制寄存器TCSTA。USART 带有一个8 位波特率发生器BRG(Baud Rato Generator),这个BRG 支持USART 的同步和异步工作方式。用SPBRG 寄存器控制一个独立的8 位定时器的周期。在异步方式下, 发送状态/ 控制寄存器TXSTA的BRGH位(即D2)也被用来控制波特率(在同步方式下忽略BRGH位)。向波特率寄存器SPBRG写入一个新的初值时,都会使BRG定时器复位清零,由此可以保证BRG不需要等到定时器溢出后就可以输出新的波特率。对 USART方式进行初始化的程序如下:
BSF STATUS,RP0 ;将指针指向数据存储器的第1页
MOVLW 0x19
MOVWF SPBRG ;设置波特率为9600
BCF STATUS,RP0 ;将指针指向数据存储器的第0页
CLRF RCSTA ;将接收控制和状态寄存器清零
BSF RCSTA,SPEN ;串口允许
CLRF PIR1 ;清除中断标志
BSF STATUS,RP0 ;将指针指向数据存储器的第1页
CLRF TXSTA ;将发送控制和状态寄存器清零
BSF TXSTA,BRGH ;设置为异步、高速波特率
BSF TXSTA,TXEN ;允许发送
BCF STATUS,RP0 ;将指针指向数据存储器的第0页
BSF RCSTA,CREN ;允许接收

初始化完成后, 即可发送或接收数据。在发送或接收数据时, 通过查询发送/ 接收中断标志位即可判断是否发送完一个数据/ 接收到一个数据。发送/ 接收中断标志位不需要也不能用软件复位。在异步串行发送的过程中,只要TXREG 寄存器为空,中断标志T X I F 就置位。因此, TXIF为1 并不是发送完毕的标志, 但仍可以用TXIF 标志来判断。因为当TXREG 为空时,将数据送入后,数据会保留在TXREG 寄存器中,直到前一个数据从发送移位寄存器中移出, 即前一个数据发送完。在本设计中, 单片机与IC卡通信的
本系统将C 口的RC 6 和RC7 设置成异步串行通信模式, 经过MAX232A芯片进行电平转换后,将TTL 电平转换为RS232 电平,再与DB9 接口相连, 即可实现通信。

3 软件系统设计
3.1 系统流程
系统流程参见图2。


 

图2 系统流程


3.2 谐波处理
系统在发射完声波以后,声波发射器存在余震,在其后的一段时间内不能检测回波,所在软件中要屏蔽这段时间的信号检测。由于被测物体表面不光滑、声波介质性质复杂以及回波出现谐波等原因,存在多次回波情况。对于前两种情况,只要找出最后一次回波即可;对于最后一种情况,需要用判断出它的谐波。在测试过程中发现,出现的都是二次谐波,三波以及更高的谐波由于声波的衰减,基本不会出现。所以在程序中需找出二次谐波,并将之剔除。具体程序如下:
  ……
RLF  TEMP1 ;TEMP1记录了时间的高位,将其乘以2
RLF  TEMP2 ;temp2记录的是时间的低位
BTFSS STATUS ,C
GOTO  OP1
INCF  TEMP1,F
OP1
MOVF TEMP1,W
SUBWF RESULT1,W 
SKPZ
GOTO OP2
MOVF TEMP2,W
SUBWF RESULT2,W
MOVWF TEMP3 ;它们的差值
MOVLW 3
SUBWF TEMP3,W
BTFSS STATUS,C ; 如果有借位说明是有谐波的
GOTO OP2
GOTO OP3
程序流程图

4 结束语
本设计硬件电路简单,功能齐全,安全可靠,性价比高,能较好地解决多次回波问题,具有很高的实用价值。


本文关键字:单片机  智能  检测仪  综合-其它单片机-工控设备 - 综合-其它