zz基于单片机的煤气报警器设计_第1页
zz基于单片机的煤气报警器设计_第2页
zz基于单片机的煤气报警器设计_第3页
zz基于单片机的煤气报警器设计_第4页
zz基于单片机的煤气报警器设计_第5页
已阅读5页,还剩24页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、绵阳师范学院2016届本科毕业设计(论文)本科生毕业设计(论文)题 目 基于单片机的煤气报警器 设计与实现 专 业 电子信息科学与技术 院 部 信息工程学院 学 号 姓 名 指 导 教 师 答 辩 时 间 2016年5月 工作时间: 2015年12月 至2016年5月基于单片机的煤气报警器设计与实现摘 要:此课题研究设计煤气报警采用了STC89C51单片机为报警器的核心部件,对煤气是否泄漏进行控制。并选用可燃气体气敏传感器MQ- 5与ADC0832数模转换器相连接,将传感器收集到的模拟信号转换为数字信号再传送给单片机,使得STC89C51单片机能处理这些数字信号,并对处理后的数据进行分析。这里

2、设置了3个按键,一个是减小报警值,一个是增大报警值,一个是初始化报警值(默认100mg/L)并在LCD1602中显示。通电之后,如果煤气采集值大于预置的气体浓度值的话则会启动报警电路蜂鸣器发出报警声音,反之则不会报警。关键词:气敏传感器;蜂鸣器;STC89C51单片机;ADC0832;LCD1602Microcontroller-based Gas Alarm Design and ImplementationUndergraduate: Chaole ZhangSupervisor:Bowei Chen Abstract:This research use a design gas alar

3、m STC89C51 micro-controller core components for gas leaks control. And selection of the gas sensor MQ- 5 and ADC0832 analog converter connected to the sensor to collect the analog signal into a digital signal then passes the micro-controller,so that STC89C51 micro-controller can deal with the digita

4、l signals, and the processed data can be analyzed . There are three buttons,one is to reduce the value of warning, one is to increase the alarm value of warning,another one is initialized value of warning (default 100mg / L) and displayed in the LCD1602. After it is powered,if the value is higher th

5、an the concentration of the gas concentration alarm setting value,then the circuit will automatically activate the buzzer alarm .Key words:selected gas sensor;Leaking gases alarm;STC89C51 microcomputer; ADC0832;LCD1602目录1 前言11.1研究目的和意义11.2研究内容和方法22 系统总体概述32.1天然气报警的设计思路32.2系统的设计要求及基本功能3 2.2.1系统的设计要求3

6、 2.2.2系统的基本功能32.3系统结构框图32.4方案的选择43 硬件设计53.1主控单片机模块53.2气敏传感器模块53.3模数转换模块63.4蜂鸣器报警模块73.5 LCD1602显示模块84 软件设计104.1程序设计思路10 4.1.1 main主程序10 4.1.2 ADC0832程序设计11 4.1.3 LCD1602程序114.2 程序设计流程图125 结论与建议135.1结论135.2建议14致 谢15参考文献16附录一 源程序17ADC0832驱动程序:17LCD1602驱动程序:19主程序:22附录二 原理图251 前言1.1研究目的和意义煤气实用的安全隐患对于每户家庭

7、来说是个不可忽视的问题。为了减小或避免各种因煤气泄露而造成的经济损失和人身伤害,所以,使用一种实用的煤气报警器用来预防或杜绝这种安全隐患是头号问题。因为如果造成煤气中毒或者爆炸带给人们的影响会不可计算的,甚至会威胁生命。而今,煤气报警器以外观小巧,性能稳定,方便携带安装,精确度高的特性,更以很低的价钱进去各家各户。由于煤气泄漏对人们造成很多不便和危害,所以,对于煤气泄漏的预防和实时监测,是一个很重要的问题,因此,我们要求的煤气传感器必须具有很高的的灵敏度,能够精确的检测到空气中煤气的浓度值,一旦有煤气泄漏发生,煤气报警器就能及时的提醒用户,避免人们因为煤气泄漏而照成不必要的人身伤害和经济损失,

