火灾报警器实习报告(硬件部分)_第1页
火灾报警器实习报告(硬件部分)_第2页
火灾报警器实习报告(硬件部分)_第3页
火灾报警器实习报告(硬件部分)_第4页
火灾报警器实习报告(硬件部分)_第5页
已阅读5页,还剩27页未读 继续免费阅读

下载本文档

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

文档简介

1、 单片机课程设计 智能火灾烟雾检测报警系统 学院 :电子信息与电气工程学院 姓名 : 班级 : 学号: 26目录摘要21 简介31.1 课题背景3 1.2 设计概述3 1.3 设计任务分析4 2 总体方案设计4 2.1 烟雾检测传感器选型52.1.1 MQ-2半导体气体烟雾传感器52.2 单片机选型63 单片机最小系统63.1 单片机的时钟电路与复位电路设计7 3.2 STC89C52单片机简介83.3 电源模块104 输入部分与输出部分11 4.1输入部分11 4.2 输出部分11 4.2.1 显示模块11 4.2.2声音报警电路12 5 实物制作与仿真126 总结评价13参考文献14附录一

2、:元器件清单15附录二:总体原理图设计16附录三:部分程序源代码17附录四:实物图31摘要 随着社会和经济的发展,防火工作越来越重要,但是目前国内的许多研发都侧重于大型场所的火灾报警。因此,我们就有必要研制一种结构简单、经济实用的家庭烟雾报警器以适应市场的需求。基于供家庭使用的烟雾报警器应该具备的基本要求和功能,文章设计了一种比较适合的烟雾报警器。本设计以传感器和单片机作为烟雾报警器设计的核心器件,配合其它器件即可实现声光报警、自动排烟换气和消防灭火等功能。设计中单片机选用STC89C52作为控制器件,传感器选用MQ-2型半导体可燃气体敏感元件烟雾传感器实现烟雾的检测。烟雾报警器主要由烟雾信号

3、采集及前置放大电路、模数转换电路、单片机控制电路、显示电路、声光报警电路和安全保护电路构成,设计合理、简单易懂、价格低廉,使单片机在烟雾报警系统的控制中得到充分应用,具有一定的实用价值。论文主要针对烟雾报警系统中的各个组成部分及功能进行了详细的介绍和说明,并对其主控电路和外围设备电路之间的接口连接方式,以及系统软件设计进行了重点的分析和讲解。关键字:烟雾报警器;单片机;传感器 1 简介1.1 课题背景随着科技的发展,越来越多的巨大的隐患由于工业生产和人们的日常生活而产生。为了早期发现和通报火灾,防止和减少火灾危害,保护人身和财产安全。保卫社会主义现代化建设,防止火灾引起燃烧、爆炸等事故,造成严

4、重的经济损失,甚至危及生命安全。为了减少这类事故的发生,就必须对烟雾进行现场实时检测,采用先进可靠的安全检测仪表,严密监测环境中烟雾的浓度, 及早发现事故隐患,采取有效措施,避免事故发生,才能确保工业安全和 家庭生活安全。因此,研究烟雾的检测方法与研制烟雾报警 器就成为传感器技术发展领域的一个重要课题。 1.2 设计概述单片机及烟雾传感器是烟雾报警器系统的两大核心。单片机好比一个桥梁,联系着传感器和报警电路设备。近几年来,单片机已逐步深入应用到工农业生产各部门及人们生活的各个方面。各种类型的单片机也根据社会的需求而开发出来。单片机是器件级计算机系统,实际上它是一个微控制器或微处理器。由于它功能

5、齐全,体积小,成本低,因此它可以应用到所有电子系统中。同样,它也可以广泛应用于报警技术领域,使各类报警装置的功能更加完善,可靠性大大提高,以满足社会发展的需要。而传感器作为信息技术系统的“感官”器件,如果没有“感官”感受信息,或者“感官”迟钝,都难以形成高精度、高速度的控制系统。美国曾把二十世纪八十年代称为传感技术时代,日本更是把传感技术列为十大技术之首。所以,根据报警器功能的需要,选择合适、精确、经济的烟雾传感器和单片机芯片是至关重要的。在本论文中的最主要的设计是选STC89C52单片机和MQ-2半导体气体烟雾传感器为核心器件。 目前,现代建筑都会有选择地安装不同功能的烟雾自动报警系统。因为

