1、 南 京 理 工 大 学毕业设计说明书(论文)作 者: 学 号: 学院(系):电子工程光电技术学院专 业:电子科学与技术题 目:简易酒精检测仪的设计与实现 指导者: (姓 名) (专业技术职务)评阅者: (姓 名) (专业技术职务) 2014 年 5 月毕业设计说明书(论文)中文摘要 随着经济的发展,汽车数量不断增加,酒后开车行为严重影响社会安全,驾车前的酒精检测就成为重要的课题。为此,设计了由酒精传感器和单片机组成的简易酒精检测仪,包括硬件电路的设计、单片机软件设计与上位机软件设计;实现了呼出空气中酒精浓度值的测量,通过设置不同的阈值,实现酒精浓度超标的报警,且能在液晶屏显示实时酒精浓度;通
2、过无线通信的方法,实现了上位机与酒精检测仪的实时通信,便于远程监控被测对象体内的酒精浓度。通过实验表明,该本装置可应用于驾驶员驾车前的自行检测,也可用于监控空气中的酒精浓度。关键词 电子信息 传感器网络 酒精传感器 检测 报警 毕业设计说明书(论文)外文摘要Title Research and Implementation of a simple alcohol concentration detector AbstractAs the economy develops, the number of cars is increasing, more and more serious drunk
3、 driving behavior affect social security, alcohol test before driving became a subject that is drawing more and more attention. In this paper, a simple alcohol detector is designed by the alcohol sensor and a MCU, including hardware design, software design and PC microcontroller software design; ach
4、ieve a measure of alcohol concentration in the air exhaled. By setting different thresholds, achieve alcohol concentration exceeding the alarm, and can display real-alcohol concentration on the LCD screen; through the method of wireless communication, achieve using host computer monitor real-time of
5、 alcohol concentration by a wireless. Experiments show that the device can be used to detect the drivers alcohol concentration before their driving.It can also be used to monitor the concentration of alcohol in the air.Keywords electronic information sensor network alcohol sensor detect alarm 本科毕业设计
6、说明书(论文) 第 页 共 页目 次1 引言 11.1 论文的背景及意义 11.2 研究现状及前景 11.3 章节安排 22 系统的功能及整体设计方案 42.1 整体设计方案 42.2 工具平台的选择 43 硬件设计 63.1 主控模块的选型与设计 63.2 酒精传感器的选型及设计 83.3 显示模块的设计 113.4 键盘模块的设计 123.5 声光报警模块的设计 133.6 无线收发模块的设计 143.7 电源模块的设计 173.8 印刷电路板的设计 184 软件设计 214.1 整体软件流程图 214.2 模数转换子程序的设计 214.3 显示子程序的设计 224.4 无线收发子程序的设
7、计 234.5 键盘扫描子程序的设计 244.6 阈值保存读取子程序的设计 244.7 声光报警子程序的设计 254.8 上位机程序的设计 265 实验结果及分析 285.1 电路焊接及酒精测试 285.2 上位机监控测试 31结 论 32致 谢 33参考文献 34 本科毕业设计说明书(论文) 第 35 页 共 39 页1 引言随着国民经济的飞速发展,民众的生活水平有了很大的提升。人们饮酒的次数也越来越多。酒后驾车造成的交通事故也变得越来越频繁。酒驾已经成为了社会上的马路杀手,造成了惨重的生命财产损失。于是酒精检测课题正越来越引起人们的重视,在当前社会的背景下有重要意义。11 论文的背景及意义
8、 世界卫生组织的统计数据指出,一个国家的人均国民生产总值越高,人均饮酒量就越高。可以预见,随着国内经济的持续发展,国内人均饮酒量会逐渐变得更高。研究指出,当人体血液中的酒精浓度达到20mg/100ml时,人就会开始头晕、微醉,而当达到80mg/100ml时,人就会说胡话,走路不稳,这就是醉酒。倘如再高,人就会有生命危险。所以当司机饮酒过量造成头晕、反应缓慢、肢体不受控制时再去开车就会造成交通事故。酒驾造成的交通事故的再三发生给人们的生命财产带来了难以估量的威胁和损失。 2000年以来,中国逐渐步入汽车社会,酒驾正在成为日益残暴的“马路杀手”。相关资料指出,全世界每年因车祸殒命的人数就高达60万
9、,留下永久性残疾者更是在400万以上。在很多国家,车祸已成为意外死亡的首因。因此,如何有效的遏制酒驾的发生具有重要的意义。遏制酒驾最有效的方法之一就是让司机提高酒驾意识,要做到每次驾车前都检测体内的酒精浓度,做到酒后不开车。开发简单方便、便宜易用酒精检测仪就成为了亟待解决的问题。除此之外,在对酒精浓度要求严格的生产场合,对酒精浓度精确实时监控,可以做到一旦有异常发生,可以立刻提供指示,避免灾祸,这很有意义。12 研究现状及前景确定人体酒精浓度最准确的方法是直接测量血液中的酒精浓度。但这种办法有明显的缺陷:测量过程复杂,技术难度高。实际中最常用的办法是测量人呼出气体中的酒精浓度。统计研究结果证明
10、,一个人深吸气后以中等力度呼气二到四秒,呼出的气体就是肺部深处的气体。肺部深处的气体酒精浓度大概是血液中酒精浓度的2200倍。因此,简单卫生的测量呼出气体里的酒精浓度就可以大致测定人的饮酒量。 酒精检测仪按原理的不同主要有以下几类。l 电化学型使用白金作为电极,然后在一个被特种催化剂填满的燃料室中吹入定量待测气体,燃料室内的酒精经过完全燃烧后就会在两个电极上产生电压。这样就产生了和气体中酒精浓度成正比的电压。有体积小、精度高、操作简单等特点,但价格昂贵,生产困难。l 红外线型 研究证明,人体皮肤对红外线的吸收量是和人体内酒精浓度密切相关的。这种检测仪就是利用此原理制成的。但是这种结构复杂,使用
11、不方便,未得到广泛使用。l 气体色谱分析型、比色型。 这两种仪器价格昂贵,实际应用很不方便。 l 半导体型采用只对特定气体敏感的半导体器件用作传感器。当某种N型半导体氧化物暴露在大气当中时,它就会吸附氧气分子,其内部载流电子的数量就会变少,其电阻就会变大。若空气中存在某种特定气体,它与吸附的氧气发生恢复性反应,使半导体内部的载流电子数量恢复上涨,其电阻就会减小。半导体-氧化物传感器便是通过此现象测量某种特定气体的浓度。此半导体器件的电阻值和其敏感气体浓度有直接关系。被测气体中该种特定敏感气体浓度越高,其电阻值就会越低。有可恢复性好、灵敏度高等优点。由于有成本和实际应用方便等因素要考虑,现在使用
12、最广泛的还是燃料电池型(电化学)。电化学型有测量精度高,稳定性优良,抗干扰性好等优点。但是其缺点也很明显。由于其结构要求非常精密,制作难度非常高,目前世界上只有欧美等少数几个发达国家掌握其生产技术。其材料成本也很高,造成其价格昂贵,一般只是在交警执法检查酒驾时使用,难以大规模在社会上推广使用。便于民用推广的应该是微变氧化物半导体型酒精检测仪。半导体型具备敏捷的响应恢复特性和良好的灵敏度,并且只对酒精蒸汽敏感,不受烟气、雾霾颗粒等非酒精蒸汽的干扰,耗能很低、寿命长久。制作结构简单,成本低廉。为此,本文设计了一款以半导体型酒精传感器和微控制器为核心的简易酒精检测仪。13 章节安排 本系统主要工作包
13、括单片机及酒精传感器的选型、各模块硬件电路的设计和软件编程、上位机的编程、印刷电路板的设计。第一章 为引言。第二章说明了本装置的功能及整体设计方案,介绍了系统功能和整体框架图,还介绍了整个设计过程中使用的工具平台。第三章说明了整个系统中的硬件电路设计。第四章说明了整个系统中的软件设计,包括单片机软件和上位机软件设计。第五章说明了印刷电路板设计。第六章描述了系统的实验结果及分析。2 系统的功能及整体设计方案21 整体设计方案一般地,一个酒精检测装置应具有以下功能:(1)选用合适的微控制器实现酒精检测功能;(2)采用液晶屏显示酒精浓度和报警阈值;(3)选用报警装置实现浓度超过阈值时的报警。(4)实
14、现按键调整阈值的功能;(5)实现报警阈值断电保存功能;(6)选用无线通讯模块实现浓度数据的无线收发;(7)实现上位机监控酒精浓度的功能。 首先,外界合适的酒精气敏传感器将外界的含酒精被测气体检测后,输出对应的模拟电压信号。将该模拟电压信号通过AD转换功能转换为能被微控制器处理的数字信号,再让微控制器对数字信号进行分析处理,然后将计算得到的酒精浓度显示在液晶显示屏上,同时并决定是否驱动报警电路。最后将当前浓度值和报警阈值通过无线模块发送到上位机。上位机接收到数据后绘制测得的浓度的曲线图,来实时监控当前的浓度值。系统总体框架如图2.1所示。AD转换液晶显示屏微控制器声光报警按键输入无线发送酒精传感
15、器被测气体上位机监控图2.1 整体框架图22 工具平台的选择2.2.1 Keil Uvision4集成开发环境。Keil Uvision4可以说是最好的51单片机集成开发系统,能同时兼容C语言和汇编语言的单片机开发。Keil是由美国Keil软件公司出品的,提供了包括C编译器、宏汇编器、链接器、库管理和调试仿真器等在内的完整开发方案。Keil对操作系统、计算机要求很低,适宜在各种计算机上运行。利用C语言对单片机进行编程,Keil差不多就是工程师的不贰之选。采用C语言编写软件系统,直观易理解,便于移植调试分析。本系统选用Keil Uvision4和C语言完成单片机软件的设计制作。2.3.2 Pro
16、tel99se集成开发环境Protel99se是一款得到广泛使用的、用于印刷电路板(PCB)设计的电子设计自动化(EDA)软件。Protel99se选用设计库管理方式,具有强大的数据管理能力,可以设计电路原理图、印刷电路板与可编程逻辑器件。制作的印刷电路板最高可以达到32层信号层,16层电源-地层和16层机加工层。本系统选用Protel99se设计电路原理图和印刷电路板(PCB)。2.3.3 Microsoft Visual C+ 6.0集成开发环境Microsoft Visual C+ 6.0简称VC,又被称作VC6.0,是美国Microsoft公司出品的一款C+编译器。Visual C+
17、6.0是一个用途非常广泛的可视化软件开发环境,自诞生以来受到了广泛应用,专业程序员无人不知。Visual C+ 6.0不光是一个C+语言编译器,还是一个Windows系统下的可视化软件集成开发环境。Visual C+主要由以下三个部分组成:Developer Studio、MFC(微软基础类库)和Platform SDK。其中MFC已经成为被广泛采用的上位机编程工具。MFC是由微软出品的,用于使用C+语言编写软件时的一个引擎和框架,是微软封装后的windows接口函数。用MFC进行上位机编程,工作量小,过程简单易于上手。本装置选用Microsoft Visual C+ 6.0实现上位机软件设计
18、。3 硬件设计31 主控模块的选型与设计用作本装置的微控制器应尽量有如下特点:运行速度快、集成AD转换功能、AD转换速度快、集成EEPROM(电可擦除可编程存储器)、引脚数量丰富、内部集成上拉电阻(引脚状态可编程)价格便宜、驱动能力强、编程简单、适应于各种应用。鉴于以上要求,本装置选用宏晶科技出品的增强型8051内核1T单片机STC12C5A60S2,它能满足装置的所有要求。STC12C5A60S2具备以下主要特点。(1) 增强型8051内核,单机器周期/时钟,指令集兼容传统8051,工作电压:5.5V-3.3v功耗低;工作温度范围宽:-40 - +85(工业级) / 0 - 75(商业级);
19、(2) 最高工作频率可达35MHz,等效于普通8051单片机的420MHz;(3) 内部集成容量为1KB的EEPROM,读写可达十万次;l 内部集成8路10位的高精度ADC,速率可达250K/S(每秒钟25万次);l Flash存储空间64k,片上集成1280B高速内存;具备在系统可编程和在应用可编程功能,能通过串口(P3.0/P3.1)直接高速下载用户程序;l 拥有4个16位计数器,包括两个与传统8051单片机兼容的计数器和16位技术器T0、T1;具有7路外部中断输入口,电平下降沿或低电平触发;还增加PCA模块,支持电平上升沿触发中断;还可由外部中断退出掉电模式;STC12C5A60S2的引
20、脚图如图3.1所示。图3.1 STC12C5A60S2引脚图 STC12C5A60S2共有4组通用I/O口,可以作为基本的输入输出口来使用。每个I/O口都可以被设定为四种模式,包括标准8051模式、开漏输出模式、强推挽输出、高阻四种状态。每个引脚都能拉出或灌入20mA电流。除此之外,根据引脚说明,每个引脚还可以在软件里设置为第二功能,包括SPI接口、ADC输入、中断输入、串口等功能。除了通用I/O口,还有以下引脚。l VCC,供电电源,GND,接地;l RST。复位输入。ALE / PROG:当读写外存储器时,地址锁存允许的输出电平用来锁存地址的低位字节。在FLASH编程期间,此管脚用来输入编
21、程脉冲。平时ALE端以振荡器频率的1/6的频率输出正弦脉冲,可用于脉冲输出或定时。l PSEN。外程序存储器的使能信号。EA/VPP:EA为低电平,读取外部ROM;加密方式1,EA将内部固定为RESET;当EA为高电平时,读取内部ROM。在FLASH编程时,此脚用来施加12V编程电源。l XTAL1:反向振荡放大器及内部时钟信号工作电路的输入。XTAL2:反向振荡器的输出。 为使单片机工作起来,必须首先搭建单片机的最小系统。其最小系统包含复位电路和时钟信号输入电路。 时钟电路。虽然STC12C5A60S2内部集成可作为时钟的RC振荡器,但由于其速度低、精度低等缺点,不常被使用。这里选用外部高精
22、度石英晶体振荡器和电容构成的并联谐振回路作为时钟信号电路。晶体采用最常用的11.0592MHZ晶振,电路对电容值的要求不高,但它对振荡频率输出的大小可靠性、起振速率有一定影响。这里采用22pf的电容。 复位电路。复位方式有上电复位和按键复位两种。一般的上电复位是对外部复位电路中的电容充电,只要VCC的上升时间小于1ms,就能实现上电自动复位。这里设计的是外部按键复位电路,RST引脚通过一个电阻连接至高电平保持两个机器周期时间时,单片机复位。电源接VCC(5v),电源用10uF电容滤波,电阻R7取220欧保护引脚,R8取10K,按键采用微动开关。按键不按下时RST引脚被下拉到地,按下时RST接近
23、高电平。 完成的单片机最小系统电路图如图3.2所示。 图3.2 单片机最小系统32 酒精传感器的选型及设计 酒精传感器是本系统的一个核心元件。本系统的传感器采用MQ3气敏酒精传感器。MQ3是一种半导体型传感器,它的以下特点决定了其很适用于本系统,包括对酒精蒸汽有很高的灵敏度和极佳的选择特性。响应复原极速、可靠性好寿命长,电路简易。MQ-3半导体型酒精气敏传感器的构造和形状如图3.3所示。它是将微型氧化铝陶瓷管、二氧化锡敏感区、金属电极和加热电丝成的敏感元件放置在钢制外壳内。封装好后有6只针型引脚,其中4个输出信号,2个为加热电压输入。图3.3 MQ3引脚图MQ3测量回路如图3.4所示。图3.4
24、 MQ3测量回路在温度20、相对湿度65%、氧气浓度21%、RL阻值为200K的条件下MQ3的灵敏度特性如图3.5所示。其中Rs是不同气体和浓度下气敏元件的电阻值,Ro是气敏元件在洁净气体中的电阻值。图3.5 MQ3的灵敏度特性 MQ3元件的湿度特性如图3.6所示。其中Ro是20,33%RH条件下,200ppm的酒精气体中元件电阻值,Rs是不同温湿度下,200ppm的酒精气体中气敏元件电阻值。图3.6 MQ3湿度特性MQ3传感器的应用电路如图3.7所示。MQ3的2脚接至电源,加热电丝的另一端即5脚接地,让电源对加热电丝供电使其发热,进而对敏感气体进行加热。MQ-3的1、3引脚相接(当作电极A)
25、,作为气体电阻的一极,MQ-3的4、6引脚接到一起(当作电极B),作为敏感气体电阻的另一极。将电极A连到电源正极,电极B通过电阻连到电源地。这样,当敏感气体来到时,根据酒精气体浓度的不同气体电阻的大小也就不一样,然后由于电阻分压,B电极上的电压也就不一样。这样就实现了模拟电压信号的输出。图3.7 MQ3应用电路获得的信号电压是一个模拟量,是不能直接被单片机运算处理的,它必须经过AD(数模)转换后变为数字信号才能被单片机所接受。STC12C5A60S2单片机内部集成高速逐次逼近式ADC,其P1口可以设置为引脚第二功能作为AD转换的模拟量输入引脚,其AD转换的参考电压为单片机电源电压VCC。这里采
26、用P10口作为输入。AD转换电路如图3.8所示。图3.8 AD转换电路33 显示模块的设计显示模块采用LCD1602液晶屏。它是一种能显示英文字母、数字等符号的液晶屏模块。它由若干个5*7或者5*11的点阵构成,每个点阵都能显示一个字符,共可以显示两行,每行可显16个字符。一般为14针或16针,16针的多余2根是背光线。外形图如图3.9所示。图3.9 LCD1602外形图其引脚介绍如下。l VSS,电源地。VDD,5V正电源。l V0,对比度调节引脚,可接一电源到地的可变电压来调节对比度。对比度过高可能会产生鬼影,建议接一个10K的电位器。l RS,选取内部寄存器,5v时为数据寄存器,0v时为
27、指令寄存器。RW为读写控制线,高电平时为读,低电平时进行写。E为使能端。当E脚由5v下降成0v时,液晶屏执行指令。l D0D7,8 位双向数据线。 LCD1602有如下特点。3.3V或5V的供电电压,对比度可调,功耗很低;显示数据存储器DDRAM为80B;内部集成192个和ACSII码对应的5*7点阵字符存储器CGROM;8个可自行设定的5*7的字符存储器CGRAM。当LCD1602要显示某一个字符时,可以直接找到字符对应的ASII码,便可以方便的直接显示出来,无需再为字模困扰。 LCD1602的显示电路如图3.10所示。图3.10 LCD1602显示电路如图11,LCD1602的8位数据线和
28、单片机的P0 I/O口按顺序相连,V0端接一电位器调对比度,RS、RW、E三条控制线分别接单片机的P20、P21、P22三个引脚。34 键盘模块的设计本系统主要用到两个按键来调节醉酒报警的阈值。其中一个按键为上调阈值,一个按键为下调阈值。其电路如图3.11所示。图3.11 按键电路如电路所示,两个按键分别接单片机的P25脚和P26脚。R5和R6都取1k或560欧。当按键未被按下时,单片机两个引脚通过R5和R6被上拉至VCC,引脚获得一个高电平。当按键按下时,单片机的引脚就被下拉到地,单片机就获得一个输入的低电平。通过检测这个低电平,就能够了解按键是否按下,单片机就可以做出相应的处理。值得注意的
29、是,R5、R6两个电阻不宜取值过小,否则会造成按键按下时电流过大,造成功耗过大和系统不稳定。35 声光报警模块的设计本系统设置两级报警。首先当检测到的酒精浓度值大于酒后阈值时,第一个LED灯亮。当检测到的浓度值高于醉酒阈值时,第二个LED灯同时被点亮,同时蜂鸣器鸣响。声光报警电路如图3.12所示。图3.12 声光报警电路如电路所示,报警的LED发光二极管采用灌电流驱动方式,STC12C5A60S2的灌电流可达20mA。两个LED二极管分别连到单片机的P25和P26引脚。当引脚输出低电平时,LED二极管亮。R3、R4可取1k或560欧,起到限流和保护作用,防止灌电流过大损坏单片机和烧毁LED二极
30、管。蜂鸣器的输入脚为单片机的P27脚。由于STC12C5A60S2的拉电流和灌电流都不足以驱动蜂鸣器,故采用型号为2N3904的NPN三极管作为开关管来驱动蜂鸣器。2N3904集电极发射极最大耐压为40V,集电极电流最大200mA,封装为TO-39-3,足够使用。当P27引脚输出为高电平时,三极管处于饱和区,蜂鸣器导通并鸣响;当其输出低电平时,三极管位于截止区,蜂鸣器断开不发声。Rb1为限流电阻,可取值560欧或1k。36 无线收发模块的设计本系统要求将测得的数据无线发送到上位机,上位机进行监控处理。本系统采用NRF24L01无线模块作为无线收发模块。NRF24L01无线模块是由挪威的NORD
31、IC公司出品的,工作在2.4GHz2.5GHz频段的单片无线收发射频芯片nrf24l01开发而成。NRF24L01无线模块具有如下特点。l 工作于2.4Ghz ISM频段免许可证使用,内置2.4Ghz天线,体积小巧。l 最高工作速率为2Mbps,抗干扰能力强。统共126个频段,能实现多点通信和跳频通信的需求。内部集成硬件CRC错检和点对多点通讯控制。l 低功耗,1.9-3.6V电压可工作,工作电流很低,待机是仅为22uA,掉电时仅为900nA。l 模块可软件设地址,可直接连接各类单片机使用,可采用中断通知单片机。软件编写方便。内置特定稳压电路,使用各种电源均有良好的通讯效果。l 工作于ESB(
32、Enhanced Shock Burst)模式,具备可选的内置包答复机制,可极大的降低丢包率。NRF24L01模块电路图如图3.13所示。图3.13 NRF24l01模块内部电路图NRF24L01使用SPI协议接口完成寄存器读写工作。引脚如下。l VCC。电源,一般使用3.3V电压。 GND。电源地。l MOSI、MISO、SCK、CSN。SPI协议的四根引脚。SCK为SPI协议的时钟线,CSN是SPI协议的使能端,低电平时SPI模块工作。其余两根引脚为数据输入和输出引脚。l CE,无线模块工作模式切换引脚,此引脚配合模块CONFIG寄存器的状态决定模块的工作状态。IRQ,中断引脚,无线模块在
33、完成发送或接收后将此引脚电平置低来通知单片机,通常接单片机的中断输入引脚。没有硬件SPI接口的单片机也能够将I/O口用软件模仿SPI协议来完成对模块的控制工作。必须警惕的是,此模块的推荐工作电压为3.3v,不能直接连5v单片机,不然会烧毁模块。除了电源引脚,其余引脚是可以直接和单片机引脚相连的。NRF24L01无线模块与单片机的连线电路如图3.14所示。图3.14 NRF24L01数据发送端电路图单片机的P13 - P17依次连NRF24L01模块的CSN、CE、MOSI、MISO、SCK引脚,IRQ接单片机的中断输入引脚P33。单片机用软件模拟SPI协议。同样的,数据接收端也需要一个单片机控
34、制的NRF24L01无线模块。接收端的单片机接收到数据后,将数据通过串口发送到上位机。单片机一般都带有串口模块,但如今带有串口的计算机已经不多见。为了解决这个问题,这里采用了CP2102,USB转串口模块。它能把计算机的USB口通过驱动程序转换成串口通信达到扩展目的。CP2102模块具有如下特点。l 符合USB2.0规范,支持将USB状态挂起。内含USB收发器、时钟电路,无需外界电路器。集成上电复位电路,片内集成稳压器可输出3.3V电压。 l 异步串行数据总线可兼容所有的握手和调制调节器接口协议,支持8位数据位、1-2位停止位、校验位的串行数据。l 内建512字节接收缓冲区和512字节发送缓冲
35、区。本系统的采用由CP2102、单片机和NRF24L01组成的模块作为数据接收端。接收端的电路如图3.15所示。 图3.15 数据接收端电路图37 电源模块的设计本系统采用电池供电。为了获得恒定充足的电源,这里采用18650锂离子可充电电池。18650一般是指电池直径为18毫米、长度为65毫米的电池,其电压一般为3.7v-4.2v,容量最大可做到3400mAh,可满足本系统使用。本系统需要两个电源电压来供电。其中单片机、液晶屏、声光报警装置等需要5v电压,而NRF24L01需要3.3v电压供电。整个系统最大工作电流估计在300ma。因此,这里需要合适的电压转换芯片来供电。AMS1117是一款低
36、压差线性稳压器,有多种固定电压输出的型号,输出电流最大可达1A,输出电压精度可达1%,压差最低可至1v。其内部还集成过热和过流保护电路,可作为电池供电设备的一个良好选择。本系统同时选用AMS1117-5.0和AMS1117-3.3两款芯片来获得5v和3.3v电压。AMS1117-5.0参数如下。输入电压最高18V;输出电流可达1A;输出电压5.0V;输入电压最低6.2V;SOT-223封装;工作温度范围-40C到+120C;AMS1117-3.3参数如下。输入电压最高12v;输出电流可达1A;输出电压3.3v;输入电压最低4.75v。SOT-223封装;工作温度范围-40C到+125C;电源电
37、路如图3.16所示。图3.16 电源电路根据芯片的规格书说明,AMS1117的输入和输出端都需要加10uf电容滤除杂波。电路中D1为电源指示灯,R2为指示灯的限流电阻。BT1和BT2为两节18650电池,VCC为5v电压输出,VCC_3.3v为3.3v电压输出。AMS1117-3.3电源由AMS1117-5.0输出的VCC提供。两个电压都能提供足够电流。S1自锁开关是系统主开关,按下时电路导通,非按下时无电压输出,整个系统关闭。38 印刷电路板的设计 印刷电路板设计前首先要设计电路原理图。电路原理图采用PROTEL99SE的原理图设计功能设计。设计原理图时可能要根据需求个人设计元件库。根据之前
38、的各硬件模块的设计,得到的系统检测发送端整体硬件原理图如图3.17所示。图3.17 整体硬件原理图设计好原理图后,并且元件封装等都检查无误后就可以生成网络表导入PCB文件进行PCB设计了。印制电路板的设计是以原理图为依据,完成硬件电路的实物搭建,涵盖电子元件的优化安放、金属连线的安放和通孔的优化安放。电磁兼容、散热等各种因素都是要设计时权衡的。PCB设计主要分为两部分,一是元器件的布局,二是元器件的布线。电子元器件的布局主要注意以下几点。l 一般情况下,全部电子元件均应放在电路板的相同面,只有此面元件过于密集无法摆放时,才将一些比较低并且发热量小的元件,如贴片电阻等放在另一层。l 热敏元件要与
39、发热元件分开,高频元器件的连线应尽量短。电路要分模块进行布局,方便信号流通和后期检查错误。l 预留出支架孔等孔的位置,制作物理边框,即是板子的轮廓,元器件的布局要考虑到后期的焊接方便。l 自行设计PROTEL中没有的封装。 布线是PCB设计工作中的重中之重,要考虑的因素非常多,关系到整个板子的成败。元器件的布线主要考虑到以下因素。l 当输入输出端是高速信号时,导线应尽量不要相邻平行,尽量加上导线间地线,防止产生反馈藕合。l 布线的最小宽度主要由导线与底板间的粘合强度和流经的电流强度决定。l 印制导线拐角处通常取钝角,如果取直角或锐角会对电气性能有不良影响。l 本系统还采用了大面积覆铜。敷铜可以
40、减小地线阻抗、提高抗干扰能力、降低压降、提高电源效率。本系统的PCB设计完成后如图3.18所示。图3.18 PCB布局布线完成后图完成后的PCB大概为50mm*70mm大小。等工厂打样完成后就可以进行焊接调试等后期工作了。4 软件设计41 整体软件流程图整体软件程序主要包括AD转换程序、显示程序、无线发送程序、按键程序、阈值调节程序、阈值保存读取程序、报警程序。整体流程图如图4.1所示。AD转换(计算浓度)开始加电开机单片机初始化阈值调节(按键检测)液晶屏初始化显示欢迎界面无线模块初始化显示工作界面读取阈值阈值保存更新显示报警检测无线发送数据图4.1 整体软件流程图首先加电开机,先是单片机初始
41、化,设定引脚状态,对特殊功能寄存器进行赋值,其次初始化LCD屏幕,再初始化无线模块。然后液晶屏上显示必要字符,稍作延时,显示工作界面一些必要字符。紧接着读取单片机内部EEPROM保存好的醉酒阈值。开始AD转换,检测阈值调节按键,重新保存阈值后同时刷新浓度、阈值显示。最后报警检测后无线发送阈值和浓度数据。这时完成一个完整的主循环。接下来就是又开始AD转换,进入下一个主循环,周而复始。由于单片机运行速度很快,液晶屏上的数据更新给人的感觉就像实时的。如此就完成了整个系统所需的功能。42 模数转换子程序的设计 AD转换是使用的STC12C5A60S2内置的ADC,参考电压为单片机电源电压,其流程图如图
42、4.2所示。AD初始化启动ADC读出结果开始等待转换完成?返回YN图4.2 AD转换流程图首先初始化AD转换器,设定好输入引脚及转换方式,其次启动转换,再采用查询法等待AD转换完成。最后读出转换完成的值。在主循环里循环执行此程序,做到传感器输出电压的实时AD转换。43 显示子程序的设计显示模块的流程图如图4.3所示。液晶屏初始化显示欢迎界面更新数据显示开始显示工作界面返回图4.3 显示模块流程 首先初始化液晶屏,设定液晶屏为5X7点阵显示、不显示光标、开显示。然后显示欢迎字符,稍微延时,再显示工作界面。最后进入主循环,循环执行此程序,根据实时浓度和阈值的不同,实时更新屏幕上显示的数据。这样就完
43、成了显示功能。44 无线收发子程序的设计无线模块的数据发送端软件流程图如图4.4所示。无线模块初始化进入发射模式发射数据包开始装载数据包返回图4.4 无线数据发送端流程图首先初始化无线发送端NRF24l01,设定好发送、接收地址、数据包大小、通信频率、是否自动应答、自动重发设定等,然后单片机向装载要发送的数据,并命令将数据发送出去。最后在主循环里循环执行此程序,随着实时浓度和阈值的不同,几乎实时装载数据并将数据发送出去,使接收端收到。无线模块的数据接收端流程图如图4.5所示。YN无线模块初始化进入接收模式读数据、发到上位机开始等待上位机绘制曲线收到数据包?图4.5 无线数据接收端流程图 首先初始化无线接收端NRF24L01,设定好本机地址,要接收的数据包大小、通信频率等,然后等待接收到数据包。接收完成后,单片机读出数据,并将数据通过串口发送到上位机,上位机进行实时曲线的绘制工作,然后再去重新等待数据接收,完成循环。45 键盘扫描子程序的设计