室内一氧化碳浓度检测警报器的设计毕业论文

上传人:xx****m 文档编号:71478049 上传时间:2022-04-07 格式:DOC 页数:33 大小:11.13MB
收藏 版权申诉 举报 下载
室内一氧化碳浓度检测警报器的设计毕业论文_第1页
第1页 / 共33页
室内一氧化碳浓度检测警报器的设计毕业论文_第2页
第2页 / 共33页
室内一氧化碳浓度检测警报器的设计毕业论文_第3页
第3页 / 共33页
资源描述:

《室内一氧化碳浓度检测警报器的设计毕业论文》由会员分享,可在线阅读,更多相关《室内一氧化碳浓度检测警报器的设计毕业论文(33页珍藏版)》请在装配图网上搜索。

1、 分类号: TP277 单位代码: 107密 级: 一般 学 号:xxxxxxxx本科毕业论文(设计)题 目:室一氧化碳浓度检测报警器的设计专 业: 电子信息工程姓 名: xxxx指导教师: xxxx职 称: 教 授答辩日期: 31 / 33大学学士学位论文原创性声明本人重声明: 所呈交的学位论文,是本人在导师的指导下,独立进行研究工作所取得的成果。除文中已经注明引用的容外,本论文不含任何其他个人或集体已经发表或撰写过的作品成果。对本文的研究做出重要贡献的个人和集体,均已在文中以明确方式标明。本人完全意识到本声明的法律结果由本人承担。作者签名: 日期:关于论文使用授权的说明学位论文作者完全了解

2、大学有关保留和使用学位论文的规定,即:本科生在校攻读学士学位期间论文工作的知识产权单位属大学,学生公开发表需经指导教师同意。学校有权保留并向国家有关部门或机构送交论文的复印件,允许学位论文被查阅和借阅;学校可以公布学位论文的全部或部分容,可以允许采用影印、缩印或其它复制手段保存、汇编学位论文。论文注释:本学位论文属于围,在2年解密后适用本授权书。非论文注释:本学位论文不属于围,适用本授权书。作者签名: 日期:导师签名: 日期:室一氧化碳浓度检测报警器的设计 摘 要:设计了一款检测室一氧化碳浓度是否超标的检测仪。设计思想基于AT89C52单片机,选择MQ-2一氧化碳传感器。一氧化碳传感器将检测到

3、的信号传递给ADC0832组成的模数转换系统,经过AT89C52进行数据处理,最后通过LCD1602显示出来一氧化碳的浓度值。正文具体的介绍了数据的采集,处理,显示和报警电路的设计原理和硬件电路,若卧室的一氧化碳浓度超过设定值,报警电路发出警报。同时可以根据实际情况对一氧化碳浓度的报警值通过程序进行设置,也可以在开机后使用按键设置。本次设计的一氧化碳检测仪具有体积小、质量轻、性价比高、电路简单、检测精度高的优点。主要分为硬件设计和软件设计。能够满足一般的农村家庭用作卧室的煤气浓度的检测。 关键词:一氧化碳;浓度;AT89C52;报警The design of indoor carbon mon

4、oxide concentration detector Abstract:Designed detector of carbon monoxide concentration will exceed the standard. Based on the design idea of AT89C52 MCU, MQ-2 combustible gas sensor. Transfer of the carbon monoxide sensor will detect the signal to the analog-to-digital conversion system composed o

5、f ADC0832, then the AT89C52 for data processing, finally through the LCD1602 display of carbon monoxide concentration. The text describes the specific data acquisition, processing, display and alarm circuit design principle and hardware circuit, if the concentration of carbon monoxide in the bedroom

6、 exceeds the set value, the alarm circuit alarm. At the same time according to the actual situation of the concentration of carbon monoxide alarm value set by the program, also you can use the buttons in the boot settings. Design of a high precision volume of carbon monoxide detector the design of s

7、mall, light weight, high cost, simple circuit, detection. Mainly divided into hardware design and software design. Detection of gas concentration to meet the general rural family for the bedroom.Keywords: Carbon monoxidede;concentration;AT89C52 ; alarm前 言 1 煤气中毒介绍冬季北方偏远农村的家庭几乎都用煤炉子取暖,而有些家庭取暖时煤烟排放不通畅

