煤矿瓦斯远程监测系统

1970-01-01 08:00

学 位 论 文 诚 信 声 明 书

本人郑重声明:所呈交的学位论文(设计)是我个人在导师指导下进行的研究(设计)工作及取得的研究(设计)成果。除了文中加以标注和致谢的地方外,论文(设计)中不包含其他人或集体已经公开发表或撰写过的研究(设计)成果,也不包含本人或其他人在其它单位已申请学位或为其他用途使用过的成果。与我一同工作的同志对本研究(设计)所做的任何贡献均已在论文中做了明确的说明并表示了致谢。

申请学位论文(设计)与资料若有不实之处,本人愿承担一切相关责任。

学位论文(设计)作者签名: 日期:

学 位 论 文 知 识 产 权 声 明 书

本人完全了解学校有关保护知识产权的规定,即:在校期间所做论文(设计)工作的知识产权属西安科技大学所有。学校有权保留并向国家有关部门或机构送交论文的复印件和电子版。本人允许论文(设计)被查阅和借阅;学校可以公布本学位论文(设计)的全部或部分内容并将有关内容编入有关数据库进行检索,可以采用影印、缩印或其它复制手段保存和汇编本学位论文。

保密论文待解密后适用本声明。

学位论文(设计)作者签名: 指导教师签名:

年 月 日

论文题目: 煤矿瓦斯远程监测系统设计(软件) 专 业: 自动化

本 科 生: 白璐 (签名) 指导教师: 郭秀才 (签名)

摘 要

关于矿井的安全隐患事故的不断发生,煤矿瓦斯远程监测系统的重要性变得越来越显著。我国很多煤矿都属于瓦斯矿井。而且,绝大多数是需要在井下进行开采,这导致瓦斯爆炸变成了煤矿重大的事故之一,给煤矿相关企业带来了相应的财产损失和人身伤害。所以,准备好井下瓦斯爆炸事故的预防安全工作,真正可以减少瓦斯爆炸事件的存在。基于上述所说的实际情况,本组开发出一种基于单片机的煤矿瓦斯远程监测系统,并对煤矿瓦斯远程监测系统的硬软件采用模块化的设计,从而设计了一种能够实时地监测煤矿井下的瓦斯浓度,测量相对精准,为了煤矿工人提供了安全的保障,提高煤矿瓦斯远程监测系统的安全指数。

本毕业设计以单片机作为主控制器,主要功能模块有:瓦斯传感器模块、报警模块、电源模块、模数转换模块、显示模块、串口通讯模块、上位机模块等。实现对两个矿井瓦斯浓度数据的实时监测功能。将采集的瓦斯数据在液晶屏上进行显示,并通过串口通讯模块将瓦斯浓度的实时数据传输到上位机,实现矿井1和2的瓦斯浓度的实时远程监测。同时,该煤矿瓦斯远程监测系统具有报警的功能,便于工作人员在出现事故时能够及时反应。

本次设计的煤矿瓦斯远程监测系统功能较完善,能够完成瓦斯远程监测系统的既定要求,解决了一部分矿井下的安全问题,具有长远的意义。另外,在本设计过程中,整个系统成本相对合适且基本能够达到预期目标,符合市场的需求。

关键词:瓦斯浓度,串口通讯,实时监测,远程

I

Subject: The software design of gas monitoring system(software) Specialty: Automation

Name: Bailu (Signature) Instructor:Guo Xiucai (Signature)

Abstract

About security risks mine accidents continue to occur, the importance of coal mine gas remote monitoring system is becoming increasingly significant. Many of our coal mine gas are all mine. Moreover, the vast majority is required in underground mining, which led to become one of the major gas explosion in coal mine accidents, related to coal mining enterprises corresponding property damage and personal injury. So, ready to work underground gas explosion prevention safety accidents, you can really reduce the presence of gas explosion incident. Based on the above mentioned situation, the group developed a coal mine gas remote monitoring system based on SCM, and coal mine gas remote monitoring system hardware and software using a modular design, which has devised a real-time monitoring of coal mine the gas concentration measurement is relatively accurate, coal miners in order to provide security protection, improve the safety index of coal mine gas remote monitoring system.

The graduation microcontroller as the main controller, the main function modules include: gas sensor module, alarm module, power modules, analog to digital conversion module,

display module, serial communication module, PC module. Real-time monitoring of two mine gas concentration data. Gas Data will be collected on the LCD display, and serial

