烟雾报警器课程设计总结报告

合集下载

烟雾报警器课程设计总结报告

烟雾报警器课程设计总结报告

课程设计总结报告课程名称电子技术课程设计设计题目基于89C52的室内火、气安全监测装置专业电子信息工程班级姓名学号指导教师报告成绩信息与工程学院二〇一三年十二月十九日目录前言 (3)第一章项目任务 (3)1.1 设计任务 (3)1.2 设计要求 (4)第二章方案设计与硬件选择 (4)2.1 单片机89C52 (4)2.2 温度传感器模块DS18B20 (5)2.3 烟雾报警器电路MQ2 (5)2.4 信号调理及放大整形模块,LM358芯片 (7)2.5 显示模块LED (7)2.6 报警电路 (7)2.7 按键分析 (6)2.8 复位电路 (6)第三章流程图设计 (8)3.1 电路系统模块 (9)3.2 主程序流程图 (8)3.3 温度报警子程序 (9)3.4 烟雾报警子程序图 (9)3.5 对18B20写程序流程图 (10)3.6 对18B20读8为数据流程图 (12)3.7 温度值转换流程图 (13)3.8 18B20读取温度流程图 (14)第四章电路实验与调试 (16)4.1 焊接 (16)4.2 软件设计 (14)4.3 调试与处理出现问题 (19)第五章设计总结 (19)附录 (21)前言随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。

传统的温度检测以热敏电阻为温度敏感元件。

热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。

与传统的温度计相比,这次设计的是基于DS18B20的数字温度计,它具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

第一章项目任务1.1 设计任务使用温度传感器和烟雾传感器把环境温度和烟雾的浓度情况检测出来,再采用单片机进行温度的显示和烟雾显示,可设置温度报警和烟雾报警。

要求进行硬件、软件系统设计。

要求:位温度的显示;设置报警温度;烟雾报警1.2 设计要求(1)能检测火灾事故,并报警(2)能检测烟雾,有毒气体泄漏事故,并报警(3)能实时显示室内温度值,并通过键盘设置温度报警上下限值第二章方案设计与硬件选择2.1单片机89C52AT89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—FalshProgrammable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

实训烟雾报警器技术报告

实训烟雾报警器技术报告

一、实训背景与目的随着社会的发展和科技的进步,火灾事故的发生频率和危害性逐渐增加。

为了提高火灾预防和应对能力,实训烟雾报警器技术应运而生。

本实训旨在通过设计和制作烟雾报警器,掌握烟雾检测原理、报警器设计与实现等相关技术,提高学员的实践能力和创新意识。

二、实训内容与步骤1. 烟雾检测原理学习首先,我们学习了烟雾检测的基本原理,包括光电式、离子式、电化学式等检测方法。

其中,光电式烟雾检测器因其灵敏度高、响应速度快等优点,成为本实训的主要选择。

2. 烟雾报警器设计根据烟雾检测原理,我们设计了烟雾报警器的基本结构,包括传感器、信号处理电路、报警装置和电源模块等。

(1)传感器:选用MQ-2型半导体可燃气体传感器,其工作原理是通过电导率的变化来检测气体浓度,电阻的减小代表气体浓度的增加。

(2)信号处理电路:采用AT89C51单片机作为核心控制单元,通过ADC0809芯片将传感器输出信号转换为数字信号,便于进一步处理。

(3)报警装置:当检测到烟雾浓度超过预设阈值时,单片机控制蜂鸣器和LED灯同时工作,发出声光报警信号。

(4)电源模块:采用可充电锂电池作为电源,保证报警器在无外部电源的情况下仍能正常工作。

3. 电路搭建与调试根据设计图纸,我们搭建了烟雾报警器的实际电路,并进行调试。

调试过程中,我们通过调整电路参数和传感器灵敏度,使报警器在正常情况下不发出报警信号,而在烟雾浓度超过预设阈值时能够及时发出报警。

