室内温度报警控制系统设计

合集下载

基于单片机的室内温度控制系统设计与实现

基于单片机的室内温度控制系统设计与实现

基于单片机的室内温度控制系统设计与实现1. 本文概述随着科技的发展和人们生活水平的提高,室内环境的舒适度已成为现代生活中不可或缺的一部分。

作为室内环境的重要组成部分,室内温度的调控至关重要。

设计并实现一种高效、稳定且经济的室内温度控制系统成为了当前研究的热点。

本文旨在探讨基于单片机的室内温度控制系统的设计与实现,以满足现代家居和办公环境的温度控制需求。

本文将首先介绍室内温度控制系统的研究背景和意义,阐述其在实际应用中的重要性和必要性。

随后,将详细介绍基于单片机的室内温度控制系统的设计原理,包括硬件设计、软件编程和温度控制算法等方面。

硬件设计部分将重点介绍单片机的选型、传感器的选取、执行机构的搭配等关键环节软件编程部分将介绍系统的程序框架、主要功能模块以及温度数据的采集、处理和控制逻辑温度控制算法部分将探讨如何选择合适的控制算法以实现精准的温度调控。

在实现过程中,本文将注重理论与实践相结合,通过实际案例的分析和实验数据的验证,展示基于单片机的室内温度控制系统的实际应用效果。

同时,还将对系统的性能进行评估,包括稳定性、准确性、经济性等方面,以便为后续的改进和优化提供参考。

本文将对基于单片机的室内温度控制系统的设计与实现进行总结,分析其优缺点和适用范围,并对未来的研究方向进行展望。

本文旨在为读者提供一种简单、实用的室内温度控制系统设计方案,为相关领域的研究和实践提供有益的参考。

2. 单片机概述单片机,也被称为微控制器或微电脑,是一种集成电路芯片,它采用超大规模集成电路技术,将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种IO口和中断系统、定时器计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、AD转换器等电路)集成到一块硅片上,构成一个小而完善的微型计算机系统。

单片机以其体积小、功能齐全、成本低廉、可靠性高、控制灵活、易于扩展等优点,广泛应用于各种控制系统和智能仪器中。

基于STC89C51单片机的温度控制报警系统设计

基于STC89C51单片机的温度控制报警系统设计

基于STC89C51单片机的温度控制报警系统设计摘要:本文基于STC89C51单片机设计了一种温度控制报警系统,通过温度传感器检测环境温度,并根据设定的温度范围控制风扇运转并发出报警信号,以实现室内温度自动控制。

本文介绍了系统硬件设计、软件设计以及测试实验,并通过实验数据验证了系统的可行性和稳定性。

关键词:STC89C51单片机;温度控制;报警系统;温度传感器一、引言随着科技的不断发展,自动化控制技术在各个领域得到广泛应用。

温度自动控制是其中的一个重要应用方向。

在家庭、工厂以及医院等场所,温度的合理控制对于人们的身体健康和环境的稳定运转都有着重要的影响。

因此,设计一种基于STC89C51单片机的温度控制报警系统具有重要的研究价值和应用前景。

二、系统设计2.1 系统功能本系统主要功能为:实时检测环境温度,根据设定的温度范围控制风扇运转,并发出报警信号以实现室内温度自动控制。

2.2 系统硬件设计本系统主要硬件设计包括:温度传感器模块、LED指示灯、蜂鸣器、风扇以及STC89C51单片机。

温度传感器模块采用DS18B20型号,通过单总线接口与单片机相连,用于检测室内温度。

LED指示灯用于显示系统状态,包括运行状态和报警状态。

蜂鸣器用于发出报警信号。

风扇用于控制系统温度,实现温度自动控制。

STC89C51单片机负责系统的数据采集、运算和控制。

2.3 系统软件设计本系统的软件设计分为两部分:系统初始化和主程序部分。

系统初始化包括:串口初始化、温度传感器初始化、LED指示灯初始化、蜂鸣器初始化、风扇初始化等,主要用于对系统各个硬件进行初始化设置。

主程序部分包括:温度采集、温度判断、风扇控制和报警控制等。

主要通过程序实现室内温度的采集和判断,并根据设定温度范围控制风扇和报警控制信号等。

三、实验结果在实际测试中,将系统置于模拟室内环境中进行测试,测试数据显示本系统能够实现温度自动控制,并在温度超出设定范围时发出报警信号。

防盗与恒温系统的设计与制作

防盗与恒温系统的设计与制作

防盗系统与恒温系统的协同工作
防盗系统与恒温系统的故障处理和恢复机制
系统集成技术实现
防盗系统与恒温系统的集成设计
恒温系统的工作原理和实现方法
防盗系统与恒温系统的集成方案设计
防盗系统的工作原理和实现方法
防盗系统与恒温系统的集成调试和优化
防盗系统与恒温系统的集成应用案例分析
系统集成设计要点
恒温系统需要具备良好的温度控制能力和节能效果,同时要考虑到用户的舒适度和健康需求。
防盗系统设计要点
执行器的选择:根据防盗需求选择合适的执行器,如锁具、灯光等
报警器的设计:报警器需要具备及时性、准确性和易用性等特点
系统的调试和优化:在实际应用中不断调试和优化防盗系统,提高其性能和可靠性。
防盗系统的组成:传感器、控制器、执行器、报警器等
传感器的选择:根据不同的防盗需求选择合适的传感器,如红外传感器、门磁传感器等
车辆安防:防盗系统用于保护车辆安全,防止盗窃等犯罪行为
恒温系统:用于保持室内温度恒定,提高居住舒适度,降低能耗
家庭应用场景
防盗系统:保护家庭财产安全,防止盗窃
恒温系统:保持室内温度恒定,提高居住舒适度
节能环保:降低能耗,减少碳排放
智能控制:通过手机App远程控制,方便快捷
商业应用场景
商场:防盗与恒温系统可以保护商品和顾客的安全,同时保持舒适的购物环境。
恒温系统工作原理
执行器接收到控制信号后,根据信号的类型和强度,调整被控对象的温度,使其达到设定值。
当被控对象的温度达到设定值后,控制器停止向执行器发出控制信号,恒温系统进入稳定运行状态。
恒温系统的主要部件包括温度传感器、控制器、执行器和被控对象。
温度传感器负责检测被控对象的温度,并将温度信号传递给控制器。

室内温度自动调节控制系统课程设计

室内温度自动调节控制系统课程设计
当符号位S=0时,表示测得地温度值为正值,可以直接将二进制位转换为十进制;当符号位S=1时,表示测得地温度值为负值,要先将补码变成原码,再计算十进制数值.
如图表1,DS18B20完成温度转换后,就把测得地温度值与RAM中地TH、TL字节内容作比较.若T>TH或T<TL,则将该器件内地报警标志位置位,并对主机发出地报警搜索命令作出响应.因此,可用多只DS18B20同时测量温度并进行报警搜索.
在64位ROM地最高有效字节中存储有循环冗余检验码(CRC).主机ROM地前56位来计算CRC值,并和存入DS18B20地CRC值作比较,以判断主机收到地ROM数据是否正确.
温度LSB
温度MSB
TH用户字节1
TL用户字节2
配置寄存器
保留
保留
保留
CRCLeabharlann 表1DS18B20地测温原理是这这样地,器件中低温度系数晶振地振荡频率受温度地影响很小,用于产生固定频率地脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生地信号作为减法计数器2地脉冲输入.器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生地时钟脉冲进行计数进而完成温度测量.计数门地开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应地一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应地一个基数值.
PWM音频输出:直接驱动扬声器地方式,扬声器两端接PWM+和PWM-,此状态输出时,PWM+/PWM-两端不可短路、不可接电容电阻到地.如需采用此状态外接功放,可用差分方式输出到功放.
DAC音频输出:外接功放驱动扬声器方式,不可直接驱动扬声器.PWM+/DAC端做音频输出,PWM-端腾空.DAC端需接一个1.2K电阻和104电容到地,再把音频输出给功放.