communication module through the transmission of real-time gas concentration data to the host computer, to achieve mine 1 and 2 of the gas concentration in real-time remote monitoring. Meanwhile, the coal mine gas remote monitoring system with alarm function, easy to staff in the event of an accident can be a timely response.

Coal mine gas remote monitoring system of this design function more perfect, able to complete the requirements of a given gas remote monitoring system, address security issues part of the mine under the long-term significance. In this design process, the overall system cost is relatively suitable and substantially to achieve the desired objectives, in line with market demand.

II

Key Words: gas concentration, serial communications, real-time monitoring, remote

III

目 录

第1章 绪论 ................................................................ 1

1.1课题研究背景及意义 .................................................. 1 1.2 国内外研究现状和发展趋势 ........................................... 1 1.3课题的主要研究内容 .................................................. 2 1.4本章小结 ............................................................ 3 第2章 总体方案设计 ........................................................ 4

2.1煤矿瓦斯远程监测系统总体方案设计思路 ................................ 4 2.2煤矿瓦斯远程监测系统设计方案论证与比较 .............................. 5

2.2.1微控制器的选择 ................................................ 5 2.2.2瓦斯传感器的选择 .............................................. 6 2.2.3 AD模块的选择 ................................................. 7 2.2.4 液晶显示模块的选择 ............................................ 8 2.2.5 与上位机通讯模块的选择 ........................................ 9 2.2.6 电源模块 ..................................................... 10 2.3 本章小结 .......................................................... 11 第3章 煤矿瓦斯远程监测系统硬件的设计 ..................................... 11

3.1 煤矿瓦斯远程监测系统总体硬件框图 .................................. 12 3.2 硬件模块设计 ...................................................... 12

3.2.1 微控制器STC89C52 ............................................ 12 3.2.2 AD转换模块的设计 ............................................ 15 3.2.3 RS485通讯模块的设计 ......................................... 16 3.2.4 1602液晶显示模块的设计 ...................................... 17 3.2.5 声光报警电路模块的设计 ....................................... 18 3.2.6 电源模块的设计 ............................................... 19 3.3 本章小结 .......................................................... 19 第4章 煤矿瓦斯远程监测系统软件设计 ....................................... 20

4.1 软件开发平台 ...................................................... 20

4.1.1 Keil C51开发工具简介设计 .................................... 20 4.1.2 编程语言的选择 ............................................... 21 4.2 主程序设计 ........................................................ 22 4.3 软件功能设计 ...................................................... 22

4.3.1 主程序设计 ................................................... 22 4.3.2 IIC通讯程序 ................................................. 23 4.3.3 1602液晶显示程序 ............................................ 24 4.3.4 AD转换程序 .................................................. 25 4.4 STC-ISP软件简介 ................................................... 26

4.5本章小结 ........................................................... 27 第5章 煤矿瓦斯远程监测系统的调试、运行 ................................... 28

5.1硬件的调试 ......................................................... 28 5.1.1硬件调试的步骤 .............................................. 28

5.1.2硬件调试问题及解决方法 ....................................... 29 5.2 软件调试 .......................................................... 30

5.2.1 软件调试的步骤 ............................................... 30 5.2.2 软件调试的问题及解决的方法 ................................... 30 5.3煤矿瓦斯远程监测系统调试的运行结果 ................................. 31 5.4 本章小结 .......................................................... 34 第6章 结论与展望 ......................................................... 35

6.1 结论 .............................................................. 35 6.2 展望 .............................................................. 35 致 谢 ..................................................................... 36 参考文献 .................................................................. 37 附录I 煤矿瓦斯远程监测系统的主程序 ...................................... 38 附录II 煤矿瓦斯远程监测系统的软件部分程序 ................................ 41

第1章 绪论

1.1课题研究背景及意义