8、随着现在社会电子科技技术的发展与突破,煤气报警器不断的在原有的基础上添加更多的辅助功能和外围模块,除了已有的模数转换模块,报警模块,现在又添加了显示模块LED、LCD、点阵等,外围继电器模块:连接排气扇和关闭阀门模块等构成。所以这样告诉大家,如果技术不更新,就会落后,哪怕是原地踏步也是一种落后。我们平常都是用STC的 51单片机来做设计。如今气体检测技术日渐成熟,为现代人的工作、研究、生活提供更好的设施和生活质量。煤气泄漏报警器的发展与更新主要有以下几个方面:低功耗,高性能,小体积,精简电路,降低成本,这是我们当今电子领域技术发展进步的重要体现之一。煤气泄漏报警器还有就是增强可靠性,实现元件和

9、电路集成化,多功能化,发展现场适用的变送器和智能型煤气报警器1。本次设计的煤气报警器模块组成一般是:单片机主控模块,LCD模块,气敏传感器模块,蜂鸣器报警模块,数模转换模块。这些报警器的出现,能随时、及时、实时准确测量周围环境中的煤气等危害气体,保护各个家庭的人身安全和财产安全功不可没。1.2研究内容和方法本设计主要以STC89C51单片机为主控模块,LCD1602显示模块,ADC0832数模转换模块,蜂鸣器报警模块,为分支模块的煤气泄漏报警器。该系统便于安装模块简单,功耗低,灵敏度高,当出现异常情况时,蜂鸣器会第一时间报警。关于报警电路,考虑到两种因素来设计:第一:从视觉上,我们可以设计当系

10、统检测到煤气泄露时使用发光二极管控制它,让它不断的亮灭来提示报警。第二:从听觉上,我们可以设计当系统检测到煤气泄露时使用蜂鸣器,让蜂鸣器产生的鸣叫来提示报警。关于显示电路,在以前的单片机课程中,我们可以用以前实验做过的LCD1602来显示检测到的煤气浓度值,在通过预置数的报警值作出比较,这两个值都可以在LCD上显示。本设计使用STC89C51单片机而不使用ATM89C51的单片机,是因为STC的平均价格适中,性能也很不错,用它来完成本设计绰绰有余。本设计主要针对检测CO气体,主要实现的功能是能够实时的对家庭燃气泄漏的检测与报警。单片机通过ADC0832为主体的模数转换模块所输出得来的信号,来对

11、之后的蜂鸣器报警模块和LCD显示模块来进行驱动,实现当ADC检测值超过预置值时,能对蜂鸣器进行工作。本次系统设计能够把气体传感器输出的模拟信号经过ADC0832模块处理送入单片机主控模块中进行处理,并将测量数值传到LCD1602显示模块,若气体浓度超过预置值,那么控制单片机引脚上的蜂鸣器的引脚高电平1,此时蜂鸣器就会发出警报声,并且LED闪烁,提醒用户有异常情况;若没有超过预置值,蜂鸣器就不会工作。该设计以MQ-5气敏传感器为接收设备,STC89C51 单片机为核心以及其他辅助电路,设计此煤气报警器并实现以下几个问题:(1)设计电路在通电的情况下能稳定的运行并准确测量周围环境中CO泄漏值;(2

12、)实现C语言对于单片机的各个模块的编程;(3)了解MQ-5气体传感器的具体功能;(4)了解LCD1602的工作原理;(5)了解ADC0832的工作原理。2 系统总体概述 2.1天然气报警的设计思路本次研究基于单片机煤气报警器设计的报警器能够检测出空气中煤气含量的浓度百分比,如果采集到的浓度值高于我们预置的煤气报警值,蜂鸣器就会开始报警,发光二极管也会闪烁示警,由于实际设计的实践过程中,煤气不容易采集,所以我们把报警值预置为0,这样就能检测出报警模块中是否存在问题。首先,MQ-5气敏传感器作为检测气体浓度值检测模块首先要实时检查我们的空间环境中一氧化碳的浓度,并将气体浓度通过ADC0932模数转