室内温度报警控制系统设计

室内温度报警控制系统设计

室内温度报警控制系统设计
一、系统简介
1、本温度报警控制系统是一个程序控制的系统,用于对室内温度的
监测和报警。

它可以监测室内温度是否超出指定的范围,并及时发出报警
信息。

2、系统由控制模块、计算机模块和显示模块组成。

它主要目标是检
测室内温度并向用户发出报警信号,以确保人们在安全、正常的温度范围
内适应并且满足室内环境的调节需求。

二、系统流程
1、控制模块采用微控制器,接收到检测到的室内温度信号后,将其
发送给计算机模块。

2、计算机模块以及存储程序,将收到的温度信号进行处理,并将得
出的结果与设定的温度范围进行比较,以确定室内是否超出设定范围。

3、如果室内温度超出设定的范围,计算机模块将发出报警信号,并
通过显示模块将报警信号发送给用户,以及报警声音或者警报灯以提醒用户。

4、显示模块用以显示正常室内温度及设定的温度范围;而当室内温
度超出设定的范围时,显示模块将显示报警信号及相关信息。

三、系统硬件
1、控制模块:采用微控制器,负责接收室内温度信号及发出报警信号。

2、计算机模块:采用上位机,具有程序存储及运行功能;能够存储及运行室内温度。

基于PCS7的室内温度控制系统设计

基于PCS7的室内温度控制系统设计

基于PCS7的室内温度控制系统设计摘要本文论述了室内温度控制的控制原理,由PC机和西门子PCS7组成的集散控制系统,上位机主要完成参数设定、数据处理等任务;而下位机主要完成数据采集、处理等实时控制任务。

本设计是将温度传感器采集到的室内温度通过变送器将其送给PLC主模块,经过CPU的处理然后输出控制信号,控制三台压缩机和报警灯。

在上位机中通过P CS7的STEP7中的SFC(顺序控制)和CFC(连续控制)进行温度控制,以此完成PLC程序实现。

当温度低于25度时,压缩机不工作,空调不启动;当温度高于30度时,启动一台机组Y0,空调开始制冷;当温度高于36时再启动一台Y1,制冷效果加强,当温度减低到30度时;停止Y0,制冷下降,降到26度时两台都停止,空调此时相当于一台风扇,没有制冷效果;当温度低于23度时,Y2会发出报警,并能利用上位机实现实时监控,并且能够控制下位机。

第一章西门子PCS7简介1.1 PCS7总体介绍随着工业自动化过程控制理论和计算机技术的迅速发展,以及生产工艺对控制系统的可靠性、运算能力、扩展能力、开放性、操作及监控水平等方面提出了愈来愈高的要求。

传统的DCS系统已经不能满足现在过程自动化控制的设计标准和要求,SIMATIC PCS 7过程控制系统就是在这种形势下开发的迎合需求的新一代过程控制系统。

SIMATIC PCS 7是西门子公司在TELEPERM系列集散系统和S5,S7系列可编程控制器的基础上,结合最先进的电子制造技术、网络通讯技术、图形及图像处理技术、现场总线技术、计算机技术和先进自动化控制理论,面向所有过程控制应用场合的先进过程控制系统。

SIMATIC PCS 7的突出特点有:◆基于全集成自动化思想◆与PROFIBUS现场总线有机地结合在一切◆吸收了各种先进技术,面向工艺◆更分散的系统配置,特别适用于分散的过程控制应用场合◆系统配置灵活,易于扩展◆模块化结构,通用的硬件模块◆强大的系统软件,组态与编程轻松简单◆丰富的人机界面产品提高了监控与管理的水平1.2 PCS7中SFC介绍SFC也是一种图形组态工具,它也采用了IEC-1131标准。

室内温度报警控制系统设计

室内温度报警控制系统设计

室内温度报警控制系统设计一、概述二、系统组成与工作原理1.温度传感器:负责对室内温度进行实时监测,并将采集到的数据传输给控制器。

2.控制器:接收温度传感器采集的数据,并与预设的温度阈值进行比较。

当温度超出设定范围时,控制器将触发报警器,并发送控制信号给执行机构。

3.报警器:当控制器发出报警信号时,报警器会发出声光警报,以引起人们的注意。

4.执行机构:根据控制器的指令,执行机构负责进行温控操作,可以通过开关制冷设备或加热设备等方式,将室内温度恢复到设定范围内。

系统工作原理如下:1.温度传感器实时监测室内温度,并将温度数据传输给控制器。

2.控制器接收到温度数据后,与预设的温度阈值进行比较。

3.如果温度超出设定范围,控制器触发报警器,并发送控制信号给执行机构。

4.报警器发出声光警报,提醒人们注意室内温度异常。

5.执行机构根据控制器的指令,开启或关闭相应的温控设备,使室内温度恢复到设定范围内。

三、系统设计要点1.温度传感器选择:根据实际需要选择合适的温度传感器,如热敏电阻、热电偶或半导体传感器等。

要考虑传感器的测量范围、测量精度以及信号输出等特性。

2.控制器设计:控制器应具备接收温度传感器数据、比较温度阈值、触发报警器、发送控制信号等功能。

可以采用微控制器或单片机实现控制器的功能。

3.报警器选择:报警器应具备发出声光警报的能力,可以选择蜂鸣器或喇叭作为声音输出装置,并配置相应的指示灯作为光源。

4.执行机构设计:执行机构应根据不同的温度控制需求选择合适的设备,如空调、暖气等。

要考虑设备的功率、响应速度以及控制方式等特性。

5.系统可靠性设计:在设计室内温度报警控制系统时,要考虑系统的可靠性。

例如,在温度传感器故障或通信故障时,系统应能够进行故障检测并发出相应的报警。

四、总结室内温度报警控制系统设计涉及到温度传感器的选择、控制器的设计、报警器的选择、执行机构的设计以及系统可靠性设计等方面。

通过合理的设计和选择,可以实现对室内温度的有效监测和控制,提高室内温度的舒适度,并保证系统的可靠性和安全性。

室内温度多点检测系统设计

室内温度多点检测系统设计

法 是将采 样 的模 拟 信 号进 行 长 距 离 传 输 后 再 进 行 A D转换 , / 在此 过 程 中就 会 产 生 长 线 传 输 , 检 测 多
点 切换及 放 大 电路 零 点 漂 移 等 因素 造 成 的 温 度误 差 , 了保证 测量数 据准确 性 , 必须采用措 施解决 为 就 上述 问题 , 就使 得 系 统设 计过 程 变 得复 杂 化 。而 这 现在 由于数 字 温 度 芯 片 D 1B 0具 有 的 功 能集 成 S8 2
W ANG h n b i Z a . e
( e at n f l to i a dIfr t no h niU ies yo eh ooy Ha z o g7 30 , hn ) D pr met e rnc n omai f a x nvri f c n lg , n h n 2 03 C ia oE c n a d S n t a o b titi n io me tltmpea u e r ro o q e, mal tr g n O o h tt e src n e vr n n a e l rtr.
Ke r s tmp r t r a u e n ;mu io n ;t r s od;I e e au e s n o y wo d : e e au e me s rme t h p it h eh l C t mp r t r e s r
2 1 年 第1 01 期

