【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT)

这篇具有很好参考价值的文章主要介绍了【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT)

资料要求

包含此题目毕业设计全套资料:全套毕业设计源资料(精品)
原理图工程文件
原理图截图
仿真模型工程文件
仿真截图
仿真视频
答辩论文,低重复率文档,24517字
英文文献及翻译
开题报告
任务书
答辩PPT

任务书

主要研究内容:
司机饮酒驾车已成为交通事故高发的原因之一,为预防酒驾的发生,文中设计了一种基于单片机的防酒驾检测系统。系统首先判断驾驶位上是否有人,如果有人,则启动酒精检测仪,收集车内的酒精浓度并判断,如果达到酒驾或醉驾状态,则自动断开车内启动电路,使车辆无法启动,实现预防酒驾的目的。
方法:
通过图书、期刊、网络等途径查阅相关文献资料,研究单片机、传感器、声光报警等知识。
要求:
1、确定系统总体设计方案,给出设计方案的结构框图;
2、利用仿真软件(如:Proteus)完成仿真电路的具体设计;
3、利用编程软件(如:Keil)完成编程;
4、对所设计的系统进行仿真调试,实现防酒驾检测的功能。

设计说明书

摘要

本文将使用STC89C52单片机作为主要控制器对系统进行设计,在系统组成中将由酒精浓度传感器、ADC放大器、显示器、按键,人体检测器等作为主要器件设计一款防酒驾检测系统。在车辆中将对人体进行检测,检查到有人后将开启酒精检测功能,如达到酒精浓度阈值则车辆将不会被启动,反之则可以启动个车辆。通过此方案可以有效的防止交通事故的发生,保证交通安全。本系统将通过硬件电路搭建,编程,最后使用仿真软件Proteus对系统进行仿真运行。保证系统运行安全可靠。

设计框架架构

【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT),课程设计,单片机,mongodb

前 言 1
第一章 绪 论 2
第一节 研究背景 2
第二节 国内研究情况 3
第三节 国外研究情况 3
第四节 本文的主要研究内容 4
第五节 本章小结 5
第二章 防酒驾检测系统方案设计 6
第一节 系统功能分析 6
第二节 系统主要元器件选型 7
一、单片机选型 7
二、显示器选型 8
第三节 系统硬件总框图 8
第四节 本章小结 9
第三章 酒精浓度检测系统硬件电路设计 10
第一节 主控制器最小系统设计 10
一、52单片机介绍 10
二、单片机最小系统电路设计 11
第二节 电源模块设计 12
第三节 按键电路模块设计 13
第四节 LED显示模块电路设计 13
第五节 LCD液晶显示模块电路设计 14
第六节 酒精浓度及人体检测模块电路设计 16
一、酒精浓度检测电路设计 16
二、人体检测电路设计 16
第七节 蜂鸣器报警模块电路设计 17
第八节 系统总电路图设计 17
第九节 本章小结 19
第四章 酒精浓度检测系统的软件设计 20
第一节 软件开发工具介绍 20
第二节 软件总架构设计 21
第三节 按键模块程序设计 22
第四节 LCD液晶显示模块程序设计 23
第五节 酒精浓度检测模块程序设计 24
第六节 蜂鸣器报警及LED模块程序设计 25
第七节 本章小结 26
第五章 酒精浓度检测系统的仿真实现 27
第一节 仿真开发工具介绍 27
第二节 仿真电路搭建及调试 28
第三节 系统仿真测试 28
一、人体传感器未触发状态 28
二、人体传感器触发状态 30
第四节 本章小结 33
总 结 34
致 谢 35
参考文献 36
附 录 38
一、英文原文 38
二、英文翻译 43
三、工程图纸 48
四、源代码 49

设计说明书及设计文件

【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT),课程设计,单片机,mongodb【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT),课程设计,单片机,mongodb

低重复率文档,24517字
【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT),课程设计,单片机,mongodb

源码展示

【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT),课程设计,单片机,mongodb文章来源地址https://www.toymoban.com/news/detail-772755.html

