基于单片机的智能厨房报警系统.docx
《基于单片机的智能厨房报警系统.docx》由会员分享,可在线阅读,更多相关《基于单片机的智能厨房报警系统.docx(37页珍藏版)》请在冰豆网上搜索。
基于单片机的智能厨房报警系统
基于单片机的智能厨房报警系统
管发射的波长为940nm的红外光信号,而对于其他波长的光线则不能接收。
因而保证了接收的准确性和灵敏度。
MC114/114C的桥路输出电压呈线性,响应速度快,具有良好的重复性、选择性,原件工作稳定、可靠[6]。
DHT11直接读取被测温湿度值,进行数据转换,该器件可直接向单片机传输数字信号,便于单片机处理及控制。
1.3设计思路
大多单片机接口输入的信号时数字信号,或有带A/D转换的高端单片机也可以
输入模拟信号。
本系统采用数字型温湿度传感器检测温湿度,并用比较器分别对火焰传感器和瓦斯传感器的输出量和参考量进行比较并输出数字0、1[7],从而避免了使用A/D转换电路将模拟量转换位数字量,这样不仅简化了硬件设计,方便单片机读取数据而且节约了成本[8]。
设计单片机厨房报警系统需要考虑以4下个方面:
(1)温湿度传感器、火焰传感器、瓦斯传感器的选择;
(2)单片机和三类传感器的接口电路设计;
(3)调节滑动变阻器设置比较电路;
(4)控制温湿度传感器实现温湿度信息的采集。
1.4设计要求
本次设计的厨房报警系统需满足以下设计要求:
(1)用四位一体共阴极LED数码管显示温湿度值;
(2)温湿度测量范围:
20-90%RH0-50℃;
(3)用940nm波长的红外接收管;
(4)可以设定温湿度的上下限报警功能;
(5)可通过调节滑动变阻器改变检测电路的灵敏度。
1.5系统说明及使用说明
本系统的功能是对厨房内环境进行检测。
用DHT11作为温湿度传感器,并设定温湿度上下限值,信息通过LED显示出来。
如果实时温湿度超过上下限值,一方面由LED显示信息,另一方面点亮发光二级管,提示用户。
分别用红外接收管和MC114检测火焰和瓦斯,当检测到火焰或瓦斯时一方面蜂鸣器发出报警声并伴随着发光二极管的闪烁,另一方面控制达灵顿管驱动步进电机打开窗户。
在这次的设计中使用的开发工具是Protel99SE,由于该开发工具稳定,而且操作方便,股故选择了此开发工具。
编程软件使用Keil,打开Keil,输入所编写的源程序并对程序进行编译,在软件的帮助下检查其中的错误并进行反复修改,直到
编译正确后运行,确保没有错误以后对正确的源代码进行保存。
本系统具有较强的实用价值,使用时只需将其固定在厨房墙壁上,接通电源就能正常工作。
使用时应将LED接在随时都可以看见的地方,便于随时掌握实时温湿
度。
红外接收管和瓦斯传感器应安置在适宜的环境下,以免将其损毁。
2开发工具Protel99SE与Keil
2.1Protel99SE软件
2.1.1Protel99SE简介
Protel99SE是ProklTechnology公司开发的基于Windows环境下的EDA设计软件,采用设计库管理模式,可以进行联网设计,具有很强的数据交换能力和开放性及3D模拟功能,是一个32位的设计软件,可以完成电路原理图设计,印制电路板设计和可编程逻辑器件设计等工作,可以设计32个信号层,16个电源--地层和16个机加工层。
2.1.2Protel99SE的系统组成
按照系统功能来划分,Protel99SE主要包含以下两大部分和6个功能模块。
1、电路工程设计部分
(1)电路原理设计部分(AdvancedSchematic99):
电路原理图设计部分包括电路图编辑器(简称SCH编辑器)、电路图零件库编辑器(简称Schlib编辑器)和各种文本编辑器。
本系统的主要功能是:
绘制、修改和编辑电路原理图了;更新和修改电路零件库;查看和编辑有关电路图和零件库的各种报表。
(2)印刷电路板设计系统(AdvancedPCB99):
印刷电路板设计系统包括印刷电路板编辑器(简称PCB编辑器)、零件封装编辑器(简称PCBLib编辑器)和电路板组件管理器。
本系统的主要功能是:
绘制、修改和编辑电路板;更新和修改零件封装;管理电路板组件。
(3)自动布线系统(AdvancedRoute99):
本系统包含一个基于形状(Shape-based)的无栅格自动布线器,用于印刷电路板的自动布线,以实现PCB设计的自动化。
2、电路仿真与PLD部分
(1)电路模拟仿真系统(AdvancedSIM99):
电路模拟仿真系统包含一个数字/模拟信号仿真器,可提供连续的数字信号和模拟信号,以便对电路原理图进行
信号模拟仿真,从而验证其正确性和可行性。
(2)可编程逻辑设计系统(AdvancedPLD99):
可编程逻辑设计系统包
含一个有语法功能的文本编辑器和一个波形编辑器(Waveform)。
本系统的主要功能是;对逻辑电路进行分析、综合;观察信号的波形。
利用PLD系统可以最大限度的精简逻辑部件,使数字电路设计达到最简化。
(3)高级信号完整性分析系统(AdvancedIntegrity99):
信号完整性分析系统提供了一个精确的信号完整性模拟器,可用来分析PCB设计、检查电路设计参数、实验超调量、阻抗和信号谐波要求等。
2.1.3电路原理图设计
1、电路原理图编辑器
进入DesignProtel99SE后在Documents中通过右键“New”建立“SchematicDocument”文件,打开后即可进行电路原理图的编辑。
先按照已画好的电路草图将所有元件找到拖放到编辑框里。
将编辑框缩小,将元件照电路的样子搭好,整体上排列匀称。
接下来就可以进行局部的连线了。
或者可以先将电路的各个模块先搭好,再通过框定各模块平移组合成完整的电路,取消框定要通过Edit->DeSelect->InsideArea->再用鼠标框定以前选中的模块,就可以解除,表现为模块由黄色变成普通颜色。
对某个工程的操作是对一个数据库的操作,因此不同的数据库会在不同的窗口中打开,通过最小化可看高各个数据库的窗口。
常用操作有:
①调用画图工具View->Toolbars->Customize;②在移动元件时按空格可旋转元件;③找元件时要参照对元件库的描述,Converter含有AD、DA等;Analog是模拟器件如运放等;Memory是存储器件;④一个工程数据库中最好不要将所有文件都放在文件夹Documents中,因为这样会产生一些意想不到的小问题。
而将文件直接放在数据库根目录下则不会出现这些问题。
2、原理图元件库编辑器
虽然Protel本身包含了庞大的元件库,但在实际应用中总会遇到找不到元件的情况,这时就需要根据元件资料自己动手在元件库中制作这个元件。
还有一种情况是各种元件分散在各个公司的元件库中,不便与使用,所以要把常用元件集中到一个元件库中,这就要自己动手制作,将经常用到的元件复制到这个元件库中,方便以后的使用。
元件库文件(.LIB)也是基于数据库文件(.DDB)下的操作,同一个数据库下元件库中的元件才可以通过Tools->CopyComponent相互复制,不同数据库时可先用右键的copy将整个元件库复制到当前数据库,再在该数据库中进行单个元件的复制。
在放置芯片引脚时大头指的是引脚外侧,引脚名称会嵌到芯片框里,引脚号在外侧。
基本操作有:
①在画芯片图时,如果用到画线的功能,则应将View->SnapGrid功能打开,可增加画线时的定位精度;②不同设计文件之间拷贝模块时,操作如下:
先选中要拷贝的部分->拷贝,鼠标变成十字线后在选定的区域中间点击左键->切换到另一个设计文件,粘贴即完成了操作[9]。
2.2Keil软件
2.2.1Keil软件简介
KeilC51是美国KeilSoftware公司出品的51系列兼容单片机C语言软件开发系统,与汇编相比,C语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
用过汇编语言后在使用C语言来开发,体会会更加深刻。
KeilC51软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows界面。
另外更重要的一点,只要看一下编译后生成的汇编代码,就能体会到KeilC51生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。
在开发大型软件时更能体现高级语言的优势。
KeilC51软件是一个基于32位Windows环境的应用程序,支持C语言和汇编语言编程,其6.0以上的版本将编译和仿真软件统一为μVision(通常称为μV2)。
Keil提供包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,由以下几部分组成:
μVisionIDE集成开发环境C51编译器、A51汇编器、LIB51库管理器、BL51连接/定位器、OH51目标文件生成器以及Monitor-51、RTX51实时操作系统。
2.2.2Keil软件调试功能
应用Keil进行软件仿真开发的主要步骤为:
编写源程序并保存—建立工程并添加源文件—设置工程—编译/汇编、连接,产生目标文件—程序调试。
Keil使用:
“工程”(Project)的概念,对工程(而不能对单一的源程序)进行编译/汇编、连接等操作。
工程的建立、设置、编译/汇编及连接产生目标文件的方法非常易于掌握。
首先选择菜单File-New...,在源程序编译器重输入汇编语言或C语言源程序(或选择File-Open...,直接打开已用其它编译器编辑好的源程序文档)并保存,注意保存时必须在文件名后加上扩展名.asm(.s51)或.c;然后选择菜单Project-NewProject...,建立新工程保存(保存时无需加扩展名,也可加上扩展名.uv2);工程保存后会立即弹出一个设备选择对话框,选择CPU后点确定返回主界面。
这时工程管理窗口的文件页(Files)会出现“Target”,将其前面+号展开,接着选择SourceGroup,右击鼠标弹出快捷键菜单,选择“AddFiletoGroup‘SourceGroup1’”,出现一个对话框,要求寻找并加入源文件(在加入一个源文件后,该对话框不会消失,而是等待继续加入其他文件)。
加入文件后点Close返回主界面,展开“SourceGroup1”前面+号,就会看到所加入的文件,双击文件名,即可打开该源程序文件。
紧接着对工程进行设置,选择工程管理窗口的Target1,在选择Project-OptionforTarget‘Target1’(或点右键弹出快捷键菜单在选择该选项),打开工程属性设置对话框,共有8个选项卡,主要设置工作包括在Target选项卡中设置晶振频率、在Debug选项卡中设置实验仿真板等,如果写片,还必须在Output选项卡中选中“CreatHexFi”;其它选项卡内容一般可取默认值。
工程设置后按F7键(或点击编译工具栏相应图标)进行编译/汇编、连接以及产生目标文件。
成功编译/汇编、连接后,选择菜单Debug-Start/StopDebugSession(或按Ctrl+F5键)进入程序调试状态,Keil提供对程序的模拟调试功能,内建一个功能强大的仿真CPU以模拟执行程序。
Keil能以单步执行(按F11或选择Debug-Step)、过程单步执行(按F10或选择Debug-StepOver)、全速执行等多种运行方式进行程序调试。
如果发现程序有错,可采用在线汇编功能对程序进行修改(Debug-InlineAssambly...),不必执行先退出调试状态的步骤。
对工程重新进行编译/汇编和连接、然后在次进入调试状态的步骤。
对于一些必须满足一定条件(如按键被按下等)才能被执行的、难以用单步执行方式进行调试的程序,可采用断点设置的方法处理(Debug-Insert/RemoveBreakpoint或Debug-Breakpiont...等)。
在模拟调试程序后,还须通过编程器将.hex目标文件烧写入单片机中才能观察目标样机真实的运行状况[10]。
2.3本章小结
本章主要简单介绍了研究本课题需要用到的画电路原理图和做PCB的软件Protel99SE和编译软件Keil,了解了这两种软件的发展、功能和初步用法,了解了Protel99SE的两大组成部分和6大功能模块,以及Keil的调试功能等,为以后设计打好了基础。
相信通过后面的学习会有更深刻的体会。
3系统概述
3.1设计方案
采用集成温湿度传感器DHT11完成温湿度测量,DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感器,它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可靠性与卓越的长期稳定性。
传感器包括一个电阻式感湿元件和一个NTC测温元件,并与一个高性能8位单片机相连接。
采用MC114型催化元件完成瓦斯检测,MC114型催化元件根据催化燃烧效应的原理工作,由检测元件和补偿元件配对组成电桥的两个臂,遇可燃性气体时检测元件电阻升高,桥路输出电压变化,该电压变量随气体浓度增大而成正比例增大,补偿元件起参比及温湿度补偿作用。
它可检测工业现场的天然气、煤气、烷类等可燃性气体及汽油、醇、酮、苯等有机溶剂蒸汽的浓度。
采用红外接收管完成火焰检测,红外接收管就是将光信号(不可见光)转换成电信号一般是接收、放大、解调一体头,红外信号经接收管解调后,数据“0”和“1”的区别通常体现在高低电平的时间长短或信号周期上,单片机解码时,通常将接收头输出脚连接到单片机的外部中断,结合定时器判断外部中断间隔的时间从而获取数据[11]。
系统框图如图3-1所示:
图3-1厨房报警系统总框图
3.2系统设计原理
利用温湿度传感器DHT11可以直接从数码显示管上读取被测温度和湿度,当温湿度高于预先设定的上限值时对应的LED就会被点亮,产生报警;红外接收管和MC114接滑动变阻器(调节传感器的灵敏度)通过比较器分别接到单片机的INT0和INT1,当检测到火焰或瓦斯时比较器输出低电平,单片机相应中断,这时蜂鸣器开始鸣响并伴随着相应的LED等闪烁,产生报警[12]。
3.3系统组成
本课题是以STC89C52单片机为核心设计的一种厨房报警系统,系统整体硬件电路包括,传感器数据采集电路、温湿度显示电路、单片机主板电路等组成。
系统框图主要由主控制器、单片机复位、报警器、时钟震荡设置、LED显示、传感器组成[13]。
1.主控制器
单片机STC89C52具有低电压供电和体积小等特点,四个端口在电路设计中得到了充分的应用,很适合便捷手持式产品的设计,使用系统可用二节电池供电。
2.显示电路
显示电路采用四位一体数码显示管,从P0口输出断码选通信号,从P1口输出位选通信号。
采用74HC244驱动数码管,显示比较清晰。
3.传感器
DHT11数字温湿度传感器与单片机P2^0相连,当有火灾发生时,温度超过50℃,温湿度传感器DHT11把采集到的信号送到单片机中,单片机将发出一个高电平信号,控制报警系统的打开,发出报警信息及时通知工作人员采取措施。
MC114型催化元件根据催化燃烧效应的原理工作,由检测元件和补偿元件配对组成电桥的两个臂,遇可燃性气体时检测元件电阻升高,桥路输出电压变化,该电压变量随气体浓度增大而成正比例增大,补偿元件起参比及温湿度补偿作用。
红外线接收管是将红外线光信号变成电信号的半导体器件,它的核心部件是一个特殊材料的PN结,和普通二极管相比,在结构上采取了大的改变,红外线接收管为了更多更大面积的接收入,电流则随之增大。
3.4本章小结
本章简述了智能厨房报警系统的设计思路,设计方案,以及系统的组成、设计原理。
详细介绍了主板电路和显示电路的结构,并通过框图形式更直观、更形象地描述了系统的整体组成。
4系统硬件设计
4.180C51单片机
4.1.180C51单片机的介绍
单片机是指一个集成在一块芯片上的完整计算机系统。
尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:
CPU、内存、内部和外部总线系统。
而现在最强大的单片机系统甚至可以将声音、图像、网络、复杂的输入输出系统集成在一块芯片上[14]。
80C51单片机最初是由Intel公司开发设计的,但后来Intel公司把51核的设计方案卖给了几家大的电子生产商,譬如Philip、Atmel等大公司。
如市面上出现了各式各样的但均以51为内核的单片机,这些各大电子厂商推出的单片机都兼容51指令、并在51的基础上扩展一些功能而内核结构与51一致[15]。
80C51有40个引脚,4个8位并行I/O口,1个全双异步串行口,同时内含5个中断源,2个优先级,2个16位定时/计数器。
80C51的储存器系统由4K的程序储存器(掩膜ROM),和128B的数据存储器(RAM)组成[16]。
80C51单片机的基本组成框图见4-1。
XTAL2XTAL1
控制
图4-180C51单片机基本组成结构
由图4-1可见,80C51单片机主要由以下几部分组成:
1.CPU系统
8位CPU,含布尔处理器;
时钟电路;
总线控制逻辑。
2.存储器系统
4K字节的程序存储器(ROM/EPROM/Flash,可外扩至64KB);
128字节的数据存储器(RAM,可在外扩64KB);
特殊功能寄存器SFR。
3.I/O口和其他功能单元
4个并行I/O口;
2个16位定时计数器;
1个全双工异步串行口;
中断系统(5个中断源,2个优先级)。
4.1.280C51单片机主要特性
1.一个8位的微处理器(CPU)。
2.片内数据存储器RAM(128B),用以存放可以读/写的数据,如运算的中间结果、最终结果以及欲显示的数据等,SST89系列单片机最多提供1K的RAM。
3.片内程序存储器ROM(4KB),用以存放程序、一些原始数据和表格。
但也有一些单片机内部不带ROM/EPROM,如8031、8032、80C31等。
目前单片机的发展趋势是将RAM和ROM都集成在单片机里面,这样既方便了用户进行设计又提高了系统的抗干扰性。
SST公司推出的89系列单片机分别集成了16K、32K、64K、Flash存储器,可供用户根据需要选用。
4.四个8位并行I/O接口P0-P3,每个口既可以用作输入,也可以用作输出。
5.两个定时器/计数器,每个定时器/计数器都可以设置成计数方式,用以对外部事件进行计数,也可以设置成定时方式,并可以根据计数或定时的结果实现计算机控制。
为方便设计串行通信,目前的52系列单片机都会提供3个16位定时器/计数器。
6.五个中断源的中断控制系统。
现在新推出的单片机都不只5个中断源,例如
SST89W58RD就有9个中断源。
7.一个全双工UART(通用异步接收发送器)的串行I/O口,用于实现单片机之间或单片机与微机之间的串行通信。
8.片内振荡器和时钟产生电路,但石英晶体和微调电容需要外接。
最高允许振荡频率为12MHz。
SST89V58RD最高允许振荡频率达40Hz,因而大大的提高了指令的执行速度[17]。
4.2STC89C52单片机
4.2.1STC89C52单片机管脚图
图4-2STC89C52单片机管脚图
STC89C52的具体引脚介绍:
1.主电源引脚(2根)
VCC(Pin40):
电源输入,接+5V电源
GND(Pin20):
接地线
2.外接晶振引脚(2根)
XTAL1(Pin19):
片内振荡电路的输入端
XTAL2(Pin18):
片内振荡电路的输出端
3.控制引脚(4根)
RST/VPP(Pin9):
复位引脚,引脚上出现2个机器周期的高电平将使单片机复位。
ALE/PROG(Pin30):
地址锁存允许信号
PSEN(Pin29):
外部存储器读选通信号
EA/VPP(Pin31):
程序存储器的内外部选通,接低电平从外部程序存储器读指令,如果接高电平则从内部程序存储器读指令。
4.可编程输入/输出引脚(32根)
STC89C52单片机有4组8位的可编程I/O口,共32根。
PO口(Pin39~Pin32):
8位双向I/O口线,名称为P0.0~P0.7
P1口(Pin1~Pin8):
8位准双向I/O口线,名称为P1.0~P1.7
P2口(Pin21~Pin28):
8位准双向I/O口线,名称为P2.0~P2.7
P3口(Pin10~Pin17):
8位准双向I/O口线,名称为P3.0~P3.7
5.STC89C52主要功能如表1所示。
表1STC89C52主要功能
主要功能特性
兼容MCS51指令系统
8K可反复擦写FlashROM
32个双向I/O口
256x8bit内部RAM
3个16位可编程定时/计数器中断
时钟频率0-24MHz
2个串行中断
可编程UART串行通道
2个外部中断源
共6个中断源
2个读写中断口线
3级加密位
低功耗空闲和掉电模式
软件设置睡眠和唤醒功能
4.2.2单片机的控制电路
STC89C52是一种带8K字节闪烁可编程可檫除只读存储器(FPEROM-FlashProgramableandErasableReadOnlyMemory)的低电压,高性能COMOS8的微处理器,俗称单片机。
该器件采用ATMEL搞密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。
1.时钟电路
STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。
时钟可以由内部和外部方式产生。
内部方式的时钟电路如图4-3(a)所示,在XTAL1和XTAL2引脚上外接定时元件,内部振荡器就产生自激振荡。
定时元件通常采用石英晶体和电容组成的并联谐振回路。
晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。
外部方式的时钟电路如图4-3(b)所示,XTAL1接地,XTAL2接外部振荡器。
对外部振荡信号无特殊要求,只要求保证脉冲宽度,一般采用频率低于12MHz的方波信号。
片内时钟发生器把振荡频率两分频,产生一个两相时钟P1和P2,供单片机使用。
+5V
(a)内部方式时钟电路(b)外部方式时钟电路
图4-3时钟电路
本系统采用内部方式时钟电路,如图4-4所示:
图4-4内部方式时钟电路
2.复位及复位电路
(1)复位操作
复位是单片机的初始化操作。
其主要功能是把PC初始化为0000H,使单片机从0000H单元开始执行程序。
除了进入系统的正常初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键重新
启动。
除PC之外,复位操作还对其他一些寄存器有影响,它们的复位状态如表2所示。
表2一些寄存器的复位状态
寄存器
复位状态
寄存器
复位状态
PC
0000H
TCON
00H
ACC
00H
TL0
00H
PSW
00H
TH0
00H
SP
07H
TL1
00H
DPTR
0000H
TH1
00H
P0-P3
FFH
SCON
00H
IP
XX000000B
SBUF
不定
IE
0X000000B
PCON
0XXX0000B
TMOD
00H
(2)复位信号及其产生
RST引脚是复位信号的输入端。
复位信号是高电平有效,其有效时间应持续24个振荡周期(即二个机器周期)以上。
若使用颇率为6MHz的晶振,则复位信号持续时间应超过4us才能完成复位操作[18]。
本系统的复位电路采用图4-5按键电平复位。
图4-5按键电平复位电路
4.3温湿度显示电路的工作原理
4.3.1DHT11的简介
采用DHT11作为温湿度传感器,该器件具有极高的可靠性与稳定性。
传感器包括一个电