8、,使得室一氧化碳等气体浓度升高,一氧化碳是煤气中毒的主要元凶,严重危害人们的生命健康。我国每年都有人因为煤气中毒抢救不与时而失去生命,煤气的主要成分就是一氧化碳,而且能够在空气中燃烧生成二氧化碳,一氧化碳的密度和空气差不多,尤其在农村卧室空气流通不通畅时,使人们不知不觉的将煤气吸入体,而偏远农村家庭的煤气中毒主要是在晚上人们熟睡的时候,由于农村的房屋面积较大,人们在晚上睡觉的时候会将门、窗等能够通风的地方堵住,这就很容易造成空气的不流通,尤其在生有煤炉子的卧室,一旦一氧化碳的浓度升高,人们在熟睡之时由于察觉不到,很容易造成煤气中毒。大量的一氧化碳被吸入人和动物体,会与肺部的血红蛋白结合,造成缺

9、氧,危与生命,一氧化碳的中毒按照中毒的轻重可分为:一般性中毒和严重性中毒。一般性中毒的人会出现头晕目眩、睡不着觉、胃部难受等感觉。严重性中毒的人刚开始伴随一般性中毒的情况。等到一段时间后,中毒者脸色发白进而变成紫色。会因为呼吸困难而去世,如果有幸被救活,也会有伴随而来的后遗症,部分患者可发生继发性脑病。在偏远的农村由于人们对于燃煤导致一氧化碳中毒的知识比较欠缺,对防措施也知道的比较少,每逢冬季,新闻上总会有因为燃煤不当而导致中毒的事件,所以针对偏远农村容易在冬季取暖时候出现煤气中毒的情况设计一款检测卧室一氧化碳浓是否超标的检测设备是很有必要的。生命只有一次,这也给人们的安全增加一道屏障。2 一

10、氧化碳浓度检测仪总体设计我国每年报道出来的室一氧化碳中毒的事件越来越多,一氧化碳中毒对人们健康的威胁越来越大,因此促使专家去研究一氧化碳浓度超标的报警器,现在市场上的一氧化碳浓度检测仪有多个类型,比较流行的是热催化监测方式,一氧化碳能够催化氧化燃烧,检测的浓度就不准确。它的最大缺点是体积大,功耗高。本次设计提出采用AT89C52和MQ-2完成要求,很大程度上降低了功耗,提高了精度。论文围绕一氧化碳浓度检测仪的软件和硬件展开设计,设计由几大部分构成:硬件控制部分、A/D转换系统、检测超过报警、键盘输入、检测数值的读取。由于单片机被广泛的应用于控制电路中,所以AT89C52是我们理想的主控芯片,该

11、系统的主要功能包括:ADC0832进行数据处理,一氧化碳浓度限制设置,测量,超过设定值时报警,键盘检测,采用功能模块化的思想可以使电路系统更加的简单、明了,出现问题便于修改,我们这次设计大致可以分为如下环节:(1)总体方案确定;(2)硬件和软件的设计。具体分为:(1)硬件电路的搭建和设计;(2)在软件的主控制部分的硬件电路,编写软件程序;(3)调试软件和硬件电路满足设计要求;(4)得出结果是否达到设计要求。3 一氧化碳检测仪硬件电路的设计3.1硬件结构设计方案一:硬件电路主要由:AT89C52、ADC0832、LM386功率放大器、LCD12864、一氧化碳传感器选用CO/CF-1000探头组

12、成、报警采用ISD1760语音芯片;硬件结构框图1。图1 硬件结构框图方案二:硬件电路主要由AT89C52、模数转换器ADC0832、LCD1602、MQ-2一氧化碳传感器等芯片的选择;主控电路的设计、数据采集、模数转换系统的设计、液晶显示电路设计、键盘接口电路等功能模块电路设计。硬件结构框图2图2 硬件结构框图方案论证比较:两种方案的的主要区别在于报警电路的选择而在实际中报警的方案有很多种,比如采用普通的数字电路设计的,使用数字芯片的成本高,而且和单片机控制电路的连接不方便,在编程时比较麻烦。采用单片机设计的报警电路简单,容易实现。采用DSP设计要考虑和单片机的兼容问题,采用PLD色设计的等