中 图分 类 号 :P 1 T31
文献 标 识 码 : 文 章 编 号 :09— 52 2 1 )1— o 0一 3 A 10 2 5 (0 1O 0 2 O
室 内温 度 多 点 检 测 系统 设 计
王 战备
( 陕西理工学院电信系 , 中 73 3 汉 20 )

室内温湿度监测系统设计与实现

室内温湿度监测系统设计与实现

室内温湿度监测系统设计与实现引言:随着人们对生活质量要求的提高,室内环境的舒适度也成为人们关注的焦点之一。

室内温湿度是影响室内环境舒适度的两个重要因素。

为了实现室内温湿度的监测和控制,设计和实现一套室内温湿度监测系统成为了一项有意义且有挑战性的任务。

一、系统设计方案室内温湿度监测系统主要由传感器、数据处理器、数据存储器和显示器组成。

传感器负责采集室内温湿度数据,数据处理器进行数据分析,数据存储器存储监测数据,显示器用于展示温湿度信息。

1. 传感器选择合适的传感器是确保监测系统准确度和稳定性的重要保证。

常用的温湿度传感器有电容式传感器和电阻式传感器。

根据实际需求和预算,可以选择合适的传感器进行室内温湿度数据的采集。

2. 数据处理器数据处理器是核心组成部分,负责将传感器采集的数据进行处理和分析,得出温湿度的趋势和变化。

常用的数据处理器包括微处理器、单片机和计算机。

根据系统的规模和复杂度,可以选择适合的数据处理器进行温湿度数据的处理。

3. 数据存储器数据存储器用于将监测到的温湿度数据进行存储,以便进行历史数据查询和分析。

常见的数据存储器包括内存芯片、硬盘和云存储。

根据系统的容量和安全性要求,可以选择适合的数据存储器进行数据的存储。

4. 显示器显示器用于将监测到的温湿度数据进行展示,以便用户能够直观地了解室内环境的变化。

常用的显示器有液晶显示屏和LED显示屏。

根据实际需求和显示效果要求,可以选择合适的显示器进行温湿度数据的展示。

二、系统实现过程室内温湿度监测系统的实现过程可以分为硬件设计和软件编程两个主要步骤。

1. 硬件设计硬件设计部分主要包括传感器的连接与布局、数据处理器的选型和连接、数据存储器的选型和连接、显示器的选型和连接等。

根据实际情况和系统设计方案,合理布局和选型是保证系统功能和性能的重要环节。

2. 软件编程软件编程部分主要包括数据采集与处理的算法设计、数据存储与查询的代码编写、数据展示的界面设计等。

室内外环境监测报警系统设计报告

室内外环境监测报警系统设计报告

|太原工业学院大学生科技创新】室内外环境监测报警系统设计报告…系部名称:电子工程系项目名称:室内外环境监测报警系统指导教师:陆锋申请者:冯国栋年级专业:11级电子信息工程申请日期:2013年11月24日联系电话:;一、项目主要内容本项目将利用单片机与传感器等电子器件,设计一款实用方便的室内外环境监测报警系统。

设计分为两个模块,室内模块和室外模块。

室内模块主要功能是:测量室内温度和湿度、火灾监测报警、烟雾(或有害气体)监测报警;室外模块的主要功能是:测量室外温湿度。

两个模块可以通过无线(采用ZigBee)连接,单片机将收集的数据进行处理,将温度、湿度及室内外温差显示在LCD显示器上;当出现火情、有害气体泄漏时,蜂鸣器用不同频率的响声分别对各种情况进行预警。

二、项目主要创新1.设计的室内外环境监测报警系统灵巧、简便。

2.将日常生活中需要的几种监测报警系统进行统一的整合。

最主要的是设计了温湿检测、火灾监测、烟雾及有害气体监测报警。

!3.可以用我们设计的系统作为控制系统,外接风扇、水雾喷洒或换气系统。

根据温度变化调节风扇、根据湿度喷洒水雾或根据空气质量开关换气系统。

4.使用了ZigBee近距离无线组网通讯技术。

三、硬件电路设计硬件电路包括室内模块和室外模块。

室内模块相当于协调器,使用了STM32和CC2530两款芯片,主要用于检测室内温湿度并显示、监测火灾、有毒气体以及报警装置、接收室外温湿信息并显示、控制继电器等。

室外模块相当与终端设备,使用CC2530芯片,主要用于检测室外或其他地方温湿参数,并把这些参数无线发射到室内模块进行显示。

下面是主要的硬件设计。

1.STM32核心板电路图}2530核心板电路图&^3. 电源电路设计;是5V 转芯片4. DS18B20电路设计5. DHT11电路设计。

6.火灾、烟雾监测电路设计~烟雾、有害气体监测使用MQ_2,利用红外接受二极管监测是否有火灾发生。

LM393是一种低功率失调电压双比较器,它类似于增益不可调的运算放大器。

智能温湿度监控报警装置的设计与实现

智能温湿度监控报警装置的设计与实现

智能温湿度监控报警装置的设计与实现一、设计思路智能温湿度监控报警装置的设计思路是通过传感器采集室内温湿度数据,并将数据传输给微处理器。

微处理器对数据进行处理,当检测到异常情况时,触发报警装置。

报警方式可以通过声音报警、短信通知等方式实现。

二、硬件选型1.温湿度传感器:选择高精度的温湿度传感器,如DHT11、DHT22等。

2. 微处理器:选择性能良好的微处理器,如Arduino、树莓派等。

3.通信模块:选择适合的通信模块,如Wi-Fi模块、GSM模块等,用于将数据传输给服务器或发送短信。

4.报警装置:可以选择蜂鸣器、显示器、LED灯等报警装置。

三、软件开发1.传感器数据采集:使用适当的引脚将温湿度传感器连接到微处理器,通过相应的库函数读取温湿度数据。

2.数据处理:编写程序对采集到的温湿度数据进行判断,当温度或湿度超出设定的范围时,触发报警装置。

3.数据传输:通过通信模块将采集到的温湿度数据传输给服务器或发送短信通知用户。

如果选择Wi-Fi模块,可以通过HTTP请求将数据上传到服务器;如果选择GSM模块,可以使用相应的AT指令发送短信。

4.报警装置:根据设计需求选择合适的报警装置,并编写程序触发相应的报警方式,如发出声音、亮起LED灯等。

四、装置实现1.硬件连接:按照设计需求将温湿度传感器、通信模块、报警装置等硬件连接到微处理器。

2.软件编程:根据设计思路和功能需求,使用适当的编程语言编写程序代码,并将程序烧录到微处理器中。

3.调试测试:将装置放置在室内,观察其采集温湿度数据和触发报警装置的情况,根据需要进行调试和测试调整。

总结:智能温湿度监控报警装置的设计与实现主要包括设计思路、硬件选型、软件开发和装置实现。

在设计中,需要选择合适的硬件和编写相应的软件程序。

实现过程中需要进行适当的调试和测试,确保装置能够正常工作。

该装置在保证室内环境舒适和安全的同时,也能提醒用户及时处理异常情况,具有很大的应用前景。

基于单片机的智能温度控制系统设计