4. 系统测试与评估在完成电路搭建和调试后,我们对烟雾报警器进行了系统测试。

测试结果表明,报警器能够准确检测烟雾浓度,并在烟雾浓度超过预设阈值时及时发出报警信号,达到了预期目标。

三、实训成果与总结通过本次实训,我们成功设计和制作了一款烟雾报警器,掌握了烟雾检测原理、报警器设计与实现等相关技术。

以下是本次实训的主要成果:1. 掌握了烟雾检测原理和传感器应用技术。

2. 学会了基于单片机的报警器设计与实现。

3. 提高了电路搭建和调试能力。

烟雾报警器课程设计实验报告讲解

烟雾报警器课程设计实验报告讲解

电气与电子信息工程学院《虚拟仪器课程设计》课程设计报告专业班级: XXXX学号:XXXXX姓名:皮修指导教师: XXX、XXX设计时间:2015年11月2日—2015年11月20日设计地点:K2—403《虚拟仪器课程设计》成绩评定表指导教师签字:年月日目录一、绪论 (3)1.1 课题背景 (3)1.2 设计任务分析 (3)二、总体方案设计 (3)2.1 烟雾检测传感器选型 (4)2.1.1 烟雾传感器的介绍 (4)2.1.2 MQ-2半导体气体烟雾传感器 (6)2.2 单片机选型 (7)2.2.1 STC89C52单片机简介 (8)2.2.2 单片机的引脚功能描述 (8)2.2.3 温度采集模块 (9)三、系统的硬件电路 (10)3.1 单片机最小系统 (10)3.2 单片机的时钟电路与复位电路设计 (11)3.3 烟雾检测AD采集电路 (11)3.4 显示模块 (11)3.5 声音报警电路 (12)3.6 按键控制电路 (13)3.7 电源模块 (13)3.8 温度传感器(DS18B20)电路 (13)3.8.1 DSl8B20简介 (13)3.8.2 DSl8B20具体参数及工作方式 (16)3.8.3 18B20接口电路 (17)四、系统软件的设计 (18)4.1 系统主程序设计及流程图 (18)五、硬件调试及调试中遇到的问题 (19)5.1 电路的调试 (19)5.2 电路调试中遇到的问题 (19)六、实验总结 (19)七、参考文献 (21)八、附录 (22)附件一:总体原理图设计 (22)附件二:实物图 (22)附件三:元器件清单 (23)附件四:部分程序源代码 (23)课程设计任务书2015~2016 学年第1学期学生姓名:xxxxxx专业班级:xxxxxxxx指导教师:xxxxxx 工作部门:电信教研室一、课程设计题目虚拟仪器课程设计二、课程设计目的为了提高虚拟仪器系统软件设计的应用能力,开始为期二周的虚拟仪器系统课程设计。

烟雾报警器课程设计总结报告

烟雾报警器课程设计总结报告

文档来源为:从网络收集整理.word版本可编辑.欢迎下载支持. 课程设计总结报告课程名称电子技术课程设计设计题目基于89C52的室内火、气安全监测装置专业电子信息工程班级姓名学号指导教师报告成绩信息与工程学院二〇一三年十二月十九日前言 ........................................................................................... 错误!未定义书签。

第一章项目任务 ......................................................................... 错误!未定义书签。

1.1 设计任务 ......................................................................... 错误!未定义书签。

1.2 设计要求 ......................................................................... 错误!未定义书签。

第二章方案设计与硬件选择 ................................................. 错误!未定义书签。

2.1 单片机89C52 .................................................................. 错误!未定义书签。

2.2 温度传感器模块 DS18B20 ............................................. 错误!未定义书签。

2.3 烟雾报警器电路MQ2 (5)2.4 信号调理及放大整形模块, LM358芯片 .................... 错误!未定义书签。

2.5 显示模块LED .................................................................. 错误!未定义书签。

烟雾报警器设计报告

烟雾报警器设计报告