13、换转换成为对应的电信号传给单片机。随后将数字信号以10进制数的形式表现在LCD1602显示模块中,同时判断气体浓度值,让这个浓度值与预置报警值进行比较,如果气体浓度值大于预置报警值,蜂鸣器报警模块则会自动启动报警电路,蜂鸣器发出报警声音示意煤气泄漏,反之则没有泄漏煤气。所以我们最终定下来的设计方案如下:煤气泄漏报警器的关键部分是STC89C51单片机主控模块和MQ-5气体传感器模块,根据周围环境,所检测的气体采用MQ-5气敏传感器和STC89C51单片机。系统总体主要是分为:STC89C51单片机、气敏传感器MQ-5模块、ADC0832模数转换、LCD1602显示模块、蜂鸣器报警模块这五个部分

14、。 2.2系统的设计要求及基本功能 2.2.1系统的设计要求 (1)由于环境因素导致采集煤气量有所差异,要求可以预置报警值(2)测量煤气范围可以设定(范围是50mg/L200mg/L)(3)初始化时显示设定报警值100mg/L 2.2.2系统的基本功能(1)能对煤气值进行检测,超出报警值时蜂鸣器鸣叫。(2)能通过按键来预置报警值,并且在超出预置报警值时进行报警。2.3系统结构框图本设计中煤气报警器系统采用了STC89C51单片机主控模块,LCD1602显示模块,蜂鸣器报警模块,气敏传感器MQ-5模块,和ADC0832模数转换模块。其设计合理,结构简单,成本不高,其结构如下图2-1所示: 图 2

15、-1. 天燃气泄漏报警系统结构框图其中MQ-5气敏传感器是对于周围环境煤气浓度值进行检测。ADC0832转换模块是将传感器接收到的模拟信号转换成“0”和“1”的形式,然后经过辅助电路供给51单片机采集信号。最后,由单片机判断是否进行声光信号报警,来表明当前的状态。2.4方案的选择(1)主控模块设计方案的论证与选择本设计采用单片机STC89C51单片机,与ATM89C51单片机芯片作比较,STC89C51单片机基本功能用来做本次设计完全够用,关键是这款芯片价格比ATMEL公司的51单片机便宜。STC89C51单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统805

16、1单片机,12时钟/机器周期和6时钟/机器周期可以任意选择综合考虑设计成本以及实现的功能后,决定采用单片机STC89C51芯片23。(2)显示模块的设计方案的论证与选择采用LCD1602动态显示,LCD显示分两栏,一栏显示ADC测量值一栏显示预置报警值。LCD1602已很普遍了,具体介绍我就不多说了,市情上这种液晶绝大多数是能够很便捷地应用于市面上大部分的字符型液晶4。用LCD显示我们的内容可以用以前单片机实验现有的LCD驱动程序改一下端口依葫芦画瓢搬过来使用,这样做出来的效果无疑很高大上,比多位LED数码管显示出来的效果好很多,所以我采用LCD1602作为显示模块。(3)报警模块的设计与选择

17、报警模块要工作的话要求在周围环境中的煤气浓度值超出预置值时,利用蜂鸣器的鸣叫可以很实时的作出报警,设计电路很实用方便,用一个三极管跟蜂鸣器连接保证蜂鸣器供电充足。253 硬件设计3.1主控单片机模块 STC89C51单片机是一款高性能,低功耗,稳定的集成芯片,它有40个引脚,除了VCC和GND脚,每个脚都可以用程序来控制置高电平还是低电平,在很多开发板上,都是用的这款STC89C51单片机,可见这款单片机是很受大家的热爱与欢迎。P2口内部带上拉电阻,所以P2口不用像P0口一样外接设备需要上拉电阻。我们在此设计中用P2口连接LCD1602;用P0.1口引申出一个继电器做开关,并预留一个继电器外接

18、口接外设比如说硬件开关;用P1.4与P1.5焊接两个按键作为预置报警值按钮;用P3.0与P3.1预留下载口,方便下载与修改。3.2气敏传感器模块MQ-5气体传感器基本原理图(如图2所示),此传感器能够很精确的检测出空气中煤气浓度的含量,用来做本次设计完全能够满足要求,它的灵敏度、高集成、小体积、低功耗,在各种应用类型里面都有着广泛的好评,而且它是一款能在很多地方应用的低成本传感器。MQ-5基本电路图如图3-1:图3-1 MQ-5基本原理图如图3-2所示MQ-5引脚图,2,5为加热电极,1,3和4,6导通图3-2 MQ-5引脚图3.3模数转换模块 ADC0832 是我们经常用到的一款双通道A/D

