基于51单片机酒精浓度监测仪设计与实现

更新时间:2023-05-30 00:57:01 阅读量: 实用文档 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

基于51单片机酒精浓度监测仪设计与实现

姓名:彭微 学号:08231040 指导老师:雷思孝

设计背景 随着中国经济的高速发展,人民生 活水平的迅速提高,中国逐渐步入 “汽车社会”,酒后驾车行为所造 成事故越来越多,对社会的影响也 越来越大,酒精正在成为越来越凶 残的“马路杀手”。 本研究设计了一种用于公共场所具 有检测及报警功能的酒精浓度智能 监测仪

设计思路 本设计主要基于51单片机来设计的。 通过MQ-2对呼出气体中酒精浓度的反应 以取样电压的形式送入到NE555的触发端, 使NE555的输出端由低变成高电平,继电 器KS吸合,并将转换的数据送入单片机 进行分析处理,并判断是否醉酒驾车, 如果是,则发光二极管被点亮。 为了下一次继续检测,我设置了解除报 警功能按键。

设计方案(系统框图)

酒精输入电路

解除报警

片 复位电路 发光二极管

机时钟电路

单片机AT89C51简介 AT89C51是作为此系统的核心器件,具有以下 主要特点: 与MCS-51 兼容 4K字节可编程FLASH闪速存储器 寿命:1000写/擦循环 数据保留时间:10年 全静态工作:0Hz-24MHz 128字节内部RAM 32个可编程I/O口线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路

单片机最小系统单片机是一种微控制器,任何为控制器正 常工作最基本的条件是要有电源、时钟 电路、复位信号,三者缺一部可。 电源模块是为了解决单片机容易受到干扰而出 现程序乱飞的现象。 单片机晶振的作用是为系统提供基本的时钟信 号,通常一个系统共用一个晶振,便于各部分 保持同步。 复位电路作用是把一个例如状态机初始化到空 状态。

单片机最小系统图复位电路与时钟电路

NE555模块简介 NE555是一个用途很广且相当普遍 的计时IC,只需少数的电阻和电容, 便可产生数位电路所需的各种不同 频率之脉冲信号 。555集成电路是8 脚封装,双列直插型 1脚为地。 2脚为触发端。 3脚为输出端。 4脚是复位端。 5脚为控制端。 6脚为阈值端。 7脚为放电端。 8脚是电源端。

酒精传感器MQ-2简介MQ-2传感器所使用的气敏材料是在清洁空气中电导率较低的 二氧化锡(SnO2)。当传感器所处环境中存在可燃气体时,传 感器的电导率随空气中可燃气体浓度的增加而增大。使用简 单的电路即可将电导率的变化转换为与该气体浓度相对应的 输出信号。 特点:灵敏度较高,长寿命、低成本,简单的驱动电路即可。

图是传感器的基本测试电路。该传感器需要施加2 个电压

: 加热器电压(VH)和测试电压(VC)。其中VH用于为传感 器提供特定的工作温度。VC 则是用于测定与传感器串联的负 载电阻(RL)上的电压(VRL)。这种传感器具有轻微的极 性,VC 需用直流电源。在满足传感器电性能要求的前提下, VC 和VH 可以共用同一个电源电路。为更好利用传感器的性 能,需要选择恰当的RL值。

系统原理图

本设计主要基于51单片机来设计的。 通过MQ-2对呼出气体中酒精浓度的反应以取样电压的形式送入到 NE555的触发端,使NE555的输出端由低变成高电平,继电器KS吸合,并 将转换的数据送入单片机进行分析处理,并判断是否醉酒驾车,如果是, 则发光二极管被点亮。 为了下一次继续检测,我设置了解除报警功能按键。

硬件实物图

软件设计 在单片机开发过程中,经常用到两种语言: 汇编语言和C语言。 由于汇编语言程序的可读性和可移植性都较 差,采用汇编语言编写单片机应用系统程序 的周期长,而且调试和排错也比较困难。 而C语言是一种编译型程序设计语言,它兼顾 了多种高级语言的特点,并具备汇编语言的 功能。C语言有功能丰富的库函数、运算速度 快、编译效率高、有良好的可移植性,而且 可以直接实现对系统硬件的控制。因此,本 设计采用了C语言来开发。

流程图开始

初始化

开中断

Y 开关2按下? 延时约1s

N N 有信号输入?

Y

灯亮

灯灭

程序 #include<reg52.h> #define uint unsigned int #define uchar unsigned char sbit key1=P1^0; sbit key2=P3^2; sbit led=P1^1; uchar num=0; void delayms(uint xms) //延时函数 { uint i,j; for(i=xms;i>0;i--) for(j=110;j>0;j--); } void dete() //检测函数 { if(key1==0&&num==0) //如果key1按下并且num为0,执行下面的程序 { led=0; } else { led=1; } }

void keyscan() { if(key2==0) //key2键,解除报警用 { delayms(10); if(key2==0) { num=1; //num为1时,dete内条件不成立,报警解除 } } } void main() { EA=1; EX0=1; IT0=1; while(1) { keyscan(); dete(); } }

//开总中断 //开外部中断0 //外部中断0边沿触发

//循环扫描按键函数 //循环扫描检测端

软件测试 软件的测试使用的软件是Keil μ Vision2,它 是美国Keil sofeware 公司出品的51系列兼容 单片机C语言开发系统。 1. 建立一个工程项目,选择芯片,确定选项。 2.建立汇编源文件或者C源文件。 3.用项目管理器生成各种应用文件。 4.检查并修改源文件中的错误。 5.编译连接通过后进行软件模拟仿真或者硬件 在线仿真 6. 编程操作。 7. 应用。

软件测试(界

面)

硬件调试 焊接前应对整个电路板进行检查。用万用表对印 制的电路板线路进行检查,主要是检查印制的电 路板线路是否有断路的情况,如果检查没有问题, 则可以对元器件进行焊接。 电路板焊接完成后,需要对每个元器件的引脚逐 个进行检查,一方面是检查有没有引脚虚焊或与 其他信号线短路,另一方面是对器件引脚功能的 再检查,查看设计是否正确。检查电路焊接没有 问题后,则可以进行上电测试。

总结 经过这几个月的努力,我终于在老师的

指导了完成了课题。虽然它还有诸多需要完善的地方,但是拿着这件设计,我 仍然有止不住的兴奋。 通过这次课题的研究,使我真正理解了 实践试检验真理的唯一标准的真谛。凡 事自己都得去实践一下,只有这样,我 才会在逆境中前进。

谢谢各位老师!

本文来源:https://www.bwwdw.com/article/6074.html

Top