6、烟雾自动报警系统是建筑物的神经系统,它能够感受、接收着发生火灾的早期信号并及时报警,发出警报同时告知用户和周边居民。它就像是一个个称职的更夫,给居住、忙碌或是休息在家庭中的人们以极大的安全感。在火灾的早期阶段,准确的探测到火情并迅速报警,对于及时组织有序快速疏散、积极有效地控制火灾的蔓延、快速灭火和减少火灾对居住人群的损失都具有重要的意义。1.3 设计任务分析本篇论文是烟雾报警器的研制:(1)对系统进行整体规划和结构设计。(2)以STC89C52单片机为中央处理器,对硬件电路进行设计和改进,使其功能更加完善。系统硬件电路主要分为数据收集、声音报警电路、状态指示灯电路、数码管显示电路部分。 (3

7、)系统的软件编制。按照软件实现的功能,主要分为主程序、初始化子程序、浓度显示子程序、报警子程序、报警限值设置子程序。在程序的编写过程中,加入了详细的文字注释,便于后期的改进与维护。 (4)硬件电路和软件的综合调试。2 总体方案设计 烟雾报警器是能够检测环境中的烟雾浓度,并具有报警功能的仪器。该报警系统的最基本组成部分应包括:信号采集模数转换电路、单片机控制电路、字符显示电路、声光报警电路和安全保护电路等部分组成。 为适应家庭和工业等场所对可燃性易爆烟雾安全性要求,设计的烟雾报警器具有显示报警状态。报警器采用延时的工作方式,烟雾检测报警器以STC89C52单片机为控制核心,选用MQ-2半导体气体

8、烟雾传感器采集烟雾浓度信息,配合外围电路构成烟雾报警系统。本设计包括硬件和软件设计两个部分。从设计的要求来分析该设计须包含如下结构:烟雾检测部分、STC89C52单片机主控部分、报警部分,AD采集四大部分。电路总题框图如图1所示: 电源开关 电源 STC89C52 单片机AD采集电路显示电路报警电路按键控制 图1 总体设计框图处理器采用51系列单片机STC89C52。整个系统是在系统软件控制下工作的。设置在监测点上的烟雾检测探头将检测到的烟雾变换成电信号,送出模拟信号,给AD采集电路采集。在单片机内,经软件查询、识别判决等环节实时发出烟雾报警状态控制信号。驱动蜂鸣器及报警指示灯报警。2.1 烟

9、雾检测传感器选型烟雾传感器是测量装置和控制系统的首要环节。而烟雾报警器的信号采集由烟雾传感器负责。烟雾传感器能够将气体的种类及其浓度有关的信息转换为电信号,根据这些电信号的强弱就可以获得与待测气体在环境中存在的情况有关的信息,从而达到检测、监控、报警的功能。可以说,没有精确可靠的传感器,就没有精确可靠的自动检测、控制和报警系统。烟雾传感器作为报警器中不可缺少的核心器件,它决定了所采集的烟雾浓度信号的准确性和可靠性。烟雾传感器内部结构如图2所示。 图 2 烟雾传感器及其结构图2.1.1 MQ-2半导体气体烟雾传感器MQ-2半导体传感器是以清洁空气中电导率较低的金属氧化物二氧化锡(SnO2)为主体

10、的N型半导体气敏元件。当传感器所处环境中存在烟雾气体时,传感器的电导率随空气中烟雾气体浓度的增加而增大。在设计报警器时只有使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。该传感器具备一般半导体烟雾传感器灵敏度高、电导率变化大、响应和恢复时间短、抗干扰能力强、输出信号大、寿命长和工作稳定等优点,在市面上应用十分广泛。二氧化锡(SnO2)半导体气敏元件特点:(a)SnO2材料的物理、化学稳定性较好,与其他类型气敏元件相比,SnO2气敏元件寿命长、稳定性好、耐腐蚀性强。(b)SnO2气敏元件对气体检测是可逆的,而且吸附、脱离时间短,可连续长时间使用。(c)SnO2气敏元件结构简单