北京交通大学电子系统课程设计报告设计题目:烟雾报警器小组名单:联系电话:指导老师:完成日期:2013年3月29日目录一、设计目的 (2)二、设计要求 (2)三、设计步骤 (2)四、设计原理 (3)五、设计方案 (4)1 总体电路设计图及原理说明 (4)2 各单元电路的设计图及原理说明 (5)2.1 气体烟雾传感器 (5)2.2 控制电路 (6)2.3 无线收发模块 (7)2.4报警信号保持电路 (9)2.5 声光报警电路 (12)2.6 计时显示电路 (13)六、调试过程及结果分析 (18)七、课设体会 (20)八、元件清单 (20)九、附件:烟雾报警器实物图 (21)一、设计目的1.了解传感器的基本知识,掌握传感器的使用方法;2.进一步加深对模拟电路基础理论和数字电路基础理论的理解;3.掌握放大器逻辑控制电路和振荡器的设计方法。

二、设计要求1.基本部分:1)电源电压不限,可以使用交流或直流电源;2)有气体或烟雾时进行报警,无气体或烟雾后仍然维持报警,直至重新上电后才撤消报警;3)气体或烟雾报警设置断气、灭火驱动接口;4)显示报警时间。

2.发挥部分:1)可以通过无线方式向远端发送报警信息,无线传输所使用的信号调制、解调方式不限,可以使用成品模块;2)报警采用模拟救火车报警声的音响效果。

三、设计步骤1.电路设计:1)确定整体方案根据设计要求,实现题目要求的电路方案有多种供选择,比较各种方案的优劣、和具体情况选择其中的一种;2)单元电路设计设计两种以上满足要求的电路进行比较,确定最佳的方案;3)元器件的选择;4)画出总体电路图;2.安装焊接调试;3.总结设计报告:1)设计任务书;2)设计框图及电路系统概述;3)各单元电路的设计方案及原理说明;4)调试过程及结果分析;5)设计、安装及调试中的体会;6)参考文献。

四、设计原理1.设计框图2.电路系统概述当空气中有烟雾或可燃气体时,传感器会探测到烟雾或气体,并造成电路中电信号变化。

烟雾报警器实训报告例文

烟雾报警器实训报告例文

一、实训目的本次实训旨在通过设计、组装和调试烟雾报警器,使学生掌握以下知识和技能:1. 烟雾报警器的工作原理及组成部分;2. 传感器、单片机、模数转换器等电子元器件的选用和连接;3. 烟雾报警器电路设计、程序编写和调试;4. 实验报告撰写能力。

二、实训内容1. 烟雾报警器原理分析烟雾报警器是一种用于检测空气中烟雾浓度的安全装置,其工作原理如下:(1)烟雾传感器:当空气中烟雾浓度超过设定值时,传感器输出低电平信号。

(2)单片机:接收传感器信号,根据预设程序进行判断,若检测到烟雾浓度超过阈值,则控制报警电路工作。

(3)报警电路:当单片机判断有烟雾时,通过控制继电器或蜂鸣器发出报警声。

2. 电路设计本次实训采用的烟雾报警器电路主要由以下部分组成:(1)烟雾传感器:选用MQ-2可燃气体传感器,用于检测烟雾浓度。

(2)单片机:选用AT89C51单片机,作为控制系统。

(3)模数转换器:选用ADC0809,将烟雾传感器的模拟信号转换为数字信号。

(4)报警电路:选用蜂鸣器,用于发出报警声。

3. 程序编写烟雾报警器程序采用C语言编写,主要实现以下功能:(1)初始化单片机、ADC0809和蜂鸣器等硬件设备。

(2)读取烟雾传感器模拟信号,通过ADC0809转换为数字信号。

(3)判断烟雾浓度是否超过阈值,若超过,则控制蜂鸣器报警。

(4)实时显示烟雾浓度值。

4. 调试与测试(1)连接电路,检查元器件是否正确连接。