基于单片机的智能温度控制系统设计

基于单片机的智能温度控制系统设计智能温度控制系统设计是一种基于单片机的物联网应用,旨在实现对温度的自动感知和调控。

本文将对这一任务进行详细的内容描述和设计实现思路。

一、任务概述智能温度控制系统是一种自动化控制系统,通过感知环境温度并与用户设定的温度阈值进行比较,实现对温度的自动调节。

它经常应用于室内温度调控、温室环境控制、电子设备散热等场景。

本系统基于单片机进行设计,具有实时监测、精确定时和高效控制的特点。

二、设计方案1. 单片机选择为了实现智能温度控制系统,我们选择一款适合高性能、低功耗的单片机作为核心控制器。

例如,我们可以选择常见的STM32系列或者Arduino等开源硬件平台。

2. 温度感知系统需要具备温度感知的能力,以实时获取环境温度数据。

可选用温度传感器(如DS18B20)通过单片机的GPIO接口进行连线,并通过相应的驱动程序获取温度数据。

3. 温度控制算法智能温度控制系统的关键在于控制算法的设计。

可以采用PID(Proportional-Integral-Derivative)控制算法,根据温度的实际情况和设定值进行比较,通过调整控制器输出控制执行器(如加热器或制冷器)的工作状态。

4. 控制执行器根据温度控制算法的输出,系统需要实现对执行器(如加热器或制冷器)的控制。

通过合适的驱动电路和接口实现对执行器的实时控制,以实现温度的精确调节。

5. 用户界面为了用户方便地设定温度阈值和实时查看环境温度,系统需要设计一个用户界面。

可以通过液晶显示屏或者OLED屏幕来展示温度信息,并提供物理按键或者触摸界面进行温度设定。

6. 数据存储与远程访问系统还可以考虑将温度数据通过网络传输至云端服务器进行存储和分析,以实现温度数据的长期保存和远程监控。

可以选择WiFi或者蓝牙等无线通信方式来实现数据传输。

7. 辅助功能除了基本的温度控制外,系统还可以增加一些辅助功能,如温度数据的图表绘制、报警功能、定时开关机功能等。

面向智能家居的家居环境智能调控系统设计

面向智能家居的家居环境智能调控系统设计

面向智能家居的家居环境智能调控系统设计智能家居是指通过物联网技术将家庭中的各种设备和系统进行连接,实现智能化的控制和管理。

而家居环境智能调控系统则是智能家居系统中的关键组成部分,通过对家居环境参数的感知和调控,为居住者提供舒适、安全、节能的居住环境。

本文将针对面向智能家居的家居环境智能调控系统的设计进行详细介绍。

一、系统概述家居环境智能调控系统的设计目标是实现对室内温度、湿度、光照等环境参数的智能感知和调控,以提供舒适的居住环境。

系统主要包括传感器节点、执行器节点、控制中心和用户终端等组成部分。

1. 传感器节点传感器节点用于对室内环境参数进行感知,常用的传感器包括温度传感器、湿度传感器、光照传感器等。

传感器节点通过与执行器节点的无线通信,实现对环境参数的监测和传输。

2. 执行器节点执行器节点是系统中的执行部分,通过与传感器节点的通信,接收控制中心的指令,以调节室内环境参数。

常见的执行器包括温度调节器、加湿器、空调等。

3. 控制中心控制中心是系统的核心部分,负责接收传感器节点传输的环境数据,分析并根据用户要求制定相应的调控策略,将指令传递给执行器节点。

控制中心可以通过云平台实现远程控制和管理。

4. 用户终端用户终端是居住者与系统进行交互的界面,提供用户对环境参数的设定、查询和监控等功能。

用户终端可以是智能手机、平板电脑、电视等。

二、系统功能需求面向智能家居的家居环境智能调控系统设计应具备以下功能需求:1. 环境参数感知系统应能准确感知室内环境参数,包括温度、湿度、光照强度等。

传感器节点应具备高精度、高稳定性,以确保数据的准确性。

2. 环境参数调控系统应根据居住者的需求和预设条件,智能调控室内环境参数。

根据温度设定值自动调节空调、加湿器等设备,提供舒适的居住环境。

3. 远程控制与管理系统应支持远程控制和管理,用户可以通过云平台或手机应用对系统进行远程监控和控制。

用户可以随时通过手机终端调整温度、湿度等环境参数。

室内温度自动控制系统的设计

室内温度自动控制系统的设计
高 新 技 术
室 内温度 自动 控 制 系 统 的设 计 ①
孙季 韦 ( 陕西省 理工学校 陕西 西安 7 1 0 0 5 4 )
摘 要: 在现 代人 类的生活环境 中, 温 湿度扮 演着极其 重要的 角色。 实现 室 内温度控 制对人 们的生 产生活有 着十 分重要 的意 义。 文章 在 低 成本 、 易 实现 的 原则下设 计 了一 个 简单 的室 内温 度控 制 系统 , 并在 实践 生产 中得 到了应 用。 关键词 : 室内 温度 自动控制 中图分 类 号 : T P 2 7 3 文献 标 识 码 : A 文 章编 号 : 1 6 7 2 — 3 7 9 1 . ( 2 0 1 3 ) 0 8 ( b ) 一0 0 0 2 — 0 2 在现 代人类 的生活环境 中 , 温 湿 度 扮 的生 产 生 活 有 着 十 分 重 要 的 意 义 。 演着极 其重要的角色 。 在 人们 的 生 产 生 活
( 4) 硬件 成 本 ≤3 0 0 0 元。
断, 手动 调 节温 室 内环 境 。 但 这 种控 制 方 式
的 劳 动 生 产率 较 低 , 并 不 能 实现 室 内 温 度
的 自动 控 制 。
( 2 ) 自动控 制 。 这 种 控 制 系统 需 要 计 算
机 根 据 传 感 器的 实 际 测 量 值 与 温控 系统 事
先 设 定 的 目标 值 进 行 比较 , 有 计 算 机 完 成 室 内温 度 的控 制 过 程 。 计 算 机 自动 控 制 的
温 室 控 制 技 术 实 现 了 自动 化 控 制 。 但 由于 计 算 机 自动 控 制 的 实 现 方 式 有 很 多 种 形
式, 所 以 要根 据 设 计 要 求 及 经 费 预 算 选 择

基于单片机的室内环境监测系统设计

基于单片机的室内环境监测系统设计

基于单片机的室内环境监测系统设计一、引言近年来,随着人们对室内空气质量的关注日益增加,室内环境监测系统的需求也不息增长。

室内环境监测系统通过感知各种环境参数,如温度、湿度、空气质量等,来实时监测室内环境的状态,并提供相应的报警、控制等功能,为用户创设一个舒适健康的室内环境。

本文将阐述基于单片机的室内环境监测系统的设计思路和实现过程。

二、系统设计方案2.1 系统硬件设计本室内环境监测系统的核心硬件为单片机,其主要功能是采集传感器的数据并进行处理。

另外,还需配备用于触发报警和显示环境参数的模块。

详尽设计方案如下:2.1.1 单片机选择单片机是室内环境监测系统的核心控制器,其性能和功能直接影响系统的稳定性和可靠性。

本设计选择了性能较为稳定的STM32系列单片机,其具有较高的时钟频率和丰富的外设接口,可以满足本系统的需求。

2.1.2 传感器选择和毗连本系统需要采集温度、湿度和空气质量等环境参数,因此需要选择相应的传感器。

