1、基于基于51单片机酒精浓度监测仪设计与实现单片机酒精浓度监测仪设计与实现姓名:彭微姓名:彭微学号:学号:08231040指导老师:雷思孝指导老师:雷思孝设计背景设计背景 随着中国经济的高速发展,人民生活水平的迅速提高,中国逐渐步入“汽车社会”,酒后驾车行为所造成事故越来越多,对社会的影响也越来越大,酒精正在成为越来越凶残的“马路杀手”。 本研究设计了一种用于公共场所具有检测及报警功能的酒精浓度智能监测仪设计思路设计思路 本设计主要基于51单片机来设计的。 通过MQ-2对呼出气体中酒精浓度的反应以取样电压的形式送入到NE555的触发端,使NE555的输出端由低变成高电平,继电器KS吸合,并将转换
2、的数据送入单片机进行分析处理,并判断是否醉酒驾车,如果是,则发光二极管被点亮。 为了下一次继续检测,我设置了解除报警功能按键。 设计方案(系统框图)设计方案(系统框图)酒精输入电路复位电路时钟电路 单 片 机 发光二极管解除报警单片机单片机AT89C51简介简介 AT89C51是作为此系统的核心器件,具有以下是作为此系统的核心器件,具有以下主要特点:主要特点: 与MCS-51 兼容 4K字节可编程FLASH闪速存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 128字节内部RAM 32个可编程I/O口线 两个16位定时器/计数器 5个中断源 可编程串行通道
3、 低功耗的闲置和掉电模式 片内振荡器和时钟电路 单片机最小系统单片机最小系统 单片机是一种微控制器单片机是一种微控制器,任何为控制器正任何为控制器正常工作最基本的条件是要有电源、时钟常工作最基本的条件是要有电源、时钟电路、复位信号,三者缺一部可。电路、复位信号,三者缺一部可。 电源模块是为了解决单片机容易受到干扰而出现程序乱飞的现象。 单片机晶振的作用是为系统提供基本的时钟信号,通常一个系统共用一个晶振,便于各部分保持同步。 复位电路作用是把一个例如状态机初始化到空状态。单片机最小系统图单片机最小系统图复位电路与时钟电路NE555模块简介模块简介 NE555是一个用途很广且相当普遍的计时IC,
4、只需少数的电阻和电容,便可产生数位电路所需的各种不同频率之脉冲信号 。555集成电路是8脚封装,双列直插型 1脚为地。 2脚为触发端。 3脚为输出端。 4脚是复位端。 5脚为控制端。 6脚为阈值端。 7脚为放电端。 8脚是电源端。 酒精传感器酒精传感器MQ-2简介简介 MQ-2传感器所使用的气敏材料是在清洁空气中电导率较低的二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传感器的电导率随空气中可燃气体浓度的增加而增大。使用简单的电路即可将电导率的变化转换为与该气体浓度相对应的输出信号。 特点:特点:灵敏度较高,长寿命、低成本,简单的驱动电路即可。 图是传感器的基本测试电路。该传感器需要
5、施加2 个电压:加热器电压(VH)和测试电压(VC)。其中VH用于为传感器提供特定的工作温度。VC 则是用于测定与传感器串联的负载电阻(RL)上的电压(VRL)。这种传感器具有轻微的极性,VC 需用直流电源。在满足传感器电性能要求的前提下,VC 和VH 可以共用同一个电源电路。为更好利用传感器的性能,需要选择恰当的RL值。 系统原理图系统原理图 本设计主要基于51单片机来设计的。 通过MQ-2对呼出气体中酒精浓度的反应以取样电压的形式送入到NE555的触发端,使NE555的输出端由低变成高电平,继电器KS吸合,并将转换的数据送入单片机进行分析处理,并判断是否醉酒驾车,如果是,则发光二极管被点亮
6、。 为了下一次继续检测,我设置了解除报警功能按键。硬件实物图硬件实物图软件设计软件设计 在单片机开发过程中,经常用到两种语言:汇编语言和C语言。 由于汇编语言程序的可读性和可移植性都较差,采用汇编语言编写单片机应用系统程序的周期长,而且调试和排错也比较困难。 而C语言是一种编译型程序设计语言,它兼顾了多种高级语言的特点,并具备汇编语言的功能。C语言有功能丰富的库函数、运算速度快、编译效率高、有良好的可移植性,而且可以直接实现对系统硬件的控制。因此,本设计采用了C语言来开发。 流程图流程图开始开中断开关2按下?有信号输入?灯亮初始化延时约1s灯灭YNNY程序程序#include#define u
7、int unsigned int#define uchar unsigned charsbit key1=P10;sbit key2=P32;sbit led=P11;uchar num=0;void delayms(uint xms) /延时函数 uint i,j; for(i=xms;i0;i-) for(j=110;j0;j-);void dete() /检测函数 if(key1=0&num=0) /如果key1按下并且num为0,执行下面的程序 led=0; else led=1; void keyscan() if(key2=0) /key2键,解除报警用 delayms(10);
8、if(key2=0) num=1; /num为1时,dete内条件不成立,报警解除 void main() EA=1; /开总中断 EX0=1; /开外部中断0 IT0=1; /外部中断0边沿触发 while(1) keyscan(); /循环扫描按键函数 dete(); /循环扫描检测端 软件测试软件测试 软件的测试使用的软件是软件的测试使用的软件是Keil Vision2,它,它 是美国是美国Keil sofeware 公司出品的公司出品的51系列兼容系列兼容单片机单片机C语言开发系统。语言开发系统。 1. 建立一个工程项目,选择芯片,确定选项。建立一个工程项目,选择芯片,确定选项。 2.
9、建立汇编源文件或者建立汇编源文件或者C源文件。源文件。 3.用项目管理器生成各种应用文件。用项目管理器生成各种应用文件。 4.检查并修改源文件中的错误。检查并修改源文件中的错误。 5.编译连接通过后进行软件模拟仿真或者硬件编译连接通过后进行软件模拟仿真或者硬件在线仿真在线仿真 6. 编程操作。编程操作。 7. 应用。应用。软件测试(界面)软件测试(界面)硬件调试硬件调试 焊接前应对整个电路板进行检查。用万用表对印焊接前应对整个电路板进行检查。用万用表对印制的电路板线路进行检查,主要是检查印制的电制的电路板线路进行检查,主要是检查印制的电路板线路是否有断路的情况,如果检查没有问题,路板线路是否有
10、断路的情况,如果检查没有问题,则可以对元器件进行焊接。则可以对元器件进行焊接。 电路板焊接完成后,需要对每个元器件的引脚逐电路板焊接完成后,需要对每个元器件的引脚逐个进行检查,一方面是检查有没有引脚虚焊或与个进行检查,一方面是检查有没有引脚虚焊或与其他信号线短路,另一方面是对器件引脚功能的其他信号线短路,另一方面是对器件引脚功能的再检查,查看设计是否正确。检查电路焊接没有再检查,查看设计是否正确。检查电路焊接没有问题后,则可以进行上电测试。问题后,则可以进行上电测试。 总结总结 经过这几个月的努力,我终于在老师的经过这几个月的努力,我终于在老师的指导了完成了课题。虽然它还有诸多需指导了完成了课题。虽然它还有诸多需要完善的地方,但是拿着这件设计,我要完善的地方,但是拿着这件设计,我仍然有止不住的兴奋。仍然有止不住的兴奋。 通过这次课题的研究,使我真正理解了通过这次课题的研究,使我真正理解了实践试检验真理的唯一标准的真谛。凡实践试检验真理的唯一标准的真谛。凡事自己都得去实践一下,只有这样,我事自己都得去实践一下,只有这样,我才会在逆才会在逆境中前进。境中前进。 谢谢各位老师!谢谢各位老师!