ImageVerifierCode 换一换
格式:DOCX , 页数:32 ,大小:757.34KB ,
资源ID:23596389      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/23596389.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(简易智能抽油烟机设计完整版.docx)为本站会员(b****7)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

简易智能抽油烟机设计完整版.docx

1、简易智能抽油烟机设计完整版 概要随着社会的进步,科技的发展,人们生活水平的提高,电子产品应用人们的生活方面的范围越来越宽。本设计采用单片机技术结合A/D转换芯片构成的对油烟浓度进行检测,并对测试的环境温度进行检测,判断环境温度是否达到危险温度,如达到危险温度即发出警报,通过单片对检测的油烟浓烟进行处理并在LCD上显示出来,并对风扇进行控制,对风扇进行档位设置,当油烟浓度较低的时候开启1档进行油烟的抽出,当浓度较高时开启2档进行油烟的抽出,当油烟浓于某一个值时,自动关闭抽烟机的电源,起到一个智能控制的作用。并能起到节能的作用,现在的社会是一个低能的社会,此产品因其耗能低,普及率高,便于用于实际生

2、活。本设计产用MQ-2烟雾传感器对油烟浓度进行检测,采用ADC0832对检测数据进行模数转化并将数据传输给单片机,产用AT89S52芯片进行处理,并控制风扇的转速。采用DS18B20对环境温度进行检测,起到一个保护的作用。采用1602液晶对温度与浓度进行显示。关键字:LCD1602,ADC0832,DS18B20,MQ-2,AT89S52,油烟机,智能第一章:AT89S52单片机的认识第二章:MQ-2烟雾传感器的知识第三章:ADC0832 模数转化的设计第四章:油烟机风扇控制第五章: 1602液晶显示浓度与温度第六章:基于DS18B20温度传感器的温度测量与警报第七章:系统原理图第八章:整个系

3、统的原程序整个系统流程图:第一章:AT89S52单片机的认识AT89S52是一种低功耗、高性能CMOS8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能:8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6

4、向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。以下是本系统的AT89S52的最小控制系统原理图 第二章:MQ-2烟雾传感器知识MQ-2是一种体电阻控制型的气敏器件,其阻值随被测气体的浓度(成分)而变化。气敏器件又是一种“气电”传感器件,它将被测气体的浓度(成分)信号转变成相应的电信号。MQ-2引脚结构与常用连接电路图MQ-2有两种不同的结构

5、分别为下图的A与B图A 图B 本设计产用MQ-2是图A所示的实物。MQ-2的灵敏性特性图选择MQ-2做为本设计的原因是,MQ-2价格便宜,而且市场采购比较方便,便于使用,使用简单,只需将以上电路图连接好就能对油烟浓度进行检测,输出一个05V的模拟信号。从而达到将“气”转换为“电”的目的。MQ-2油烟检测模块电路图如下 第三章:ADC0832模数转换设计ADC0832 是美国国家半导体公司生产的一种8 位分辨率、双通道A/D转换芯片。由于它体积小,兼容性,性价比高而深受单片机爱好者及企业欢迎,其目前已经有很高的普及率。学习并使用ADC0832 可是使我们了解A/D转换器的原理,有助于我们单片机技

6、术水平的提高。ADC0832 为8位分辨率A/D转换芯片,其最高分辨可达256级,可以适应一般的模拟量转换要求。其内部电源输入与参考电压的复用,使得芯片的模拟电压输入在05V之间。芯片转换时间仅为32S,据有双数据输出可作为数据校验,以减少数据误差,转换速度快且稳定性能强。独立的芯片使能输入,使多器件挂接和处理器控制变的更加方便。通过DI 数据输入端,可以轻易的实现通道功能的选择。在本设计中我们只采用一个通道。ADC0832的引脚功能与引脚图如下CS_ 片选使能,低电平芯片使能。 CH0 模拟输入通道0,或作为IN+/-使用。 CH1 模拟输入通道1,或作为IN+/-使用。 GND 芯片参考0