温湿度传感器一般接受DHT11或DHT22系列,空气质量传感器则选择MQ系列传感器。

传感器与单片机的毗连接受数字接口,通过串口通信方式进行数据传输。

2.1.3 报警和显示模块为了便利用户准时了解室内环境的状况,需要设计报警和显示模块。

报警模块选用蜂鸣器,当环境参数异常时触发报警,提示用户。

显示模块选用LCD显示屏,将实时环境参数以图形化方式展示给用户。

2.2 系统软件设计系统软件设计主要包括单片机的程序开发以及上位机软件的编写。

其中,单片机程序主要负责采集传感器数据、进行数据处理和控制报警显示模块;上位机软件主要负责与单片机进行数据交互、数据存储和用户界面的显示。

2.2.1 单片机程序开发单片机程序开发主要涉及到传感器数据采集和处理,接受中断处理方式,提高系统的实时性和稳定性。

程序中设置不同的阈值,当环境参数超出设定的范围时,触发报警和显示相应的提示信息。

2.2.2 上位机软件编写上位机软件编写主要用于与单片机进行数据通信和数据存储。

室内温度控制系统设计

室内温度控制系统设计

室内温度自动控制系统摘要在现代人类的生活环境中, 温度扮演着极其重要的角色。

在人们的生产生活中, 无论生活在哪里, 从事什么工作,都要时时刻刻与温度打着交道。

尤其是在18 世纪工业革命以来,工业发展与农业生产都与能否掌握温度, 有着密不可分的联系。

因此,温度的监测与控制与人类的生产生活有着十分重要的意义。

我们通过STC12C5A60S2单片机和DALLAS 公司DS18B20温度传感器对室内温度进行实时监测与控制实现温度的相对稳定具有极其重要的现实意义。

通过该系统的设计制作实践对电子系统设计运动控制理论应用,研究新技术学习知识增强动手能力具有重要的现实意义。

关键字:温度控制DS18B20 单片机控制系统设计目录论文共45 页1 引言 (4)1.1项目概述 (4)1.2设计目的 (4)1.3设计任务 (4)1.4 研究思路和方法 (5)2 项目总体方案设计 (6)2.1系统原理框图与工作原理 (6)2.1.1 国内外室温控制技术研究 (6)2.1.2 系统原理框图设计 (6)3.系统硬件设计 (7)3.1电源模块 (7)3.2 控制系统模块 (7)3.3温度检测 (8)3.3.1 常用温度检测传感器 (8)3.3.2 DS18B20 温度传感器电路 (10)3.4驱动模块 (11)3.4.1半桥驱动原理 (11)3.5升温模块 (11)3.6 人机交互模块 (12)3.6.1 1602 液晶显示 (12)3.6.2 红外遥控操作原理 (12)3.6.3 红外接收电路 (13)4.系统软件设计 (14)4.1程序流程图 (14)4.2温度采集 (15)4.2.1DS18B20 软件定义 (15)4.2.2 温度的计算 (15)4.3红外遥控 (15)4.4 电机的PWM 控制 (21)4.5 发热电阻丝的控制 (23)5.调试运行 (24)5.1 温度传感器校准 (24)5.2 温度调节时间 (25)5.3 温度波动范围 (25)5.4系统参数 (26)6.系统优化 (27)6.1 优化控制方式 (27)6.2 美化外形结构 (27)6.3.扩展系统应用 (27)结论 (29)致谢 (30)参考文献 (31)附件一:原理图 (32)附件二:源程序 (33)1引言1.1项目概述我们的项目开发针对的对象是收入水平不高,买不起空调,有希望能不受热受冷舒适的生活。

温度测量与显示及报警电路的设计

温度测量与显示及报警电路的设计

_课程设计结题报告课程名称题目温度测量与显示及报警电路指导教师系别专业学生姓名班级/学号成绩________________________目录1一.温度测量与显示及报警电路的设计1.设计目的 (4)2.设计任务及要求 (4)3.设计内容 (5)3.1)稳压源电路的设计 (5)3.2)测量电路的设计 (6)3.3)放大电路的设计 (6)3.4)报警电路的设计 (7)3.5) 整体电路 (8)3.6)实际效果图 (8)4.元器件选择 (9)4.1)热敏电阻的选择 (9)4.2)放大器的选择 (10)4.3)比较器的选择 (10)5.电路的调试 (11)6.设计的体会及其改进建议 (13)温度测量与显示及报警电路的设计一.设计目的运用有关的课程的基础理论知识和技能解决实际问题的能力,提高本专业必要的基本技能、方法和创新能力。

完成测控系统任务分析、电路总体设计、单元电路设计以及电路调试等各个环节、掌握有关传感器接口电路、信号处理电路、放大电路、滤波电路、运算电路、显示电路以及执行部件驱动电路等内容在测控系统中的使用方法。

了解有关电子器件和集成电路的工作原理。

二.设计任务及要求设计内容:室内环境参数测量及安防报警电路设计1)温度、湿度、照度测量与显示、报警电路设计;2)破门入室、破窗入室、室内防盗、火灾,燃气泄露等报警电路设计。

基本要求:1)用电路实现,不用软件;2)用数字表头实现测量值的显示;3)能够设置环境参数测量值报警上下限,并实现声、光报警。

主要性能指标:本次设计的题目为温度报警器的设计,运用温度传感器的温度特性从而达到在一定温度时的报警作用。

其主要功能和指标如下:1.利用温度传感器(热敏电阻)测量某环境的温度2.报警器的报警温度可调,范围为(0—50℃)3.采用蜂鸣器报警,声音大小由环境温度与报警温度的差值决定三.设计内容3.1稳压电源电路的设计要使电路能够稳定的工作首先就要提供一个稳定的电源,如图1就是我设计的稳压源电路图,电路中的LM358P为电压跟随器,用来形成稳定的电压源供测量电路使用。

智能温度控制系统设计

智能温度控制系统设计

智能温度控制系统设计摘要:在日常生活中,温度和温差对我们的生活都有非常大的影响。

目前在大城市许多的高档公寓已经实现自动控温,然而在普通公寓并没有实现此类控温系统,因此同高档公寓形成了对比,为实现更多的地方使用自动控温系统,本设计通过单片机实现对温度的恒定控制,更廉价,更方便,适用于普及大多数家庭的使用。

对我们的生活会有很大的帮助。

智能自动控温全面实现全自动化、无人化,都可减少可控因素带来的损失.设计智能自动控温系统,利用温度感应器、报警器、LED显示器通过对单片机的控制实现智能自动控温,解决由于温度不稳定而带来的一系列问题。

本次设计主要以AT89C51单片机为主控核心,与LED显示器、键盘、报警模块等相关电路结合。

利用单片机为设计主核心,外接电路连接LED显示器、键盘、报警模块。

预定温室内部温度,当温室内部温度有所升高或降低时,此时通过外接电路连接的报警模块发出警报,通过电加热器来调节温室内部温度从而达到温室内部温度恒定。

关键词:单片机,温度传感器,键盘,LED显示器,电加热器Designof aTemperature-Control SystemAbstractIn everyday life ,the temperature andthe temperature difference to our lives have a very bigimpact.Currently manyof the luxury apartments in big cities have automatic temperature control,however,didnot materialize in apartments such temp erature controlsystem , thus forming a contrastwiththehigh—endapartments , to achieve more places to use automatic temp erature controlsystem , thedesign byMCU constant controloftemperature, cheaper,more convenient,suitable f or universal use in most families。