13、等,而常用的方案就是方案一和方案二,方案二的优点在于结构简单既能够实现本次设计的要求,而且硬件电路容易实现,对实验的预算低,但是也有缺点,在一氧化碳传感器后没有加入功率放大器可能对于微弱的信号模数转换器检测不到进而不能进行处理,主控单元就不能产生动作。方案一的优点在于利用灵敏度搞得一氧化碳气体传感器,当有卧室的煤气浓度升高时,可以立即将信号通过前置功率放大器的模数转换器传递到单片机中,进而进行报警;使用语音芯片的好处就是我们可以录自己喜欢的声音来作为报警音,如果使用蜂鸣器可能会受到外界环境影响。但是方案一的缺点在于报警电路比较复杂,这样会导致硬件电路的成本升高,结构复杂,而且语音芯片的录音放音

14、时候还可能有其它噪声的干扰。所以,综合以上因素我们选择方案二进行完成本次设计。3.2硬件电路主要芯片的选择与设计3.2.1单片机的特点与参数单片机具有以下特点1:(1)电压低,功耗低。(2)控制能力相对比较强而且通电之后能够很快的运行,可以有目的性的从简单到复杂的解决各种控制问题,满足各类控制电路的要求,具有很强的位处理和接口的逻辑功能。(3) 抗干扰能力强,适用温度围宽;时钟、复位电路等早已经被嵌入在芯片的里面,这样的话芯片的功能就不会受外界的太多的干扰,提高了可靠性。(4)存和I/O接口,易于扩展。(5) 可以非常方便的实现多机和分布式控制。控制电路使用AT89C52单片机作为核心。图3为

15、AT89C52 的引脚图图3 AT89C52引脚图13.2.2单片机能够运行的最小系统运用AT89C52来搭建一个基于单片机并且能够让这个系统运行起来的最小系统2。单片机最小系统包含有晶振电路和复位电路,AT89C52芯片组成。电路图如图4。图4 单片机最小系统图13.2.3数据采集系统的选择与设计(1)一氧化碳传感器的选择:我们选择了MQ-2/MQ-2S气体传感器,它能够在干净空气中的电导率很低的主要原因是因为气敏材料二氧化锡(SnO2)的作用,因此当我们的室一氧化碳浓度升高的时候,它的电导率也会升高,采用一些常用的转换电路就会将浓度转变成与之等价的电信号4。特点:可以适应很宽浓度围,最主要

16、的是对煤气等有很好的灵敏度、长寿命、低成本、简单的驱动电路即可。(3)传感器检测到的电压信号,必须通过模数转换,放大,才能够被主控芯片识别和处理。由于假若每一路都设置放大、滤波等器件,那么成本会很大,所以信号的采集一般用多路模拟通路进行选择。但是当我们选择多路模拟开关时有几个因素是我们一定要去关心的:元件的封装、开关电阻装置、通道的数目、切换的快慢。总之数据采集与硬件的选择有很大的关系。(4)测量电路测量电路由MQ-2/MQ-2S气体传感器、ADC0832组成。如果空气中一氧化碳被传感器检测到后,产生一个与和一氧化碳浓度等价的电信号,经过放大电路传输给ADC0832进而送到单片机,此时单片机控

17、制的LCD上就有与之对应的一氧化碳的浓度值,如果所检测到的浓度值高于设定的上限值,MCU会给报警电路发出指令,报警电路便会报警。3.2.4模数转换器的选择与简介(1)AD0832的实物图的引脚图如图5和图6图5 AD0832的实物图5图6 AD0832的引脚图5图7模数转换电路图7(2)单片机对ADC0832的控制原理: ADC0832和AT89C52有4根数据线可以进行通信。它们分别是:CS、CLK、DO、DI。可是DO端和DI端在数据通信时不是同时有效,而且同单片机的接口是双端的,因此在电路设计时可以考虑把DO以与DI并联使用一根传输线即可。当ADC0832没有参与系统的时候它的CS输入端