7、 电位(地)。 DI 数据信号输入,选择通道控制。 DO 数据信号输出,转换数据输出。 CLK 芯片时钟输入。Vcc/REF 电源输入及参考电压输入(复用)。ADC0832的时序功能图:本设计应用电路图如下 第四章:油烟机风扇控制油烟机风扇控制系统采用两个继电器控制,当单片机I/O输出的dang1与dang2间有一个电压差两个继电器就会发生不同的吸合,从而使油烟机机风扇两端的电压、电流不同,风扇的转数从而收到控制。单片机输出与档位的关系如下 Dang1 0 1 Dang2 1 0 档位1 档位2本设计抽烟机风扇控制电路图第五章:1602液晶显示浓度与温度1602字符型LCD通常有14条引脚线或

8、16条引脚线的LCD,多出来的2条线是背光电源线 VCC(15脚)和地线GND(16脚),其控制原理与14脚的LCD完全一样,其中: 引脚符号功能说明1VSS一般接地2VDD接电源(+5V)3V0液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。4RSRS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5R/WR/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。6EE(或EN)端为使能(enable)端,下降沿使能。7DB0低4位三态、 双向数据总线 0位(最低位)

9、8DB1低4位三态、 双向数据总线 1位9DB2低4位三态、 双向数据总线 2位10DB3低4位三态、 双向数据总线 3位11DB4高4位三态、 双向数据总线 4位12DB5高4位三态、 双向数据总线 5位13DB6高4位三态、 双向数据总线 6位14DB7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15BLA背光电源正极16BLK背光 电源负极寄存器选择控制表 RSR/W操作说明00写入指令寄存器(清除屏等)01读busy flag(DB7),以及读取位址计数器(DB0DB6)值10写入数据寄存器(显示各字型等)11从数据寄存器读取数据注:关于E=H脉冲开始时初始化E

10、为0,然后置E为1,再清0. busy flag(DB7):在此位为被清除为0时,LCD将无法再处理其他的指令要求。1602液晶读操作时序显示的地址表如下1602液晶写操作时序本设计1602液晶与单片机的连接图如下,RK为背光灯电阻。第六章:基于DS18B20温度传感器的温度测量与警报美国Dallas半导体公司的数字化温度传感器DS1820是世界上第一片支持 一线总线接口的温度传感器,在其内部使用了在板(ON-B0ARD)专利技术。全部传感元件及转换电路集成在形如一只三极管的集成电路内。一线总线独特而且经济的特点,使用户可轻松地组建传感器网络,为测量系统的构建引入全新概念。现在,新一代的DS1

11、8B20体积更小、更经济、更灵活。使你可以充分发挥“一线总线”的优点。在传统的模拟信号远距离温度测量系统中,需要很好的解决引线误差补偿问题、多点测量切换误差问题和放大电路零点漂移误差问题等技术问题,才能够达到较高的测量精度。另外一般监控现场的电磁环境都非常恶劣,各种干扰信号较强,模拟温度信号容易受到干扰而产生测量误差,影响测量精度。因此,在温度测量系统中,采用抗干扰能力强的新型数字温度传感器是解决这些问题的最有效方案,新型数字温度传感器DS18B20具有体积更小、精度更高、适用电压更宽、采用一线总线、可组网等优点,在实际应用中取得了良好的测温效果。(1)适应电压范围更宽,电压范围:3.05.5

12、V,在寄生电源方式下可由数据线供电 (2)独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯 (3)DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温 (4)DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内 (5)温范围55125,在-10+85时精度为0.5 (6)可编程的分辨率为912位,对应的可分辨温度分别为0.5、0.25、0.125和0.0625,可实现高精度测温 (7)在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最