19、转换、在很多使用传感器都能用到的高精度集成芯片,其目前已经有很高的普及率。使用ADC0832是在以后基于传感器的单片机应用方面必须要掌握的技能,不仅仅是因为模数之间的转换,还要养成自主查找芯片资料的习惯,因为我们在日常学习的过程中,只有不断的学习才不会落后。电路设计时,我们通常把D0和D1连接单片机,判断CS的状态,再分析CLK的时序,在程序中用公式的形式表示出来,用if语句来判断状态。一般在看传感器芯片手册对应的时序图,找到对应的关系,在写出程序,准确的分辨CH0与CH1在不同状态下输入端,IN+与IN-怎么输入;要准确的分析第几个下降沿转换数据最高位,这是使用ADC0832的关键。图3-3

20、为ADC0832数据读取流程。开始使能芯片产生时钟信号输入通道控制字读取2字节数据字节数据校验表2将值选入指定寄存器结束图3-3 ADC0832数据读取流程芯片接口说明: · CS_ 片选使能,低电平芯片使能。 · CH0 模拟输入通道0,或作为IN+/-使用。 · CH1 模拟输入通道1,或作为IN+/-使用。 · GND 芯片参考0 电位(地)。 · DI 数据信号输入,选择通道控制。 · DO 数据信号输出,转换数据输出。 · CLK 芯片时钟输入。 · Vcc/REF 电源输入及参考电压输入(复用)。pro

21、tel 99 se中ADC0832电路连接原理图如图3-4所示图3-4 ADC0832电路连接原理图3.4蜂鸣器报警模块对于煤气报警装置,此模块是标志模块。通过根据煤气所占空气中的百分比来决定什么时候报警,避免由于人们吸入一氧化碳过度而造成的人身伤害与财产的损失。蜂鸣器报警表现形式如下:(1)ADC数据采集值低于报警值,说明此时煤气浓度不高或没有煤气泄露,蜂鸣器正常;(2)当空气中有一氧化碳时,ADC数据采集值高于报警值,此时蜂鸣器开始工作鸣叫;为了保证蜂鸣器正常工作,要在电路中单独加一个三极管,这是由于单片机本身的对外围设备驱动能力不强。用放大电路或者PNP的集电极连接蜂鸣器以确保蜂鸣器供应

22、电流充足,蜂鸣器才会工作。这里连接单片机RD即P3.7口,是利用P3口第二功能,所以应该保持高电平。图3-5为protel 99 se蜂鸣器电路连接原理图图3-5 蜂鸣器电路连接原理图3.5 LCD1602显示模块我们常用的显示模块一般有以下四种。LED:LED也就是我们常说的发光二极管,一般只是用来做流水灯,指示灯,它有两个引脚,长脚接VCC,短脚接GND,两端均可以直接连接在单片机上,然后用单片机控制端口置数“1”或“0”。数码管:从位数上说分单位和多位,从电极上说分共阴极和共阳极,从显示功能来说分静态显示和动态显示。不管是单位数码管还是多位数码管,也不论是共阴还是共阳,数码管都是用来显示

23、数字和基本字符的,连接单片机,控制对应的位选,在显示要确定的段选码,就能显示出我们想要显示的数据。点阵:是由很多个LED组装而成,原理也很简单,可以显示数字,字符和汉字,但是用来做本设计的显示模块,成本太高,不划算。LCD:LCD1602是可以用来显示字符、数字、符号,完全可以用作本次设计的显示模块 。我们把单片机P2口用于连接LCD1602数据位如图如图3-6:图3-6 1602电路原理连接图LCD1602各个引脚都有其独有的功能,有的是VCC,有的是GND,有的是数据位,有的是背光灯,还有使能信号,读写选择,命令选择等。如果在焊接过程中失误,焊错的话,会导致LCD不能正常显示,所以,在使用

