|
本设计是以STC15W4K32S4单片机芯片为核心,通过MQ-3酒精传感器检测驾驶员呼出气体的酒精含量,判断是否超过安全驾驶标准,而且要求通过硬件系统处理,能够显示该酒精浓度,使驾驶员能够看清自己的酒精含量,所以需要选择一种显示仪器来显示驾驶员呼出气体酒精浓度值,本次设计选用LCD1602液晶屏。为了能够警示驾驶员不要酒后驾驶,本系统中设计了一种报警系统,能够在驾驶员酒后驾驶时,发出警告提示。
半导体方式的MQ-3酒精传感器具有灵敏度高、电路简单、使用方便、所需费用低、稳定性好以及寿命长等优点,可以把气体信号转换为电压信号输出。MQ-3酒精传感器可用于机动车驾驶员呼气中酒精浓度的检测,以及其它严禁酒后操作的现场环境探测,也可用于其它场所的乙醇蒸气勘测工作等。MQ-3酒精传感器的实物中包含有6只针状管脚,其中4个管脚(两个A和两个B)用于信号读取,两个H脚用于提供加热电流。
部分代码: [AppleScript] 纯文本查看 复制代码 #include "IOinit.h"
#include "delay.h"
#include "liquidcrystal1602.h"
#include "neibuad.h"
#define uint unsigned int
#define uchar unsigned char
sbit k1=P3^5;
sbit k2=P3^6;
sbit k3=P3^7;
sbit fmq=P2^3;
sbit jdq=P2^2;
uchar concentration;//报警浓度
void set_up()
{
uchar xs[5];
display_characters1602(0,0,"setupcallthepolice");
display_characters1602(1,3,"ML");
while(1)
{
xs[0]='0'+concentration/100;
xs[1]='0'+concentration%100/10;
xs[2]='0'+concentration%10;
xs[3]='\0';
display_characters1602(1,0,&xs[0]);
if(k1==0)//退出此程序
{
while(k1==0);
break;
}
if(k2==0&&concentration<100)//加报警浓度
{
concentration++;
delay_ms(50);
}
if(k3==0&&concentration>5)//减报警浓度
{
concentration--;
delay_ms(50);
}
}
}
void baoj(uchar q,uint w)//报警次数与报警速度
{
uchar e;
for(e=0;e<q;e++)
{
fmq=0;
delay_ms(w);
fmq=1;
delay_ms(w);
}
}
void main()
{
uint q;
uchar xs[10];
io_init();
liquid1602crystal();
init_neibuad();
display_characters1602(0,0," Alcohol alarm");
display_characters1602(1,4,"ML ML");
concentration=50;
while(1)
{
q=(float)(read_neibuad(0)*100.0/1023.0)*1.0;//对应100%毫升
xs[0]='0'+q/100;
xs[1]='0'+q%100/10;
xs[2]='0'+q%10;
xs[3]='\0';
xs[4]='0'+concentration/100;
xs[5]='0'+concentration%100/10;
xs[6]='0'+concentration%10;
display_characters1602(1,1,&xs[0]);
display_characters1602(1,9,&xs[4]);
if(k1==0)//进入设置界面
{
while(k1==0);
set_up();//设置报警值
}
if(q>concentration)
{
jdq=0;
baoj(3,100);
jdq=1;
}
}
}
PCB图
仿真图
|