11、,成本低,可靠行较高,机械性能良好。MQ-2气敏元件的结构如图2所示,由微型AL2O3陶瓷管、SnO2 敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有只针状管脚,其中个用于信号取出,个用于提供加热电流。 MQ-2半导体气体烟雾传感器适用于烟雾、天然气、煤气、氢气、烷类气体、汽油、煤油、乙炔、氨气等的检测,对可燃性气体的(CH4、C4H10、H2等)的检测很理想。这种传感器在较宽的浓度范围内对烟雾气体有良好的灵敏度,能够检测多种可燃性气体,十分适合应用在家庭的气体泄漏报警器中。是一款便携式气体检测器,非常适合多种应用

12、的低成本传感器。 由于物理量和测量范围的不同,传感器的工作机理和结构就不同。通常烟雾传感器输出的电信号是模拟信号(已有许多新型传感器采用数字量输出)。当信号的数值符合A/D转换器的输入等级时,可以不用放大器放大;当信号的数值不符合A/D转换器的输入等级时,就需要放大器放大。所以MQ-2半导体气体烟雾传感器要想把采集到的烟雾浓度模拟信号传送给单片机控制器就必须经过将模拟信号经过A/D转换器转化为可以识别的电信号给单片机。 设计时应注意,气敏元件开机通电时,其内阻很小,但经过一段时间后,才能恢复到原来的稳定状态。因此,QM-2气体传感器需开机预热几分钟,才可投入使用,以免造成误报。2.2 单片机选

13、型单片机是烟雾自动报警系统的心脏,用来接收火灾信号并启动报警装置显示和执行相应的报警。在单片机实现的控制功能中,需要单片机有较快的运算速度,使检测人员和用户在报警器系统正常工作时能够及时地观测到实时的烟雾浓度等级,并进行相应处理。同时,在能够满足报警器系统设计的计算速度及接口功能要求的同类型单片机中,要考虑选择价格低廉且体积轻巧的机型,在保证了报警器的精确性、可靠性及抗干扰性的基础上,能够不提高成本,缩小体积。由于单片机技术在各个领域正得到越来越广泛的应用,世界上许多集成电路生产厂家相继推出了各种类型的单片机,在单片机家族的众多成员中,MCS系列单片机以其优越的性能、成熟的技术及高可靠性和高性

14、能价格比,迅速占领了工业测控和自动化工程应用的主要市场,成为国内单片机应用领域中的主流。其中,51系列单片机的优点是价钱便宜,I/O口多,程序空间大。因此,测控系统中,使用51系列单片机是最理想的选择,因此设计采用STC89C52。3 单片机最小系统 要使单片机工作起来最基本的电路构成为单片机最小系统如图3示。 图3 信号处理模块 单片机最小系统包括单片机、复位电路、时钟电路构成。STC89C52 单片机的工作电压范围:4V-5.5V,所以通常给单片机外界5V直流电源。连接方式为单片机中的40脚VCC接正极5V,而20脚VSS接电源地端。复位电路就是确定单片机的工作起始状态,完成单片机的启动过

15、程。单片机接通电源时产生复位信号,完成单片机启动确定单片机起始工作状态。当单片机系统在运行中,受到外界环境干扰出现程序跑飞的时候,按下复位按钮内部的程序自动从头开始执行。一般有上电自动复位和外部按键手动复位,单片机在时钟电路工作以后,在RESET端持续给出2个机器周期的高电平时就可以完成复位操作。本设计采用的是外部手动按键复位电路,需要接上上拉电阻来提高输出高电平的值。 时钟电路好比单片机的心脏,它控制着单片机的工作节奏。时钟电路就是振荡电路,是向单片机提供一个正弦波信号作为基准,决定单片机的执行速度。XTAL1和XTAL2分别为反向放大器的输入和输出,该反向放大器可以配置为片内振荡器。如采用

16、外部时钟源驱动器件,XTAL2应不接。因为一个机器周期含有6个状态周期,而每个状态周期为2个振荡周期,所以一个机器周期共有12个振荡周期,如果外接石英晶体振荡器的振荡频率为12MHZ,一个振荡周期为1/12us。 3.1 单片机的时钟电路与复位电路设计 本系统采用STC系统列单片机,相比其他系列单片机具有很多优点。一般STC单片机资源比其他单片机要多,而且执行速度快;STC系列单片机使用串口对单片机进行烧写,下载程序较为方便;STC89C52单片机内部集成了看门狗电路;且具有很强抗干扰能力。本系统采用内部方式的时钟电路和加电自复位的复位电路,如下图4图5所示:图4 时钟电路图5 复位电路由于单