24、这块显示模块之前,一定要仔细翻阅LCD1602的资料,不要把引脚搞错了。LCD1602各引脚接口如表3-1所示:表3-1 LCD1602引脚接口说明表编号符号引脚说明编号符号引脚说明1VSS电源地9D2数据2VDD电源正极10D3数据3VL液晶显示偏压11D4数据4RS数据/命令选择12D5数据5R/W读/写选择13D6数据6E使能信号14D7数据7D0数据15BLA背光源正极8D1数据16BLK背光源负极关于LCD1602和LED差不多,LED是用段选码来显示相应的字符而LCD就是要写入指令模式来进行,它们都是由很多个点阵组成,LCD无非是点阵多了一些,可以显示更多种类的字符,在实物制作过程

25、中以P2口连接LCD1602的数据位,其他引脚接口均以电路图为准。4 软件设计4.1程序设计思路我们本次的设计是使用51单片机与C语言软件件结合的设计,对我们的大学生涯最为标志性的一次检测,不只是用到了数模电的知识,还要用到C语言程序设计的知识。在我们学习C语言程序设计的时候,我们经常是把一个main程序写到结束,不打注释,不分模块,如果在后续的实验过程中要改进某些功能,那么我们就得苦苦寻找当初写的在冗长的代码里某一个C语言程序,非常不利于以后的技术更新和功能修改。所以,我们把本次程序设计写成3个模块,如图4-1所示。main主程序LCD1602程序ADC0832程序图4-1 软件流程设计框图

26、4.1.1 main主程序我们在main程序设计里可用以下步骤来说明:(1)包含ADC0832程序和LCD1602程序;(2) I/O口初始化;(3)按键程序;(4)报警程序;由于我们本次设计是要检测煤气,但是在日常生活中不容易采集到煤气,所以我把本次程序设计里,把没有采集到煤气的数据值设置为0,把本次采集的数据设置在按键程序中,通过按键的脉冲信号,让报警值增大或减小,当报警值减小到0时,通过比较程序,作出相应判断并执行报警程序(图4-2所示)。 图4-2 按键程序4.1.2 ADC0832程序设计对于数字信号的采集,可以选择有两种方式:比较器,ADC。在一般的传感器电路设计中,使用比较器能够

27、避免使用ADC和写ADC的程序的过程,经过电路设计可以直接输出数字信号,但是本次设计没有使用比较器是因为个人电路设计经验不足,所以在本设计中,使用ADC来实现本次设计。在使用传感器,并采集对应的正确的数字信号,使用ADC是必不可少的,把“0”或“1”送到单片机,正确的驱动ADC才能正确的实现功能。4.1.3 LCD1602程序LCD1602已经不陌生,很多实验都用过,它的程序设计流程图如图4-3所示初始化写命令写数据显示延时图4-3 LCD1602程序设计流程图4.2 程序设计流程图图4-4为程序设计流程图图4-4 软件流程设计图以上就是我们本次设计整个模块的程序设计流程图,我们大致可以发现,

28、用到了很多判断语句,在我们C语言程序设计中条件语句常用的无非就是if和swich语句了,由此可见,要学好我们这个专业,熟练掌握C语言是必备技能之一。5 结论与建议5.1结论本设计对于避免煤气泄漏和煤气中毒的实时气体检测并报警器有着巨大的作用,特别是用于保障每家每户的生活安全,同时也能看出我们所处的时代正在发生巨大的进步。  本设计在陈老师的帮助下,对这个煤气报警器的设计与实现进行了严格的系统设计分析。  本论文设计的煤气是否泄漏并采集处理成数字信号部分,蜂鸣器报警部分,LCD602显示部分与单片机STC89C51控制电路等部分构成。MQ-5传感器是一款性

29、价比比较高小巧方便易携带的高集成模块,它的使用简单,电路图易懂,MQ-5稳定性和灵敏度的性能都很不错。对于单片机电路采用了STC89C51单片机构成成本较低和高速处理能力,还有指导老师帮助下完成的片内外设具有十分成熟的电路设计。同时蜂鸣器报警部分有可以预置报警值,在判断ADC采集值与报警值作比较时,这个比较函数也是难点所在。图5-1 实物演示图多亏陈老师的指导,我还是把本设计成功做出来了,以上是实物演示见图5-1,采集值为0,报警默认值为100,LCD的显示正常,把报警值改为0,蜂鸣器也能正常报警,数据采集正常,整体电路基本功能都完成。5.2建议本次设计还是有很多不足之处。(1)由于方便修改,