从以往的经验来看,我国的煤矿单位生产的现状[4]和我们的能源结构的规划皆能够看得出来,在21世纪50年代之前,炭依旧是延续我中国国民的经济建设发展基本主要能源,煤矿生产,作为中国的能源工业的脊梁,其地位是短时间内不可动摇的,但是煤矿工业的安全的生产状况而不是那么让人满意,中型和小型的煤矿的安全隐患情况更加地严峻,已经基本直接影响到所有煤矿工业的和谐的生产,给国家的财产和老百姓的生命带来了很大的打击,作为“重中之重”的甲烷类型的爆炸事件亦然排到重大事故发生率的前列。就在去年,还是接二连三地出现着许多起的井下甲烷爆炸的事件,事故的后果让人感到可怕,所以只要是严管井下甲烷的浓度,增加了通风甲烷的监测能力,现在已经是中型和小型矿井甲烷检测监测的最为紧急的任务之一。随着挖煤生产过程的不断的完善,井下工人在作业的时候,其安全性越来越高,但是还是有很多企业不重视这一方面的监管。从《国民煤炭报》统计结果不能看出,我国总共存在矿井(煤)6万多个,在职从事煤矿工作的工人达8百多万。根据中国矿下作业的实际情况,所有矿井下的瓦斯传感器加起来总共存在3000多万个,有必要开发这个市场。并且,这种气体具有较大的破坏性,严重污染了环境,影响了矿下工作人员的很多方面。

最近几年,我国的经济建设的基本能源依然主要是依靠于煤炭,它在中国的能源结构中占到百分之七十之上,可最近几年矿难频发,以及安全性不良等问题,大多数是因为自然环境的条件、实际的矿井的开采条件、工人能力限制条件、技术需求装备等等条件的局限,这其中最大的隐患就是关于瓦斯爆炸。它让煤矿安全的生产面临着十分重要的问题。有些部门从始至终对于这些问题不停地实施煤矿瓦斯远程监测系统设计和研发的工作。

最近几年,很多的从事科研的老师和学生都致力于达到怎样调节瓦斯的拓展中,目前收获了许多的宝贵经验,与此同时也取到了骄人的业绩。但是,煤矿的开采工作大多数是都在地层较深的层面开展工作,恶略的地质条件变化多端,有很多的不安定因素。所以,对于矿下瓦斯的管理就会不重视,慢慢的,相应的事故就不断发生。落实了瓦斯管理的可靠性不高的根本因素就是当下矿井的管理部门操作实在需要提高其规章制度,尤其在这些容易出现事故的现场调节环节,我国的采矿工作方面专家宋振骐、瓦斯管理方面专家周士宁等研究人员提到目前的矿井最迫切需要处理的便是瓦斯预测的监测方面技术。

鉴于此,开发一个煤矿瓦斯远程的监测系统,并对这个系统硬件和软件投入模块化设计,从而开发出高效,可靠的瓦斯监测的系统,提高了井下工人的安全性。

1

1.2 国内和国外的研究发展现状

光干涉的瓦斯监测系统在日本国家应用非常广泛,从1930年开始,几十年一直在沿用这个系统,到目前为止亦然应用于很多煤矿的瓦斯监测方向。

从1960开始[3],英美等很多国家陆续开始开发针对瓦斯检测的系统,与此同此,这些国家将这些开发工作定为核心工作。

在中国,对于催化型瓦斯检测的研究晚于别的国家。中国第一个根据催化原理走进这个历史舞台的瓦斯报警器上演与20世纪50年代,它运用铂丝件位的传感器。20世纪六十年代,来自北京的劳动保护研究所和来自抚顺的煤矿安全仪器厂经商量,决定共同展开对这个项目的开发工作。

矿下瓦斯安全预警说的就是:把传感器测到的现实环境的瓦斯气体浓度用警戒值做参照,当超过这个值则启动报警,反之亦然。这个举措减少了危险事故的数量,对本世纪采煤产业产生了里程碑的意义。这个煤矿瓦斯监测系统设计的结构图如图1.1所示。

图1.1 煤矿瓦斯监测系统结构图

1.3课题的主要研究内容

煤矿瓦斯远程监测系统的核心技术就是实时的采集监测目标矿井1和2的瓦斯浓度。用STC89C52当CPU,采用1602进行数据的实时显示,利用RS485与上位机之间进行远

2

程数据通讯,并运用C语言编程软件Keil进行控制软件的编写,通过Qt实现上位机功能。

这次任务主要计划下面的工作:

1.了解国内外煤矿瓦斯远程监测系统的发展状况,分析国内外市场的需求情况,精准定位本次系统的设计意义;

2.对目前煤矿瓦斯的监测方法进行开发,并分析多种监测方案的可实施性,选定相对较为理想的瓦斯监测策略;