(2)编写程序,并使用Keil软件进行编译。

(3)将编译好的程序下载到单片机中。

(4)调试程序,观察烟雾报警器是否正常工作。

三、实训结果与分析1. 结果经过调试,烟雾报警器能够正常工作。

当空气中烟雾浓度超过设定值时,蜂鸣器会发出报警声,并实时显示烟雾浓度值。

2. 分析(1)烟雾报警器电路设计合理,元器件选用恰当。

(2)程序编写正确,能够实现烟雾浓度检测和报警功能。

(3)调试过程中,发现并解决了部分问题,如单片机与ADC0809的通信问题、蜂鸣器报警声过小等问题。

烟雾报警器实验报告

烟雾报警器实验报告

一、摘要本实验旨在设计和实现一款基于光电式烟雾传感器的烟雾报警器。

通过分析烟雾报警器的原理,设计电路图,并选用合适的电子元件,完成了烟雾报警器的制作。

实验过程中,对电路进行了测试和调试,验证了报警器的功能。

最终,该烟雾报警器能够有效检测到烟雾并发出声光报警,为火灾预防提供了技术支持。

二、引言烟雾报警器作为一种重要的消防设备,能够及时检测到火灾发生时的烟雾,发出警报,为人员疏散和消防扑救提供宝贵的时间。

随着科技的不断发展,烟雾报警器的种类和功能也在不断丰富。

本实验旨在通过设计和制作一款基于光电式烟雾传感器的烟雾报警器,了解烟雾报警器的原理和制作方法,提高对火灾预防的认识。

三、实验原理烟雾报警器的工作原理是利用光电传感器检测烟雾对光的散射或吸收,从而判断烟雾的存在。

当烟雾进入报警器内部时,光电传感器会检测到光线的减弱或散射,进而触发报警电路,发出声光报警。

四、实验器材1. 光电式烟雾传感器2. 单片机3. 声光报警模块4. 电阻、电容等电子元件5. 电源6. 调试工具五、实验步骤1. 电路设计:根据烟雾报警器的原理,设计电路图。

电路主要由光电传感器、单片机、声光报警模块、电阻、电容等元件组成。

2. 元件选型:根据电路图,选择合适的电子元件。

光电传感器选用光电式烟雾传感器,单片机选用STC89C51,声光报警模块选用普通声光报警模块。

3. 电路制作:按照电路图,将元件焊接在面包板上。

4. 电路调试:接通电源,观察报警器是否能够正常工作。

如果报警器不能正常工作,检查电路连接是否正确,元件是否损坏,并进行相应的调整。

5. 功能测试:将烟雾引入报警器内部,观察报警器是否能够及时发出声光报警。

六、实验结果与分析1. 电路测试:经过多次调试,电路连接正确,元件无损坏,报警器能够正常工作。

2. 功能测试:将烟雾引入报警器内部,报警器能够及时发出声光报警,达到预期效果。

七、结论本实验成功设计并制作了一款基于光电式烟雾传感器的烟雾报警器。

烟雾报警器实习报告

烟雾报警器实习报告

烟雾报警器实习报告一、实习背景和目的作为一名电子工程专业的学生,我深知烟雾报警器在生活中的重要性。

为了提高自己的实践能力和理论知识,我选择了烟雾报警器作为实习项目。

本次实习的主要目的是了解烟雾报警器的工作原理,掌握其设计和制作过程,并提高自己的实际操作能力。

二、实习内容和过程1. 理论研究:在实习开始前,我首先对烟雾报警器的工作原理进行了深入学习。

通过查阅资料,我了解到烟雾报警器主要是通过检测烟雾浓度来判断是否存在火灾,从而发出警报。

其中,半导体气体烟雾传感器是烟雾报警器的核心部件,它对烟雾具有较高的灵敏度。

2. 电路设计:在了解烟雾报警器的工作原理后,我开始设计电路。