30、我在这次设计中设计了焊接烧写程序的接口,但是这也造成了一些问题,比如说我要改程序添加功能,当我插上烧写器后,液晶显示器会显示异常。(2)由于继电器费用较高,单个购买不划算,所以在本设计中,继电器没有焊接,部分功能没有实现。(3)在ADC0832程序处理的过程中,是个人能力的原因,在ADC0832模块中处理不是很完善,导致实物做好后通电,数据采集有时候会出现问题,明明没有煤气的时候,依然要报警,然后过一段时间就正常了。(4)在焊接的过程中,很多问题,电烙铁拿不稳,飞线很乱,不美观,在看芯片手册对应实物焊接的过程中容易把引脚搞混,导致焊接错误。在此次研究设计期间,遇到了不少问题:电路设计问题:大二

31、学习的PROTEL 99 SE时间太长并且学过之后很少使用,就忘记了很多快捷键和一些基本的使用方法,后来在网上看视频教程终于能够独立完成电路设计。ADC0832采集数据之间的函数关系:采集值的处理过程中如何用C语言来准确描述出把模拟信号与对应的数字信号完成相应的转换,后来在图书馆查阅书籍中终于解决了这个问题。LCD1602显示问题:采用动态显示,利用数组存储数字,本次设计的显示模块中需要显示的内容基本都是数字,所以我就用数组来存放这些数。致 谢首先,衷心感谢指导老师陈擘威老师,在大四最后一个学期在对我做毕业设计遇到困难时对我的帮助。他对我的知识上的补充与做人上人的教育,不管是做设计还是写论文做

32、事要踏实,学习要认真,相信在以后的工作中,我也会用十二分的努力来完成工作任务。作为一个专升本的学生,陈老师没有嫌弃过我基础差,哪怕很简单的问题,他都能仔细的耐心的回答,我是发自内心的感谢陈老师。这篇论文能够顺利完成,还得感谢亲爱的赵老师,赵老师总能在百忙中抽出空来为我讲解论文哪里没有写好,哪里有错,哪里需要补充。在设计期间,在使用PROTEL 99 SE的时候,我把很多快捷键和基本功能都忘了,连基本的电路图都画不了,发现这些问题后,赶紧上网看视频教程,查缺补漏,最后终于能独立完成电路设计和程序设计。期间也遇到了不少问题,比如说在使用ADC0832的时候,我在对数据采集处理这里没有找到对应的关系

33、,这也成为模数信号转换的一个难题。后来在图书馆找了不少书籍,照搬别人的程序,再改成自己的程序,经过很多次的尝试,终于能够把模拟信号转化成数字信号这个关系处理公式搞定,当时我心里是充满了自豪感,不只是数模转换上面,在焊接好设计成品后,第一次通电的时候就像春晚里魔术表演的时候,看着LCD上面显示的数据,很满意。参考文献1 孙中辉.室内煤气、天然气泄漏报警器的设计D:呼和浩特:内蒙古大学,2009. 2 李全利.单片机原理及应用(M)(第2版),北京:高等教育出版社,2010, 30-40.3 杨欣.51单片机应用与实践丛书51单片机应用从零开始M,北京:清华大学出版社 ,2008, 20

34、-60.4 百度文库 LCD1602最好最详细的中文资料 2012.5 胡汉才.单片机原理及其接口技术M(第3版),北京,清华大学出版社 ,2010, 20-50.6范尚春.传感器技术及应用M(第2版),北京:北京航空航天大学出版社,2010,10-150.7百度文库 ADC0832中文资料 2010.8 郭天祥.51单片机C语言教程M.电子工业出版社, 2009年1月.P1-P5249韩久强.周兴鹏,传感器与检测技术M,北京:清华大学出版社 ,2010,10-110.10百度文库 ADC0832中文资料. 2010.11 张毅刚.新编MCS-51单片机应用设计M(第3版),哈尔滨:哈尔滨工业

35、大学出版社 ,2008,80-90.12ADI公司.ADI模数转换器应用笔记M,北京北京航空航天大学出版社 ,2011, 30-210.13DuguiWu.ZhihengXu.Development and prospect of microprocessor-based protectionrelays in ChinaC, Transmission and Distribution Conference and Exhibition 2002, AsiaPacific, IEEE/PES, 2002,50-60.附录一 源程序ADC0832驱动程序:主要用于采集传感器接收的信号把它转化成相

