欢迎来到天天文库
浏览记录
ID:46005796
大小:1.85 MB
页数:20页
时间:2019-11-20
《基于51单片机酒精浓度监测仪设计与实现》由会员上传分享,免费在线阅读,更多相关内容在行业资料-天天文库。
1、基于51单片机酒精浓度监测仪设计与实现姓名:彭微学号:08231040指导老师:雷思孝设计背景随着中国经济的高速发展,人民生活水平的迅速提高,中国逐渐步入“汽车社会”,酒后驾车行为所造成事故越来越多,对社会的影响也越来越大,酒精正在成为越来越凶残的“马路杀手”。本研究设计了一种用于公共场所具有检测及报警功能的酒精浓度智能监测仪设计思路本设计主要基于51单片机来设计的。通过MQ-2对呼出气体中酒精浓度的反应以取样电压的形式送入到NE555的触发端,使NE555的输出端由低变成高电平,继电器KS吸合,并将转换的数据送入单片机进行分析处理,并判断是否醉酒驾车,如果是,则发光二极管
2、被点亮。为了下一次继续检测,我设置了解除报警功能按键。设计方案(系统框图)酒精输入电路复位电路时钟电路单片机发光二极管解除报警单片机AT89C51简介AT89C51是作为此系统的核心器件,具有以下主要特点:与MCS-51兼容4K字节可编程FLASH闪速存储器寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24MHz128字节内部RAM32个可编程I/O口线两个16位定时器/计数器5个中断源可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路单片机最小系统单片机是一种微控制器,任何为控制器正常工作最基本的条件是要有电源、时钟电路、复位信号,三者缺一部可。电源
3、模块是为了解决单片机容易受到干扰而出现程序乱飞的现象。单片机晶振的作用是为系统提供基本的时钟信号,通常一个系统共用一个晶振,便于各部分保持同步。复位电路作用是把一个例如状态机初始化到空状态。单片机最小系统图复位电路与时钟电路NE555模块简介NE555是一个用途很广且相当普遍的计时IC,只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉冲信号。555集成电路是8脚封装,双列直插型1脚为地。2脚为触发端。3脚为输出端。4脚是复位端。5脚为控制端。6脚为阈值端。7脚为放电端。8脚是电源端。酒精传感器MQ-2简介MQ-2传感器所使用的气敏材料是在清洁空气中电导率较低的二氧
4、化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。特点:灵敏度较高,长寿命、低成本,简单的驱动电路即可。图是传感器的基本测试电路。该传感器需要施加2个电压:加热器电压(VH)和测试电压(VC)。其中VH用于为传感器提供特定的工作温度。VC则是用于测定与传感器串联的负载电阻(RL)上的电压(VRL)。这种传感器具有轻微的极性,VC需用直流电源。在满足传感器电性能要求的前提下,VC和VH可以共用同一个电源电路。为更好利用传感器的性能,需要选择恰当的RL值。系统原理
5、图本设计主要基于51单片机来设计的。通过MQ-2对呼出气体中酒精浓度的反应以取样电压的形式送入到NE555的触发端,使NE555的输出端由低变成高电平,继电器KS吸合,并将转换的数据送入单片机进行分析处理,并判断是否醉酒驾车,如果是,则发光二极管被点亮。为了下一次继续检测,我设置了解除报警功能按键。硬件实物图软件设计在单片机开发过程中,经常用到两种语言:汇编语言和C语言。由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用系统程序的周期长,而且调试和排错也比较困难。而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能
6、丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。因此,本设计采用了C语言来开发。流程图开始开中断开关2按下?有信号输入?灯亮初始化延时约1s灯灭YNNY程序#include#defineuintunsignedint#defineucharunsignedcharsbitkey1=P1^0;sbitkey2=P3^2;sbitled=P1^1;ucharnum=0;voiddelayms(uintxms)//延时函数{uinti,j;for(i=xms;i>0;i--)for(j=110;j>0;j--);}void
7、dete()//检测函数{if(key1==0&&num==0)//如果key1按下并且num为0,执行下面的程序{led=0;}else{led=1;}}voidkeyscan(){if(key2==0)//key2键,解除报警用{delayms(10);if(key2==0){num=1;//num为1时,dete内条件不成立,报警解除}}}voidmain(){EA=1;//开总中断EX0=1;//开外部中断0IT0=1;//外部中断0边沿触发while(1){keyscan();//循环扫描按键
此文档下载收益归作者所有