3.控制系统的硬件设计。根据实时瓦斯浓度监测的要求,选择适合本次毕业设计的控制器、电子元器件、芯片小型电器装置及远程通讯模块。

4.控制系统的软件设计。根据目标,将模块化程序的设计方法和C编程二者组合运用;

5.焊制相应电路板时,进行控制系统的硬件和软件结合调试,最终达到相应预期目的;

6.将各电路合理地组装,并进行一定的装饰和相应的集成化,按时完成作品; 7.最后,按照学校要求,撰写并提交符合规范的毕业论文。

1.4本章小结

本章主要描述了本次课题研究背景及意义,并对目前国内外研究现状和发展趋势作了详细的论述,由此得出本次课题研究的方向和目标等。

3

第二章 总体方案设计

这个煤矿瓦斯远程监测系统是通过监测瓦斯传感器,采集至今为止矿井井下情况的

瓦斯浓度的一个作为模拟量的一个模拟信号,然后从模拟量转换成数字量;另一个方面通过RS485实现上位机与下位机数据的实时通讯,同时两个矿井的瓦斯浓度在液晶显示模块出现相应的电压值和浓度值,过了浓度警戒线就报警。

2.1系统总体方案设计思路

就全部的设计要求来看,该煤矿瓦斯远程监测系统被规划分两大块:上位机,下位机。

下位机分为如下几个部分:瓦斯采集模块,AD转换,声光报警,显示模块,电源模块等。

上位机分为如下几个部分:RS485模块,MAX485模块,上位机模块等。该煤矿瓦斯监测系统整体设计图如图2.1所示。

图2.1系统整体设计图

煤矿瓦斯远程监测系统由协调器节点和终端节点组成[1]。其中整个系统的调度者是协调器,这个协调主要负责整个系统与井下环境的联系,终端节点进行原始数据(井下瓦斯浓度)的测量。然后液晶显示等。整个系统首先通过2路瓦斯传感器采集煤矿中瓦斯含量信息,其次通过有线通讯的方式传递到控制中心,单片机接收到传来的开关状态信息后进行信息处理,然后通过有线的方式传送到监测计算机,最后,通过上位机通信把监测的瓦斯浓度结果显示出来,方便工人检查。系统设计思路图如图2.2所示。错误!错误!

4

错误!

图2.2 系统设计思路图

2.2 系统设计方案论证与比较 2.2.1微控制器的选择

根据本课题的要求,整个系统中需有一个主控芯片来进行数据处理和通讯等操作,所以选择一个合适的主控芯片对一个系统的设计来说是至关重要的,一个好的主控芯片能够使系统拥有很不错的工作能力。联系系统的设计需求与处理器的相应性能,提出以下的两种方案进行比较分析:

方案一:STC89C51微控制器

STC89C51 是21世纪市面上及其常见的一种普通单片机,它内部的结构简单,性价比非常高。

方案二:STC89C52微型控制器

STC89C52:早期STC开发的8位CPU,有低功耗且较高性能,它自身待8k供存储。STC89C52很适合于很次的设计理念。

和以前的8051的系列,52系列的单片机拥有以下的优点:

1、自身的rom+了4k,目前全部的rom是8k。它的程序存储器可以用向外部来进行取值的过程。

2、增加了128个相应字节的内部的RAM,相应的地址从80H开始,到FFH为止。使

5

用时这128个字节的地址因为和特殊功能的寄存器地址相互重叠,故只用间接寻址的方法读和写。

3、提高了定时的的功能。

4、增加了有关的定时器2的特殊功能的寄存器T2CON、RCAP2L、RCAP2H、TH2、TL2、T2MOD等,还有例如T2、ET2等的相应用来控制的位。

综上所述,STC89C52需要经过AD转换将模拟信号转换成数字信号才能进入到主控制器,也增加了毕设的难度。计划用STC89C52。

2.2.2 瓦斯传感器的选择

这个系统需要获取2个矿井的瓦斯浓度,以至于对相应井下范围内的环境做到相应的了解。因此瓦斯传感器的选择也是非常重要的,合适的选择,就能让系统的总成本及效率做到一个有效的持平。备选类型为以下的方案:

方案一:矿山GJC4(A)型煤矿甲烷传感器(以下简称传感器),主要用于空气含量的产品检测煤层气,具有适合真实环境等特点,一直被用来KJ218N类型矿井安全的一个重要设备监控系统,采用最新的高性能,高速,低功耗的8位AVR微控制器(ATMEGA16L)为核心的控制处理装置,但缺点是成本太高,不申请并完成设置。