/*此处的蜂鸣器是NPN型的*/
#include "reg52.H"
#include "1602.h"
#include "ADC0832.h"
#define uchar unsigned char
#define uint  unsigned int
//#include "eeprom52.h"
//声明常量
#define ALCH       80       //报警值
//K_MG_MV和K_ZERO为传感器校准系数,要根据每个MQ-3模块校准
#define K_MG_MV    80/160  //传感器灵敏度系数
#define K_ZERO     20      //传感器零点漂移
//定义按键
sbit Key_Up = P3^6;
sbit Key_Down = P3^7;
//定义LED报警灯
sbit Led_Warn1 = P3^4;
sbit Led_Warn2 = P3^5;
sbit beep=P1^4;		   //蜂鸣器IO口
//定义标识
volatile bit FlagStartAL = 0;  //开始转换标志
volatile bit FlagKeyPress = 0; //有键弹起标志
//全局变量定义
uchar Threshold;	           //酒精浓度上限报警值
uint  ALCounter;                //酒精转换计时器
long   ALValue;                   //酒精测量值
float ALtemp;                    //计算临时变量
uchar n;
uint keyvalue, keyUp, keyDown; //键值
char * pSave;                  //EEPROM存盘用指针
//函数声明
void Data_Init();
void Timer0_Init();
void Port_Init();
void ADC_Init();
uchar GetADVal();
void KeyProcess(uint );
void DELAY(unsigned int t)
{
	while(t!=0)
	t--;
}
//数据初始化
void Data_Init()
{
   ALCounter = 30;
   ALValue = 0;
   Led_Warn1 = 1;
   Led_Warn2 = 2;
   keyvalue = 0;
   keyUp = 1;
   keyDown = 1;
}
void di()
{
   beep = 0;
   DELAY(500);
   beep = 1;
}
void Timer0_Init()
{
	ET0 = 1;        //允许定时器0中断
	TMOD = 0x01;       //定时器工作方式选择
	TL0 = (65536-2000)%256;
	TH0 = (65536-2000)/256;     //定时器赋予初值
	TR0 = 1;        //启动定时器
}
//定时器0中断
void Timer0_ISR (void) interrupt 1 using 0
{
	TL0 = (65536-2000)%256;
	TH0 = (65536-2000)/256;     //定时器赋予初值
	//每1秒钟启动一次AD转换
    ALCounter ++;
    if (ALCounter >= 500)
    {
       FlagStartAL = 1;
	   ALCounter = 0;
    }
}
//按键处理程序,参数为键值,1为Up键,2为Down键
void KeyProcess(uint num)			  //设置按键 调节报警浓度
{
   switch (num)
   {
      case 1:
	     if (Threshold<255) Threshold++;
	     break;
	  case 2:
	     if (Threshold>1) Threshold--;
	     break;
	  default:
	     break;
   }
   if ((Threshold>=255)||(Threshold<0)) Threshold = 80;
   	LCD1602_write(0,0xc6);
	if(Threshold>9)
	LCD1602_write(1,0x30+Threshold/10%10);
	else 
	LCD1602_writebyte(" ");
	LCD1602_write(0,0xc7);
	LCD1602_write(1,0x30+Threshold%10);
//   L1602_int(2,5,Threshold);
}
void main()
{
   Threshold = 15;	/*此处是事先设定的浓度,这个值程序可以改*/
   LCD1602_cls();				  
 //  L1602_init();
   EA = 0;
   Data_Init();     //数据初始化
   Timer0_Init();   //定时器0初始化 
   EA = 1;		 //打开中断
   LCD1602_write(0,0x80);
   LCD1602_writebyte("Al:     mg/100ml");
   LCD1602_write(0,0xc0);
   LCD1602_writebyte("Th:     mg/100ml");
//   L1602_string(1,1,"Al:     mg/100ml");	 //显示当前浓度值
 //  L1602_string(2,1,"Th:     mg/100ml");	 //显示报警浓度值
	LCD1602_write(0,0xc6);
	if(Threshold>9)
	LCD1602_write(1,0x30+Threshold/10%10);
	else 
	LCD1602_writebyte(" ");
	LCD1602_write(0,0xc7);
	LCD1602_write(1,0x30+Threshold%10);
//   L1602_int(2,5,Threshold);
   while(1)
   {
//       if(n<40)
//		n++;
//		else
//		n=0;
      //如果FlagStartAL标志置位,则进行AD转换
		 if (FlagStartAL == 1)
		 {	
	         ALValue = (long)500 * A_D(0) / 256;        //8位ADC,首先得到电压值,单位10毫伏
		     ALValue = ALValue - K_ZERO;              //首先减去零点漂移
			 if (ALValue < 0) ALValue = 0;			  
			 ALValue = ALValue * K_MG_MV;             //将mV转变成mg/100L,K_MG_MV系数需要校准
			LCD1602_write(0,0x85);
			if(ALValue>99)
			LCD1602_write(1,0x30+ALValue/100%10);
			else 
			LCD1602_writebyte(" ");  
			LCD1602_write(0,0x86);
			if(ALValue>9)
			LCD1602_write(1,0x30+ALValue/10%10); 
			else 
			LCD1602_writebyte(" ");
			LCD1602_write(0,0x87);
			LCD1602_write(1,0x30+ALValue%10);         
	  //       L1602_int(1,5,(int)ALValue);			 
		    FlagStartAL = 0;
	    }
		if (ALValue > Threshold)
			  {      
			         Led_Warn2 = 1;
					 if(n<20)
						{
						    di();
							Led_Warn1 = 0;
						}
						else
						{
						    beep = 0;
							Led_Warn1 = 1;
						}
					
			  }   //超过阈值,则 Led_Warn1灯报警,否则报警灯灭。
		    else 
			{
				Led_Warn1 = 1;
				Led_Warn2 = 0;
				beep=0;
			}	 
	   //键盘查询,在弹起时响应
	   if ((Key_Up)&&(keyUp==0)) {FlagKeyPress = 1; keyvalue = 1;}
       else if ((Key_Down)&&(keyDown==0)) {FlagKeyPress = 1; keyvalue = 2;}
	   if (FlagKeyPress == 1)
	   {
          KeyProcess(keyvalue);
          FlagKeyPress = 0;           
	   }
       if (!Key_Up) keyUp = 0;
	   else keyUp = 1;
       if (!Key_Down) keyDown = 0;
	   else keyDown = 1;
	   DELAY(100); 
   }  

到了这里,关于【毕业设计】62-基于单片机的防酒驾\酒精浓度检测系统设计研究(原理图、源代码、仿真工程、答辩论文、答辩PPT)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 【单片机毕业设计】【mcuclub-dz-196】基于单片机下的新型智能花盆设计

    项目名:基于单片机下的新型智能花盆设计 项目名:花盆(实物) 项目编号:mcuclub-dz-196 单片机类型:STM32F103C8T6 具体功能: 1、通过防水式DS18B20测量土壤温度,当温度高于设置最大值时,进行风扇降温,低于设置最大值,进行防水加热 2、通过土壤湿度传感器检测湿度值,

    2024年02月19日
    浏览(96)
  • 【单片机毕业设计】【mcuclub-dz-032】基于单片机的智能门禁控制系统设计

    项目名:基于单片机的门禁的设计 单片机:STM32F103C8T6 mcuclub-dz-032 功能简介: 1、通过扫码枪进行扫描二维码,当二维码识别成功,10s内需触发红外避障管,并通过红外测温模块进行测温,如果温度正常,则自动开锁,如果温度异常,则声光报警3次,锁不打开 2、通过RFID进行

    2024年01月18日
    浏览(73)
  • 【毕业设计】基于单片机控制的交通灯毕业设计(附源代码)

    目 录 摘   要 Abstract 前   言 一、工程简介 ( 一)、概述 ( 二 ) 、 工艺 流程图 二、工程设计 (一)、控制方案的确定 (二)、硬件部分 ( 1 )、交通灯控制系统的硬件设计 ( 2 )、硬件系统的设计具备以下原则 ( 3 ) 、硬件结构框图 (如图 3 所示) ( 4 ) 、交通灯控

    2024年04月23日
    浏览(80)
  • 【单片机毕业设计】【mcuclub-dz-177】基于32单片机的自动扶梯控制系统设计

    项目名:基于32单片机的自动扶梯控制系统设计 项目名:扶梯(实物) 项目编号:mcuclub-dz-177 单片机类型:STM32F103C8T6 具体功能: 1、通过MX1508驱动两个直流电机模拟上下扶梯(一个正转代表上行,一个反转代表下行) 2、每个扶梯都有两个红外对射管,进行人数计数,如果扶

    2024年02月21日
    浏览(74)
  • 【单片机毕业设计】【mcuclub-dz-112】基于单片机的智能饮水机系统设计与实现

    项目名:基于单片机的智能饮水机系统设计与实现 项目名:基于单片机的饮水机的设计 单片机:STC89C52 功能简介: 1、通过一个按键模拟加热电源的开关 2、通过防水式DS18B20检测水温,当电源打开时,温度小于设置最小值,进行自动加热,直到加热到最大值时停止; 3、通过

    2024年03月09日
    浏览(165)
  • 毕业设计 基于单片机的导盲拐杖设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月05日
    浏览(83)
  • 毕业设计 基于51单片机的电子秤设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年02月11日
    浏览(66)
  • 毕业设计 基于51单片机控制LED点阵显示器的设计

    序 🔥 毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天要分享的

    2024年02月02日
    浏览(72)
  • 毕业设计 基于单片机的GSM智能快递柜设计(源码+硬件+论文)

    🔥 这两年开始毕业设计和毕业答辩的要求和难度不断提升,传统的毕设题目缺少创新和亮点,往往达不到毕业答辩的要求,这两年不断有学弟学妹告诉学长自己做的项目系统达不到老师的要求。 为了大家能够顺利以及最少的精力通过毕设,学长分享优质毕业设计项目,今天

    2024年01月23日
    浏览(76)
  • 毕业设计 基于51单片机智能停车场管理车位引导系统设计

    选题之前,同学们要弄明白一件事情,做毕业设计是干什么用的! 这里我告诉大家,毕业设计对于你来说,不是让你去搞研究,掌握运用所学知识的,也不是让你去比谁做的毕业设计多么牛逼,多么厉害。 说白点,它的作用就是一个,让你顺利毕业,能够拿到学位证,毕业

    2023年04月15日
    浏览(85)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包