17、片机P0口内部不含上拉电阻,为高阻态,不能正常地输出高/低电平,因而该组I/O口在使用时必须外接上拉电阻。3.2 STC89C52单片机简介 STC89C52是一种低功耗、高性能CMOS8位微控制器,具有8K可编程Flash存储器。使用高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在线可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。STC89C52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门

18、狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。这一模块以单片机为中心把程序代码烧进去然后外围接上复位电路、振荡电路、键盘控制、LED显示电路、报警电路等子模块。3.2.1 单片机的引脚功能描述 下面对STC89C52各引脚的功能进行较为详细的介绍:1)电源引脚Vcc和Vss Vcc(

19、40脚):电源端为+5V Vss(20脚):接地端。 2)时钟电路引脚XTAL1和XTAL2 XTAL2(18脚):接外部晶体和微调电容的一端。在单片机内部它是振荡电路反向放大器的输出端,振荡电路的频率就是晶体固有频率。若需采用外部时针电路时,该引脚输入外时钟脉冲。要检查STC89C52的振荡电路是否正常工作,可用示波器查看XTAL2端是否有脉冲信号输出。 XTAL1(19脚):接外部晶体和微调电容的另一端。在片内,它是振荡电路反向放大器的输入端。在采用外部时钟时,该引脚必须接地。 3)控制信号脚 RST ALE PSEN 和EA。 RST(9脚):RST是复位信号输入端,高电平有效。在此输入

20、端保持两个机器周期(24个时钟振荡周期)的高电平时,就可以完成复位操作。 ALE/PROG(30引脚):地址锁存允许信号端。当STC89C52上电正常工作后,ALE引脚不断向外输出正脉冲信号。此频率为振荡器频率fosc的1/6,当CPU访问片外存储器时,ALE输出信号作为锁存低8位地址的控制信号。在CPU访问片外数据存储时,每取值一次(一个机器周期)会丢失一个脉冲。平时不访问片外存储时,ALE端也以1/6的振荡频率固定输出正脉冲,因而ALE信号可以用作对外输出时钟或定时信号。如果你想看一下STC89C52芯片的好坏,可用示波器查看ALE端是否有脉冲信号输出,如有脉冲信号输出,则STC89C52

21、基本上是好的。ALE的负载驱动能力为8个LS型TTL(低功耗高速TTL)。 PSEN(29脚);程序存储允许输出信号引脚,在访问片外程序存储器时,此端定时输出负脉冲作为读片外存储器的选通信号。此引脚接ERROM的OE端。PSEN端有效,即允许读出ERROM/ROM中的指令码。CPU在从外部ERROM/ROM取指令期间,每个周期PSEN两次有效。不过,在访问片外RAM时,要少产生两次PSEN负脉冲信号。要检查一个AT89C52小系统上电后CPU能否正常到ERROM/ROM中读取指令码,也可用于示波器看PSEN端有无脉冲输出。如有,说明基本上工作正常。 EA/VPP(31脚):外部程序存储器地址允

22、许输入端/固化编程电压输入端。当EA引脚接高电平时,CPU只访问片内ERROM/ROM并执行内部程序存储器中的指令。但在PC(程序计数器)的值超过OFFFH(对8751/8051为4k)时,将自动转向执行片外存储器的程序。当出入信号EA引脚接低电平(接地)时,CPU只访问外部ERROM/ROM并执行外部程序存储器中的指令,而不管是否有片内程序存储器。对于无芯片内的ROM的8031或8032,须外扩ERROM,此时必须将EA引脚接地。如果使用有片内ROM的STC89C52,外扩ERROM也是可以的,但也要使EA接地。4)I/O(输入/输出端口P0,P1,P2,P3)P0口:P0口是一个漏极开路的