18、高电平有效,CLK以与DO/DI的可以在任意电平;但是如果要实施A/D转换的时候,首先必须将CS端口变为低电平一直持续到转换结束。同时处理器把时钟脉冲输入到芯片的CLK端,DO/DI端共用DI端输入通道功能选择的数据信号5。3.2.5按键选择与简介(1)对独立按键系统的选择,键盘分为:独立式和矩阵式两类,每一类根据编码方法可分为两种:编码和非编码。因为本系统只设置、加、减,3个控制指令,需要的按键比较少,所以独立按键系统是最佳的选择6。电路图见图8。图8 按键电路图(2)独立式按键的构成很简单,直接连接到单片机I/O口就好。每个独立式按键占有一根I/O口线。各根I/O口线之间不会相互影响。在本

19、次设计的硬件电路中,按键输入部使用低电平有效,当按键断开时,排阻能够确保I/O口线在高电平。AT89C52P1口部已经有上拉电阻因此就不需要再外接上拉电阻。(3)键盘抖动的消除:抖动的消除大致可以分为硬件消抖和软件消抖。运用硬件电路的办法对键盘的按下抖动和松开抖动消除就是硬件消抖,使用消抖电路后,按键的电平信号只有按下和释放两种状态。3.2.6上拉电阻的选择 如图9 在AT89C52的P0口接有排阻RP2,为了给P0口的外围电路提供可靠地高电平,必须在P0口接上拉电阻RP2,这样可以保证P0口有稳定的电平3。图9 上拉电阻电路图63.2.7液晶显示器选择我们选用了LCD1602显示电路液晶显示

20、模块,是由于本系统要有显示装置完成显示功能,显示质量高、数字式接口、体积小、重量轻、功耗低等优点。而且LCD显示器屏幕越大功耗也越大,而我们只是显示字符,所以LCD1602是我们选择作为显示一氧化碳浓度数值的最佳选择。LCD1602液晶显示屏共有16个引脚7。如表1所示,正反面如图10、图 117。表1 LCD1602引脚说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极图 10

21、LCD1602 正面图图11 LCD1602 反面图LCD1602液晶显示模块与计算机的接口电路有两种方式。分为直接访问方式和间接控制方式。本次设计采用间接控制方式。液晶显示电路连接原理图见图12:图12液晶显示电路连接原理图(2)1602LCD的RAM地址映射与标准字库表液晶显示模块是一个慢的显示。显示所要显示的汉字字符输入的地址,也就是告诉那里的字符显示模块。图13是1602的部显示地址7。 图13 1602的部显示地址73.2.8报警电路的选择图14 报警电路接线图在有单片机作为主控芯片的系统中,通常工作状态可以用数码管、LED指示灯、LCD液晶显示屏来显示,操作人员可以读取它们上面的容

22、进而了解系统是否工作在良好的状态,如有问题可对系统进行调试。但是万一出现十分紧急的情况,就拿一氧化碳浓度浓度检测来说吧,冬季北方农村的煤气中毒大多是晚上发生,如果报警只有LED灯亮对于晚上熟睡中的人的提醒是没有效果的,所以遇到紧急情况必须有警报信号立刻引起人们的注意,以便于人们采取与时有效的措施防止危险的发生。通常报警信号有以下三种类型:一是闪光报警,一段有规律的灯光的闪动,很容易让人的眼球捕捉到;二是鸣音报警,当遇到紧急情况时,有一段提前设定好的声音发出来,刺激人的听觉器官,这个很符合本次设计的理念;三是语音报警,这个不但能够起到报警作用而且能够提供人们更加详细的关于紧急情况的信息,但是它的

23、也暴露出它的缺点:硬件成本高、结构复杂导致整个系统的预算提高;而前两种报警电路因为硬件电路和软件编程简单,被喜欢用单片机的经常使用,出现在各种各样的单片机系统的中。4 硬件设计主电路图。4.1硬件电路图说明 由AT89C52组成单片机的最小系统,三个独立式按键1、2、3分别为设置键、加、减,通过改变电位器RV1的值,就可以改变输入到ADC0832的模拟信号,经过ADC0832转化为数字信号,最后送至AT89C52处理就可以在LCD1602上显示出检测值,如果超过设定上限值,单片机驱动蜂鸣器报警,同时红色LED灯亮。如果未达到设定值,绿色LED亮。图15和图16分别为硬件设计原理图和PCB原理图

