基于STC12C5A16AD酒精浓度测试仪制作(共36页).doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《基于STC12C5A16AD酒精浓度测试仪制作(共36页).doc》由会员分享,可在线阅读,更多相关《基于STC12C5A16AD酒精浓度测试仪制作(共36页).doc(36页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、精选优质文档-倾情为你奉上技师核心技术专题研修设 计 说 明 书课题名称 基于STC12C5A16AD酒精浓度测试仪制作 专业班级 07技师1班 学生姓名 李 江 学 号 指导教师 毛宏光 宁波技师学院电气技术系二零零 年 月摘 要自刑法修正案(八)和修改后的道路交通安全法正式实施,“醉酒驾驶”正式入刑。不仅交警部门,而且很多车主都期盼能够有便携仪器方便地测量气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。本研究设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC12C
2、5A16AD对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。本研究设计的酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。关键词:A/D转换;MQ-3;STC12C5A16AD;酒精浓度目 录专心-专注-专业1引 言本设计基于STC12C5A16AD单片机设计的酒精气体浓度探测仪,可用来检测酒精气体浓度,酒精气体浓度测试仪在生产生活中有重要的应用,比如,在一些环境要求严格的生产车间,用这种酒精浓度探测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高于允许限定值时,发出警报,提醒人们及时通风换气,做到安全生产,此酒精测试仪经过再一步的改进可
3、以使用到酒后驾驶测试上面去,利用该测试仪来告诫驾驶员请勿酒后驾驶。在这次的设计中,利用了MQ-3型酒精的传感器通过对空气中的酒精浓度测试转换成05V的模拟量电压进行输出,把这个05V的电压传送到STC12C5A16AD内部自带的A/D转换模块中去,通过模拟量模块的转换输出一个8位0255的数据给单片机的P1口,再通过单片机进行一些软件程序的处理显示在LCD的液晶上面。2总体设计2.1 设计前的准备工作 本次设计中主要测试的对象就是几种不同浓度的酒精溶液,主要的控制对象就是基于STC12C5A16AD单片机控制处理部分,那么在设计首先需要研究的就是该系统的硬件结构,通过几天的资料查询,确定下来以
4、MQ-3为测试的传感器,有了传感器之后就利用了Proteus数字电路仿真软件进行了硬件的电路的设计,有了硬件电路之后就需要设计软件了,那么也是通过各种渠道进行资料的收集,大概出来一个初步的设计构思,最后一个就是要对MQ-3的酒精传感器进行一个特性的研究分析,在查询各种资料后得出了,为了尽量减少设计的气体传感器的测量误差,在测量酒精溶液样品时要考虑并解决3个主要问题。一是外界环境流动空气对传感器的影响和对气体样品的稀释,二是样品的稳定性对测量带来的误差,三是水蒸气对测量的影响。知道了这三点信息之后就进行前期的测试和验证,通过98%的工业乙醇和水混合得到几种浓度的酒精溶液进行测试,根据自己的测试和
5、各种查询的资料得出了一点酒精传感器相关特性的资料。2.2 设计的要求在这次设计当中,设计的要求有通过酒精传感器要对几种不同浓度的酒精溶液进行浓度测试,通过前期的资料查询和各种分析最终确定下来测试浓度范围在030度,误差率在5%15%之间,由于酒精传感器的特性关系测量的浓度越高误差率就越大了,在模拟量转换过程中使用到单片机自带的A/D功能,需要在液晶屏上对酒精浓度的显示并且超过预设值后进行蜂鸣器报警,除此之外还需要通过串口与上位机进行通讯并且能够简单的传送一些数据等。2.3 设计构思在这次设计中采用了STC12C5A16AD单片机,使用这款单片机的主要原因有目前市场比较常见的,另外内存比51单片
6、机大4倍,最主要的是这款单片机集成了8位高速A/D转换器,而且在烧写程序的时候比较方便,然后程序的结构完全跟其他51一样,所以采用了这个单片机。在设计该测试仪时首先查看了STC12C5A16AD单片机的数据手册,了解到了一些基本使用,就是A/D转换的过程,根据这个思路进行设计,在软件方面设计可以根据其他参考的例程进行程序的编写,这个测试仪主要用来试验,所以被测的酒精也是自己根据剂量配比的。在设计之初初步的想法就是通过传感器对各种浓度的酒精进行测试,然后将测试的结果通过单片机进行转换,然后显示到LED的数码管上面,测试仪还具有超限报警,传感器故障显示,按钮复位,串口与上位机通讯等功能。2.4硬件
7、电路PCB设计在这次的设计中,省去了AD0809芯片所以硬件设计并不复杂,由于单片机的管脚可以由自己定义,所以制版的时候相对于也比较的简单,但是由于线比较多,所以在设计中还是需要合理的放置才不会出错。具体的硬件部件见附图。2.5软件程序的设计在这个测试仪的设计中最主要的部分就是软件的设计,单片机的程序设计是最主要的一部分,如果没有一个很好的程序就无法使测试仪正常的工作起来,在这次程序的设计中采用C语言的编程,因为这个程序中需要牵涉到数据的计算,由于C语言对数据的处理比较的方便和简单,而且整个编程的过程C语言相对于汇编语言简单。这次整个程序分为了几个部分,第一部分就是对整个程序中所需要用到的一些
8、数据进行定义,那么我这次的程序中需要用到浮点数、整数等,所以就在程序的开始进行一个全局的定义,第二部分就是主程序,主程序中包括了那些中断的初始,以及P0.0的数据的采集控制,单片机的一些IO口的初始,串口通讯的初始等。第三部分就是对AD采集进来的数据进行转换,根据传感器的特性做了一些转换公式,通过各个区间的比较满足条件进行转换,转换出来的数据送到指定的数据寄存器里面。第四部分显示部分,在前进的数据处理之后对所需要的数据进行显示,第五部分就是一些子程序,有中断的子程序和延时的子程序。整个程序的结果就是有这些部分组成。3硬件设计本系统硬件主要有三大模块组成:微处理器系统、键盘和显示模块和串口模块。
9、3.1微处理器系统本系统的微处理器采用STC12C5A16AD单片机,是STC系列单片机的其中一款自带A/D转换功能,经过设计前的准备和收集的资料设计出可靠的硬件电路。3.1.1阈值存储电路如图3-1是较为常用的单片机外围存储电路,本存储器采用了EEPROM,是ATMEL公司生产的一款。醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过 “增加”、“减少”按键调节并保存。AT24C04是IIC接口的EEPROM芯片,可以用于掉电不易失数据的存储。其电路如图3-1所示。图中A0、A1和A2为芯片的地址引脚,一般接地即可。SCL和SDA为AT24C04和单片机IIC通信的时钟线和数据线图3
10、-1 单片机外围时钟电路3.1.2复位电路如图3-2是系统中的复位电路硬件设计,此复位设计采用高电平复位。图3-2 单片机复位电路3.1.3超限报警电路如图3-3所示为超限报警电路,电路采用有源蜂鸣器报警提示。图3-3 超限 报警电路3.2键盘和显示模块如图3-4是系统需要的按键电路设计,在电路中共用到了3个按键分别为,加、减计数和复位按键。如图3-5所示,为液晶显示接口硬件设计,采用接插件设计,方便、易插拔。 图3-4 单片机按键电路图3-5 单片机显示接口电路3.3供电及程序下载电路如图3-6为电源电路设计,电路中得供电方式采用USB供电,目的是为了方便插接,接口标准化。如图3-7为程序下
11、载及单片机通讯电路,程序下载电路采用STC_ISP下载方式下载,利用MAX3232设计硬件下载电路,这样的设计也是经过深思熟虑的,其一是下载程序方便,其二是单片机通讯电路容易设计。图3-6 单片机电源供电电路图3-7 单片机电源供电电路3.3.1 单片机最小系统硬件电路设计如3-8所示为单片机最小系统核心硬件电路设计,电路中都是单片机工作缺一不可的一些器件,例如:晶振、电容、复位电路、电源等。图3-8 单片机系统核心电路3.3.2 MQ_3传感器硬件电路设计MQ-3乙醇气体传感器及其调理电路原理如图3-9所示。其外形如图5所示。经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换
12、和处理图3-9 MQ-3传感器原理图设计该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。l 具有信号输出指示。l 双路信号输出(模拟量输出及TTL电平输出)l TTL输出有效信号为低电平。 l 模拟量输出05V电压,浓度越高电压越高4软件设计4.1总体程序流程图如图4-1所示为总体程序流程图。当检测到酒精气味时,气体传感器MQ-3两个电极端A-B间电阻将变小,对应与气体传感器负载电阻的分压将变大,输出电压也将变大。图4-1 总体程序流程图4.2AT24C04初始化程序#include 2402.hvoid DELAY(unsigned int t)while(t!=0)t-;/*
13、IIC DRIVE*/void IICStart(void) SCL=0; DELAY(1); SDA=1; SCL=1; DELAY(1); SDA=0; DELAY(1); SCL=0; void IICStop(void) SDA=0;SCL=1; DELAY(1); SDA=1; DELAY(1); SCL=0; void SEND0(void)SDA=0;SCL=1;DELAY(1);SCL=0;void SEND1(void)SDA=1;DELAY(1);SCL=1;DELAY(1);SCL=0;bit Check_Ack(void) unsigned char errtime=2
14、50; DELAY(1); SCL=1; DELAY(1); CY=SDA; while(CY) errtime-; CY=SDA; if (!errtime) IICStop(); return 1; DELAY(1); SCL=0; return 0;void Write_byte(unsigned char dat) unsigned char i;for(i=0;i8;i+)if(dati)&0x80)SEND1();elseSEND0();unsigned char Read_byte(void)unsigned char i,temp=0; for(i=0;i8;i+) SDA=1
15、; SCL=1; DELAY(1); if(SDA=1)temp=temp1;temp=temp|0x01;elsetemp=temp*/unsigned char rdeeprom(unsigned char addr) unsigned char temp=0;bit flag=0;IICStart();Write_byte(0xa0); Check_Ack();Write_byte(addr);Check_Ack();IICStart();Write_byte(0xa1);Check_Ack();temp=Read_byte();SEND1();IICStop(); return tem
16、p; void wrteeprom(unsigned char addr,unsigned char dat) IICStart();Write_byte(0xa0);Check_Ack();Write_byte(addr);Check_Ack();Write_byte(dat);Check_Ack();IICStop(); 4.2.1LCD1602初始化程序/* 文件名 : 液晶1602显示.c* 描述 : 该程序实现了对液晶1602的控制。*#include 1602.h#include math.hvoid delay()int i,j;for(i=0; i=10; i+)for(j=0
17、; j=2; j+);uchar Convert(uchar In_Date)/* uchar i, Out_Date = 0, temp = 0; for(i=0; i i) & 0x01; Out_Date |= (temp = 0) sign = 0; else sign = 1; temp = abs(num); baiwei = temp / 100; temp = temp - baiwei*100; shiwei = temp / 10; gewei = temp - shiwei*10; num = abs(num); if (num=100) if (sign = 1) /负
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 STC12C5A16AD 酒精 浓度 测试仪 制作 36
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内