基于单片机控制的DDZ型热工仪表检测仪的设计
引言
传统的DDZ型热工仪表检测仪以模拟显示为主,有性能不稳定、误差较大等缺点。针对这一问题研制了基于单片机控制的热工仪表检测仪,它不仅能在DDZ 型热工仪表的设计、校正、维修中提供信号源,而且能把某些仪表端口的信号采集到计算机上处理并且打印出数据,以便相关人员分析处理并作出相应的反应。
仪表的功能
本仪表不仅能测量和产生DDZ型热工仪表统一的联络信号,而且能数字化并显示信号大小,具有动态显示、性能稳定等优点。概括起来,仪表具有如下功能:
(1) 可以测量和产生DDZ-Ⅱ型仪表间的联络信号:0~10mA DC。
(2) 可以测量和产生DDZ-Ⅲ型仪表间的联络信号:4~20mA DC,1~5V DC。
(3) 具有RS-232串行通信口,可以和上位机进行通信。
(4) 通过按键设定信号输出值,信号输出和显示的整个过程在毫秒内完成。
(5) 4位数码管动态地显示测量和产生信号值大小。
仪表的硬件结构
本仪表主要由PIC16F877单片机和外围器件及其相应的软件编程构成,如图1所示。可分为7大模块:输入模块、A/D转换模块、数码显示模块、串口通信模块、键盘设置模、D/A转换模块和电源模块。
本文主要介绍输入模块、通信模块、A/D转换模块、及键盘设置模块,以便更好地说明该仪表的硬件电路和软件编程。
关键芯片和技术
输入模块
输入模块设计了三路模拟量输入电路:一路输入0~10mA DC电流信号,通过500?的精密电阻转化为0~5V DC电压信号;一路输入1~5V DC 电压信号;另一路输入4~20mA电流信号,经过250?的精密电阻转化为1~5V DC电压信号。由于使用OP07运放器构成电压跟随器,显著提高了抗干扰能力和精度,输入模块的硬件电路图如图2所示。
OP07运放器后接了一个超量程报警系统,它由稳压管、报警器、过电压继电器和动断触点组成。稳压管和过电压继电器的额定电压都是+5V,当输入电压值超过该值时,过电压继电器就会使动断触点断开从而自动切断电路,与此同时稳压管导通,报警器产生一个报警信号。
由于测量现场往往有磁干扰和火花干扰,所以本设计选用低通滤波器用于对现场强电磁和火花干扰的抑制和消除,同时除掉直流信号中混入的交流信号。
A/D转换模块
本设计采用PIC16F877单片机作为核心芯片,其A/D转换值为10位,可设置1~8个A/D转换通道。本仪表将A口的RA0引脚设定为模拟电压输入,进行A/D转换后先将A/DRESH和A/DRESL寄存器中的值经数据处理变为与实际模拟量相对应的二进制数,再变换成对应的BCD码,最后送到与C口相连的数码显示模块上进行显示。
设置输入/输出引脚
由于PIC16F877的引脚同时具备输入/输出的功能,因此使用前必须进行设置,其初始化引脚的命令如下:
banksel TRISC ;选择TRISC寄存器所在的数据存储体
clrf TRISC,3:0> ;设定C口的RC3:RC0为数据输出口
bsf TRISA,0 ;设定A口的RA0为输入口
进行A/D转换的步骤
(1) A/D转换的初始设定:对A/DCON1和A/DCON0寄存器中的位进行设置。
(2) 选择A/D转换的模拟输入端:A/DCON0寄存器的5:3>位设为000,表示选择A口0>位RA0为模拟输入端。
(3) 启动A/D转换:A/DCON0寄存器的2>位GO/DONE为1时,表示正开始进行A/D转换。
(4) 查看A/D转换是否完成:GO/DONE同时作为A/D转换的标志信号,若为1时,表示正在进行A/D转换,转换工作尚未结束;若为0时,表示A/D转换已完成,可以读取转换结果。
(5) 存放A/D转换的结果:把A/D转换的结果存放在A/DRESH和A/DRESL寄存器中。
RS-232 串口通信
PIC16F877与PC之间的双向RS-232通信的目的是把A/DRESH、A/DRESL中的数据传到上位机(计算机),上位机采用C语言编辑的接收软件接收数据,并进行更进一步的处理。
选择波特率
在PIC16F877的UART模块中,8位寄存器SPBRG的值X和寄器TXSTA中的BRGH位决定通信时的波特率。当BRGH=1 时,由于该仪器的波特率设为9600bit/s, Fosc=4MHz,通过计算可以得到X=25.042≈25,此时其误差仅为:(9615-9600)/9600=0.16%,表示波特率选择合适。
数据格式
设RC7为PIC16F877的数据输出口,RC6为数据输入口,通过MAX232转化模块与PC机相连。由于PIC 单片机的RS-232的通信格式固定为1个开始位,1个停止位,没有奇偶校验位,设计数据位为8位。
传输方式
采用中断的方式来实现单片机与PC之间的通信,UART的传输与接收可以分别产生一个中断源,寄存器PIE1中的位TXIE=1时产生传输中断源;RCIE=1时产生接收中断源。进行串口通信时PC机发一个请求发送信号”Requst”给单片机,单片机接收到此信号后查询PIR1寄存器中的位TXIF是否为1,若为1表示传送数据寄存器TXREG为空,将待传送的数据写入TXREG寄存器,即刻开始执行UART的传送工作,按照单片机和PC机共同定义的通信协议将数据发送完毕。
键盘设置
仪表的表面板上有4个开关键(“Reset”键和控制3路模拟量输入的3个开关键K1,K2,K3),和一个键盘(10个数字键,6个功能键)。 键盘设置用来控制仪表执行何种功能:是测量信号还是产生信号,测量和产生的分别是那一种信号都可以通过按键来完成,通过对键盘接口的编程把各模块联系起来统一的工作。
- 单片机控制点阵矩形收缩闪烁源程序(12-02)
- 单片机控制点阵LED一秒刷新显示I心形U(12-02)
- 51单片机控制直流电机正反转程序(12-02)
- 关于单片机控制开关三极管总结(12-01)
- 单片机控制18路舵机的C程序(12-01)
- 单片机控制开关电源(12-01)