高职毕业设计——基于PLC的室内空调温度控制设计-精品

高职毕业设计——基于PLC的室内空调温度控制设计-精品

基于PLC的室内空调温度控制设计【摘要】本设计是将温度传感器采集到的室内温度转换为电阻的变化,再通过变送器将其转化为模拟的输入电流或电压的变化,然后经过温度模块FX0N-3A把采集到的模拟量转换成数字量送给PLC主模块,经过CPU的处理然后输出控制信号,控制两台压缩机和报警灯。

当温度低于25度时,压缩机不工作,空调不启动;当温度高于30度时,启动一台机组Y0,空调开始制冷;当温度高于36时再启动一台Y1,制冷效果加强,当温度减低到30度时;停止Y0,制冷下降,降到26度时两台都停止,空调此时相当于一台风扇,没有制冷效果;当温度低于23度时,Y2会发出报警,并能利用上位机实现实时监控,并且能够控制下位机。

【关键词】:温度传感器,PLC,压缩机ABSTRACTThis design is using temperature sensor PT - 100 acquisition indoor temperature conversion for resistance changes, another transmitter transform and then into module to the input current, voltage or change FX0N - after temperature module and the gathering to triple-a analog conversion into the digital quantity of PLC, after the main module for the processing and CPU output control signal, control two compressors and alarm lamp.When the temperature is below 25 degrees is compressor doesn't work namely air conditioning don't start, when temperature higher than 30 degrees to start a unit Y0, air conditioning refrigeration and when temperature higher than start when restarting a 36 Y1, refrigeration effect strengthening, when the temperature reduced to 30 degrees to stop Y0, refrigeration down, down to 26 degrees, air conditioning stop at two equivalent of a fan, no refrigeration effect, and when temperature is below when 23 degrees issued a warning, and may Y2 could use PC realize real-time monitoring, and can control a machine.【KEY WORD】:temperature sensor, PLC, compressor目录引言 (1)一、PLC基础 (1)(一)PLC的定义 (1)(二)PLC的特点 (1)(三)PLC的功能与选项 (2)二、PT00使用说明 (3)(一)热电阻的工作原理 (3)(二)pt100温度与阻值对照 (3)三、fx0n-3A简介 (4)四、变频器原理及简介 (4)五、MCGS简介 (5)六、温度采集辅助放大电路 (6)七、温度采集与监控系统PLC设计 (6)(一)系统的组成与工作过程 (6)(二)系统工艺要求 (7)(三)控制要求 (7)(四)流程图 (7)(五)元器件使用说明 (7)(六)输入\输出分配 (7)(七)硬件连接图 (8)(八)主电路图 (9)八、系统各个部分的设计分析 (9)(一)FX0N-3A功能模块设计 (9)(二)启停程序设计 (10)(三)PLC主模块采集处理程序 (10)九、温度采集与监控系统的组态监控界面 (11)总结 (13)附录一完整梯形图 (14)附录二指令表 (18)参考文献 (21)致谢 (22)引言目前空调机已经广泛地应用于生产、生活中。

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

课程设计说明书设计名称:计算机控制技术课程设计题目:室内温度报警控制系统设计学生姓名:专业:电气工程与自动化班级: 11自动化(2)学号: XXXXXXXXXXXX指导教师:陈广义日期:年月日课程设计任务书专业年级班一、设计题目室内温度报警控制系统设计二、主要内容设计基于DS18B20的数字式室内变电站温度控制系统,控制程序主要包括主程序、读出温度子程序、按键子程序、控制风机子程序等。

要求能检测、显示及通过控制排气风机来降低室内温度。

三、具体要求1.对室内温度进行检测及控制。

温度显示范围:00.0゜C~+99.9゜C,精度误差在0.1゜C以内2.温度控制范围:室温~60゜C3.能设置温度上限,下限,并可随时修改4.LED数码管直读显示实测温度,设置温度上限温度,下限温度(用键控制设定温度)5.温度等于上限时,报警;根据所测温度所在的界限控制三台风机的运行状态。

6.温度控制(风机)启/停键控制系统的启动和停止四、进度安排五、完成后应上交的材料1.课程设计报告。

2.程序清单(电子版)六、总评成绩指导教师签名日期年月日系主任审核日期年月日目录1、设计方案论述1.1 简述1.2 控制方法介绍1.3 设计功能介绍2、控制系统设计2.1 系统硬件电路设计2.2.1 电路图、各部分的作用说明 2.1.2 元件、器件介绍2.2 系统软件设计2.2.1 流程图2.2.2 说明3、系统调试过程叙述4、总结5、参考文献1、设计方案论述1.1简述本课题为室内温度报警控制系统设计:由于控制对象为室内空气、有较大的流动性,且对温度控制的精度要求不高,所以利用简单开关式温度控制方法。

该系统利用数字式温度传感器测温,采用温度开关控制算法来控制三台风机的工作状态,来达到调节室内温度的目的。

1.2控制方法介绍简单的开关式温度控制:通过设定温度上、下限温度进行简单的开关报警与控制。

这种方法的缺点是不能进行温度的精确控制,适合于要求不高的场合。

1.3设计功能介绍显示功能:前三个数管在非设定状态时显示三台风机的运行状态,第三个数码管在设定状态时用来指示现在修改的参数。

后三个数码管显示测量温度值并在设定状态期间显示上、中、下三个不同的温度设定值。

温度设定功能:当按键一第一次被按下就进入温度下限设定状态,第三个数码管显示最低一横指示现在在修改下限。

后三个数码管则显示当前下限值。

进入设定状态后,通过按第二、三个键就可以在允许的范围内设定下限或上限值。

中限值由上下限之和除2产生。

按键一第二次被按下则显示中限温度但不可进行修改,第三个数码管显示中间一横指示现在在显示中限;按键一第三次被按下则显示上限值,第三个数码管显示中间一横指示当前在修改上限。

温度控制功能:温度控制功能:本系统有三路继电器输出,分别控制三组电机的启动与关闭。

测量温度T与设定温度T上、T中、T下以及电机工作状态关系如下:当T > T上时,三台电机同时工作。

当T中< T <T上时,两台电机同时工作。

当T下< T < T中时,一台电机工作。

当T < T下时,关闭全部电机。

0-全部停机,I-1台风机工作,II-2台风机工作,III-3台风机工作。

但为了防止风机频繁切换,所以当温度从一个界限降到另一个界限时并不立即关掉一台风机,而是要降到下一个界限减一度的时候才关掉一台风机。

2、控制系统设计2. 1系统硬件电路设计2.1.1 电路图、各部分的作用说明按键电路由四个按键组成用于温度的设定、温控系统的开关。

显示电路由六个数码管组成用于各种数据及状态的显示。

而测温电路主要由DS18B20组成。

2.1.2 元件、器件介绍本电路的单片机采用Atmel公司的AT89S52单片机。

最小系统该单片机、按键和显示组成。

而温度传感器采用的是DS18B20。

DS18B20采用数字化技术,能以数字形式直接输出被测温度值,具有测温误差小、分辨力高、抗干扰能力强、能够远程传输数据、用户可设定温度上、下限、有越限自动报警功能、自带串行总线接口等优点,适配各种微控制器(MCU),含微处理器(uP)和单片机(uC),是研制和开发具有高性价比的新一代温度测控系统所必不可少的核心器件。

