基于单片机控制的DDZ型热工仪表检测仪的设计
发布时间:2008/5/27 0:00:00 访问次数:610
关键词:单片机;串行通信; 检测仪
引言
传统的ddz型热工仪表检测仪以模拟显示为主,有性能不稳定、误差较大等缺点。针对这一问题研制了基于单片机控制的热工仪表检测仪,它不仅能在ddz 型热工仪表的设计、校正、维修中提供信号源,而且能把某些仪表端口的信号采集到计算机上处理并且打印出数据,以便相关人员分析处理并作出相应的反应。
图1 热工仪表检测仪的硬件结构示意图
图2 输入模块的硬件电路框图
图3 主程序流程图
图4 a/d转换主程序和中断服务程序的流程图
仪表的功能和硬件结构
仪表的功能
本仪表不仅能测量和产生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语言编辑的接收软件接收数据,并进行更进一步的处理。
选择波特率<
关键词:单片机;串行通信; 检测仪
引言
传统的ddz型热工仪表检测仪以模拟显示为主,有性能不稳定、误差较大等缺点。针对这一问题研制了基于单片机控制的热工仪表检测仪,它不仅能在ddz 型热工仪表的设计、校正、维修中提供信号源,而且能把某些仪表端口的信号采集到计算机上处理并且打印出数据,以便相关人员分析处理并作出相应的反应。
图1 热工仪表检测仪的硬件结构示意图
图2 输入模块的硬件电路框图
图3 主程序流程图
图4 a/d转换主程序和中断服务程序的流程图
仪表的功能和硬件结构
仪表的功能
本仪表不仅能测量和产生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语言编辑的接收软件接收数据,并进行更进一步的处理。
选择波特率<