电路主要包括单片机、烟雾传感器、蜂鸣器、电源等部分。

我选用了一款STC89C51单片机作为控制核心,因为它具有较高的性能和较低的价格。

同时,我选用了一款MQ-2半导体可燃气体传感器作为烟雾检测部件,因为它具有较好的灵敏度和稳定性。

3. 编程实现:在电路设计完成后,我开始编写程序。

程序主要实现了烟雾浓度的检测、报警功能以及与上位机的通信功能。

我使用C语言进行编程,通过I/O口与烟雾传感器和蜂鸣器等硬件部分进行交互。

同时,我还使用串口通信技术,实现了与上位机的数据传输。

4. 实物制作与调试:在程序编写完成后,我开始进行实物制作。

根据电路设计图,我将各个元器件焊接在电路板上,并连接好电源和通信线路。

完成实物制作后,我对电路进行了调试。

通过不断调整程序和电路参数,我成功实现了烟雾报警器的功能。

三、实习收获和反思通过本次实习,我深入了解了烟雾报警器的工作原理和设计过程,掌握了一定的电子制作和编程技能。

在实习过程中,我学会了如何查阅资料、分析问题、解决问题,并提高了自己的动手能力。

然而,在实习过程中,我也发现了自己的一些不足之处。

首先,我在电路设计和编程过程中,对部分理论知识掌握不够扎实,导致在实际操作中遇到了一些困难。

其次,我在调试过程中,由于耐心不足,未能及时发现问题所在,导致实习进度受到影响。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

课程设计总结报告课程名称电子技术课程设计设计题目基于89C52的室内火、气安全监测装置专业电子信息工程班级姓名学号指导教师报告成绩信息与工程学院二〇一三年十二月十九日前言 (3)第一章项目任务 (3)1.1 设计任务 (3)1.2 设计要求 (3)第二章方案设计与硬件选择 (4)2.1 单片机89C52 (4)2.2 温度传感器模块 DS18B20 (4)2.3 烟雾报警器电路MQ2 (5)2.4 信号调理及放大整形模块, LM358芯片 (6)2.5 显示模块LED (6)2.6 报警电路 (6)2.7 按键分析 (6)2.8 复位电路 (6)第三章流程图设计 (7)3.1 电路系统模块 (7)3.2 主程序流程图 (8)3.3 温度报警子程序 (9)3.4 烟雾报警子程序图 (9)3.5 对18B20写程序流程图 (10)3.6 对18B20读8为数据流程图 (11)3.7 温度值转换流程图 (12)3.8 18B20读取温度流程图 (13)第四章电路实验与调试 (14)4.1 焊接 (14)4.2 软件设计 (14)4.3 调试与处理出现问题 (19)第五章设计总结 (19)附录 (21)随着现代信息技术的飞速发展和传统工业改造的逐步实现,能够独立工作的温度检测与显示系统应用于诸多领域。

传统的温度检测以热敏电阻为温度敏感元件。

热敏电阻的成本低,需要外加信号处理电路,而且可靠性相对较差,测温准确度低,检测系统也有一定的误差。

与传统的温度计相比,这次设计的是基于DS18B20的数字温度计,它具有读数方便,测温范围广,测温精确,数字显示,适用范围宽等特点。

第一章项目任务1.1 设计任务使用温度传感器和烟雾传感器把环境温度和烟雾的浓度情况检测出来,再采用单片机进行温度的显示和烟雾显示,可设置温度报警和烟雾报警。

要求进行硬件、软件系统设计。

要求:位温度的显示;设置报警温度;烟雾报警1.2 设计要求(1) 能检测火灾事故,并报警(2) 能检测烟雾,有毒气体泄漏事故,并报警(3)能实时显示室内温度值,并通过键盘设置温度报警上下限值第二章方案设计与硬件选择2.1单片机89C52AT89C52是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。