2.2系统软件设计2.2.1 流程图1、总流程图2、温控程序流程图3、读键程序流程图4、按键判断流程图5、选择键处理流程图6、加键处理流程图7、减键处理流程图8、温控控制键处理流程图9、Time0 中断服务程序流程图2.2.2 说明系统开机首先要进行初始化,包括个变量的初始化和中断程序的初始化,最后开系统中断开始工作。

本系统的中断服务程序的主要工作是更新各个时间标志和调用显示程序。

根据设定是每1毫秒发生一次中断。

本系统的测温间隔由DEF_CHECK_INTERVAL这个预定义设定。

具体时间间隔是DEF_CHECK_INTERVAL*250毫秒。

如果测温时间间隔已到相应的标志位flag_check_interval就要置位以便进入测温程序。

而检测按键的间隔则由flag_50ms这个为变量来控制。

每当这个标志置1便可以进入检测按键程序。

检测按键程序采用了软件去抖动,就是第一次检测到有按键被按下后就保存该键值并开始计时50毫秒,50毫秒已到就再次检测按键,如果这次检测到的按键与已保存的键值相等就确定该键值是用户按下产生的。

然后在把这个键值和上次有效键值比较,如果相等就是说这个是重复键。

为了预防用户按下按键不放参数变化过快的现象,我们还要判断100毫秒标志位有没有置位,如果100毫秒标志为1则把这个键值传送个按键判断程序,如果为0则当无效键处理。

如果新建值和上次有效键键值不相等,就是说这个键是新键,马上把这个键值传送个按键判断程序。

按键判断程序接收到键值就根据该键值调用相应的按键处理程序。

温控程序则是以温度和现在开动风机的数量来控制三台风机的状态。

显示程序负责人机对话。

前三个数管在非设定状态时显示三台风机的运行状态,第三个数码管在设定状态时用来指示现在修改的参数。

后三个数码管显示测量温度值并在设定状态期间显示上、中、下三个不同的温度设定值。

3、系统调试在确定硬件能正常工作后系统调试工作主要就是软件的调试了。

我们首先调试显示程序。

从最简单的单个数码管的显示开始,然后逐步向前。

而不是把整个显示程序写好在调试。

这样可能会有很多错误,一下子就被吓得没信心了。

显示程序调试成功后我们接着就可以进行按键程序的编写及调试了。

也是从最简单的工作做起,就是直接检测有没有按键,成功后再加软件去抖动,然后再加重复键和新键的处理程序。

一步一步,最后一个较完美的按键程序就完成了。

做完按键我们就分开两路一些同学搞DS18B20的程序,另外一些同学则负责温度控制程序。

但是还没有测出温度是没有温度值的,所以温控程序的开发就用读随机的方法模拟“可变的温度值”。

在两部分工作都搞完后我们就联合调试了,大家都很高兴的看到显示结果但是显示会随机出现一些莫名其妙的数值。

这个问题困扰了我们很久。

因为分析程序都没发现什么错误会出现这种情况。

最后我们决定逐步调试,先是去掉测温程序发现显示正常,按键也正常。

我们就怀疑是不是按键和测温会有相撞。

于是我们就加入测温程序,撤去按键程序。

发现显示还是有问题。

我们就确定是测温的问题,但是无论怎样分析都是发现测温程序之正确无误的。

无奈!一些同学便乱试碰碰运气。

最后发现把测温程序移到中断程序便不会发生错误。

惘然大悟。

原来是中断的问题。

因为如果在测温的过程中如果发生中断,那就会破坏测温程序。

因为测温程序对时间的连续性要求非常严格。

最后我们在进入测温前禁止全局中断,测温完成后再开中断就解决了最大的问题。

4、总结通过这次课程设计,在老师的指导下,我基本上学会用C语言开发单片机程序,发现用C语言编写单片机程序很容易实现自己的想法,不用太顾及寄存器的使用、中断向量的编写及免去了一些琐碎的跳转指令,而且C语言调试程序相当方便。

不过这些都需要有扎实的汇编基础,不然在写短延时的时候就会束手无策。

通过这次课程设计我进一步学习了一个系统开发的步骤,首先要把整个系统的硬件系统搞出来,然后按照要求开始做软件的流程图。

在这之后就一步一步地按照流程图编写程序。

最后就是体会到了用模块化编程的好处。

用模块化编程可以把大问题细分成一个个小问题。

各个模块各司其职,然后合并成一个完整的程序。

