资源描述
摘要煤矿瓦斯微机监测系统设计专 业: 学 号: 学生姓名: 指导老师:摘要瓦斯是煤矿生产中的有害气体,它严重威胁着矿工的生命和国家财产的安全。不断发生的煤矿瓦斯爆炸事件强烈的提醒我们提高煤矿瓦斯监测的管理质量,为了加强煤矿瓦斯的管理水平,本课题设计了对煤矿瓦斯监测的系统。本系统下位机以AT89S52单片机为控制核心,系统采用了MJC4/3.0L瓦斯传感器,并通过INA114对电信号进行放大,通过PCF8591将模拟信号转换为数字信号,该A/D转换器采用了I2C总线技术,可以最大限度的利用有限管脚。滤波之后单片机驱动八位数码管对数据进行显示,并通过RS-485下位机网络将数据上传至上位机。上位机程序用VB编写,采用MSComm插件启动串口,可以随时开启串口并对任意下位机的数据进行查看,并保存到相应的数据框。关键词:瓦斯传感器;单片机;监测系统;串口通讯IIIAbstractCoal Mine Gas Monitoring System Based on Single Chip MicrocomputerABSTRACTThe gas is harmful gases in the coal mine production,it seriously threaten to the safety of the lives of miners and state property.The continued occurrence of coal mine gas explosion events remind us improve the quality of management of the coal mine gas monitoring.In order to strengthen the level of coal mine gas management ,this time,I design a coal mine gas monitoring system at this subject. The slave computers system use AT89S52 single chip microcomputer as the core controller, and it uses MJC4/3.0L gas sensor which could transform concentration signal to analog electrical signal as its major sensor . And PCF8591 that use I2C-bus could transform analog signal to digital signal effectively.Finally the LED could display the concentration value, and the system would upload the value. The software of upper computer programmed by Visual Basic,and it uses MSComm as its ActiveX. The software has great functions which include check and save data at any time.Key words: gas sensor; single chip microcomputer; monitoring system; serial communication目录目录摘要IABSTRACTII第1章 绪论11.1课题研究的背景、现状及研究意义11.2瓦斯监测论文主要研究内容及要求2第2章 系统总体方案的确定42.1系统总体结构设计42.2系统工作原理4第3章 瓦斯监测系统硬件电路设计63.1单片机及时钟、复位模块63.2瓦斯检测模块73.3显示模块133.4通信模块153.5 蜂鸣器报警模块18第4章 系统软件设计194.1概述194.2瓦斯监测主监控程序194.3数据采集子程序194.4 A/D转换子程序204.5滤波子程序214.6 LED显示子程序22目录4.7蜂鸣器报警子程序234.8通信程序23第5章 系统的仿真265.1下位机的调试与仿真265.2上位机的调试与仿真29第6章 总结与展望31参考文献32致谢33附录A 外文翻译英文原文部分34附录B 外文翻译中文译文部分40附录C 系统硬件原理图45附录D 下位机主程序流程图46附录E 下位机程序代码47附录F 上位机程序代码53华东交通大学毕业设计第一章 绪论瓦斯是煤矿生产中的有害气体,它严重威胁着矿工的生命和国家的财产安全。随着国民经济的快速发展,各种能源需求快速增长,煤炭开采量也在逐年增加,安全隐患也就越来越多,瓦斯事故特别是重大瓦斯事故在煤矿事故中的比例也就越来越高。如果不能及时测量井下的瓦斯浓度,那么煤矿的安全生产就无从谈起,从而也就无法保证煤炭工业持续而稳定的向前发展。所以,对煤矿井内的瓦斯气体进行快速准确的检测就显得尤为重要,对易燃易爆气体检测系统的研究和开发也就成为人们普遍关注的问题。1.1 课题研究的背景、意义及研究现状煤炭是中国国民经济建设的动力,占全国一次能源生产总量及消费结构的70%以上。至2006年底,全国在册的大小煤矿共有2.6万个,均为瓦斯矿井,其中50%以上属于高瓦斯矿井。煤矿由于由于受到自然地质、井下开采条件、矿工技能条件、技术和装备等条件的限制,一直存在着安全可靠性程度差、安全事故频率高等问题,尤其是瓦斯事故频发、危害严重。从煤矿瓦斯防治部际协调调查小组召开第十次会议了解到,2012年,全国煤矿发生瓦斯事故72起、死亡350人,同比减少47起、183人,分别下降39.5%、34.3%。煤层气抽采量141亿立方米、利用量58亿立方米,同比分别增长23.2%、20.2%。虽然近几年煤矿瓦斯事故逐年大幅度下降,但重特大瓦斯事故没有得到有效遏制,部分地区和小煤矿瓦斯事故多发,煤矿瓦斯防治形势依然严峻。煤炭需求持续增加,加剧了瓦斯防治工作压力;瓦斯灾害威胁日趋严重,防治难度越来越大;部分省份瓦斯防治机构不健全,尚未形成有效的工作机制;瓦斯防治基础依然薄弱,一些小煤矿安全投入严重不足,不具备瓦斯防治能力;煤与瓦斯突出机理尚未完全研究清楚,煤矿瓦斯防治关键技术有待突破。新中国成立以来发生的24起煤矿一次死亡百人以上的特别重大事故中,瓦斯煤尘事故有21起,事故起数和死亡人数分别占88%和90%。一方面,每次瓦斯爆炸都会引起全社会的关注,更是给牺牲的矿工亲属带来沉重的精神打击,对煤炭事业健康发展以及矿区和谐社会建设都产生了不良的影响。另一方面,我国煤炭安全生产现状与世界一些发达国家和发展中国家相比差距很大,伤亡人数是美国的100倍、俄罗斯的10倍、印度的12倍。瓦斯是一种无色、无味、可以燃烧或爆炸、可以使人窒息死亡的气体,在成煤过程中形成,是煤炭的伴生物。当瓦斯在空气中的含量为5%16%时,就有爆炸的危险。煤矿安全规程规定,采区回风巷、采掘工作面回风巷风流中瓦斯浓度超过1%时,检测仪表必须进行报警以提示停止工作,撤出人员,采取措施进行处理;采掘工作面及其它作业地点风流中瓦斯浓度达到1%时,必须停止用电钻打眼;爆破地点附近20m以内风流种的瓦斯浓度达到1%时,严禁爆破;采掘工作面及其它作业地点风流中、电动机或其开关安置地点附近20m以内风流中的瓦斯浓度达到1.5%时,必须停止工作,切断电源。由此可见,解决瓦斯突出及爆炸问题,必须加强对瓦斯的监测监控。我国从六十年代初就开始了对煤矿瓦斯监测技术的研究,一直到七十年代末,这方面的发展都很缓慢。当时最有代表性的产品为西安煤矿仪表厂生产的MJC-100煤矿集中监测系统和重庆煤矿安全仪器厂生产的AYJ-1型瓦斯器遥测警报仪,MJC-100煤矿集中监控系统可以配置100个瓦斯传感器或其他类型的传感器,传输方式采用载波键控制传输,监测周期为100秒,可将煤矿井下瓦斯或其他信号远传到地面达10公里。由于当时所处的技59Qqqq术条件,该系统采用了1908块小规模TTL集成电路和部分分立元件组成,全部为硬逻辑电路。该系统在70年代末、80年代初在我国十多个大型煤矿的瓦斯监测中发挥了重要作用。八十年代后期,由于电子工业的飞速发展,微型计算机的普及应用,再加上引进国外先进技术,使我国煤矿瓦斯监测的技术水平得到较快的发展和提高。生产厂家和产品种类都在不断增加。生产厂家由最初的两家增加到现在得十多家,微机由最初的苹果机发展到现在得高档微机,地面主监控中心站都以功能较强的微型计算机为核心,辅助以大屏幕显示器、模拟盘、中英文打印机等设备来完成数据处理、信息显示、超限报警。同时可进行人机对话,地面信息联网处理等。国外煤矿环境(瓦斯)监测系统有代表性的产品为加拿大康斯塔克生产的森透里昂系统。该系统在加拿大和美国得到广泛的应用。据美国煤炭时代工程与采矿89年9月月刊介绍,该系统在美国煤矿的使用已占美国煤矿现使用的50%。该系统应用软件是由美国软件公司编制的面向一切工业过程监测及控制的应用软件。所需的硬件支持为一台IBMPC或PC/XT、PC/AT或其兼容机配有10MB的硬盘。检测信号经干线驱动器后可以远传上百公里,传输调制方式采用两种,远距离传输采用移相键控PSK,近距离传输采用基带传输。每套监测系统可以监控800个测点,最大可扩展为1600个测点。传感器为智能化,煤矿井下不设分站,但设有干线驱动器。该系统已在我国合资成立福深康斯塔克控制公司负责组装和生产。1.2本课题研究的主要内容及要求本课题的研究的目标是设计一种能够有效监测煤矿瓦斯气体的监测系统,能够实现瓦斯浓度的测量,将瓦斯的浓度传给单片机处理,当检测瓦斯的浓度大于设定报警浓度时,系统实现报警,并且将瓦斯的当前的浓度和设定报警浓度显示,再将瓦斯的浓度传给上位机。由于煤矿井下工作环境比较恶劣,有易燃易爆的瓦斯和粉尘,对系统的设计有影响,因此,煤矿系统中所用的电器跟一般的电器有较大的区别,这就对煤矿电器有特殊要求,如体积要小,易于搬运,坚固,防潮防水,防爆,电气设备应有接地、过流、漏电保护装置,同时系统对数据的实时性和稳定性要求较高,系统的总体要求如下:1) 系统中所用到的设备应该满足煤矿安全要求;2) 实时性和稳定性好;3) 故障率低;4) 便于维修;主要内容如下:(1) 传感器的选用瓦斯传感器的原理多种多样,市场上销售瓦斯传感器也很多。瓦斯传感器用来测量瓦斯的浓度,作为系统的第一站,可以说它是决定设计的成功与否,瓦斯传感器的选择相当的重要,根据系统的设计要求,应该选择具有灵敏度高、可靠性好、寿命较长的瓦斯传感器。(2) 系统具体硬件电路设计 系统要实现瓦斯浓度的测量,然后将测量的浓度与设定的报警浓度比较,并且将浓度进行显示,最后传给上位机。系统的硬件电路设计包括瓦斯系统电源电路、传感器检测电路、信号处理电路、蜂鸣器报警电路、显示电路等设计。华东交通大学毕业设计(3) 系统软件设计系统的软件设计包括下位机程序设计和上位机程序设计。(4) 系统的调试及仿真 为了验证系统的设计的可行性,对系统的部分模块进行调试与仿真,主要包括两个方面,一是对键盘电路的仿真,二是对显示电路的仿真,系统的调试主要用Keil软件进行调试,电路的仿真则要借助Proteus软件来进行仿真。第二章 系统总体方案的确定2.1 系统总体结构设计基于单片机的煤矿瓦斯监测系统主要由气体传感器、单片机、A/D转换、LED显示、蜂鸣器报警、键盘以及RS-485通讯接口等部分组成,其结构框图如图2-1所示。采用单片机构成煤矿瓦斯监测系统的核心部分,使用气体传感器实现对瓦斯浓度的测量;使用键盘可以实现对纯净空气中瓦斯浓度的采取;通过LED可以显示瓦斯的当前的浓度;采用RS-485物理层,实现数据远传。放大电路单片机模数转换检测电路显示浓度瓦斯信号信号输出蜂鸣器警报 220V稳压电源 图2-1 系统总体结构框图2.2 系统工作原理系统利用瓦斯传感器实现对瓦斯的识别和瓦斯的浓度的测量,通过信号处理电路将得到的瓦斯浓度信号进行放大处理以及模数转换,交给单片机处理。对测量的瓦斯浓度与设定的报警浓度进行比较,当瓦斯的当前浓度大于设定浓度时,系统将进行蜂鸣器报警,并且对测量的瓦斯浓度进行显示。为了进行零点修正需对干净空气中的瓦斯浓度进行采集,于是外加了一个键盘电路,通过RS-485可以将瓦斯的浓度传给上位机,便于更好的监控井下的状况,如图2-2所示,它是系统的控制面板,面板上包括小键盘、浓度显示、系统的电源开关和系统的复位开关等其他部件,可以实现系统的一些基本功能。具体按键对应功能如下:1) power:开关键,用于开启下位机和关闭下位机。2) 复位:按一下将对下位机进行复位处理。3) 零点数据:按一下可以采集纯净空气中的瓦斯浓度。LED显示屏当前值电源指示灯报警声power零点数据复位图2-2 控制面板界面第三章 系统硬件电路设计3.1 单片机及时钟、复位模块微处理器在系统硬件设计方面具有很大的影响力,选择一个适当的微处理器作为系统的核心,才能使系统兼具低成本以及高效率。(1)单片机的选择单片机作为整个控制系统的核心,具有重要的作用。本设计的任务是准确测量瓦斯的浓度,具有自动报警功能,进行LED显示。数据处理量不是很大,通过8位的51系列单片机就可以满足功能要求。目前51内核单片机主要有MCS-51系列、AT89系列、Motorola公司系列、Z8以及Super8系列、F8系列等。由于AT89S52作为较为普及的51系列单片机,它的使用性能和经济性能都比较优越,故本设计选择AT89S52单片机。AT89S52 是美国 ATMEL 公司生产的低功耗,高性能 CMOS8 位微控制器,具有8K在系统可编程FLASH存储器,使用Atmel公司高密度非易失性存储器制造技术制造,与工业80C51产品指令和引脚完全兼容,片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统 可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。其引脚如图3-1所示,主要性能参数如下:1) 与 MCS-51 单片机兼容2) 8K 字节在系统可编程Flash存储器3) 1000 次擦写周期4) 全静态操作:0Hz33MHz5) 三级加密程序存储器6) 32 个可编程 IO 口线7) 3个 16 位定时计数器8) 6个中断源9) 全双工 UART 串行通道10) 低功耗空闲和掉电模式11) 掉电后中断可唤醒12) 看门狗定时器13) 双数据指针14) 掉电标识符 (2)时钟电路 如图3-2所示,采用内部时钟电路。内部时钟模式是采用单片机内部振荡器来工作的模式。AT89S52和其他51系列单片机一样,其内部包含一个高增益的单级反相放大器,引脚XTAL1和XTAL2分别为片内反相放大器的输入端口和输出端口,其工作频率为033MHZ。当单片机工作于内部时钟模式的时候,只需要在XTAL1引脚和XTAL2引脚连接一个晶体振荡器或陶瓷振荡器,并接两个电容接地即可,在实际电路设计时,应该注意尽量保证外接的振荡器和电容尽可能靠近单片机的XTAL1和XTAL2引脚,这样可以减少寄生电容的影响,使振荡器能够稳定可靠地为单片机CPU提供时钟信号。(3) 复位电路如图3-3所示,该图既可以手动复位,又可以上电复位,是可以人工复位单片机系统。上电复位的原理是RC电路的充放电效应。除了系统上电的时候可以给RST引脚一个短暂的高电平信号外,当按下按键开关的时候,VCC通过一个电阻连接到RST引脚,给RST一个高电平,按键松开的时候,RST引脚恢复为低电平,复位完成。图3-2 晶振电路图图3-1 AT89S52管脚图图3-3 复位电路图3.2 瓦斯检测模块3.2.1 传感器选择 气体传感器是煤矿气体监测系统的重要组成部分,就其原理可以分为以下几大类:催化燃烧式甲烷传感器、红外原理甲烷传感器、光干涉式甲烷传感器、光纤气体甲烷传感器以及半导体式甲烷传感器。催化燃烧式甲烷传感器是利用甲烷在催化元件表面燃烧时,元件温度升高引起铂丝电阻变化,由电阻和瓦斯浓度线性关系瓦斯浓度,这种传感器的优点是:在一定范围内(一般不超过4%)输出的电信号与瓦斯浓度成正比,灵敏度高,受温度和潮湿度影响小,价格低。其缺点是:其测量范围小,催化元件寿命短(一般为一年),易受硫化物、卤化物、硅氧基化合物等物质的中毒影响和高浓度瓦斯激活,使用一段时间后,零点产生漂移,灵敏度下降,因此每隔一段时间就要用标准气体进行零点和灵敏度的校正。同时,煤矿环境中高粉尘高湿度的环境加速了催化传感器的老化,严重制约着瓦斯的有效、准确检测。红外原理甲烷传感器是基于不同化合物在光谱作用下由于震动和旋转变化表现不同的吸收峰。测量吸收光谱可知气体类型。测量吸收强度,可知气体浓度。红外原理甲烷传感器的使用解决了现在瓦斯监测传感器存在响应速度慢,选择性差,测量精度低、受硫化氢气体的干扰大,高浓度瓦斯容易造成中毒而无法恢复,使用寿命短,标定周期短的缺陷。光干扰式甲烷传感器是利用光在不同空气中的折射率不同的光学原理,通过测量不同瓦斯含量的空气与不含瓦斯空气的折射率的变化来确定瓦斯浓度。该传感器维护简单,安全可靠,能够由人为控制操作,测点选取可根据操作者的判断,对可疑点进行测定,测点活动性太强;不存在一起中毒、失效或高浓度甲烷激活问题;测量范围大,有足够的精度。并且寿命长,除了电池和灯泡外几乎没有损耗部件,如不考虑其机械损伤,可疑认为寿命是无限的;可疑根据干涉条纹艰巨大小,粗劣估计仪器测量精度的可靠性。其缺点主要表现在:受温度影响较大;受气压的影响;耐振性较差;监测选择性较差。光纤气体甲烷传感器是一种以光信号为载体,以光纤为信号传输通道的高灵敏度的气体检测传感器。光纤气体传感器具有优秀的远距离监控、抗电磁干扰和中毒、易燃易爆环境。还具有高灵敏度,相应速度快,动态范围大,且耐高温、高压,结构简单,体积小,重量轻,能耗少等优点。半导体气敏传感器是以氧化物半导体为基本吸附材料,使甲烷吸附氧化时引起其电学特性发生变化,用以监测瓦斯浓度。目前敏感材料的研究存在主要问题是灵敏度高、选择性好、稳定性好、工作温度常温化、能耗低、响应恢复时间短难以同时满足。所选用的传感器应该可以在恶劣的环境下工作,拥有相对可靠的精度,并且价格便宜易于选购。由于半导体气敏传感器的线性度不好,修正较为复杂,于是选择催化燃烧式甲烷传感器作为本系统的传感器。考虑到检测系统的性价比采用型号为:MJC4/3.0L瓦斯检测传感器(郑州炜盛电子科技有限公司生产)MJC4/3.0L型催化元件根据催化燃烧效应的原理工作,由检测元件和补偿元件配对组成电桥的两个臂,遇到可燃性气体时检测元件电阻升高,桥路输出电压变化,该电压变量随气体浓度增大而成正比例增大,补偿元件起参比及温湿度补偿作用。主要特点有:桥路输出电压呈线性、响应速度快、具有良好的重复性和选择性、元件工作稳定可靠、抗H2S的中毒。主要应用有工业现场的天然气、液化气、煤气,烷类等可燃性气体及汽油、醇、酮、苯等有机溶剂蒸汽的浓度监测,可燃性气体泄漏警报器,可燃性气体检测器,气体浓度计。其外观图如图3-4所示,技术指标如表3-1所示。图3-4 MJC4/3.0的外形图表3-1 MJC4/3.0L技术指标工作电压(V)3.00.1备注工作电流(mA)11010灵敏度(mV)20 1%瓦斯线形度(%)05测量范围04%瓦斯输出电压(mV)090响应时间 (90%)小于10秒恢复时间 (90%)小于30秒使用环境-40+70 低于95%RH储存环境-20+70 低于95%RH外形尺寸(mm)9.51419灵敏度特性及响应恢复特性如图3-5所示:图3-5 MJC4/3.0L的灵敏度的特性和响应特性图长期稳定性:在空气中每年漂移小于2 个 mV,在 1%CH4中每年漂移小于2 个 mV。短期储存(两周内)30 分钟即可稳定,如长期储存(一年),则需老化 5 小时才可稳定,其稳定性如图3-6所示:图3-6 MJC4/3.0L的稳定性输出信号随环境温度、湿度的变化如图3-7所示:输出信号随工作电压的变化如图3-8所示:图3-7 MJC4/3.0L的输出信号与工作电压的关系图3-8 MJC4/3.0L的温度和湿度特性3.2.2 瓦斯检测电路图3-9 瓦斯浓度测量电路 由于瓦斯传感器输出的电压非常微弱,为mV级的电压,必须将其放大,以适合A/D转换,本设计决定采用两级放大电路来放大MJC4/3.0L的输出电压。在这里选择美国BB公司推出的INA114放大器。INA114是一个低成本的普通仪用放大器,在一般应用时,只需外接一个普通电阻就可以得到任意增益,可广泛用于电桥放大器、热电偶测量放大器及数据采集放大器等场合。INA114的电路结构与基本接法如图3-10所示。已知VCC=3V,R0=2000,Umax=75mV=0.075V,又由于Rg=50ku/(G-1),G为增益,令G=66,Rg=770。图3-10 INA114的电路结构与基本接法经放大的信号为模拟信号,而单片机只能接受数字信号,必须采用A/D转换电路。A/D转换器用以实现模拟量向数字量的转换。按其转换原理可分4种:计数式、双积分式、逐次逼近式及并行式A/D转换器。目前最常用的是双积分式和逐次逼近式。双积分式A/D转换器的主要优点为转换精度高、抗干扰性能好、价格便宜;缺点为转换速度较慢。因此这种转换器主要用于速度要求不高的场合。另一种常用的A/D转换器是逐次逼近式。逐次逼近式A/D转换器是一种速度较快、精度较高的转换器,其转换时间大约在几微秒到几百微秒之间。综上所述,决定采用PCF8591的8位A/D和D/A转换器,其内部框图如图3-11所示。PCF8591是一个单片集成、单独供电、低功耗、8-bit CMOS数据获取器件。PCF8591具有4个模拟输入、1个模拟输出和1个串行I2C总线接口。PCF8591的3个地址引脚A0, A1和A2可用于硬件地址编程,允许在同个I2C总线上接入8个PCF8591器件,而无需额外的硬件。在PCF8591器件上输入输出的地址、控制和数据信号都是通过双线双向I2C总线以串行的方式进行传输。1) AIN0AIN3:模拟信号输入端。2) A0A2:引脚地址端。3) VDD、VSS:电源端。(2.56V)4) SDA、SCL:I2C 总线的数据线、时钟线。5) OSC:外部时钟输入端,内部时钟输出端。6) EXT:内部、外部时钟选择线,使用内部时钟时 EXT 接地。7) AGND:模拟信号地。8) AOUT:D/A 转换输出端。9) VREF:基准电源端。PCF8591与AT89S52单片机的连接方法见附录C(系统硬件原理图)。图3-11 PCF8591内部框图其管脚图如图3-12所示:图3-12 PCF8591引脚图PCF8591基本连接图如图3-13所示:图3-13 PCF8591基本连接图3.3 显示模块瓦斯监测系统显示部分采用LED显示,LED显示具有亮度高、耗电少、操控要求低的特点,这里我们考虑到AT89S52单片机处理性能有限,如果驱动LCD会浪费较多的CPU和内存,从而无法保证其高精度的输出,因为选用八段位LED数码管进行显示,并且LED在黑暗的矿井内亮度更高、更加省电。下面简要介绍八段位LED的工作原理。8位数码管动态扫描显示需要由两组信号来控制:一组是字段输出的字形代码,用来控制显示的字形,称为段码;另一组是位输出口输出的控制信号,用来选择第几位数码管工作,称为位码。由于各位数码管的段线并联,段码的输出对各位数码管来说都是相同的。因此,在同一时刻如果各位数码管的位选线都处于选通状态的话,8位数码管将显示相同的字符。若要各位数码管能够显示出与本位相应的字符,就必须采用扫描显示方式。即在某一时刻,只让某一位的位选线处于导通状态,而其它各位的位选线处于关闭状态。虽然这些字符实在不同时刻出现的,而且同一时刻,只有一位显示,其它各位熄灭,但由于数码管具有余辉特性和人眼有视觉暂留现象,只要每一位数码管显示间隔足够短,给人眼的视觉印象就会是连续稳定地显示。(1) 共阴极数码管共阴极数码管是将所有发光二极管的阴极接在一起作为公共端COM,当公共端接低电平时,某一段阳极上的电平为“1”时,该段点亮,电平为“0”时,该段熄灭,连接方式如图3-14。图3-14 共阴数码管结构图 (2)共阳极数码管共阳极数码管是将所有发光二极管的阳极接在一起作为公共端COM,当公共端接高电平时,某一段阴极上的电平为“0”时,该段点亮,电平为“1”时,该段熄灭。结构图如图3-15所示。图3-15共阳数码管结构图表3-2 共阳极数码管代码图(3)共阳极数码管的字型代码表,如表3-2。表3-2字型代码表字型dpgfedcba段码0110000000C0H1111110010F9H2101001000A4H3101100000B0H41001100199H51001001092H61000001082H7111110000F8H81000000080H91011000090HA1000100088HB1000001183HC110001100C6HD100000010A1HE1000011086HF100011108EH LED显示电路如图3-16所示图3-16 LED与AT89S52连接示意图3.4 通信模块3.4.1通信方式的选择 这里要将单片机采集处理后的瓦斯浓度的数据上传到PC机,就应该将单片机与上位机实施通信。单片机和外部设备可以采用并行通信和串行通信两种方法进行数据传输,这两种数据传输方式各有其优缺点。并行通信时指数据的各个二进制位同时进行传输,这种通信方式的优点是传输速度快,效率高,缺点是需要比较多的数据线,另外并行的数据线易受外界干扰,传输距离不能太远;串行通信是指数据的各个二进制位按照顺序一位一位地进行传输,这种通信方式的优点是所需的数据线少,节省硬件成本及单片机的引脚资源,并且抗干扰能力强,适合于远距离数据传输,缺点是每次发送一个比特,导致传输速度慢。这样由于考虑到单片机和PC机是远距离传输,因此采用串行异步通信。通信规定:双方波特率为4800bs,1位起始位,8位数据位,无奇偶校验位, l位停止位,一帧信息为10位,AT89S52单片机的串行口的工作于方式1,其串行移位时钟脉冲由定时器T1的溢出率和SOMD来共同决定的,这里令SMOD=1。定时器T1工作于方式2,位自动重装入的8位定时器,则装入的初值如公式(3-1)所示:X = 256(SMOD+1)fosc(波特率384) (3-1)则由公式可得:X=256- 211.0592106(3844800)X=233=F4H所以定时器T1的定时初值设为:TH1=F4H,TL1=F4H3.4.2串行接口电路设计单片机与PC机的通信常用有RS-232、RS-485以及RS422三种串行接口。RS-232-C标准规定,驱动器允许有2500pF的电容负载,通信距离将受此电容限制,例如,采用150pF/m的通信电缆时,最大通信距离为15m;若每米电缆的电容量减小,通信距离可以增加。传输距离短的另一原因是RS-232属单端信号传送,存在共地噪声和不能抑制共模干扰等问题,因此一般用于20m以内的通信;. RS-485接口是采用平衡驱动器和差分接收器的组合,抗共模干扰能力增强,即抗噪声干扰性好。RS-485最大的通信距离约为1219m,最大传输速率为10Mbps,传输速率与传输距离成反比,在100Kb/S的传输速率下,才可以达到最大的通信距离,如果需传输更长的距离,需要加485中继器。RS-485总线一般最大支持32个节点,如果使用特制的485芯片,可以达到128个或者256个节点,最大的可以支持到400个节点;RS-422同RS-485差不多。RS-232与RS-485 标准只对接口的电气特性做出规定,而不涉及接插件、电缆或协议,在此基础上用户可以建立自己的高层通信协议。但由于 PC 上的串行数据通讯是通过 UART 芯片来处理的,基于 PC 的 RS-232与 RS-485标准均采用同样的通讯协议。表3-3列出了 RS-232、RS-485 通讯方式的区别。 表3-3 RS-232与RS-485的区别规范RS-232RS-485工作方式单端差分节点数1 收、1 发1 发 32 收最大传输电缆长度50 英尺4000 英尺最大传输速率20Kbps10Mbps最大驱动输出电压+/-25V-7V+12V发送器输出信号电平(负载最小值)负载+/-5V+/-15V1.5V发送器输出信号电平(空载最大值)空载+/-25V6V发送器负载阻抗()3K7K54摆率(最大值)30V/sN/A接收器输入电压范围15V-7V+12V接收器输入门限3V200mV接收器输入电阻()3K7K12K发送器共模电压-1V+3V接收器共模电压-7V+12V 这里由于传输距离的限制,选用RS-485,同时选用芯片MAX485作为驱动芯片,MAX485接口芯片是Maxim公司的一种RS485芯片。 MAX485、MAX487-MAX491以及MAX1487是用于RS-485与RS-422通信的低功耗收发器,每个器件中都具有一个驱动器和一个接收器。MAX483、MAX487、MAX488以及MAX489具有限摆率驱动器,可以减小EMI,并降低由不恰当的终端匹配电缆引起的反射,实现最高250kbps的无差错数据传输。MAX481、MAX485、MAX490、MAX491、MAX1487的驱动器摆率不受限制,可以实现最高2.5Mbps的传输速率。采用单一电源+5 V工作,额定电流为300 A,采用半双工通讯方式。它完成将TTL电平转换为RS485电平的功能。MAX485芯片的结构和引脚都非常简单,内部含有一个驱动器和接收器。RO和DI端分别为接收器的输出和驱动器的输入端,与单片机连接时只需分别与单片机的RXD和TXD相连即可;/RE和DE端分别为接收和发送的使能端,当/RE为逻辑0时,器件处于接收状态;当DE为逻辑1时,器件处于发送状态,因为MAX485工作在半双工状态,所以只需用单片机的一个管脚控制这两个引脚即可;A端和B端分别为接收和发送的差分信号端,当A引脚的电平高于B时,代表发送的数据为1;当A的电平低于B端时,代表发送的数据为0。在与单片机连接时接线非常简单。只需要一个信号控制MAX485的接收和发送即可。同时将A和B端之间加匹配电阻,一般可选100的电阻。MAX485引脚图如图3-17。图3-17 MAX485引脚图其基本参数如下:1)半双工;2)速率:2.5Mbps;3)限摆率:NO;4)低电流关断模式:NO;5)接收允许控制:YES;6)静态电流300;7)负载个数:32;8)引脚数:8其MAX485与AT89S52的连线图如图3-18图3-18 MAX485与AT89S52的连线图图3-18 MAX485与AT89S52的连线图3.5蜂鸣器报警模块 电磁式蜂鸣器分两种:有源蜂鸣器和无源蜂鸣器。有源蜂鸣器内部带有振荡源,无源蜂鸣器内部不带振荡源。有源蜂鸣器和无源蜂鸣器的主要差别是对输入信号的要求不一样,有源蜂鸣器工作的理想信号是直流电,无源蜂鸣器工作的理想信号是方波。无源蜂鸣器接直流电是不会工作的。这里选择有源蜂鸣器作为警报装置,由于蜂鸣器工作时电流比较大,单片机I/O端口输出电流比较小,无法直接进行驱动,需要加一个PNP型三极管8550进行隔离放大。单片机的P3.7引脚通过限流电阻R30与三极管Q7的基极相接,蜂鸣器B1和电阻R31串接在三极管Q7的集电极回路中。三极管Q7的基极经限流电阻R30后由单片机的P3.7引脚控制,当P3.7输出高电平时,三极管Q7截止,没有电流流过蜂鸣器内部线圈,蜂鸣器不发声;当P3.7输出低电平时,三极管Q7导通,有电流流过蜂鸣器内部线圈,蜂鸣器发声。AT89S52与蜂鸣器的连接图如图3-19。图3-19 AT89S52与蜂鸣器的连接图第四章 系统软件设计4.1概述 本系统程序采用了C语言设计,C语言编写较汇编语言编写方便,而且更接近人类语言,模块性较强,可移植性也强于汇编语言。其缺点是不能最大程度的利用单片机资源。虽然用C语言编写不需要给数据分配内部单元,但是主程序仍需要给数据分配一个对应的变量或者数组,具体分配表见表4-1。表4-1 下位机程序变量定义说明变量或数组名注释receivebuf0用于存放纯净空气中的瓦斯浓度值。receivebuf1用于存放实时的瓦斯浓度值。output用于存放经过滤波和零点修正后的瓦斯浓度值。get_ad12用于存放实时的瓦斯浓度值,然后进行滤波处理。4.2瓦斯监测主监控程序系统的主程序包括系统的初始化、启动A/D转换、滤波子程序、零点修正子程序、蜂鸣器报警子程序、LED显示子程序、串口通信子程序。 系统的初始化包括P0、P1、P2、P3并行端口初始化,初始化寄存器TCON将外部中断定义为下降沿触发方式,初始化寄存器SCON。 系统用到的中断有数据采集中断(外部中断0),使用中断能提高系统的工作的效率。瓦斯监测主监控程序过程如下:1) 系统初始化2) 启动A/D转换3) 滤波4) 零点修正5) 浓度超限判断6) LED显示瓦斯浓度7) 向上位机串口输出信号主程序流程图见附录C。4.3数据采集子程序当数据采集键按下时,进入外部中断程序,采集纯净空气中的瓦斯浓度,从而对后续的瓦斯浓度进行零点修正,其程序流程图同A/D转换子程序。4.4 A/D转换子程序瓦斯传感器将瓦斯的浓度转化为电压信号,经放大处理后进行A/D转换,A/D转换主要包括A/D通道的选择和转换的数据的传送,PCF8591选择AIN1通道。A/D转换后得到的数据为数字量,当这些数据转换完后,传送给单片机再进行后续处理,A/D转换子程序如图4-1所示。A/D转换初始化iicInit_()check_ACK空采样一次调整采样顺序iic_start发送寻址字节(写)0X90check_ACKIN1通道采样check_ACKcheck_ACK发送通道控制字0X01iic_stopcheck_ACK返回iic_start发送寻址字节(读)0X91图4-1 A/D转换程序流程图NCheck_ACKSDA=1?YF0=1SDA=1SCL=0SCL=1图4-2 应答位检查程序流程图返回应答标志位F0=04.5 滤波子程序 每次测得的瓦斯浓度值未必准确,很可能由于其它原因造成超限,从而造成不必要的生产耽误,所以必须对不准确的值进行删除处理,这时就需要滤波子程序,滤波子程序的原理就是连续测试12组数据,然后在这12组数据中取平均值进行输出,从而达到一个较为准确的值。十二组数据分别放入get_ad12中,sum初值为0,其程序流程图如下:count=0NcountNew Project”菜单,出现对话框后输入自己所建工程的工程名,点击“保存”。然后选择需要的51芯片即可,本系统选择了Atmel公司的AT89S52芯片。2) 建立源文件,在使用界面上点击“File-New”或者点击工具栏处的新建文件按钮,然后点击“保存”,弹出保存类型的对话框,本系统选择C语言编程,因此要在文件名后加“.c”,在工程窗口文件页的“Target 1”,点击“+”号展开,出现子目录“Source Group1”,点击鼠标右键,在下拉菜单里面选择“ADD file to Source Group1”,鼠标右击确认。3) 编译工程,在页面中完成软件编写后,点击工具栏“Target options”出现“Options for Target Target1 ”,在“Target”选项中输入晶振频率,在“Output”选项中点击“Create HEX File”输出HEX文件,最后点击Build可以进行编译。4) 仿真调试,点击“Debug-Start/Stop Debug Session”进入仿真模式。 (2)Proteus软件的介绍Proteus软件是英国Labcenter electronics公司出版的EDA工具软件。它不仅具有其它EDA工具软件的仿真功能,还能仿真单片机及外围器件。它是目前最好的仿真单片机及外围器件的工具。 其使用大致分为三步:1) 画电路图:首先先要查找你所需要的元件,将原件放置到使用的元件库,之后利用元件连线即可。2) 单片机代码的拷贝:双击单片机,会出现“Edit Component”对话框,在“Program file”选项中选择HEX文件的路径,然后在“Clock frequency”输入栏中输入你所需要的晶振的频率。3) 仿真电路:点击“Run the simulation”即可进行仿真。5.1.2程序的调试按照Keil软件的运用步骤,首先建立工程文件,再建立一个新的C语言文件,将代码输入后编译工程文件,最后进行调试。下面对主程序、LED显示瓦斯浓度的子程序以及A/D转换子程序进行调试,调试结果分别为图5-1、图5-2、图5-3所示。图5-1 主程序调试窗口图5-2 A/D转换子程序调试窗口图5-3 LED显示子程序调试窗口5.1.3下位机系统部分仿真 通过Proteus软件来模拟单片机监测浓度的过程,由于Proteus上并没有相应的传感器元件,因而只能从A/D转换
展开阅读全文