36、应的数字信号让单片机处理,触发什么条件调用什么子程序.#include<reg52.h>#include<lcd.h>#include<ADC0832.h>#include "intrins.h"unsigned char CH1=0x00;unsigned char CH2=0x01;/*adc0832*/通道的选择:0x02就是单通道0;0x03就是单通道1;/0x00就是双通道ch0=“+”; ch0=“-”/0x01就是双通道ch0=“-”; ch0=“+”/*/unsigned char ADconv(unsigned char

37、 CH)unsigned char i=0 , x =0 , y = 0 ;unsigned char temp;AD0832_CLK = 0 ; /时钟置低平AD0832_DI = 1 ; /开始信号为高电平AD0832_CS = 0 ; /片选信号置低,启动AD转换芯片/输入开始信号(构成一个正脉冲) _nop_();AD0832_CLK = 1 ; /时钟上升沿,输入开始信号_nop_();AD0832_CLK = 0 ; /时钟下降沿/模拟信号输入模式选择(1:单模信号,0:双模差分信号)AD0832_DI = 1 ; _nop_();AD0832_CLK = 1 ; /时钟上升沿,输

38、入开始信号_nop_();AD0832_CLK = 0 ; /时钟下降沿/模拟信号输入通道选择(1:通道CH1,0:通道CH0)AD0832_DI = CH ; /选择通道0 _nop_();AD0832_CLK = 1 ; /时钟上升沿,输入开始信号_nop_();AD0832_CLK = 0 ; /时钟下降沿/=AD0832_DI = 1 ; /数据线置高,准备接收数据for(i = 0 ; i<8 ; i+) /从高位移入数据 AD0832_CLK = 1 ; _nop_(); AD0832_CLK = 0 ; /时钟下降沿,AD0832输出数据,高位(MSB)先 x = x<

39、;<1;/数据左移位,补0 if(AD0832_DO =1) x = x | 0x01; /如果数据为"1",移入1, /如果数据为"0",移入0,for(i = 0 ; i<8 ; i+) /从低位移入数据 y = y>>1;/数据左移位,补0 if(AD0832_DO =1) y = y | 0x80; /如果数据为"1",移入1, /如果数据为"0",移入0 AD0832_CLK = 1 ; _nop_(); AD0832_CLK = 0 ; /时钟下降沿,AD0832输出数据,高位(

40、MSB)先 /数据线置高,释放总线,完成一次转换 AD0832_CLK = 1 ; AD0832_DI = 1 ; AD0832_CS = 1 ; if(x=y) /输出 temp = x; return temp;LCD1602驱动程序:主要显示报警值和预置值,液晶初始化,写命令#include<reg52.h>#include<lcd.h>#include<ADC0832.h>#include "intrins.h"uchar code Temp1="adc: ";uchar code Temp2="wa

41、rn: ";uchar data temp_data3=0;uchar data dis_data3=0;uchar code seg7="0123456789 ";void Delay_1ms(uint ms) /延时1ms * msuint x,y;for(x=ms;x>0;x-)for(y=124;y>0;y-);unsigned char ReverseChar(unsigned char old_char) /IO口数据倒置,由于焊接方便,数据口倒置unsigned char new_char=0;unsigned char i;for(i=

42、0;i<8;i+)new_char=new_char<<1;if(old_char%2=1)new_char=new_char+1;else ;old_char=old_char>>1; return new_char;void write_com(uchar com) /写命令lcdrs=0;P2=ReverseChar(com);Delay_1ms(2);lcden=1;Delay_1ms(2);lcden=0;void write_data(uchar dat) /写数据lcdrs=1;P2=ReverseChar(dat);Delay_1ms(2);lcden=1;Delay_1ms(2);lcden=0;void Lcd_Init(void) /1602液晶初始化 uchar i=0;lcden=0;write_com(0x38);write_com(0x0c);write_com(0x06);write_com(0x01);write_com(0x80);for(i=0;i<16;i+)write_com(0x80+i);write_data(Temp1i);write_com(0x

温馨提示

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

评论

0/150

提交评论