5、参考6、附录(程序清单)//Cautions://temp : temperature//sel : select//whc : which//con : content//disp : display#include <reg52.h>#include <absacc.h>#include <stdlib.h>#define led_data XBYTE[0xE000]#define led_sel XBYTE[0xC000]#define key_add XBYTE[0xA000]#define disp_start_pos 3 //value from 0 to 3 are welcomed#define DEF_CHECK_INTERVAL 4#define MAX_TEMP_MAX 250#define MAX_TEMP_MIN 200#define MIN_TEMP_MAX 150#define MIN_TEMP_MIN 100sbit DQ=P1^0;unsigned char code dot_temp[16]={0,0,1,1,2,3,3,4,5,5,6,6,7,8,8,9};//data_disp : led display arrayunsigned char data data_disp[6] = {0x00,0x00,0x00,0x00,0x00,0x00}; unsigned int data setting[3] = {0x64,0x96,0x0C8};unsigned int cur_temp = 200;unsigned char data count_50ms = 0;unsigned char data count_100ms = 0;unsigned char data count_250ms = 0;unsigned char data count_check_interval = 0;unsigned char data old_key_val = 0;unsigned char data working_fans = 0;//cur_pos : current displaying ledunsigned char data cur_pos = 0;//flash_cur_pos : just for flashing ledunsigned char data flash_cur_pos = 0;//cur_var : current modifying settingunsigned char data cur_var=0;//sys_statue : flags of the systemunsigned char bdata sys_statue = 0;//2ms reachedsbit flag_1ms = sys_statue^0;//50ms reachedsbit flag_50ms = sys_statue^1;//100ms reachedsbit flag_100ms = sys_statue^2;//500ms reachedsbit flag_250ms = sys_statue^3;//key pressed,system parameter is being modifyingsbit flag_modifying = sys_statue^4;//for common usesbit flag_temp = sys_statue^5;//for temperature check intervalsbit flag_check_interval = sys_statue^6;//cooling systemp enabled or notsbit flag_sys_enabled = sys_statue^7;void divide_con(unsigned int con_disp){unsigned char codetab[10]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};unsigned int temp = 0;//138/100=1temp = con_disp / 100;data_disp[disp_start_pos] = tab[temp];//138-100*1=38con_disp = con_disp - 100 * temp;//38/10=3;temp = con_disp / 10;temp = tab[temp];//display radix pointdata_disp[disp_start_pos+1] = temp | 0x80;//38%10=8temp=con_disp%10;data_disp[disp_start_pos+2] = tab[temp];}void disp(void){//flashingled_data = 0x00;led_sel = 0xff;led_data = data_disp[cur_pos];led_sel = ~(1<<cur_pos);if(cur_pos<6){++cur_pos;}else{cur_pos=0;}}/*unsigned char update_disp(unsigned char whc_segment) {}*//*unsigned int read_temp(void){cur_temp += 20;if(cur_temp > 600){cur_temp = 200;}return(cur_temp);}*/unsigned char key_press(void){unsigned char data whc_key=0;led_data = 0x00;led_sel = 0xFE;whc_key = key_add;whc_key = ~whc_key;return(whc_key);}void key2_process(void)if(cur_var == 1){if(setting[0] < MIN_TEMP_MAX){setting[cur_var-1] = setting[cur_var-1] + 10;divide_con(setting[cur_var-1]);}}else if(cur_var == 3){if(setting[2] < MAX_TEMP_MAX){setting[cur_var-1] = setting[cur_var-1] + 10;divide_con(setting[cur_var-1]);}}setting[1] = setting[0] + setting[2];setting[1] = setting[1] >> 1; // div 2}void key3_process(void){if(cur_var == 1){if(setting[cur_var-1] > MIN_TEMP_MIN){setting[cur_var-1] = setting[cur_var-1] - 10;divide_con(setting[cur_var-1]);}}else if(cur_var == 3){if(setting[cur_var-1] > MAX_TEMP_MIN){setting[cur_var-1] = setting[cur_var-1] - 10;divide_con(setting[cur_var-1]);}}setting[1] = setting[0] + setting[2];setting[1] = setting[1] >> 1; // div 2}void key4_process(void)flag_sys_enabled = ~flag_sys_enabled;if(~flag_sys_enabled){data_disp[0] = 0x3F;data_disp[1] = 0x3F;data_disp[2] = 0x3F;}}void key_process(unsigned char key_kpval){//wait until release// key1 pressd and now release//times cur_var_before cur_var_after // 1 0 1// 2 1 2// 3 2 3// 4 3 4if(key_kpval == 1){data_disp[0] = 0x00;data_disp[1] = 0x00;data_disp[2] = 0x00;flag_modifying = 1;if(cur_var == 0){data_disp[2] = 0x08;}else if(cur_var == 1){data_disp[2] = 0x40;}else if(cur_var == 2){data_disp[2] = 0x01;}else{data_disp[2] = 0x00;}divide_con(setting[cur_var]);++cur_var;if(cur_var == 4){flag_modifying = 0;cur_var = 0;}return;}else if(key_kpval == 8){key4_process();return;}// key2 pressd and now releaseif(flag_modifying){if(key_kpval == 2){key2_process();}// key3 pressd and now releaseif(key_kpval == 4){key3_process();}}}unsigned char read_key(void){unsigned char data key_val = 0;key_val = key_press();if(key_val){//delay 100msflag_50ms = 0;count_50ms = 0;while(!flag_50ms);flag_50ms = 0;if(key_val == key_press() && key_val == old_key_val) //{if(flag_100ms == 1){flag_100ms = 0;return(key_val);}else{return(0);}}else if(key_val == key_press()){old_key_val = key_val;flag_100ms = 0;count_100ms = 0;return(key_val);}else{return(0);}}}/*void cooling_control(unsigned int cur_temp_b){unsigned char temp_logic = 0;temp_logic = cur_temp >= setting[0] - 10 && working_fans == 1;if(cur_temp_b >= setting[0] || temp_logic){working_fans = 1;temp_logic = cur_temp >= setting[1] - 10 && working_fans == 2;if(cur_temp_b >= setting[1] || temp_logic){working_fans = 2;temp_logic = cur_temp >= setting[0] - 10 && working_fans == 3;if(cur_temp_b >= setting[2] || temp_logic){working_fans = 3;}}}else{working_fans = 0;}}*/void cooling_control(unsigned int T){if(T<setting[0]){if(T<setting[0]-10||working_fans==0) {working_fans=0;}}else if(T>=setting[0]&&T<setting[1]){if(T<setting[1]-10||working_fans==1) {working_fans=1;}}else if(T>=setting[1]&&T<setting[2]){if(T<setting[2]-10||working_fans==2){working_fans=2;}}else{working_fans=3;}}void led_flashing(void){if(~flag_modifying){if(working_fans == 3){data_disp[0] = (0x01 << flash_cur_pos);data_disp[1] = data_disp[0];data_disp[2] = data_disp[0];}else if(working_fans == 2){data_disp[0] = 0x3F;data_disp[1] = (0x01 << flash_cur_pos);data_disp[2] = data_disp[1];}else if(working_fans == 1){data_disp[0] = 0x3F;data_disp[1] = 0x3F;data_disp[2] = (0x01 << flash_cur_pos);}else if(working_fans == 0){data_disp[0] = 0x3F;data_disp[1] = 0x3F;data_disp[2] = 0x3F;}++flash_cur_pos;if(flash_cur_pos == 6){flash_cur_pos = 0;}}}//------------------------------------------------------------------------// DS18B20//------------------------------------------------------------------------void delay(unsigned int t){for(;t>0;t--);}//³õʼ»¯DS18B20void Init_DS18B20(void){//unsigned x;DQ=0; // Ö÷»ú·¢³öÒ»¸ö¸´Î»Âö³ådelay(29); // ÑÓʱ´óÓÚ480 usDQ=1;delay(3); //µÈ´ýDS18B20ÏìÓ¦£¬¼ä¸ôÔ¼30us //x=DQ;//Èç¹ûx=0,Ôò³õʼ»¯³É¹¦£¬x=1£¬Ôò³õʼ»¯Ê§°Ü£¬ÖØгõʼ»¯ delay(25);// return(x);}unsigned char ReadOneChar(void){unsigned char data i;unsigned char data byte=0;for(i=0;i<8;i++){byte>>=1;DQ=0;DQ=1;delay(1);if(DQ){byte|=0x80;}delay(6);}return(byte);}void WriteOneChar(unsigned char byte){unsigned char i;for(i=0;i<8;i++){DQ=0;DQ=byte&0x01;delay(5);DQ=1;byte=byte/2;}delay(5);}unsigned int GetTemperature(void){unsigned char a=0,b=0,temp_float=0;unsigned int t=0;Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0x44);Init_DS18B20();WriteOneChar(0xCC);WriteOneChar(0xBE);a=ReadOneChar();b=ReadOneChar();temp_float=a&0x0f;temp_float=dot_temp[temp_float];a=a>>4;b=b<<4;t=b|a;t=t*10+temp_float;return(t);}void init_timer0(void){TMOD = 0x01; //work in mode 1TH0 = 0xFC;TL0 = 0x65;TR0 = 1; //start}void time_process(void){++count_50ms;++count_100ms;++count_250ms;if(count_50ms == 50){count_50ms = 0;flag_50ms = 1;}if(count_100ms == 100){count_100ms = 0;flag_100ms = 1;}if(count_250ms == 250){count_250ms = 0;flag_250ms = 1;++count_check_interval;if(count_check_interval == DEF_CHECK_INTERVAL){count_check_interval = 0;flag_check_interval = 1;}}}void time(void) interrupt 1{TH0 = 0xFC;TL0 = 0x65;flag_1ms = 1;time_process();//display processdisp();}void main(void){//system initiate startunsigned char data key_temp = 0;unsigned int abc = 0;flag_sys_enabled = 1;led_sel = 0xFF;init_timer0();IE = 0x82; //enable the globe interrupt and Time0 interrupt //system initiate end//for test//srand(0x51);.. //working_fans = 2;//for testwhile(1){//read temperature processif(flag_check_interval && ~flag_modifying) {flag_check_interval = 0;IE = 0x00;abc = GetTemperature();cur_temp = abc;divide_con(cur_temp);if(flag_sys_enabled){cooling_control(cur_temp);}IE = 0x82;}//read key processif(flag_50ms){flag_50ms = 0;key_temp = read_key();if(key_temp){key_process(key_temp);}if(flag_sys_enabled){led_flashing();}}}}。

相关文档
最新文档