24、。图15硬件设计主电路图图16 PCB电路图5软件设计5.1软件设计结构通过对硬件模块的分析我们可以得出软件部分应该有:(1)主程序和子程序的开发;(2)硬件的每个模块对应的程序开发;(3)将程序植入单片机后与硬件结合调试。主要功能模块有:单片机驱动程序,检测,液晶显示,键盘,软件开关模块。见图17。图17 软件结构框图5.2主程序模块的设计主程序要实现的功能:协调好每个模块,让每个模块实现其应有的功能,具体点来讲就是周围环境中的煤气浓度的检测以与浓度的数值在显示屏上表示出来。见图18。 图18 主程序框图5.3模数转换的设计(1)模数转换的功能简而言之就是把传感器送过来的模拟信号变成数字信号

25、交给单片机即可。ADC0832转换的流程图见图19。 图18模数转换流程图5.4按键模块的设计(1)一种人机对话控制按钮的出现,通过按钮操作,发送操作指令到系统中,并通过单片机的串口通信,并显示在LCD上。按键查询式的流程图见图20:图20 按键查询式的流程图5.5液晶显示模块的设计(1)在这个系统中液晶显示模块主要是显示和播放显示界面的数字,控制效果。采用直接存取法。液晶显示操作流程如图21。 图21 液晶显示的操作流程图6系统仿真与实际电路焊接、调试ProteusISIS因为其强大的功能,能够在计算机上进行电路的仿真、分析。6.1 软件仿真在硬件和软件的设计这个步骤完成后,接下来就是在Pr

26、oteusISIS进行多次仿真,通过改变RV1滑动变阻器的值,可以改变MQ-2传感器的检测信号,通过2号按键和3号按键我们可以对设置的上限值进行加、减。在软件设计时,我们默认浓度上限初始值为50ppm,以下为仿真的结果:(1)我们设置一氧化碳浓度的上限值为 20 ppm. 如图 22开机状态 ,图23为测试状态。图22 开机状态 图23为测试状态(2)我们设置一氧化碳浓度的上限值为 40 ppm. 如图 24开机状态 ,图25为测试状态。 图 24开机状态图25为测试状态(3)我们设置一氧化碳浓度的上限值为 50 ppm. 如图 26开机状态 ,图27、28为测试状态。图26开机状态图27 未

27、报警状态图28 报警状态6.2 硬件电路的焊接、实验。 在软件仿真达到的设计要求后,进行实际电路的焊接、调试,检验软件的仿真的效果,在实际情况下能否达到要求。通过按键可以设置报警阀值。当测量值超过报警阀值时,蜂鸣器鸣叫,红色led灯亮,供电方式:电池盒供电 4节1.5V 5号干电池。图29 为单片机外围实物图。图30为整体图。图29 单片机外围实物图图30 整体图按键操作说明:从左到右分别是:1号设置键、2号加键、3号减键。按下设置键可以调节报警值,系统默认值为50ppm,在调节好报警值时按下2号键报警值加1,按下三号键报警值减1,再次按下设置键,即可进行检测。在实际电路的焊接的时候,选用的传

28、感器为MQ-2可燃气体检测传感器,它对一氧化碳等可燃气体的灵敏度很高,由于纯净一氧化碳必须到化学实验室制备,需要老师的引荐。所以在刚焊接完成的时候,通过普通打火机里面的丁烷进行检测,经过多次检测,均能够达到预期设定值,为了能够验证在一氧化碳环境也能够达到,我通过老师的帮助,在化学实验室制备了一瓶一氧化碳完成了最后的验证。 (1)我们设置一氧化碳浓度的上限值为 20 ppm. 如图 31开机状态 ,图32为测试状态。图31开机状态图32为测试状态(2)我们设置一氧化碳浓度的上限值为 40 ppm. 如图33为开机状态 ,图34为测试状态。图33开机状态图34为测试状态(3)我们设置一氧化碳浓度的