2.2温度传感器模块 DS18B202.2.1数字温度传感器DS18B20,具有独特的单总线接口方式,需一根总线就能实现控制模块与DS18B20之间的半双工通信。

DS18B20是集传感元件和转换电路于一体的小芯片上。

另外,DS18B20也支持"一线总线"接口,测量温度范围为-55°C~+125°C,在-10~+85°C范围内。

现场温度直接以"一线总线"的数字方式传输,大大提高了系统的抗干扰性。

2.2.2 工作原理DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可擦除的EERAM。

高速暂存RAM的结构为8字节的存储器,结构如图1所示。

第3和第4字节是TH和TL的拷贝,是易失的,每次上电复位时被刷新。

第5个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。

DS18B20工作时按此寄存器中的分辨率将温度转换为相应精度的数值。

该字节各位的定义热图二所示。

低5位一直为1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。

在DS18B20出厂时该位被设置为0,用户不要改动,R1和R0决定温度转换得精度位数,即用来设置分辨率,定义方法见表1。

图一图二2.2.3 供电方式采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电2.3 烟雾报警器电路MQ2MQ2烟雾传感器,有只针状管脚,其中4个用于信号取出,2个用于提供加热电流。

当烟雾扩散时,烟雾传感器感应到烟雾时, 继电器打到NO,风扇开始工作,马达转动,风扇产生吸力将烟雾吸入到装有活性炭和负离子的过滤外壳中,排清新干净的气体2.4 信号调理及放大整形模块, LM358芯片LM358 内部包括有两个独立的、高增益、内部频率补偿的双运算放大器。

当P1.5为0时报警。

2.5 显示模块LED采用LED数码管显示2.6 报警电路用蜂鸣器作报警提示音,加发光二极管,声光结合充分突出了紧急提示信号的特点。

2.7按键分析四个按键的功能分别为:第一个按键是结束选择,按一下表示显示管进行显示当时温度;第二个键是减键,对设定的温度进行减一;第三个键是加键;第四个键是进入键,按一下表示进入设置温度模式。

2.8 复位电路原理:VCC上电时,C3充电,在10K电阻上出现电压,使得单片机复位;几个毫秒后,C充满,10k电阻上电流降为0,电压也为0,使得单片机复位。

工作期间,按下S4,C放电,在10K电阻上出现电压,使得单片机复位。

S松手,C又充电,几个毫秒后,单片机进入工作状态。