23、8位准双向I/O端口。P1口:8位准双向I/O端口。P2口:即可以做地址总线输出地址高8位,也可以做普通I/O用,(此时为准双向口)。P3口:双功能口,即可以做普通I/O口用(此时为准向口,也可以按每位定义实现第二功能操作)。见表2。表2 P3口的第二功能表引脚第二功能P3.0RXD (串行输入口)P3.1TXD (串行输出口)P3.2INT0(外部中断0)P3.3INT1(外部中断1)P3.4T0(定时器0外部中断)P3.5T1(定时器1外部中断)P3.6WR(外部存储器写选通)P3.7RD(外部存储器读写通) 3.3 电源模块 由于本系统采用电池供电,我们考虑了如下几种方案为系统供电。方案

24、1:采用5V蓄电池为系统供电。蓄电池具有较强的电流驱动能力以及稳定的电压输出性能。但是蓄电池的体积过于庞大,在报警器上使用极为不方便。因此我们放弃了此方案。方案2:采用4节1.5 V干电池共4.5V做电源,经过实验验证系统工作时,单片机、传感器的工作电压稳定能够满足系统的要求,而且电池更换方便。综上所述采用方案2电源接口电路如图10,其中P1为电池接口,SW1为电源开关。D1为电源指示灯。图10 电源接口电路4 输入部分与输出部分 4.1输入部分 本电路设计了四个按键,一个设置键、一个加键、一个减键、一个紧急报警键,当遇到紧急情况时,可按下紧急报警键,蜂鸣器进行报警。如图9所示图9 消音按键连

25、接电路图4.2 输出部分 4.2.1 显示模块 显示采用数码管显示,显示电路如图7图7 数码管显示 4.2.2声音报警电路 电路通过三极管基极串连一个电阻与单片机P3.6端口连接从而达到控制蜂鸣器是否报警。 图8 声音报警电路图 5 实物制作与仿真 5.1实物制作第一步:取万用板一块,对元器件在万用板上进行布局安排。第二步: 按正常步骤焊接元器件。第三步:电路连接:对照原理图,用短路线逐根进行焊接,同时要做必要的保 护。等一切连接完毕以后,用万用表对各个管脚和焊点进行测量。 5.2 仿真6 总结评价 烟雾检测报警器可保障生产与生活的安全,避免火灾和爆炸事故以及煤气中毒的发生,它是防火、防爆和安

26、全生产所必备的仪器,具有广阔的市场空间与发展前景。 本报告在对烟雾传感器和报警技术进行深入研究的基础上,全面比较国内外同类产品的技术特点,合理地确定系统的设计方案。并对仪器的整体设计和各个组成部分进行了详细的分析和设计。 本设计的烟雾报警器由烟雾信号采集电路与单片机控制电路两大部分构成。根据设计要求、使用环境、成本等因素,选用MQ-2型半导体电阻式烟雾传感器。该传感器是对以烷类烟雾为主的多种烟雾有良好敏感特性的广谱型半导体敏感器件。它的灵敏度适中,具有响应与恢复特性好,长期工作稳定性、重现性、不易受环境影响及抗温湿度影响等优点。 在系统单片机控制电路的设计上,采用了高性能、高整合度的STC89

27、C52单片机作为核心芯片,充分利用了其高速数据处理能力和丰富的片内外设,实现了仪器的小型化和智能化。使仪器具有结构简单、性能稳定、体积小、成本低等优点。由于烟雾传感器需要在加热状态下工作,温度越高,反应越快,响应时间和恢复时间就越快。为提高响应时伺,保证传感器准确地、稳定地工作,需要向烟雾传感器持续供给5V的加热电压。烟雾报警器能在较宽的温度范围工作,可将烟雾浓度显示用LED数码管显示。当烟雾的浓度达到设定的浓度时,发出报警。到目前为止我的设计也即将告一段落了,在这次的设计中,自己也学习到了很多以前没有没有经历过的知识,让我更加清楚了理论知识和实践能力的差别了,了解到自己的短处,培养了我的独立

28、思考能力,进一步提高了自己在实际设计过程中研究问题、发现问题、解决问题的能力,同时,也发现了自己的不足之处,和一些问题的存在,并有待进一步学习和发展,让自己在未来的工作和学习之中更快的适应和提高自己。参考文献 1李华.MCS一51系列单片机实用接口技术.北京航空航天大学出版社.2张毅坤等.单片微型计算机原理及应用.西安电子科技大学出版社.2006.3潘新民等.微型计算机控制技术.电子工业科技大学出版社.2003.4陈伟.MCS一51系列单片机实用子程序集锦.清华大学出版社.1993.5吴佑寿. Lab VIEW7实用教程.电子工业出版社.2007.6朱明程等.一氧化碳传感器MGS1100原理及