29、上限值为 50 ppm. 如图 35为开机状态 ,图35为测试状态。图 35开机状态图36测试状态6.3 调试总结 (1)硬件的焊接、调试 在对方案有一点点了解的时候,以为这个设计非常简单,由于没有在ProteusISIS仿真也不知道电路是否可行就匆忙的进行实际的硬件电路的焊接,自己在平时焊接电路的机会也少,因此在把电路图转化实际的东西时,出现了很多问题,比如:液晶不显示,电源指示灯不亮,传感器检测不到信号等,通过查电路发现液晶数据引脚短路,电源指示灯正负极接反,传感器短路,单片机没有接上拉电阻、没有总的控制开关、电源线的位置焊接错误等电路问题。最后第一块板子就被报废了。 有了前车之鉴,我认认

30、真真的在ProteusISIS把方案进行了仿真,在仿真的时候发现了方案的一些问题,我在构思大致的方案的时候,由于对ADC0832和AT89C52的连接还不是很了解,所以将两者的连接画错了,后来分析出第一块板子报废的真正原因是因为这个错误。因此导致在ProteusISIS 上面仿真的时候,不管怎样移动RV1滑动变阻器,LCD1602上面的检测数值一直没有变化,我开始重新检查自己的方案,让每个模块单独运行,最后发现了解决错误的方法。 在第二次重新焊接电路的时候,我请教了老师,同学在实际电路的焊接的时候该注意什么,在同学的帮助下,经过一天时间的努力,终于焊接好了这块板子,由于这次比较细心,而且方案仿

31、真也实现了一氧化碳浓度检测的功能,硬件电路焊接好之后,在化学实验室制备了一瓶一氧化碳,首先通电启动,并且设置好三组的一氧化碳浓度的报警上限值分别为:20ppm、40ppm、 50ppm。然后将MQ-2置于一氧化碳环境中,达到上限值时,记录开机数据和检测数据。(2)软件的调试 软件调试使用和ProteusISIS 兼容的Keiluvision3 软件进行调试。调试由4部分构成:(1)创建源文件;(2)创建工程文件;(3)对工程具体参数设定;(4)编译、运行。如果程序没有错误就会出现如图37所示界面8。图37 程序正确界面 (3)在使用Keiluvision3调试的时候碰到一部分问题: 1没有as

32、m文件。 编译时会出现:F:.XX.asmFile has been changed outside the editor, reload ? 将项目重新生成一次,直到产生text.asm文件。 2在键盘输入程序的时候,有时候会将中文的标点当做英文的输入,在编译时会有错误。 3字母和数字形似的会出现输入错误。这个程序出错率很高的一个地方。 4编译之后程序出现错误的时候,在修改了对应行之后,程序依然编译错误,这时候可以将程序断点运行,一步一停,这样就可以找出具体问题所在,然后进行修改。结论与不足这次设计的一氧化碳检测仪的设计体积小,质量轻,性价比高。主要分为硬件设计和软件设计。能够满足一般的农村

33、家庭用作卧室的煤气浓度的检测。软件是基于C语言编写的,具有很好的可控性、模块化和移植性。编写的思路以模块化思想,将系统的各个功能进行划分,然后对各个模块进行设计。本系统的主要模块为一氧化碳检测、A/D转换、液晶显示。由于以前对单片机控制的电路的应用比较少,在设计硬件电路的时候没有在MQ-2和ADC0832之间加放大电路,在将硬件电路焊接完成后,在化学实验室进行实验时 ,在一氧化碳浓度较低的时候,MQ-2检测到的信号很微弱,导致ADC0832不能够识别MQ-2输送的信号,因此LCD1602上的检测数值为0。在实际情况下,如果在室燃煤取暖时,一氧化碳的浓度各个地方是不一样的,距离太远传感器也检测不

