基于单片机控制的DDZ型热工仪表检测仪的设计

时间:2013-11-07来源:网络

数据格式
设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个功能键)。 键盘设置用来控制仪表执行何种功能:是测量信号还是产生信号,测量和产生的分别是那一种信号都可以通过按键来完成,通过对键盘接口的编程把各模块联系起来统一的工作。

软件设计
由于本仪表的功能较多,因此不但硬件电路复杂,同时也需很强的软件系统支持。本仪表的软件系统由一个主程序和多个子程序组成。
仪表的主程序
仪表的软件系统总的来说有三大部分组成:
(1) 系统的初始化。它包括PIC16F877芯片本身的初始化,串口、键盘接口、数码显示模块的初始化等。
(2) 响应外部中断由键盘中断程序来完成仪表具体执行那项任务:测量或输出模拟信号,并动态显示信号大小。
(3) 数据的采集、计算、显示部分。在这个循环中,程序根据不同的输入信号每10ms采集、刷新显示一次。
仪表的软件系统主程序流程图如图3所示。
仪表的子程序及功能
软件系统由多个子程序组成,现就主程序中的A/D转换来介绍一下其程序原理和流程图。
A/D转换的程序原理与流程图
以循环扫描方式利用PIC16F877的A/D转换读取RA0管脚上输入的模拟电压,并将其数值大小在数码管上显示出来。设计主程序的扫描时间为10ms,经过运算处理输出模拟量对应的BCD码至C口并重复循环。使用PIC16F877单片机的Timer1产生2ms的定时中断作为程序的基本时序,其主程序和中断服务程序的流程图如图4所示。
PIC16F877芯片使用外部4MHz的石英振荡器,其指令周期为1s,Timer1子程序中预先定义的寄存器Scaler的值为5,在每一次中断过程中都使其值减1,主程序中检测Scaler寄存器中的值是否等于0,不等于0则主程序处于等待状态,当等于0时则使用命令:movlw 5 ;addwf Scaler,f 使寄存器Scaler始终为5,并返回到A/D转换子程序,这样使主程序的循环时间为10ms。
A/D转换中的编码运算
A/D转换的位数是10位,根据每次A/D转换后A/DRESH和A/DRESL中的值由公式:
A=(5/1023)*D可以计算出转换前模拟量的值。在进行动态显示时,采用4位数码管显示2位整数、2位小数,从高位到低位依次设为S3 S2 S1 S0,单片机依次送出S0 S1 S2 S3对应的BCD码到显示模块,并通过对数码管位选端的控制来实现动态显示的功能。

结语
随着仪器、仪表在日常生产、生活频繁的使用,其维修也越来越频繁。热工仪表检测仪作为提供维修信号源的标准仪表发挥着十分重要的作用。该设备采用集成的原理做成了一个便携式的装置,经过实际反复测试,性能良好,有着广泛的市场应用前景。

参考文献:
[1]. PIC16F877 datasheet http://www.dzsc.com/datasheet/PIC16F877_318821.html.
[2]. RS-232 datasheet http://www.dzsc.com/datasheet/RS-232_584855.html.
[3]. OP07 datasheet http://www.dzsc.com/datasheet/OP07_950754.html.
[4]. BCD datasheet http://www.dzsc.com/datasheet/BCD_1225719.html.
[5]. MAX232 datasheet http://www.dzsc.com/datasheet/MAX232_1074207.html.

1 2

关键词: 单片机控制 DDZ型 热工仪表检测仪

加入微信
获取电子行业最新资讯
搜索微信公众号:EEPW

或用微信扫描左侧二维码

相关文章

查看电脑版