29、应用电子技术.1998年第1期.7刘迎春.传感器原理设计及应用.哈尔滨工业大学出社.8赵负图.数据采集与控制系统.北京科学技术出社.1987.9王若鲸.数据通信系统入门.人民邮电出版社.1984.10肖忠祥主编.数据采集原理.西北工业大学出版社.200311刘广玉.新型传感器技术及应用.北京航空航天大学出版社.1989.12张毅刚.MCS一51单片机应用设计.1990.13陈伟.MCS一51系列单片机实用子程序集锦.清华大学出版社.1993.14何立民.单片机实用文集.北京航空航天大学出版.1993.15余成波.传感器与自动检测技术.高等教育出版社.2004.附录一:元器件清单序号型号参数名称

30、标识符备注数量1ADC0832AD采集芯片112蜂鸣器蜂鸣器B1FMQ1310uF电容C1CAPPR1.27-1.7x2.8140.1uF电容C2, C3080525D电源指示灯D1D16DS04数码管DS14BSMG17Header 2电源接口P1sip2188550三极管Q1, Q2, Q3, Q4BCY-W3/E4498550三极管Q5SOT/23110200电阻R1, R6, R7, R8, R9, R10, R11, R1208058112K电阻R2, R3, R4, R5, R1308055121K电阻R14, 电阻R15, R1608052145电阻R1

31、70805115SW-PB独立按键S1, S2, S3, S4, S5KEYS516sw-灰色电源开关SW1sw_自锁117U1单片机U1DIP40/1118烟物传感器烟物传感器119DS18B20温度传感器U318B2012012M晶振Y1CY1附录二:总体原理图设计附录三:部分程序源代码#include #include eepom52.h#define uchar unsigned char #define uint unsigned int#include /数码管段选定义 0 1 2 3 4 5 6 7 8 9uchar code smg_du=0xc0,0xf9,0xa4,0xb0

32、,0x99,0x92,0x82,0xf8,0x80,0x90, 0x88,0x83,0xc6,0xa1,0x86,0x8e,0xff; /断码/数码管位选定义uchar code smg_we=0x7f,0xbf,0xdf,0xef;/uchar code smg_we=0xfe,0xfd,0xfb,0xf7;uchar dis_smg8 = 0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8;uchar smg_i = 3; /显示数码管的个位数sbit SCL=P34;/SCL定义为P1口的第3位脚,连接ADC0832SCL脚sbit DO=P33;/DO定义为

33、P1口的第4位脚,连接ADC0832DO脚sbit CS=P32;/CS定义为P1口的第4位脚,连接ADC0832CS脚sbit dq = P35;/18b20 IO口的定义sbit beep = P36; /蜂鸣器IO口定义uint temperature,s_temp ; /温度的变量uchar dengji,s_dengji; /烟物等级uchar shoudong; /手动报警键uint huoyan;bit flag_300ms ;uchar key_can; /按键值的变量uchar menu_1; /菜单设计的变量bit flag_lj_en; /按键连加使能bit flag_l

34、j_3_en; /按键连3次连加后使能 加的数就越大了 uchar key_time,flag_value; /用做连加的中间变量bit key_500ms ;uchar flag_clock;uchar zd_break_en,zd_break_value; /自动退出设置界面uchar a_a;/*1ms延时函数*/void delay_1ms(uint q)uint i,j;for(i=0;iq;i+)for(j=0;j120;j+);/*小延时函数*/void delay_uint(uint q)while(q-);/*把数据保存到单片机内部eepom中*/void write_eep

35、om()SectorErase(0x2000);byte_write(0x2000, s_temp);byte_write(0x2001, s_dengji);byte_write(0x2060, a_a);/*把数据从单片机内部eepom中读出来*/void read_eepom()s_temp = byte_read(0x2000);s_dengji = byte_read(0x2001);a_a = byte_read(0x2060);/*开机自检eepom初始化*/void init_eepom()read_eepom();/先读if(a_a != 1)/新的单片机初始单片机内问EEP

