标题: 51单片机防酒后驾驶 MQ-3酒精检测系统的仿真 [打印本页]
作者: wonderchen0000 时间: 2017-4-11 13:51
标题: 51单片机防酒后驾驶 MQ-3酒精检测系统的仿真
基于单片机的防酒后驾驶控制系统的仿真图:
课题任务的内容和要求
(1) 学习气体测量传感器的原理和使用,并完成数据采集、调理电路的设计;
(2) 学习单片机系统的设计及编程,完成系统整体设计;
(3) 通过不同颜色显示灯及触发措施,对应三种酒精含量范围(醉酒状态、少量饮酒状态、正常状态),;
(4) 测量结果动态显示。
酒精传感器采集酒精浓度信息,将其转化为变化的电压信号。电压信号经过处理后通过A/D转换电路实现对信号的模数转换,然后送至单片机系统进行逻辑判断处理。如果驾驶员未饮酒,LED显示绿灯,汽车正常启动;如果驾驶员处于少量饮酒状态,LED显示黄灯,且会发出声光报警;如果驾驶员处于醉酒状态时,LED显示红灯,且会控制继电器动作,自动切断汽车启动系统电源,从而使汽车无法启动,有效的防止驾驶员酒后驾车。
流程图:
MQ-3模块的资料:
单片机源程序:
- #include<reg52.h>
- #include<1602.h>
- sbit CL=P2^2;
- sbit ST=P2^3;
- sbit OE=P2^5;
- sbit EOC=P2^4; //这四个是定义AD转换器的
- sbit DOUT=P3^2; //传感器TTL输出接单片机外部中断0
- sbit SK=P2^6; //蜂鸣器
- uchar code WU[]=" Welcome use ";
- uchar code TS[]="Alcohol Tester";
- uchar code YC[]=" You Can Drive!";
- uchar code YN[]=" It's Dangerous!";
- uchar code GD[]="Drive carefully";
- uchar code AP[]="Watch out,Please";
- uchar code YD[]=" You have drunk";
- uchar code FS[]="Forbidden Start!";
- uchar nd[]="Alcohol: ppm ";
- uchar i=0,flag=0;
- uint Z;
- /*******************蜂鸣器报警**************/
- void Beep(uchar t)
- {
- uchar i,j;
- for(i=0;i<200;i++)
- {
- SK=~SK;
- for(j=0;j<t;j++);
- }
- SK=1;
- }
- /*******************AD转换**************/
- void AD0809()
- {
- ST=0;
- ST=1;
- ST=0; // 启动ADC0809
- while(EOC==0); // 等待数据转化
- OE=1; // 传输数据
- Z=P1;
- OE=0; // 关闭传输数据
- delay(1);
- Z=Z*500.0/255;
- nd[10]=(Z/100-1)*2+Z%100/10/5+'0';
- nd[11]=(Z%100/10%5)*2+'0';
- nd[12]='0';
- }
- /*******************主函数**************/
- void main()
- {
- lcd_init();
- lcd_pos(0);
- dis_date(WU);
- lcd_pos(0x41);
- dis_date(TS);
- delay(2000);
- EA=1; // 开放总中断
- EX0=1; // 允许外部中断0
- ET0=1; // 允许定时器0中断
- TCON=0x01; // 外部中断0下降沿触发
- TMOD=0X01; // 定时器工作方式1
- TR0=1; // 打开定时器0
- TH0=(65536-100)/256;
- TL0=(65536-100)%256; //设置T0工作频率
- OE=0;
- while(1)
- {
- AD0809();
- if(flag==1) // 进入酒精检测模式
- {
- lcd_pos(0);
- dis_date(nd);
- if(nd[10]>0x32)
- {
- P3=0x3b; // 醉酒饮酒
- lcd_pos(0x40);
- dis_date(FS);
- }
- else
- {
- P3=0xdb; //少量模式
- lcd_pos(0x40);
- dis_date(YN);
-
- …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码
下载:
酒精检测.zip
(850.63 KB, 下载次数: 472)
-
0.png
(212.89 KB, 下载次数: 169)
作者: qwsiuifua 时间: 2018-5-27 09:44
很好,帮助很大,你值得拥有
作者: wwqqq 时间: 2018-5-27 16:33
不错不错,参考参考
作者: 845504622 时间: 2018-5-30 22:52
为什么运行不了啊
作者: a1357787200 时间: 2018-7-2 17:28
挺好的
作者: 51SPCCX 时间: 2018-11-4 19:56
不错不错,楼主棒棒哒
作者: 51SPCCX 时间: 2018-11-4 19:57
不错不错,楼主棒棒哒
作者: 1ychee 时间: 2018-11-5 08:47
说明很仔细,不错
作者: adminzzz 时间: 2019-4-6 17:38
不错不错,楼主棒棒哒
作者: 嘻哈666 时间: 2019-4-9 20:32
可以
作者: 112231313 时间: 2019-4-13 10:40
帮助很大
作者: 112231313 时间: 2019-4-13 11:02
下面两个灯没反应
作者: 1635400828 时间: 2019-4-17 15:20
第二种程度的酒驾,汽车能正常启动吗?
作者: touwenzik 时间: 2019-6-18 13:03
lz,程序中ad数据转换那一块什么意思啊,能详细说明吗?是如何计算的
作者: zhanghua20112 时间: 2019-10-10 12:11
可以配在汽车上,防止酒驾
作者: 浩哥哥哥呀 时间: 2019-10-10 16:09
不错,现代社会更需要这样的高科技
作者: sonkouri 时间: 2019-10-12 10:51
这个估计还是只能拿来做玩具吧,
作者: 闫大凯 时间: 2019-10-13 15:58
作为毕设会不会简单了点,导师不给过。。。。
作者: 闫大凯 时间: 2019-10-18 23:57
汽车无法启动,那是需要汽车模型或者车轮的硬件吗?反正图里有没有包括这一部分,你文件中只是提到了继电器
作者: 莫超人 时间: 2019-10-25 11:21
很喜欢感谢楼主
作者: 我西爸爸 时间: 2019-11-12 19:09
nice!!
作者: fuyouzhe 时间: 2019-12-5 09:18
有很大的帮助,不错
作者: 八个上千 时间: 2019-12-24 11:52
能用么做过的???
作者: 叶瑰 时间: 2020-6-2 11:24
下载了,为什么浓度调到最低还是会显示喝酒了,还有就是报警不应该检测到浓度再报吗?还得自己按键才可以
作者: 桔梗谣 时间: 2020-6-2 18:18
运行这个需要下载哪些软件呢?
作者: 愤怒的小呆头 时间: 2020-11-26 11:42
打开仿真图时,全部LED灯都是显示黄色。应该将第一个LED没饮酒换成绿色的,第四个LED灯锁车换成红色,更加明显表达你的要求吧。还好调节电压的那里,检测到有醉驾再调回没喝醉再调喝醉,蜂鸣器不会响也没有显示浓度,是还有点缺陷吧?
作者: 关中小河 时间: 2020-12-4 18:39
值得学习和总结
作者: 我爱我家123 时间: 2020-12-9 20:09
请问那个酒精传感器怎么做呢?
作者: 初音未来 时间: 2021-4-30 17:10
为啥下载之后再调数值显示屏和LED还是不会发生变化?
作者: YU7297 时间: 2022-10-14 21:56
有借鉴作用,好厉害
作者: 0186 时间: 2022-10-29 15:31
ad转换那里是不是ppm转换的有问题?该怎么改的知道不?nd[]是什么还是没搞清楚,判断语句也有问题啊啊啊啊
欢迎光临 (http://www.51hei.com/bbs/) |
Powered by Discuz! X3.1 |