13、多在750ms内把温度值转换为数字,速度更快 (8)测量结果直接输出数字温度信号,以一线总线串行传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力 (9)负压特性:电源极性接反时,芯片不会因发热而烧毁,但不能正常工作。图3: DS18B20测温原理框图 例如+125的数字输出为07D0H,+25.0625的数字输出为0191H,-25.0625的数字输出为FF6FH,-55的数字输出为FC90H。 表2: DS18B20温度数据表 DS18B20引脚定义: (1)DQ为数字信号输入/输出端; (2)GND为电源地; (3)VDD为外接供电电源输入端(在寄生电源接线方式时接地)。 图

14、2: DS18B20内部结构图3)DS18B20温度传感器的存储器 DS18B20温度传感器的内部存储器包括一个高速暂存RAM和一个非易失性的可电擦除的EEPRAM,后者存放高温度和低温度触发器TH、TL和结构寄存器。 (4)配置寄存器 该字节各位的意义如下:表3: 配置寄存器结构 TMR1R011111低五位一直都是1,TM是测试模式位,用于设置DS18B20在工作模式还是在测试模式。在DS18B20出厂时该位被设置为0,用户不要去改动。R1和R0用来设置分辨率,如下表所示:(DS18B20出厂时被设置为12位)表4: 温度分辨率设置表R1R0分辨率温度最大转换时间009位93.75ms 0

15、110位187.5ms 1011位375ms 1112位750ms 基于DS18B20的温度检测模块蜂鸣器的警报电路第七章:系统原理图图1:protel图图2:proteus图第八章:整个系统的源程序#include #include unsigned char code table1=nongdu: ; unsigned char code table3=wendu:; unsigned char code cent=C; unsigned char flag,min,time,max=33,tltemp;/unsigned int chui; sbit rs=P20; sbit rw=P2

16、1; sbit e=P22;sbit s=P27; sbit bf=P07; sbit DB_B20=P34;sbit dio=P36;sbit cs=P35;sbit clk=P37;/sbit dang_1=P33;/sbit dang_2=P34;void delay_us(unsigned int time) /延时10us int i,j; for(i=0;itime;i+) for(j=0;j=max) for(i=0;i50;i+) s=!s; delay_us(5); ; void delay1ms()/延时1ms unsigned char i,j; for(i=0;i4;i

17、+) for(j=0;j33;j+) ; void delaynms(unsigned char n) unsigned char i; for(i=0;i=100) P1=0xfe; delaynms(10); else if(chui=30&chui100) P1=0x7f; delaynms(10); else P1=0xff; delaynms(10); unsigned int adc_0832() unsigned int i,dat; cs=1; /一个转换周期开始 clk=0; /为第一个脉冲作准备 cs=0; /CS置0,片选有效 dio=1; /DIO置1,规定的起始信号

18、clk=1; /第一个脉冲 clk=0; /第一个脉冲的下降沿,此前DIO必须是高电平 dio=1; /DIO置1, 通道选择信号 clk=1; /第二个脉冲,第2、3个脉冲下沉之前,DI必须跟别输入两位数据用于选择通道,这里选通道CH0 clk=0; /第二个脉冲下降沿 dio=0; /DI置0,选择通道0 clk=1; /第三个脉冲 clk=0; /第三个脉冲下降沿 dio=1; /第三个脉冲下沉之后,输入端DIO失去作用,应置1 clk=1; /第四个脉冲 for(i=0;i8;i+) /高位在前 clk=1; /第四个脉冲 clk=0; dat=1; /将下面储存的低位数据向右移 da

19、t|=(unsigned char)dio; /将输出数据DIO通过或运算储存在dat最低位 cs=1; /片选无效 return dat; /将读书的数据返回 bit busy(void) bit result; rs=0; /根据规定,RS为低电平,RW为高电平时,可以读状态 rw=1; e=1; /E=1,才允许读写 _nop_(); /空操作 _nop_(); _nop_(); _nop_(); /空操作四个机器周期,给硬件反应时间 result=bf; /将忙碌标志电平赋给result e=0; /将E恢复低电平 return result;void write_com(unsign

20、ed char datee) while(busy()=1); rs=1; rw=1; _nop_(); _nop_(); rs=0; rw=0; e=0; _nop_(); _nop_(); _nop_(); _nop_(); e=1; P0=datee; _nop_(); _nop_(); _nop_(); _nop_(); e=0;void write_dater(unsigned char datere) while(busy()=1); rs=1; rw=0; e=0; P0=datere; _nop_(); _nop_(); _nop_(); _nop_(); e=1; _nop_