36、OMs_temp = 50;s_dengji = 5;a_a = 1;write_eepom();/*18b20初始化函数*/void init_18b20()bit q;dq = 1;/把总线拿高delay_uint(1); /15usdq = 0;/给复位脉冲delay_uint(80);/750usdq = 1;/把总线拿高 等待delay_uint(10);/110usq = dq;/读取18b20初始化信号delay_uint(20);/200usdq = 1;/把总线拿高 释放总线/*写18b20内的数据*/void write_18b20(uchar dat)uchar i;fo

37、r(i=0;i= 1;/*读取18b20内的数据*/uchar read_18b20()uchar i,value;for(i=0;i= 1; /读数据是低位开始dq = 1; /释放总线if(dq = 1) /开始读写数据 value |= 0x80;delay_uint(5); /60us读一个时间隙最少要保持60us的时间return value; /返回数据/*读取温度的值 读出来的是小数*/uint read_temp()uint value;uchar low; /在读取温度的时候如果中断的太频繁了,就应该把中断给关了,否则会影响到18b20的时序init_18b20(); /初始

38、化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0x44); /启动一次温度转换命令delay_uint(50); /500usinit_18b20(); /初始化18b20write_18b20(0xcc); /跳过64位ROMwrite_18b20(0xbe); /发出读取暂存器命令EA = 0;low = read_18b20(); /读温度低字节value = read_18b20(); /读温度高字节EA = 1;value = 8; /把温度的高位左移8位value |= low; /把读出的温度低位放到value的低八位中value *

39、= 0.0625; /转换到温度值 return value; /返回读出的温度 /*读数模转换数据*/请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的/ 1 0 0 通道/ 1 1 1 通道 unsigned char ad0832read(bit SGL,bit ODD)unsigned char i=0,value=0,value1=0;SCL=0;DO=1;CS=0;/开始SCL=1;/第一个上升沿SCL=0;DO=SGL;SCL=1; /第二个上升沿SCL=0;DO=ODD;SCL=1; /第三个上升沿SCL=0;

40、/第三个下降沿DO=1;for(i=0;i8;i+)SCL=1;SCL=0; /开始从第四个下降沿接收数据value=1;if(DO)value+;for(i=0;i=1;if(DO)value1+=0x80;SCL=1;SCL=0;CS=1;SCL=1;if(value=value1)/与校验数据比较,正确就返回数据,否则返回0return value;return 0;/*数码显示函数*/void display()uchar i;for(i=0;i= 3)menu_1 = 0;if(menu_1 = 0)dis_smg0 = smg_dutemperature % 10; /取温度的个位

41、数显示dis_smg1 = smg_dutemperature / 10 % 10; /取温度的十位显示smg_i = 3;if(menu_1 = 1)dis_smg0 = smg_dus_temp % 10; /取个位显示dis_smg1 = smg_dus_temp / 10 % 10 ; /取十位显示dis_smg2 = 0xbf ;dis_smg3 = smg_du10;/显示Asmg_i = 4;if(menu_1 = 2)dis_smg0 = smg_dus_dengji % 10; /取个位显示dis_smg1 = 0xbf ; dis_smg2 = 0xbf ;dis_smg3

42、 = smg_du11;/显示Bsmg_i = 4;if(menu_1 = 0)if(key_can = 2) | (key_can = 3)shoudong = 0; /取消手动报警if(menu_1 = 1)/设置高温报警if(key_can = 2)if(flag_lj_3_en = 0)s_temp + ;/按键按下未松开自动加三次else s_temp += 10;/按键按下未松开自动加三次之后每次自动加10if(s_temp 99)s_temp = 99;dis_smg0 = smg_dus_temp % 10; /取个位显示dis_smg1 = smg_dus_temp / 10 % 10; /取十位显示dis_smg2 = 0xbf ;dis_smg3 = smg_du10;/显示Aif(key_can = 3)if(flag_lj_3_en = 0)s_temp - ;/按键按下未松开自动加三次else s_temp -= 10;/按键按下未松开自动减三次之后每次自动减10if(s_temp = 9)s_dengji = 9;dis_smg0 = smg_dus_dengji % 10; /取个位显示dis_smg1 = 0xbf ; dis_smg2 = 0xbf ;dis_smg3 = smg_du11;/显示Bif(ke

温馨提示

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

评论

0/150

提交评论