煤矿瓦斯监测仪设计(5)

2019-02-15 19:10

本科生课程设计(论文)

第4章 瓦斯监测仪软件设计

4.1 软件实现功能综述

该系统软件主要由主程序、A /D转换子程序和报警子程序等模块组成,因为C语言编写的软件易于实现模块化,生成的机器代码质量高、可读性强、移植好。

1) 报警的同时启动排风装置。

2) 比较监测到的瓦斯浓度值值和报警设置值,发现超限则蜂鸣器报警提示流程图设计

4.1.1 主程序流程图设计

主程序功能是将A/D转换主程序与数据处理主程序结合在一起检验数据是否大于阈值,若大于则报警,反之则不报警,主程序流程图如图:

开 始 读 取 瓦 斯 浓 度 N 读 取 成 功 Y 约 定 值 进 行 比 较 是发 送 报 警 信 号 并 启 动 通 风 是否超限 否 返 回

图4.1 主程序流程图

16

本科生课程设计(论文)

4.1.2 模拟量检测流程图设计

A/D转换子程序流程图如下图所示。ADC0809初始化后,把0通道输入的0-5V的模拟信号转换为对应的数字量00H-FFH,然后将对应数值存储到内存单元。程序框图如图:

开 始 N 启 动 ADC0809,并 延 时 100μs 转 换 完 ? Y 读 出 A/D 转 换 结 果 结 果 存 入 内 存 单 元 返 回

图4.2 A/D转换子程序流程图

4.1.3 报警装置流程图设计

系统设定阈值并保存在以50H开始的3个单元,为了便于比较和显示,阈值的千位放入50H中,百位和十位放入5lH,个位放人52H中。报警电路分为蜂鸣器报警电路和LED发光报警电路组成。当输入端P3.5为低电平时,有电流通过蜂鸣器,蜂鸣器发出声音报警。而当输入端为高电平时不报警。

报警子程序执行之前,将报警阈值转换为压缩的BCD码并存放在两个存储单元中。传感器输入值A/D转换后,调用比较程序,经过数据处理后显示的测量值与阈值比较,小于阈值则继续执行显示程序。若大于阈值则将单片机的P3.5口清零进行声光报警。40H、4lH、42H单元存放A/D转换后,并进行十进制转换后的结果。40H和50H分别存放的是处理后的测量值与阈值的千位的压缩BCD码,

17

本科生课程设计(论文)

41H和51H分别存放的是处理后的测量值与阈值的百位、十位压缩的BCD码,42H和52H分别存放的是处理后的测量值与阈值的个位的压缩BCD码。程序首先对40H、50H中的值进行比较大小,如果40H中的值大于50H中的值,则进行报警。依此类推,比较41H和51H,42H和52H。程序框图如图4.3:

开 始 Y 40H中的BCD码>50H中的BCD码? Y N 与阈值相等? N Y 41H中的BCD码>51H中的BCD码? Y N 与阈值相等? Y N 40H中的BCD码>50H中的BCD码? 报警 N 返 回

图4.3 报警子程序流程框图

4.2 程序清单

1.初始化子程序清单

Private Sub Form_Load0’窗体过程,设置串口属性

18

本科生课程设计(论文)

MSComm1.CommPort=1‘设置串口1

MSComm1.Settings=\ ' 以字符串形式设置或返回波特率等参数 MSComm1.inputLen=0 '用input可读出整个接收缓冲区中的内容 MSComm1.RThreshold=1 '每当接收到一个数据时就引发OnComm事件 MSComm1.inBufferCount=0 '清空接收缓冲区 MSComm1.OutBufferCount=0 '清空发送缓冲区

MSComm1.inBufferSize=1024 '设置接收缓冲区大小为1024个字符 MSComm1.OutBufferSize=1024 '设置发送缓冲区大小为1024个字符 MSComm1.RThreshold=1 '当缓冲区每接收到1个字符就引发一次ONComm事件

MSComm1.SThreshold=0 '任何一次发送操作都触发ONComm事件 MSComm1.RTSEnable=False '允许PC机发送命令

MSCornm1.inputMode=comInputModeBinary '接收二进制数据 If MSComm1.PortOpen=False Then MSComm1.PortOpen=True '打开串口1 End if End Sub

2.发送命令子程序清单

Private Sub Timer1_Timer() '定时器定时发送命令子程序 Dim FS(0 To 4) As Byte '定义发送变量

If IsEmpty(NumberofXWJ) Then '初始化下位机地址编号 NumberofXWJ = -1 End If

NumberofXWJ = NumberofXWJ + 1 '从0号下位机开始发采集命令 If MSComm1.PortOpen = True Then '打开串口 MSComm1.PortOpen = False End If

MSComm1.Settings = \发送地址 FS(0) = NumberofXWJ '取地址编号

MSComm1.OutBufferCount = 0 '情输出缓冲区 MSComm1.Output = FS(0) '发送地址帧 MSComm1.Settings = \发送数据 MSComm1.Output = FS(1) '7发送标识符

19

本科生课程设计(论文)

MSComm1.Output = FS(2) '发送命令 MSComm1.Output = FS(3) '发送命令参数 MSComm1.Output = FS(4) '发送结束符 MSComm1.RTSEable = True '串口接收使能 End Sub

3.接收数据子程序清单

Private Sub MSComm1_OnComm() '串口接收中断子程序 Dim i As Integer '定义字节变量 Dim JS As Variant '定义接收变量

Select Case MSComm1.CommEvent '返回通讯事件代码 Case comEvReceive '缓冲区接收到信息 JS = MSComm1.Input '接收数据 i = i + i '变量递增 If i = 21 Then

Textl.Text = JS '显示数据 i = 0 '变量清零 Else

MSComm1.InBufferCount = 0 '清输入缓冲区 MSComm1.RTSEnable = False '发送使能 End If End Select End Sub

20


煤矿瓦斯监测仪设计(5).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:2018年人教版高中物理必修一精品学案28份汇编含答案

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: