酒精浓度检测系统

上传人:daj****de 文档编号:168292623 上传时间:2022-11-09 格式:DOCX 页数:39 大小:499.24KB
收藏 版权申诉 举报 下载
酒精浓度检测系统_第1页
第1页 / 共39页
酒精浓度检测系统_第2页
第2页 / 共39页
酒精浓度检测系统_第3页
第3页 / 共39页
资源描述:

《酒精浓度检测系统》由会员分享,可在线阅读,更多相关《酒精浓度检测系统(39页珍藏版)》请在装配图网上搜索。

1、目录1.实验任务22 设计方案22.1硬件设计22.1.1 MQ-3酒精传感器 42.1.2 MQ-2烟雾传感器 52.1.3温湿度传感器传感器52.1.4模数转换模块72.1.5 LCD1602 液晶显示82.1.6键盘电路如图所示 92.1.7报警电路102.2软件设计102.2.1编译语言的选择 102.2.2主程序模块 103结论12参考文献14程序15摘要本设计采用MQK2酒精传感器和MQ3烟雾传感器就是一种对气体敏感的化学传感 器,它能随着外部气体的浓度或不同而改变敏感膜的电阻。系统选AT89S52单片机 为控制核心,对检测到的气体状况进行相应的处理分析、处理和显示,并通过报 警进

2、行提示。酒精泄露的检测、监控以及对酒后驾车的监测对居民的人身和财产安全都是 十分重要且必不可少的。从工厂企业到居民家庭,同时,为了早期发现和通报火 灾,防止和减少火灾危害,保护人身和财产安全。防止火灾引起燃烧、爆炸等事 故,造成严重的经济损失,甚至危及生命安全。就必须对烟雾进行现场实时检测, 因此,研究酒精与烟雾的检测方法并研制酒精烟雾报警器就成为传感器技术发展 领域的一个重要课题。关键词:酒精传感器,烟雾传感器,AT89S52单片机,报警Alcohol concentration smoke alarmAbstractThe factory from enterprise to reside

3、nts family, alcohol leaked detection, monitoring and drunk driving to the inhabitants monitoring personal and property security is very important and necessary. At the same time, in order to early detection and inform fire, and prevent and reduce the danger of fire protection of personal and propert

4、y security. Prevent fire cause burns, explosion accidents, cause serious economic loss, even endanger life safety. It needs to smoke the real-time detection, therefore, the alcohol and the smoke and the detection method developed alcohol smog announciator became the sensor technology development are

5、as of an important subject.This design USES the MQK2 alcohol sensor and MQ3 smoke sensor is a gas sensitive chemical sensors, it can along with external gas concentration or different and change the resistance of the sensitive membrane. AT89S52 SCM system chosen as control core, to detect gas condit

6、ion for the corresponding processing analysis, processing and display, and through the alarm to indicate.Keywords: Alcohol sensor smoke sensor AT89S52 SCM call the police1.实验任务设计一个基于单片机的酒精浓度检测系统,检测结果用LCD显示器显示。基于 STC89C52单片机,MQ-2酒精浓度传感器和MQ3烟雾传感器,能够手动设定报警值 并能实现报警。2 设计方案2.1硬件设计由于本次设计需要用到单片机,来完成对酒精浓度的检测

7、,分析了网上的相似课题,有很多是用酒精浓度传感器MQ-3来完成酒精浓度检测系统的设计。鉴于本次 时间限制,本次设计中采用的是STC89S52单片机来控制整个电路,电路中采用的 是LCD1602来显示实验实时数据。A/D芯片的选择中,用到的是TI公司生产的 TLC2543,主要是这块芯片的性能优良,时序操作简单,能很好的解决本次设计中 对实时数据转换的要求。系统结构框图如图2-1所示:DHT11DS1302切换按键单片机酒精传感器 M4Q3烟雾传感器 MQ2模数转化TLC254389c52重报警图2-1LED显示基于本系统设计内容的需要,综合考虑后,我们选择STC89C52单片机为控制 核心。主

8、要基于考虑STC89C52是低功耗,超低价,高速,高可靠,强抗静电,强抗 干扰,功能强大的单片机。STC89C52有40个引脚,32个外部双向输入/输出(I/O)端口,同时内含2 个外中断口,3个16位可编程定时计数器,2个全双工串行通信口,2个读写口线, 片内振荡器及时钟电路。同时STC89C52可降至0Hz的静态逻辑操作,并支持两种 软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工 作并禁止其他所有部件工作直到下一个硬件复位。其将通用的微处理器和 Flash 存储器结合在一起,特别是可反复

9、擦写的Flash存储器可有效地降低开发本。STC 单片机有PDIP、PQFP/TQFP及PLCC等三种封装形式,以适应不同产品的需求。STC89C52单片机引脚如图2-2:T2/P1, 0 匚二T2EX/P1. 11Pl. 2CP1,3|Fl. 41P1. 5 |P1. 6| P1. 7 I RSTl RXD/P3.0( TXD/P3.1JINT0/P3.INT1/P3.SfT0/P3.41T1/P3.5l 歸/P3,|RD/P3. 7 IZZXTAL2IXIAL 1 I .Gnd 1PDIP401 VCCFO. 0 ADOPO.1/AD1PO,2/AD2PO. 3/AD3PO.4/AD4PO

10、.5/AD5PO.6/AD6PO. 7/AD7EAALEPSENP2. 7/A15Y2. 6/A14P2. 5/A13P2,4/A12P2. 3/AUP2,2/A10P2.1/A9P2. 0/A3图2-2 STC89C52引脚图Vcc :电源电压GND:地P0 口 : P0 口是一组8位漏极开路型双向I/O 口,也即地址/数据总线复用口。P1 口: P1是一个带内部上拉电阻的8位双向I/O 口,P1的输出缓冲级可驱 动(吸收或输出电流)4个TTL逻辑门电路。P2 口: P2是一个带有内部上拉电阻的8位双向I/O 口,P2的输出缓冲级可 驱(吸收或输出电流)4个TTL逻辑门电路。P3 口: P3

11、 口时一组带有内部上拉电阻的8位双向I/O 口。P3 口输出缓冲级 可驱动(吸收或输出电流)4个TTL逻辑门电路。RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平 将使单片机复位。ALE :当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉 冲用于锁存地址的低8位字节。一般情况下,ALE仍以时钟振荡频率的1/6输出 固定的脉冲信号,因此它可对外输出时钟或用于定时目的。错误!未找到引用源。错误!未找到引用源。:程序储存允许(错误!未 找到引用源。)输出是外部程序存储器的读选通信号,当89C5X单片机由外部程序 存储器取指令(或数据)时,每个机器周期两次错误!未

12、找到引用源。错误!未 找到引用源。有效,即输出两个脉冲。在次期间,当访问外部数据存储器,将跳 过两次信号。莎/VPP:外部访问允许。欲使CPU仅访问外部程序存储器(地址为OOOOH-FFFH),端必须保持低电平(接地)。XTAL1:振荡器反相放大器及内部时钟发生器的输入端。XTAL2 :振荡器反相放大器的输出端2.1.1 MQ3酒精传感器MQ-3酒精传感器对乙醇蒸气有很高的灵敏度,并且响应和恢复快速。另外, MQ-3酒精传感器简单的驱动回路和可靠的稳定性是相比较于其他型号传感器的优 点oMQ-3酒精传感器可用于机动车驾驶人员及其他严禁酒后作业人员的现场检测, 也可用于其他场所乙醇蒸气的检测。M

13、Q-3酒精传感器有6只针状管脚,其中4个 管脚(两个A和两个B)用于信号读取,两个H脚用于提供加热电流。MQ3型气敏传感器技术指标如下:使用气体:酒精(乙醇)探测范围:101000*10-6特征气体:100 *10-6灵敏度: Rin air/Rin typical gas 工5敏感体电阻:4004000kQ (空气中)响应时间:10s (70% Response)恢复时间:30s (70% Response)加热电阻:31Q 土 3Q加热电流: 180mA加热电压:5V 土 0.2V加热功率:冬900mW工作条件:环境温度:一1065摄氏度 湿度:95%RH 贮存条件:温度:一2070摄氏度

14、 湿度:70%RH 灵敏度调整:MQ3型气敏元件对不同种类,不同浓度的气体有不同的电阻值。 因此,在使用此 类型气敏元件时,灵敏度的调整是很重要的。 建议使用200ppm的乙醇蒸汽校准传感器。当精确测量时,报警点的设定应考虑温湿度的影响。电路图如图2-3:图2-3 MQ-3传感器电路原理图2.1.2 MQ-3烟雾传感器MQ-2气敏元件的结构和外形如图所示(结构A or B),由微型AL2O3陶瓷管、 SnO2敏感层,测量电极和加热器构成的敏感元件固定在塑料或不锈钢制成的腔体 内,加热器为气敏元件提供了必要的工作条件。封装好的气敏元件有6只针状管 脚,其中4个用于信号取出,2个用于提供加热电流。

15、图2-42.1.3温湿度传感器DHT11DHT11数字温湿度传感器是一款含有已校准数字信号输出的温湿度复合传感 器。它应用专用的数字模块采集技术和温湿度传感技术,确保产品具有极高的可 靠性与卓越的长期稳定性。传感器包括一个电阻式感湿元件和一个NTC测温元件, 并与一个高性能8位单片机相连接。因此该产品具有品质卓越、超快响应、抗干扰 能力强、性价比极高等优点。每个DHT11传感器都在极为精确的湿度校验室中进行 校准。校准系数以程序的形式储存在OTP内存中,传感器内部在检测信号的处理过 程中要调用这些校准系数。单线制串行接口,使系统集成变得简易快捷。超小的 体积、极低的功耗,信号传输距离可达20米

16、以上,使其成为各类应用甚至最为苛 刻的应用场合的最佳选则。产品为4针单排引脚封装。连接方便,特殊封装形式 可根据用户需求而提供。DATA用于微处理器与DHT11之间的通讯和同步,采用单总线数据格式,一次 通讯时间4ms左右,数据分小数部分和整数部分,具体格式在下面说明,当前小数部 分用于以后扩展,现读出为零操作流程如下:一次完整的数据传输为40bit,高位先出。数据格式:8bit湿度整数数据+8bit湿度小数数据+8bi温度整数数据+8bit温度小数数据+8bi t校验和数据传送正确时校验和数据等于“8bit湿度整数数据+8bit湿度小数数据+8bi 温度整数数据+8bit温度小数数据”所得结

17、果的末8位。用户MCU发送一次开始信号后,DHT11从低功耗模式转换到高速模式,等待主机 开始信号结束后,DHT11发送响应信号,送出40bit的数据,并触发一次信号采集,用 户可选择读取部分数据从模式下,DHT11接收到开始信号触发一次温湿度采集,如 果没有接收到主机发送开始信号,DHT11不会主动进行温湿度采集采集数据后转 换到低速模式。技术参数:供电电压:3.35.5V DC输出:单总线数字信号测量范围:湿度20-90%RH,温度050C测量精度: 湿度+-5%RH,温度+-2C 分辨率:湿度1%RH,温度1C 互换性:可完全互换长期稳定性:1%RH/年2.1.4模数转换模块TLC254

18、3是TI公司的12位串行模数转换器,使用开关电容逐次逼近技术完 成A/D转换过程。由于是串行输入结构,能够节省51系列单片机I/O资源;且价 格适中,分辨率较高,因此在仪器仪表中有较为广泛的应用。可以用四种传输方法使TLC2543得到全12位分辩率,每次转换和数据传递可 以使用12或16个时钟周期。一个片选()脉冲要插到每次转换的开始处,或是在转换时序的开始处变化 一次后保持为低,直到时序结束。图2-6显示每次转换和数据传递使用16个时钟 周期和在每次传递周期之间插入的时序,图2-6显示每次转换和数据传递使用16 个时钟周期,仅在每次转换序列开始处插入一次时序。2TLC2543的特点:(1)1

19、2位分辩率A/D转换器;(2)在工作温度范围内10 ms转换时间;(3)11个模拟输入通道;(4)3路内置自测试方式;(5)采样率为66kbps ;(6)线性误差土 1LSBmax ;(7) 有转换结束输出EOC;(8) 具有单、双极性输出;(9) 可编程的MSB或LSB前导;(10 )可编程输出数据长度。图2-6 TLC2543时序图csI/O CLOCKX谅问周朗E已采昨周期EA14LSBA- 2Alft 10MSB牖邮O0OOO钦乂O0O欲冷。纽E:7EM E:3E:2E:1 E:UEOC全球4L加。转隨叶间i图2-72.1.5 LCD1602液晶显示LCD1602字符型液晶显示模块是一

20、种专门用于显示字母、数字、符号等点阵 式LCD,目前常用16X 1, 16X2, 20X2和40 X2行等的液晶显示模块,模块组件 内部主要由LCD显示屏、控制器、列驱动器和偏压产生电路构成。图2-82.1.6键盘电路如图所示Tn7亠tKITTnrf1丄D Jn鼻r亠SIKIfit:二rw|1 ar*n 1r亠JsiKIsi:二rw|1 TiAtn 1r亠N|fitrW|1 1L图2-9按键功能如下:S2:在个人信息,显示的温湿度,酒精浓度,烟雾浓度及报警值之间切换,实现多功能切换显示S3:移动LCD1602的光标,每按下一次光标右移一位。S4:增加示值及报警值。S5:减小示值及报警值。217

21、报警电路报警电路如图2-10所示。报警电路由P3.7 口输出接电阻R23三极管,蜂鸣 器组成。当设定值小于设定值时候,蜂鸣器发出警报。S55fl图 2-102.2软件设计2.2.1编译语言的选择对于单片机的开发应用中,逐渐引入了高级语言,C语言就是其中的一种。 汇编语言的可控性较高级语言来说更具优越性。程序编写语言比较常见的有 C语 言、汇编语言。汇编语言的机器代码生成效率高,控制性好,但就是移植性不高。C语言编写的程序比用汇编编写的程序更符合人们的思考习惯。还有很多处 理器都支持C编译器,这样意味着处理器也能很快上手。且具有良好的模块化、 容易阅读、维护等优点,且编写的模块程序易于移植。基于

22、 C语言和汇编语言的 优缺点,本系统采用C语言编写方法。软件编写的主体思路是将系统按功能模块化划分,然后根据模块要实现的功 能写各个子程序。整个软件程序的编写采用查询式方式编写的。222主程序模块主程序实现的功能:与硬件相结合实现酒精浓度检测系统的各个功能。主要2-21图2-21主程序流程图是检测与显示,门限调整与显示,检测数据显示功能子函数的调用。见图3结论通过protues中成功的仿真表明,本次设计实现了空气酒精浓度监测仪的设 计要求。通过酒精浓度传感器,把空气中酒精浓度转化为电信号,通过 A/D转换 TLC2543送入单片机89C52中经过数据处理,可以实现LCD1602对空气中酒精浓

23、度101000ppm范围的检测,另外通过键盘设置阀值的显示,如果空气中检测到的 酒精或烟雾浓度大于设置浓度则通过蜂鸣器报警。为了使用方便,都取了整数, 用C语言在电压到浓度信号转换时候十分容易就实现了,本设计过程包括了硬件 电路设计和软件程序的编写两部分。软件部分采用模块化设计思想,各个子程序 的功能相对独立,便于调试和修改。成本低廉,性能稳定,抗干扰能力强。应用 单片机编写不同的程序嵌入各种仪器中便形成不同功能的智能仪器。作为广泛应 用于工程中的智能仪器将有更大的运用空间。空气酒精浓度监测仪将越来越深入 的运用到普通人民的生活中。通过本次课程设计,让我重新的系统的复习了微机原理与单片机方面的

24、知识, 收获颇丰。首先,对于以前学习过的有关单片机方面的知识,在设计电路过程中 又有了新的认识,对于各种概念的理解也有了提高。在做板的过程中要非常小心。硬件调试过程是相对繁锁的,要特别注意以下 几点。其一,通电之后看AT89S51晶振是否起振,晶振起振后是标准的正弦波, 示波器测得其频率为11.0592MHz ;其二,硬件电路的设计既要追求实际功能的实 现,也要考虑元器件的购买方便。在本次课设中学到的知识,我将它们发挥到其他的学习中去,也将在今后的 学习中不断的提高和完善;而在此期间发现的不足,我将努力改善,通过学习实 践等方式不断提高,克服那些知识障碍,以求在今后的学习过程中获得更大的进附图

25、一附图二参考文献1 微机原理及应用 黄冰等编著 重庆:重庆大学出版社,20032 李维提,郭强.液晶显示应用技术 北京:电子工业出版社,2000.3 基于Proteus的电路及单片机系统设计与仿真周润景等编著北京:北京航空航天大学出版社,20064 单片机实验与实践教程万光毅等编著北京:北京航空航天大学出版社,20065 单片机人机接口实例集公茂法等编著北京:北京航空航天大学出版社,19976 单片机应用设计200例张洪润等编著 北京:北京航空航天大学出版社,2006程序#include vreg52.h#include vintrins.h#define uint unsigned int#

26、define uchar unsigned char#include DHTll.h#include DS1302.h#include TLC2543.H#include lcd_1602.hsbit Key_swi=P2人4;sbit Key_set=P2A5;sbit Key_add=P2A6;sbit Key_min=P2A7;sbit Beer =卩3人3;sbit LED_RED=P3A0;sbit LED_GRE=P3A1;bit flag_display=O;自动切换标志位=1显示时间和温湿度=0时多界面有按键决定bit flag_display1=0;bit display_f

27、lag=0;* 动态显示控制位uchar sw1_2=0;/ 键二,设置时间uchar sw2_2=0;/键二,设置温湿度报警值uchar sw3_2=0;建二,设置酒精浓度报警值uchar sw4_2=0;建二,设置烟雾浓度报警值uchar num1=0;功能切换uchar speed=0; /数据说新速度uint t0=0;delayms(uint z)uint m,n;for(m=z;m0;m-)for(n=124;n0;n-)void beer()Beer=0;delayms(30);Beer=1;t0=0;自动切换清零/Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx

28、 TxVVVVVVVVVVVVVV/llllllllllllll Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx Tx /void KKey_switch()功能键一if(!Key_swi)beer();if(!Key_swi & (sw1_2=0) & (sw2_2=0) & (sw3_2=0) & (sw4_2=0) =1时

29、,表示正在设置状态,不能却换到其他的状态flag_display=0;/自动切换标志位num1+;if(num1=4)num1=0;while(!Key_swi);switch(num1)case 0: init_xian(0x80,str5_1); init_xian(0xc0,str5_2); break; /case 1:init_xian(0x80,str6_l);init_xian(0xc0,str6_2);break; /case 2:init_xian(0x80,str7_1);init_xian(0xc0,str7_2);break; /case 3:init_xian(0x8

30、0,str8_1);init_xian(0xc0,str8_2);break; /2222222222222*/void KKey_set()/功能键二if(Key_set=O)设置beer();if(Key_set=0 & flag_display=0)switch(num1)case 0:sw1_2+;if(swl_2=7)swl_2=0;switch(swl_2)/ 温湿度设置case 0:确定光标消失display_flag=O;wr_com(OxOc);Init_DS1302();break; /case 1:光标移动到display_flag=1;wr_com(0x88);wr_c

31、om(OxOd);break; /case 2:display_flag=1;wr_com(0x8b);wr_com(OxOd);break; /case 3:display_flag=1;wr_com(0x8e);wr_com(OxOd);break; /case 4:display_flag=1;wr_com(0xc7);wr_com(OxOd);break; /case 5: display_flag=l; wr_com(Oxca); wr_com(OxOd); break; /case 6: display_flag=1; wr_com(Oxcd); wr_com(OxOd); bre

32、ak; /break;case 1:sw2_2+;if(sw2_22)sw2_2=0; switch(sw2_2)case 0:/温湿度设置确定光标消失display_flag=0;wr_com(OxOc);break; /case 1:光标移动到display_flag=1; wr_com(0xc5); wr_com(OxOd); break; /case 2: display_flag=l;wr_com(OxcE);break; /break; /case 2:酒精浓度设置sw3_2+;if(sw3_2=5)sw3_2=0;switch(sw3_2)case 0:确定光标消失display

33、_flag=0;wr_com(OxOc);break; /case 1:光标移动到display_flag=1;wr_com(0xc8);wr_com(OxOd);break; /case 2:光标移动到display_flag=1;wr_com(0xc7); wr_com(OxOd); break; /case 3:display_flag=l; wr_com(0xc6); wr_com(OxOd); break; /case 4:display_flag=1;wr_com(0xc5); wr_com(OxOd); break; /break; /case 3:光标移动到光标移动到sw4_2

34、+;if(sw4_2=5)sw4_2=0; switch(sw4_2)case 0:display_flag=0; wr_com(OxOc); break; /case 1:确定光标消失光标移动到display_flag=l;wr_com(0xc9);wr_com(OxOd);break; /case 2:光标移动到display_flag=1;wr_com(0xc8);wr_com(OxOd);break; /case 3:光标移动到display_flag=1;wr_com(0xc7);wr_com(OxOd);break; /case 4:光标移动到display_flag=1;wr_c

35、om(0xc6);wr_com(OxOd);break; /break; /while(Key_set=O);void KKey_add()if(Key_add=O)beer();if(Key_add=0)switch(numl)case 0:switch(sw1_2)/设置年月日及其时间case 0:break;case 1:year+;if(year99)year=0;lcd_display_ds1302();wr_com(0x88);break;case 2:month+;if(month12)month=1;lcd_display_ds1302();wr_com(0x8b);break

36、;case 3:day+; if(day31)day=l;lcd_display_dsl302();wr_com(0x8e);break; /case 4:hour+;if(hour23)hour=0;lcd_display_ds1302();wr_com(0xc7);break; /case 5:minute+;if(minute59)minute=0;lcd_display_ds1302(); wr_com(Oxca);break; /case 6:second+;if(second59)second=0;lcd_display_ds1302(); wr_com(Oxcd);break;

37、/break; /case 1:switch(sw2_2) /设置温湿度报警值case 0:break;case 1:设置温度T_num+;if(T_num=99)T_num=99;display_T_num();break;case 2:设置湿度H_num+;if(H_num=99)H_num=99;display_H_num();break;break;case 2:switch(sw3_2) 酒精浓度case 0:break;case 1:Alc_num+=1;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc8);brea

38、k; /case 2:Alc_num+=10;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc7);break; /case 3:Alc_num+=100;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc6);break; /case 4:Alc_num+=1000;if(Alc_num=4999)Alc_num=4999;display_Alc_num();wr_com(0xc5);break; /break; /case 3:switch(sw4_2) / 烟

39、雾浓度case 0:break;case 1:Smog_num+=1; if(Smog_num=4999)Smog_num=4999; display_Smog_num();wr_com(0xc9);break;case 2:Smog_num+=10; if(Smog_num=4999)Smog_num=4999; display_Smog_num();wr_com(0xc8);break;case 3:Smog_num+=100; if(Smog_num=4999)Smog_num=4999; display_Smog_num();wr_com(0xc7);break;case 4:Smog

40、_num+=1000; if(Smog_num=4999)Smog_num=4999;display_Smog_num();wr_com(0xc6);break;break;while(Key_add=O);void KKey_min()if(Key_min=O)beer();if(Key_min=O)switch(numl)case 0:switch(sw1_2) / 设置年月日及其时间case 0:break; /case 1:/温度报警值增加year-;if(yearv=0)year=99;lcd_display_ds1302();wr_com(0x88);break; /case 2:

41、month-; if(monthv=0)month=12; lcd_display_dsl302();wr_com(0x8b);break; /case 3:湿度报警值增加day-; if(dayv=0)day=31;lcd_display_ds1302(); wr_com(0x8e);break; /case 4:hour-; if(hourv0)hour=23; lcd_display_ds1302();wr_com(0xc7);break; /case 5:/温度报警值增加minute-; if(minutev0)minute=59; lcd_display_ds1302();wr_co

42、m(0xca);break; /case 6:/温度报警值增加second-;if(secondv0)second=59;lcd_display_dsl302(); wr_com(0xcd);break; /break; /case 1:switch(sw2_2) /case 0:break; /case 1:/温度报警值减小T_num_; if(T_numv=0)T_num=0; display_T_num();break; /case 2:H_num-; if(H_numv=0)H_num=0; display_H_num();break; /break; /case 2:switch(s

43、w3_2) /case 0:break;case 1:Alc_num-=1;if(Alc_numv=1000)Alc_num=1000;display_Alc_num();wr_com(0xc8);break; /case 2:Alc_num-=10;if(Alc_numv=1000)Alc_num=1000;display_Alc_num();wr_com(0xc7);break; /case 3:Alc_num-=100;if(Alc_numv=1000)Alc_num=1000;display_Alc_num();wr_com(0xc6);break; /case 4:Alc_num-=

44、1000;if(Alc_numv=1000)Alc_num=1000;display_Alc_num();wr_com(0xc5);break; /break; /case 3:switch(sw4_2) /case 0:break;case 1:Smog_num-=1;if(Smog_numv=1000)Smog_num=1000;display_Smog_num();wr_com(0xc9);break;case 2: Smog_num-=10; if(Smog_numv=1000)Smog_num=1000; display_Smog_num();wr_com(0xc8);break;c

45、ase 3: Smog_num-=100;if(Smog_numv=1000)Smog_num=1000;display_Smog_num();wr_com(0xc7);break;case 4:Smog_num-=1000;if(Smog_numv=1000)Smog_num=1000;display_Smog_num();wr_com(0xc6);break;break; /while(Key_min=O);void key()/功能切换KKey_switch();KKey_set();KKey_add();KKey_min();void init_xinxi()init_xian(0x9

46、0,str2_1);显示多功能传感器init_xian(0xd0,str2_2);delayms(2000);move_right();init_xian(0x80,str3_l);init_xian(0xc0,str3_2); delayms(2000);moveeft();init_xian(0x90,str4_1);init_xian(0xd0,str4_2); delayms(1500);move_right();init_xian(0x80,str5_1);init_xian(0xc0,str5_2); delayms(2000);moveeft();void switch_disp

47、lay()if(display_flag=0)if(flag_display=0)制作人制作人信息/*动态显示控制位delayms(1);speed+;if(speed=1000)speed=0;间隔采集数据switch(num1)case 0: receive_time(); lcd_display_ds1302();break;/case 1:if(speed=10)lcd_display_wenshidu();break;/case 2:if(speed=1)lcd_displa y_ji ujing();break;/case 3:if(speed=10)lcd_display_yan

48、wu();break;/case 4:Beer=0;break;/if(flag_display=1)if(flag_display1=1)init_xian(0x80,str5_2);init_xian(0xc0,str6_1);flag_display1=0; lcd_display_time_wenshi();void warning。/ 报警程序if(TH_data=T_nu m)&(numl=l)II(RH_data=H_ num)&(n uml=l)II(Alc_O=Alc_nu m)&(num 1=2) | (Smog_O=Smog_nu m)&(num 1=3)Beer=0;e

49、lse Beer=1;if(TH_data=T_num)LED_RED=0;else LED_RED=1;if(RH_data=H_num)LED_GRE=0;else LED_GRE=1;void init()TMOD=0x01;TH0=0x3c;TL0=0xb0;ET0=1;/定时器0中断允许位TR0=1;/定时器0运行控制位EA=1;void main()uint temp=0;init_display();液晶初始化init_xinxi();显示个人信息Init_DS1302();/时钟初始化init();中断初始化while(1)key(); switch_display();/ 功能切换warning。;/报警程序void time_0(void) interrupt 1TH0=0x3c;TL0=0xb0;if(flag_display=0)=1时,显示自动切换界面if(sw1_2=0) & (sw2_2=0) & (sw3_2=0) & (sw4_2=0) 如果在设置状态时不会自动切换t0+;if(t0600)/时间,20秒未操作显示温湿度时间界面flag_display=1;flag_display1=1;

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

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!