34、到信号,不能报警,如果安装在煤炉子周围,因为一氧化碳浓度高,又容易报警。在设计的时候,没有考虑到休眠模式,如果某个设定时间检测仪没有检测到一氧化碳浓度信号,检测仪可进入自动休眠的状态,这样可以节能。自己对C语言的编程不熟悉,所以这次的程序的调试和编写主要是靠老师和同学帮忙,这也提醒我在以后要加强在编程方面的练习。一氧化碳传感器一定会存在的误差,在比较的特殊环境的温度和湿度对传感器会有一定的影响,这样可能造成测量的不精确。传感器检测输出的信号通常是很微弱的还可能伴随其它无关的信号,这样就必须经过前置放大、滤波然后传给模数转换器进行转换达到满足单片机对输入信号的要求。本次设计的一氧化碳你浓度检测仪

35、比较简单只是实现了检测这一个功能,检测到的数据不能存储。软件与硬件相结合的仿真演示出了一氧化碳检测仪主要的工作情况。毕竟实验和实际情况会存在误差的。而且自己对这方面的知识储备不一定足够,所以在设计的时候或许会漏掉一些功能,但这次过程对我以后的设计也积累了一部分经验。本次设计方案比较简单,仅仅实现了一氧化碳浓度的检测,通过这次设计我还想将这个一氧化碳浓度检测仪做的更好,加入一些功能,实现 “开始”、“ 时间设置”、“ 数据存储”“通讯设置”等4个基本功能,但这次的毕业设计,收获还是很多的。今后我会进一步进完善该系统。参考文献:1何立民MCS-51系列单片机应用系统设计 M:航空航天大学,2012

36、:23-24.2马忠梅单片机的C语言应用程序设计M:航空航天大学,2001:34-36.3小忠单片机接口技术实用子程序M:人民邮电大学,2011:45-47.4旭方,慧,余金栋.单片机控制与应用实训教程M.:电子工业,2010:56-57. 5王煜东.传感器应用电路400例M.:中国电力,2012:34-40.6王桂荣.传感器原理与应用M.:中国电力,2013:24-30.7王勇, 冷剑青, 徐健健. 基于单片机的室一氧化碳安全监控系统设计M. :电子工业, 2012: 19-22 .8Keil Software. Macro Assembler and Utilities Users Gui

37、de. Keil Software, 2012.59-789Keil Software.Cx51 Complier Users Guide. Keil Software, 2012.63-102.10为.黄科,雷道仲.单片机典型系统设计实例精讲.:电子工业.2006:55-90.11Wang Xi huai,Xiao Jian mei,Bao Minzhong. Multi-sensor Fire Detection Algorithm for Ship Fire Alarm System Using Neural Fuzzy Network. Signal Processing Procee

38、dings. 2000(3):1602-1605. 辞毕业设计的顺利完成,我的指导老师xxx教授给我了极大的帮助与支持。教授在电子设计方面的造诣很高,对模拟和数字电路比较精通。在我遇到困难时能耐心解答直至我明白。在去年选择毕业设计的题目的时候,教授不会先入为主,自己找一些题目让大家选择,这样会限制对我们的设计思维,当时我提出要做一个火灾检测装置,但老师说那个围大,老师说你可以针对北方农村家庭冬天使用煤炉子取暖,做一个煤气检测仪器,比较有现实意义。就这样我就确定了自己的题目,刚开始拿到题目,没有一点头绪,经过老师的指导和我在网上查的资料,最终确定了自己的方案。在做这个设计之前,对ProteusI

39、SIS和 Keil uvision3 这两款软件的应用相对较少,从这次设计中,我能够更加熟练的运用这两款软件来做一些单片机控制系统的制作。教授带了十名学生的毕业论文,还有教学任务,在设计的过程中,遇到很小的问题,老师都耐心给我讲解,这样教授的工作量比平时增加了不少。在不断的接触中,教授的朴实无华,平易近人的性格对我影响颇深,除教授之外,还要感我的同学们。在程序的调试和编写的过程中他们给了我很多的建议和帮助。特此感。 (全文共8994字)附录:源程序#include#include #define uint unsigned int#define uchar unsigned char#defi

