基于單片機(jī)的防酒后駕駛控制系統(tǒng)的仿真圖:
課題任務(wù)的內(nèi)容和要求 (1) 學(xué)習(xí)氣體測(cè)量傳感器的原理和使用,并完成數(shù)據(jù)采集、調(diào)理電路的設(shè)計(jì); (2) 學(xué)習(xí)單片機(jī)系統(tǒng)的設(shè)計(jì)及編程,完成系統(tǒng)整體設(shè)計(jì); (3) 通過(guò)不同顏色顯示燈及觸發(fā)措施,對(duì)應(yīng)三種酒精含量范圍(醉酒狀態(tài)、少量飲酒狀態(tài)、正常狀態(tài)),; (4) 測(cè)量結(jié)果動(dòng)態(tài)顯示。 酒精傳感器采集酒精濃度信息,將其轉(zhuǎn)化為變化的電壓信號(hào)。電壓信號(hào)經(jīng)過(guò)處理后通過(guò)A/D轉(zhuǎn)換電路實(shí)現(xiàn)對(duì)信號(hào)的模數(shù)轉(zhuǎn)換,然后送至單片機(jī)系統(tǒng)進(jìn)行邏輯判斷處理。如果駕駛員未飲酒,LED顯示綠燈,汽車正常啟動(dòng);如果駕駛員處于少量飲酒狀態(tài),LED顯示黃燈,且會(huì)發(fā)出聲光報(bào)警;如果駕駛員處于醉酒狀態(tài)時(shí),LED顯示紅燈,且會(huì)控制繼電器動(dòng)作,自動(dòng)切斷汽車啟動(dòng)系統(tǒng)電源,從而使汽車無(wú)法啟動(dòng),有效的防止駕駛員酒后駕車。 流程圖:
MQ-3模塊的資料:
單片機(jī)源程序:
- #include<reg52.h>
- #include<1602.h>
- sbit CL=P2^2;
- sbit ST=P2^3;
- sbit OE=P2^5;
- sbit EOC=P2^4; //這四個(gè)是定義AD轉(zhuǎn)換器的
- sbit DOUT=P3^2; //傳感器TTL輸出接單片機(jī)外部中斷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;
- /*******************蜂鳴器報(bào)警**************/
- void Beep(uchar t)
- {
- uchar i,j;
- for(i=0;i<200;i++)
- {
- SK=~SK;
- for(j=0;j<t;j++);
- }
- SK=1;
- }
- /*******************AD轉(zhuǎn)換**************/
- void AD0809()
- {
- ST=0;
- ST=1;
- ST=0; // 啟動(dòng)ADC0809
- while(EOC==0); // 等待數(shù)據(jù)轉(zhuǎn)化
- OE=1; // 傳輸數(shù)據(jù)
- Z=P1;
- OE=0; // 關(guān)閉傳輸數(shù)據(jù)
- 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';
- }
- /*******************主函數(shù)**************/
- void main()
- {
- lcd_init();
- lcd_pos(0);
- dis_date(WU);
- lcd_pos(0x41);
- dis_date(TS);
- delay(2000);
- EA=1; // 開(kāi)放總中斷
- EX0=1; // 允許外部中斷0
- ET0=1; // 允許定時(shí)器0中斷
- TCON=0x01; // 外部中斷0下降沿觸發(fā)
- TMOD=0X01; // 定時(shí)器工作方式1
- TR0=1; // 打開(kāi)定時(shí)器0
- TH0=(65536-100)/256;
- TL0=(65536-100)%256; //設(shè)置T0工作頻率
- OE=0;
- while(1)
- {
- AD0809();
- if(flag==1) // 進(jìn)入酒精檢測(cè)模式
- {
- 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);
-
- …………限于本文篇幅 余下代碼請(qǐng)從51黑下載附件…………
復(fù)制代碼
下載:
酒精檢測(cè).zip
(850.63 KB, 下載次數(shù): 472)
2017-4-11 13:51 上傳
點(diǎn)擊文件名下載附件
|