方案二:MQ-2传感器。方便同学们快速学习它的原理结构式气体传感器元件,把微AL2O3陶瓷管等固定在某个塑料,加热器的作用很明显。此外,MQ-2具有较好的灵敏度,性价较高,比较适合本次的设计要求。如图2.3所示。

图2.3 MQ2实物图

6

根据设计要求所述,本系统不需要非常精确的监测,但要求较合适的成本等。另外,本次设计用于毕业设计且实际情况不太理想,故采集的气体为打火机的燃料且要求的监测精度不是很高。因此,选择该气体传感器的MQ-2作为该煤矿瓦斯远程监测系统的传感器部分。

2.2.3 AD模块的选择

由于气体传感器的MQ-2捕获的模拟信号,而微控制器仅识别的数字信号,有必要使用AD转换器模块来实现这个过程。 AD转换模块市场的,所以需要该模块提供了以下两个选项中进行选择:

方案一:ADC0809

ADC0809是8位逐次逼近式A/D模数转换器,需要更多的外围电路(时钟电路)等,目前只有更常见初学者微控制器应用程序设计,因此没有考虑使用。

方案二:AD7705

AD7705是一个低功耗,可支持环路的部分通电,可使电路简单化,集成性能更高等好处。

方案三:PCF8591 它具有如下几个特点: 1.单个的供电;

2.PCF8591的使用电压范围是2.5V-6V; 3.低的待机电流;

4.经过I2C总线的串行输入/输出;

5.PCF8591是经过3个硬件的地址引脚寻址; 6.四个模拟输入可以编程为单端类型或差分的输入; 7.自动增量的频道的选择;

8.PCF8591的模拟电压的使用范围从VSS直至VDD; 9.PCF8591内部存在跟踪保持的电路; 10.8位逐次逼近的A/D转换器;

7

图2.3 PCF8591实物图

通过对三个方案进行对比选择,发现第三个方案PCF8591芯片的准确度相对较高,方便集成,更和服要求。在能够满足设计要求的前提下,我们选择性价比更高的PCF8591AD转换模块。

2.2.4 液晶显示模块的选择

为了实现对采集到数据在下位机上实现实时显示,本系统需要有以下两种方案可供选择:

方案一:1602液晶显示屏

LCD1602一共可以显示32个字符,本设计中需要显示的是英文的字母和瓦斯浓度的数字量,不需要对汉字有要求,因此这个比较合适。1602如图2.4所示。

图2.4 1602实物图

方案二:使用LED数码管进行显示

LED数码管和成共阴极LED共阳数码管显示更清晰,成本更合适本次实验,使用方便。但与单个显示器上,仅显示数字和一些简单的字符,功耗相比,实际的电路是比较复杂的。

8

方案三:使用12864液晶显示屏显示

12864可以出现汉字,但是本次的煤矿瓦斯远程监测系统只需要显示字幕和数字。不过他的性能十分强大,功耗低,字迹清晰,美观,大显示信息高显示品质,良好的画面效果。

由于本系统只需要显示两组瓦斯浓度值,显示量大小。所以,在考虑到成本的情况下,我们采取方案一作为下位机液晶显示模块。

2.2.5 与上位机的通讯模块选择

上位机通讯模块主要是实现终端节点采集到的数据与上位机实时监测。目前的常用的通讯方案如下:

方案一:以太网

以太网是由施乐公司施乐等开发的,是21世纪的局域网最简单的通信协议标准。以太网使用CSMA / CD的方式,以速度10M/ S的速率运行在多种类型的电缆上。但其结构复杂,学习过程较复杂,不适用于本次设计中。

方案二:蓝牙

21世纪的手机之间的数据传输和智能家居控制等很多方面用的都是蓝牙技术。它结构简单,容易实现,但是,它的传输距离只有20m左右,本次设计对距离的要求远远大于20m,所以它不适用于本次要求。

方案三:RS485

RS485从性能,结构,性价比等很多方面均较适合本次设计。RS232无法实现点与点通讯且RS232的距离长短和抗干扰性都不如RS485,,但RS485可以解决这个问题。如图2.5所示。

9

图2.5 RS485图

考虑到本次毕业设计要求且距离有限,因此选择方案三,即采用RS485,这样在完成要求的基础上相对地减少工作量。