第三章流程图设计3.1电路系统模块3.2主程序流程图3.3温度报警子程序3.4烟雾报警子程序图3.5对18B20写程序流程图3.6对18B20读8为数据流程图3.7温度值转换流程图3.8 18B20读取温度流程图第四章电路实验与调试4.1 焊接4.2 软件设计#include <reg52.h>#include "18b20.h"#include <intrins.h>#define uint unsigned int//宏定义#define uchar unsigned char//宏定义#define date P1 //数码管段选uint temp,alarm_temp;//定义温度,设定温度bit key_lock,chang_flag;bit zerotemp_flag; //负温度标志位uchar code LED[] = {0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90}; //三位共阳极数码管0~9的断码//数码管位定义sbit ge = P1^2;//个位sbit shi = P1^1;//十位sbit bai = P1^0;//百位sbit bell = P2^7;//蜂鸣器定义sbit MQ = P1^5;//MQ-2定义sbit DQ = P1^4;//18B20定义//按键定义sbit key0 = P2^0;sbit key1 = P2^1;sbit key2 = P2^2;sbit key3 = P2^3;void delay_ms(uint xms){//延时子程序uint i,j;for(i=xms;i>0;i--)//i=xms即延时约xms;for(j=110;j>0;j--);}void delay_us(uint z){//微妙级延时while(z--)_nop_();}void display(uint x){//数码管显示子程序//取一温度值xuint temp1;temp1 = x;temp1 = temp1%1000;//使温度值不超过三位有效数//动态显示//显示个位ge = 0;//开显示date = LED[temp1%10];//将temp1的个位显示出来delay_ms(2);//延时2msge = 1;//关显示//显示十位shi = 0;//开显示date = LED[temp1%100/10]&0x7f; //将temp1的十位显示出来,并显示小数点dp位delay_ms(2);//延时2msshi = 1;//关显示//显示百位bai = 0;//开显示date = LED[temp1/100];//将temp1的百位显示出来delay_ms(2);//延时2msbai = 1; //关显示}void alarm(void){//报警子程序if((temp>alarm_temp)|(MQ == 0))//如果温度大于设定值或MQ2=0{bell = 0;//蜂鸣器响}elsebell = 1;//蜂鸣器不响}/*****************18B20程序******************/void fuwei(void){//18B20复位DQ = 0;delay_us(50); //600usDQ = 1;delay_us(5); //70us}uchar read_18B20(void){//从18B20读取8位数据uchar i,dat; //从最低位开始接收for(i = 0;i<8;i++){dat>>=1; //数据右移一位DQ = 0;_nop_(); //延时1usDQ = 1; //释放总线_nop_(); //延时2us后在读取,不然读取值会紊乱,很关键!!! _nop_();if(DQ)dat|=0x80; //如果接收到的是1,则最高位置为1delay_us(2); //延时40us}return dat;}void write_18B20(uchar dat){//对18B20写8位数据uchar i;for(i = 0;i<8;i++){DQ = 0;_nop_();//延时10usDQ = (bit)(dat&0x01); //从最低位开始发送dat>>=1; //右移一位delay_us(1); //延时40usDQ = 1; //释放总线}}void changetemp(void){//温度值转换uint Temp_L,Temp_H;Temp_L = read_18B20();//读取低八位Temp_H = read_18B20();//读取高八位,当温度为负数时 temp(7~4)为1,反之为0 if(((bit)(Temp_H&0x80))){zerotemp_flag = 1; //温度为负数标志位//负温度计算Temp_H &= 0x0f;temp = (Temp_H<<8|Temp_L)*0.625;}temp = (Temp_H<<8|Temp_L)*0.625; //保存一位小数}void read_temp(void){//从18B20读取温度fuwei(); //复位delay_us(10); //延时write_18B20(0xcc);//跳过读取序列号write_18B20(0x44);//开始转换温度fuwei(); //复位delay_us(10); //延时write_18B20(0xcc);//跳过读取序列号write_18B20(0xbe);//读暂存指令changetemp(); //读取转换温度fuwei(); //复位}int main(void){//主程序alarm_temp = 220;//设定温度初始值read_temp();//18b20测温delay_ms(500);//延迟500mswhile(1){read_temp();//18b20测温display(temp);//显示测到的温度alarm();//报警if(!key0)//如果key0=0,则进入温度修改状态{delay_ms(2);//延迟2ms,消抖if(!key0)//如果key0=0,则确定键按下,显示温度chang_flag = 1;}while(chang_flag){if(key1&key2)key_lock = 1;//如果key1&key2=1,则无效if(!key1){delay_ms(2);//延迟2ms,消抖if(!key1){if(key_lock){alarm_temp+=10; //alarm_temp+10=alarm_temp(温度加1)if(alarm_temp>990)//如果数码管前两位大于99,则清零alarm_temp = 0;key_lock = 0;}}}if(!key2){delay_ms(2);//延迟2ms,消抖if(!key2){if(key_lock){alarm_temp-=10; //alarm_temp+10=alarm_temp(温度减1)if(alarm_temp>1000)//如果三位数码管都是0,则减一后变为990alarm_temp = 990;key_lock = 0;}}}if(!key3){delay_ms(2);//延迟2ms,消抖if(!key3){if(key_lock){chang_flag = 0;key_lock = 0;}}}display(alarm_temp);//显示设定温度}}}4.3调试与处理出现问题1.温度显示不正确,发现DS18B20电路少接一个电阻。

相关文档
最新文档