21、(); _nop_(); _nop_(); _nop_(); e=0;void init_1604() delaynms(15); write_com(0x38); delaynms(2); write_com(0x38); delaynms(2); write_com(0x38); delaynms(2); write_com(0x0c); delaynms(2); write_com(0x06); delaynms(2); write_com(0x01); delaynms(2);bit init() bit flag; /储存DS18B20是否存在的标志,flag=0,表示存在;flag

22、=1,表示不存在 DB_B20= 1; /先将数据线拉高 for(time=0;time2;time+) /略微延时约6微秒 ; DB_B20 = 0; /再将数据线从高拉低,要求保持480960us for(time=0;time200;time+) /略微延时约600微秒 ; /以向DS18B20发出一持续480960us的低电平复位脉冲 DB_B20 = 1; /释放数据线(将数据线拉高) for(time=0;time10;time+) ; /延时约30us(释放总线后需等待1560us让DS18B20输出存在脉冲) flag=DB_B20; /让单片机检测是否输出了存在脉冲(DQ=0

23、表示存在) for(time=0;time200;time+) /延时足够长时间,等待存在脉冲输出完毕 ; return (flag);unsigned char read_onebyte()/读一个字节的数据 unsigned char i=0; unsigned char dat; /储存读出的一个字节数据 for (i=0;i8;i+) DB_B20=1; / 先将数据线拉高 _nop_(); /等待一个机器周期 DB_B20= 0; /单片机从DS18B20读书据时,将数据线从高拉低即启动读时序 _nop_(); /等待一个机器周期 DB_B20= 1; /将数据线人为拉高,为单片机检

24、测DS18B20的输出电平作准备 for(time=0;time=1; if(DB_B20=1) dat|=0x80; /如果读到的数据是1,则将1存入dat else dat|=0x00;/如果读到的数据是0,则将0存入dat /将单片机检测到的电平信号DQ存入ri for(time=0;time8;time+) ; /延时3us,两个读时序之间必须有大于1us的恢复期 return(dat); /返回读出的十六进制数据void write_onebyte(unsigned int dat)/写一个字节的数据 unsigned char i; for (i=0; i8; i+) DB_B20

25、=1; / 先将数据线拉高 _nop_(); /等待一个机器周期 DB_B20=0; /将数据线从高拉低时即启动写时序 DB_B20=dat&0x01; /利用与运算取出要写的某位二进制数据, /并将其送到数据线上等待DS18B20采样 for(time=0;time10;time+) ;/延时约30us,DS18B20在拉低后的约1560us期间从数据线上采样 DB_B20=1; /释放数据线 for(time=0;time=1; /将dat中的各二进制位数据右移1位 for(time=0;time4;time+) ; /稍作延时,给硬void ready() init(); write_o

26、nebyte(0xcc); write_onebyte(0x44); delay_us(20); init(); write_onebyte(0xcc); write_onebyte(0xbe); /*void display_now() unsigned char i; write_com(0x80); for(i=0;i11;i+) write_dater(tablei); */void display_wen() unsigned char j; write_com(0x80); for(j=0;j7;j+) write_dater(table3j); void display_dian

27、() write_com(0x80+0x0a); write_dater(.);void display_cent() unsigned char k; write_com(0x80+0x0c); for(k=0;k2;k+) write_dater(centk); void display_zhengshu(unsigned int x) unsigned int j,k,l; j=x/100; k=(x%100)/10; l=x%10; write_com(0x80+0x06); if(flag=1) write_dater(-); else write_dater(+); write_dater(0x30+j); write_dater(0x30+k); write_dater(0x30+l); delay_us(100); void display_xiaoshu(uns

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1