2.2.6 电源模块

方案一:使用4节1.5V电池供电

4节1.5V资源利用电池供电,低功耗,但在5V到MCU和电源1602液晶显示器的亮度相同的电压低,有时甚至随机屏幕不动,不工作。 方案二:采用电源箱供电

实验室电源箱提供了双电源,显示模块和车驱动模块分别供电,其优点是可以提供稳定的5V电源,电流也可以设置,但占用空间过大,而且不容易移动长的导线测量。

方案三:用干电池串联为系统供电

用4节1.5V干电池给单片机、1602液晶显示、RS485供电,另外电脑USB口经RS485给PC供电,这不仅能解决了方案一的问题,而且能让这系统工作正常。

方案四:利用整流桥电路和小型变压器。使用的方式:先利用变压器将220V的交流电变压为5V的交流电,然后利用整流桥把其变为5V稳压直流。

综合讨论后,最终选择方案四。

10

2.3 本章小结

经过反复论证,本设计最终确定了“煤矿瓦斯远程监测系统”的设计方案,具体如下:这个系统涉及到的模块有:瓦斯浓度模块,AD转换,声光报警,显示模块,电源模块等。该系统主要实现瓦斯浓度数据的实时采集,并在Visual Studio 6.0软件开发环境下,采用C语言编程的方式,完成数据的动态监测及处理。 主要设计内容:

1. 采用两路瓦斯传感器对两个模拟矿井的瓦斯实时浓度进行监测,将模拟信号输出成数字信号然后给AD模块;

2. 供电方面,利用整流桥电路和小型变压器给1602、STC89C52、声光报警,发送端RS485,接收端MAX485等部分进行直流稳压供电;

3. 下位机用1602液晶显示两组数据信息,通过上位机来显示数据、达到报警值某些模块红灯闪亮报警;

4. 在Visual Studio 6.0开发环境下,运用C#编程语言,运用qt编写上位机界面;实现相应功能;

5. 报警电路采用有源蜂鸣器,当瓦斯传感器模块测量值超过报警会时,及时进行报警;

11

第3章 系统硬件设计

3.1 系统总体硬件设计图

整个煤矿瓦斯远程监测系统是以STC89C52作为主控制器。系统包括供电电源模块、数据采集模块、A/D转换模块、LCD1602液晶显示模块、声光报警模块、远程传输模块。根据煤矿井内瓦斯的浓度可以进行实时显示以及报警的功能,进而根据矿井内瓦斯的浓度信息让工作人员做出相应的应对措施,以防重大事故的发生,保障人员以及设备的安全,避免财产损失。总体硬件设计图如图3.1所示。

图3.1系统总体硬件设计图

3.2 硬件模块设计 3.2.1 微控制器STC89C52

本设计使用单片机STC89C52作为主控芯片。单片机STC89C52管脚连接图如图3.2所示。

12

图3.2 单片机STC89C52管脚连接图

以下是单片机STC89C52的特点: 1.低功耗;

2.适用于本次毕设; 3.三级程序存储器的加密; 4.128×8位的内部RAM; 5.32位双向的输入和输出线;

6.两个十六位定时器或计数器,五个中断的源,两级的中断优先级;

13

7.一个全双工的异步的串行口; 8.间歇和掉电两种工作模式; 9.宽温度范围为-40℃~85℃ ; 10.禁止ALE输出; 11.很低的功耗;

STC89C52RC部分引脚的功能:

VCC(40引脚):电源电压; VSS(20引脚):接地;

表1.1是 P1.0,P1.1引脚功能特性介绍:

表1.1 P1.0和P1.1引脚功能 引脚号 P1.0 P1.1 功能特性 T2(定时器或计时器2外部计数输入),时钟输出 T2 EX (定时器或计数器2捕获或重装触发和方向控制) 表1.2为 P3所有引脚的其他功能:

表1.2 P3的引脚功能 引脚号 P3.0 P3.1 P3.2 P3.3 P3.4 P3.5 P3.6 P3.7 复用功能 RXD(串行输入口) TXD (串行输出口) (外部中断0) (外部中断1) T0(定时器0的外部输入) T1(定时器1的外部输入) (外部数据存储器写选通) (外部数据存储器读选通)

14