40、ne yh 0x80 /LCD第一行的初始位置#define er 0x80+0x40 /LCD第二行初始位置sbit set_key=P12; /“设置”键 K1sbit add_key=P13; /“加”键 K2sbit cut_key=P14; / “减”键 K3sbit rs=P10; sbit en=P11; sbit speak=P37; / 蜂鸣器sbit led1=P36;/温度ledsbit CS=P20;sbit CLK=P22;sbit DO=P23;sbit DI=P24;/数据输入uchar flog4,temp,a;uchar code tab1=BrAC: PPM

41、; /测量值显示的固定字符uchar code tab2=setD: PPM;/报警值显示的固定字符uint set_D=50;/报警初始值的设定uchar XX3=0,0,0; uchar MQ_data3;uchar temp,i;uint MQ,MQ1;void delay_1ms(uint xms)/延时函数,有参函数uint x,y;for(x=xms;x0;x-) for(y=124;y0;y-);/*液晶写入指令函数*/void write_1602com(uchar )rs=0;/数据/指令选择置为指令P0=;/送入数据delay_1ms(12);en=1;/拉高使能端,为制造

42、有效的下降沿做准备delay_1ms(12);en=0;/en由高变低,产生下降沿,液晶执行命令/*液晶写入数据函数*/void write_1602dat(uchar dat)rs=1;/数据/指令选择置为数据P0=dat;/送入数据delay_1ms(12);en=1; /en置高电平,为制造下降沿做准备delay_1ms(12);en=0; /en由高变低,产生下降沿,液晶执行命令/*液晶初始化函数*/void lcd_init()write_1602com(0x38);/设置液晶工作模式,意思:16*2行显示,5*7点阵,8位数据write_1602com(0x0c);/开显示不显示光

43、标write_1602com(0x06);/整屏不移动,光标自动右移write_1602com(0x01);/清显示write_1602com(yh+0);/显示固定符号从第一行第1个位置之后开始显示for(a=0;a11;a+) write_1602dat(tab1a);/向液晶屏写显示的固定符号部分write_1602com(er+0);/ 显示第二行固定符号for(a=0;a11;a+)write_1602dat(tab2a);/void pros_data()XX0=set_D/100;XX1=set_D%100/10;XX2=set_D%10;write_1602com(er+5);

44、for(a=0;a3;a+) write_1602dat(XXa+0x30);void startADC()CS=1;_nop_();_nop_();CLK=0;_nop_();_nop_();CS=0;_nop_();_nop_();DI=1;_nop_();_nop_();CLK=1;_nop_();_nop_();DI=0;_nop_();_nop_();CLK=0;_nop_();_nop_();void choiceADC(uint CH)/CH为0选择通道ch0,为1,选择ch1进行AD转换startADC();if(CH=0)DI=1;_nop_();CLK=1;/上升沿DI=1

45、_nop_();CLK=0;/1个下降沿DI=1_nop_();DI=0;_nop_();CLK=1;_nop_();CLK=0;/第3个上升沿DI=0_nop_();elseCLK=0;_nop_();DI=1;_nop_();CLK=1;/上升沿DI=1_nop_();CLK=0;/1个下降沿DI=1_nop_();DI=1;_nop_();CLK=1;/第3个上升沿DI=0_nop_();/*通道选择结束开始读取转换后的二进制数*/CLK=1;_nop_();CLK=0;/下降沿读数,一下进行判断和处理,共8次for(i=0;i8;i+) DI=1; if(DO) temp|=0x01;

46、 else temp&=0xfe; CLK=0; _nop_(); CLK=1; temp=tempset_D)/判断是否有报警 如果有就进入函数 然后再判断具体是哪个值报警 speak=0;led1=0;elseled1=1;speak=1;/*显示函数*/void display1() /设置报警值显示 pros_data();void display2()/测量显示choiceADC(0); delay_1ms(1);if(MQ210)MQ=210;MQ1=(210-MQ)*0.9765625;MQ_data0=MQ1/100;MQ_data1=MQ1%100/10;MQ_data2=MQ1%10;write_1602com(yh+5);for(a=0;a210)set_D=210; if(cut_key=0) delay_1ms(5); if(cut_key=0) set_D=set_D-1;while(cut_key=0);if(set_D=0)set_D=0; display1(); if(flog4=0) display2(); baojing();

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!