sprintf(outStr1,\//格式化完的字符串发送到上位机 sendStr(outStr1);

//将采集到的传感器电压值和气体浓度格式化到数组中 sprintf(outStr2,\ sprintf(outStr3,\P2=d \int)(voltage1*1000*PPM_PER_MV),(unsigned int)(voltage2*1000*PPM_PER_MV)); //将采集到的电压值和气体浓度显示在液晶屏幕上 LCD_Write_String(0,0,outStr2); LCD_Write_String(0,1,outStr3); //延时程序 delay(250); } }

40

附录II 部分子程序清单

#include #include \

#define uchar unsigned char

void delay(unsigned char i) {

unsigned char j,k; for(j=i;j>0;j--)

for(k=125;k>0;k--); }

/******************************************************************* DAC

*******************************************************************/ bit DACconversion(unsigned char sla,unsigned char c, unsigned char Val) {

Start_I2c(); SendByte(sla);

if(ack==0)return(0); SendByte(c);

if(ack==0)return(0); SendByte(Val); if(ack==0)return(0); Stop_I2c(); return(1); }

/******************************************************************* ADC

*******************************************************************/ bit ISendByte(unsigned char sla,unsigned char c) {

Start_I2c(); //???? SendByte(sla); //?????? if(ack==0)return(0);

SendByte(c); //???? if(ack==0)return(0);

Stop_I2c(); //???? return(1);

41

}

/******************************************************************* ADC

*******************************************************************/ unsigned char IRcvByte(unsigned char sla) { unsigned char c;

Start_I2c(); //???? SendByte(sla+1); //?????? if(ack==0)return(0);

c=RcvByte(); //????0

Ack_I2c(1); //?????? Stop_I2c(); //???? return(c); }

此部分为I2C总线的驱动程序

#include #include #include

#define NOP() _nop_() /* 定义空指令 */ #define _Nop() _nop_() /*定义空指令*/

sbit SCL=P1^0; //I2C 时钟 sbit SDA=P1^1; //I2C 数据 bit ack; /*应答标志位*/

/******************************************************************* 起动总线函数 函数原型: void Start_I2c();

功能: 启动I2C总线,即发送I2C起始条件.

********************************************************************/ void Start_I2c() {

SDA=1; /*发送起始条件的数据信号*/

42

_Nop(); SCL=1;

_Nop(); /*起始条件建立时间大于4.7us,延时*/ _Nop(); _Nop(); _Nop(); _Nop();

SDA=0; /*发送起始信号*/

_Nop(); /* 起始条件锁定时间大于4μs*/ _Nop(); _Nop(); _Nop();

_Nop();

SCL=0; /*钳住I2C总线,准备发送或接收数据 */ _Nop(); _Nop(); }

/******************************************************************* 结束总线函数 函数原型: void Stop_I2c();

功能: 结束I2C总线,即发送I2C结束条件.

********************************************************************/ void Stop_I2c() {

SDA=0; /*发送结束条件的数据信号*/ _Nop(); /*发送结束条件的时钟信号*/ SCL=1; /*结束条件建立时间大于4μs*/ _Nop(); _Nop(); _Nop(); _Nop(); _Nop();

SDA=1; /*发送I2C总线结束信号*/ _Nop(); _Nop(); _Nop(); _Nop(); }

/*******************************************************************

43

字节数据发送函数 函数原型: void SendByte(UCHAR c);

功能: 将数据c发送出去,可以是地址,也可以是数据,发完后等待应答,并对 此状态位进行操作.(不应答或非应答都使ack=0)

发送数据正常,ack=1; ack=0表示被控器无应答或损坏。

********************************************************************/ void SendByte(unsigned char c) {

unsigned char BitCnt;

for(BitCnt=0;BitCnt<8;BitCnt++) /*要传送的数据长度为8位*/ {

if((c<

SCL=1; /*置时钟线为高,通知被控器开始接收数据位*/ _Nop();

_Nop(); /*保证时钟高电平周期大于4μs*/ _Nop(); _Nop();

_Nop(); SCL=0; }

_Nop(); _Nop();

SDA=1; /*8位发送完后释放数据线,准备接收应答位*/ _Nop(); _Nop(); SCL=1; _Nop(); _Nop(); _Nop();

if(SDA==1)ack=0;

else ack=1; /*判断是否接收到应答信号*/ SCL=0; _Nop(); _Nop(); }

/*******************************************************************

44


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

下一篇:商法的思维尔雅

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

马上注册会员

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