酒精浓度检测器
为了能实现酒精浓度的检测,本论文以STC12C5A32AD作为核心控制芯片,进行了酒精浓度检测仪的设计与制作。论文详细地叙述了系统电路的工作原理并对核心控制芯片STC12C5A32AD作出了介绍,以及对各核心器件的工作原理和在电路中的主要作用进行了详细介绍,并阐述了应用Protel实现电路原理图的绘制及PCB设计过程,最终对实物调试情况进行了介绍。实物的调试结果表明,本设计能够成功地实现酒精浓度的检测。
[关键词] 检测 酒精浓度 酒精传感器 PCB STC12C5A32AD AT24C04
Title Alcohol concentration detector
Abstract
In order to achieve the detection of alcohol concentration,In this thesis, The design and production of the alcohol concentration detector regard STC12C5A32AD as the core control chip, The paper describes in detail the working principle of the system circuit and introduces the core control chip STC12C5A32AD. Described in detail as well as the core of the device working principle and the main role in the circuit. And described the application Protel circuit schematic drawing and PCB design process, Ultimately the physical debugging situation was introduced. The physical of debugging results indicate that the present design is able to successfully achieve detection of the alcohol concentration.
[Key words]: Detect Alcohol concentration Alcohol sensor PCB
STC12C5A32AD AT24C04
本科毕业设计说明书(论文)第
I页 共I页
目 次
1 绪论 ................................................................ 1 1.1 本课题研究的背景以及现实意义 ...................................... 1 1.2 本课题的研究概况及发展趋势综述 .................................... 1 1.3 本课题对于专业知识的综合应用情况 .................................. 2 2 酒精浓度检测仪电路的工作概述以及原理分析 ............................ 3 2.1 酒精浓度检测仪电路的工作概述 ...................................... 3 2.2 需要解决的问题及拟采用的研究手段 .................................. 3 2.3 系统硬件电路总体结构框图 .......................................... 4 2.4 各部分单元电路介绍 ................................................ 4 2.5 其它外围电路 ..................................................... 11 2.6 酒精检测仪总体电路原理图 ......................................... 13 3 PROTEL硬件开发软件 ................................................. 15 3.1 PROTEL软件组成 ................................................... 15 3.2 PCB板设计及实物图 ................................................ 16 4 软件编程 ........................................................... 18 4.1 软件流程图 ....................................................... 18 4.2 程序见附录。 ..................................................... 19 5 酒精浓度检测仪的焊接与调试 ......................................... 19 5.1 酒精浓度检测仪的焊接 ............................................. 19 5.2 酒精浓度检测仪的实物调试 ......................................... 22 5.3 酒精检测仪程序下载调试 ........................................... 23 结 论 ................................................................ 27 致 谢 ................................................................ 28 参 考 文 献 ........................................................... 29 附录 : C程序 ......................................................... 30
本科毕业设计说明书(论文)
1 绪论
1.1 本课题研究的背景以及现实意义
第 1 页 共 39页
为了防止驾驶人员酒后驾车,现场随时对人体呼吸中酒精含量进行检测已成为一种必要,酒精检测仪逐渐得到广泛的应用和青睐。
从工厂企业到居民家庭,酒精泄露的检测、监控以及对酒后驾车的监测对居民的人身和财产安全都是十分重要且必不可少的。现如今,由于人们安全意识增强,对环境安全性和生活舒适性要求的提高,再加上气体传感器向低功耗、多功能、集成化方向的发展,因此,酒精浓度检测仪具有十分广阔的现实市场。
酒精的测量在交通管理以及日常生活中具有极为重要的作用。传统的抽血测量具有时效性差、不方便等多方面的缺点。为了保障人民的生命财产安全,需要设计一智能仪器能够检测驾驶员体内酒精含量,以确定被测者体内酒精含量的多少,确保驾驶员的安全,酒精检测仪的设计与使用有着不可替代的作用,也有着相当好的前景和意义。本设计就是希望能够设计出这样一款产品,以满足社会的需要。
1.2 本课题的研究概况及发展趋势综述
随着电子信息技术的快速发展,传感器技术逐渐走向成熟,在生活中得到了广泛的应用。由于传感器在各个领域都有着举足轻重的作用,因此,高精度,高可靠性,微型化,微功耗无源化和智能数字化成为其发展方向
[11]
。
至今为止,对气体中酒精含量进行检测的设备有燃料电池型(电化学)、半导体型、红外线型、气体色谱分析型和比色型五种类型。但由于价格和使用方便的原因,目前常用的只有燃料电池型(电化学型)和半导体型两种。
燃料电池是当前全世界都在广泛研究的环保型能源,它可以直接把可燃气体转变成电能,而不产生污染,酒精传感器只是燃料电池的一个分支。燃料电池酒精传感器采用贵金属白金作为电极,在燃烧室内充满特种催化剂,使进入燃烧室内的酒精充分燃烧转变为电能,也就是在两个电极上产生电压,电能消耗在外接负载上,此电压与进入燃烧室内气体的酒精浓度成正比。
与半导体型相比,燃料电池型呼气酒精测试仪具有稳定性好,精度高,抗干扰性好的优点。但是由于燃料电池酒精传感器的结构要求非常精密,制造难度相当大,目前只有美国、英国、德国等少数几个国家能够生产,加上材料成本高,因此价格相当昂贵,是半导体酒精传感器的几十倍。所以应用半导体酒精传感器成为了一种趋势。
1
本科毕业设计说明书(论文)
1.3 本课题对于专业知识的综合应用情况
第 2 页 共 39页
本课题主要研究的是以单片机、气敏传感器和显示器为主,能够实时检测空气中的酒精浓度,并且具有报警功能的酒精浓度检测仪。其可检测出空气环境中和人体呼出的气体的酒精浓度值,并根据不同的环境和要求设定不同的阈值,当读数超过设定的阈值时,会发出报警提示。采用C语言来实现其软件功能。通过电路设计软件设计其电路原理图,然后运用熟练地焊接技术完成硬件设备的组装,该仪器功能完善、灵敏度高、工作性能好,并且具有尺寸小、方便携带的优点。
在设计中力求以最简单的电路来可靠完成测量系统的功能。在测量系统的PCB设计中严格按照PCB设计的工艺要求进行元器件的布局以及布线等设计,力求使得所设计的产品符合工艺化以及工程化的要求。在设计中综合应用了大学期间所学习的《模拟电子产品的安装与测试》、《数字电子产品的安装与测试》以及《电子产品的安装与调试》等多门专业课程。同时运用了单片机接口原理和C语言编程
[16]
。
本课题的选题难度适中,能够对应用电子技术专业学习的专业课程有较为全面的应用与掌握,同时也与自己的专业能力符合。
2
本科毕业设计说明书(论文)
2 酒精浓度检测仪电路的工作概述以及原理分析
2.1 酒精浓度检测仪电路的工作概述
第 3 页 共 39页
酒精浓度检测仪由酒精传感检测、信号转换电路、信号接受处理、结果显示等四个模块组成。酒精浓度的的采集是应用MQ-3型酒精传感器,它将检测到的酒精浓度转化为电信号,然后将电信号传送给模数转换器,本设计中模数转换器集成在STC12C5A32AD芯片中,单片机对所输入的数字信号进行分析处理,最后将分析处理的结果通过显示器显示出来。由于不同的环境对酒精浓度的要求也不一样,所以,可以通过键盘来设定不同环境中酒精浓度的不同阀值。如果所检测到的空气中的酒精浓度超过了所设定的阀值,那么单片机将会控制LED灯点亮来报警,来提示其已经超过设定值,起到报警作用。整体电路的设计功能完善,结构简洁,符合模块化的设计思路以及工程化的产品要求。经过理论分析以及实际检验,产品的工作性能良好。
2.2 需要解决的问题及拟采用的研究手段
本文以STC12C5A32AD单片机为核心,设计了用于测量酒精浓度的探测仪,主要研究工作包括以下3个方面。
(1)硬件电路方面,对气体传感器MQ-3按检测电路,接上一定阻值的负载电阻,检测它的技术参数,确定MQ-3所接负载电阻的大小,完成信号采样电路的设计;采样到的模拟电压电信号通过A/D转换,得到可供单片机处理的数字信号,再由单片机作相应的数据处理;发光二极管报警显示。
(2)软件方面,标准的确定是该部分要做的主要工作。因为原始的采样值是一个间接的负载分压值,需要将它转化为被测酒精浓度值。通过多个样品的测量确定多个浓度区间的转换标准,并将每个区间的转换关系近似线性化处理,然后通过软件编程的方法来实现
[17]
。
本次设计需要研究解决的问题是:
(1)传感器电路的设计。首先设计一个基准电压2.5V,采用差动输入使得V输出=V酒精浓度-2.5V。从而使得传感器的输出范围符合STC12C5A32AD的范围。发光二极管点越亮,酒精浓度越高燃烧产生的电压值越大,超过设定值,电路报警。
(2) 使用LCD显示器来显示酒精浓度和输入的相关信息器; (3)采用STC12C5A32AD芯片进行电路的总控制和检测。
3
本科毕业设计说明书(论文)
2.3 系统硬件电路总体结构框图
酒精检测仪电路总体结构框图如图2.1 第 4 页 共 39页
传感器模块 MQ-3 气体传感器
信号调理电路
单片机模块 模/数转换
电压/酒精浓度转换 阈值比较 外部EEPROM
过阈报警 酒精浓度显示
图2.1 酒精检测仪电路总体结构框图
2.4 各部分单元电路介绍
2.4.1 乙醇信号检测及调理电路
MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为:
(1) 对乙醇蒸汽有很高的灵敏度和良好的选择性 (2) 快速的响应恢复特性 (3) 长期的寿命和可靠的稳定性 (4) 简单的驱动回路 1 主要技术指标如表2-1:
4
本科毕业设计说明书(论文)
表2-1 MQ-3主要技术指标
第 5 页 共 39页
2 MQ-3乙醇气体传感器灵敏度曲线如图2.2所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。
图2.2 MQ-3乙醇气体传感器灵敏度曲线
5
本科毕业设计说明书(论文)
3 MQ-3乙醇气体传感器管脚与测试电路如图2.3所示。
第 6 页 共 39页
(a) 管脚图 (b) 测试电路
图2.3 MQ-3乙醇气体传感器管脚及测试电路
4 MQ-3乙醇气体传感器及其调理电路,经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。
信号调理电路是把模拟信号变换为用于数据采集、控制过程、执行计算显示读出或其他目的的数字信号。模拟传感器可测量很多物理量,如温度、压力、光强等...但由于传感器信号不能直接转换为数字数据,这是因为传感器输出是相当小的电压、电流或电阻变化,因此,在变换为数字信号之前必须进行调理。调理就是放大,缓冲或定标模拟信号等,使其适合于模/数转换器(ADC)的输入
[12]
。然后,ADC对模拟信号
进行数字化,并把数字信号送到MCU或其他数字器件,以便用于系统的数据处理。
其外形如图2.4所示
图2.4 传感器实物图
6
本科毕业设计说明书(论文)
(1) 具有信号输出指示。
(2) 双路信号输出(模拟量输出及TTL电平输出)。
第 7 页 共 39页
5 该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。
(3) TTL输出有效信号为低电平。(当输出低电平时信号灯亮,可直接接单片机)。 (4) 模拟量输出0~5V电压,浓度越高电压越高。 2.4.2 单片机电路
单片微机是单片微型计算机的译名简称,在国内也常称为“单片微机”或“单片机”
[10]
。它包括中央处理器CPU,随机存储器RAM,只读存储器ROM,中断系统,定
时器/计数器,串行口和I/O口等等。现在,单片微机已不仅指单片计算机,还包括微计算机,微处理器,微控制器和嵌入式控制器,单片微机已是它们的俗称。
本设计选用宏晶公司高性能单片机STC12C5A32AD,其实物和管脚如图2.5和2.6所示。
[1]
图2.5 STC12C5A32AD单片机实物图 图2.6 STC12C5A32AD单片机管脚图
该芯片为52内核8位单片机,内部集成了10位多路A/D转换模块,适用于常用
7
本科毕业设计说明书(论文)
[2]
第 8 页 共 39页
检测电路。由于此芯片集成了AD转换器,所以传感器输出的信号可以直接接单片机,不需用再进行AD转换。由STC12C5A32AD组成的单片机系统原理图如图2.7所示。AOUT为MQ-3传感器模块输出的检测电压信号,送入ADC7端口进行处理,DOUT为传感器模块输出的数字电平信号,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。
这是宏晶的mcs-51兼容单片机,最大频率可以达到35HMz,最大速度可以达到35MIPS。这种单片机有32kB Flash,其中部分可以作为EEPROM使用;有1280Bytes RAM,其中256Bytes 是基本RAM,其他是扩展RAM,需要采用外部RAM方式访问;有2路10位ADC,可以简化外部硬件;多组PWM输出,可以免除外部DAC;有上电复位电路和看门狗,可以大大降低最简系统成本和体积
单片机最小系统如图2.7:
图2.7 单片机系统原理图
图2.7中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”
8
本科毕业设计说明书(论文)
第 9 页 共 39页
按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。
2.4.3 显示电路
显示部分采用SMC 1602液晶屏进行数据显示,LCD1602每行可以输出16个字符,可以显示两行,故称1602,它不带中文字库,故只能显示数字、字母和普通字符。
液晶显示输出D0到D7口接P0.0到 P0.7,单独使用一个口,另外还要接上10K上拉电阻来提高P0口带负载能力。 1602液晶屏主要技术参数如表2-2:
表2-2 液晶屏技术指标
显示容量 芯片工作电压 工作电流 模块最佳工作电压
字符尺寸
接口信号说明如表2-3所示。
16X2个字符 4.5~5.5V 2.0mA(5.0V)
5.0V
2.99X4.35(WXH)mm
表2-3 液晶屏接口信号说明
编号 1 2 3 4 5 6 7 8
符号 VSS VDD VL RS R/W E D0 D1
引脚说明 电源地 电源正极 液晶显示偏压信号 数据/命令选择端(H/L) 读/写选择端(H/L) 使能信号 Date I/O Date I/O
编号 9 10 11 12 13 14 15 16
符号 D2 D3 D4 D5 D6 D7 BLA BLK
引脚说明 Date I/O Date I/O Date I/O Date I/O Date I/O Date I/O 背光源正极 背光源负极
LCD1602接口电路如图2.8所示。其中J2的3脚为背光引脚,R7和R8电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、R/W和E控制引脚,J2的7—14引脚为数据引脚。
液晶屏接口如图2.8所示
9
本科毕业设计说明书(论文)
第 10 页 共 39页
图2.8 液晶接口电路
2.4.4 阈值存储
AT24C02是Ateml公司的2KB得电可擦除存储芯片,采用两线串行的总线和单片机通讯,电压最低可以到2.5V,额定电流为1mA,静态电流10uA(5.5V),芯片内的资料可以在断电的情况下保存40年以上,而且采用8 脚的DIP 封装,使用方便。简而言之,AT24C02是一个在突然掉电的情况下存储数据的芯片,即掉电存储芯片。
醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过 “增加”、“减少”按键调节并保存。AT24C04是IC接口的EEPROM芯片,可以用于掉电不易失数据的存储。其电路如图2.9所示。图中A0、A1和A2为芯片的地址引脚,一般接地即可。SCL和SDA为AT24C04和单片机IIC通信的时钟线和数据线。
EEPROM存储电路如图2.9所示:
图2.9 阈值存储电路
10
本科毕业设计说明书(论文)
2.4.5 供电及程序下载电路
第 11 页 共 39页
本设计采用USB接口供电,电源电压5V。同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。其电路原理如图2.10所示。
图2.10 供电及程序下载电路
2.5 其它外围电路
1 电源指示灯电路如图2.11:
图2.11 电源指示灯电路
发光二极管L1为电源指示灯,它的正极接电源正极,通过开关与电源正极相连,负极与1k的电阻相连接GND,L1亮,表示电路板已通电。 2 阈值报警指示电路如图2.12:
图2.12 阈值报警指示电路
11
本科毕业设计说明书(论文)
第 12 页 共 39页
发光二极管L1和L2为报警指示灯,当酒精浓度超过设定下限值时,L2灯亮,当酒精浓度值超过设定上限值时,指示灯L3亮。灯的正极接5V电压,负极接1k的电阻分别接在单片机的P3.4和P3.5脚。 3 按键设计
按键的功能是根据用户的不同需要,自行设定酒精限值,图中K2增加酒精浓
度限值,K3减小酒精浓度限值
按键没按下去是1、4脚连通,2、3脚连通,当按下去四个脚都连通,本次按键的焊接是按键斜对角线,按键没有按下4脚和2脚不导通,按下4脚和2脚导通。每个按键还需要一个上拉电阻,上拉电阻一端接VCC,一端接单片机16、17脚。
按键控制电路如图2.13:
图2.13 按键控制电路
4 晶振和滤波电路
晶振用一种能把电能和机械能相互转化的晶体在共振的状态下工作,以提供稳定,精确的单频振荡。在单片机系统里晶振的作用非常大,它结合单片机内部的电路,产生单片机所必须的时钟频率,给单片机作为一个时间基准,决定单片机的运行速度,单片机的一切指令的执行都是建立在这个基础上的,晶振的提供的时钟频率越高,那单片机的运行速度也就越快。
晶振2脚和单片机18、19脚相连,没有正负极,2个20pf电容一个脚接地,一个脚和晶振相连。
滤波电路由22uf电解电容和0.1uf电容组成,22uf电解电容有正负极,长脚为
12
本科毕业设计说明书(论文)
正极接板子VCC,短脚为负极接板子GND,0.1uf没有正负极。 晶振及滤波电路如图2.14:
[5]
第 13 页 共 39页
图2.14 晶振及滤波电路
5 复位电路
为确保微机系统中电路稳定可靠工作,复位电路是必不可少的一部分。复位电路使用一个电解电容和一个10K的电阻。电解电容使用10uf,长脚接VCC,短脚接单片机9脚,电阻一端接GND,一端接9脚。
复位电路如图2.15:
图2.15 复位电路
2.6 酒精检测仪总体电路原理图
硬件设计时,考虑酒精浓度是由传感器把非电量转换为电量,传感器输出的是0-5伏的电压值并且电压值稳定,外部干扰小等。因此,可以直接把传感器输出电压值经过模数转换器送入单片机进行处理。由于此设计中模数转换器集成在单片机
13
[4]
本科毕业设计说明书(论文)
第 14 页 共 39页
中,所以直接把信号送入单片机就行了。酒精浓度监测仪的硬件电路设计主要包括:传感器测量电路、STC12C5A32AD单片机系统、光报警电路、LCD显示电路。
图2.16为电路总原理图:
[6]
[8]
图2.16 酒精浓度检测仪电路总原理图
14
本科毕业设计说明书(论文)
3 Protel硬件开发软件
第 15 页 共 39页
Protel是目前国内最流行的通用EDA软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的EDA工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。它集成了软件界面、仿真功能和PLD设计和信号完整性分析,在此基础上Protel 99SE又增加了一些新的功能,用户使用更加方便灵活。Protel的功能十分强大,在电子电路设计领域占有极其重要的地位。它以其强大功能和实用性,逐渐获得广大硬件设计人员的青睐,是目前众多EDA设计软件中用户最多的产品之一。
[9]
3.1 Protel软件组成
Protel软件主要由电路原理图设计模块、印制电路板设计模块(PCB设计模块)、电路信号仿真模块和PLD逻辑器件设计模块等组成,各模块具有强大的功能,可以很好的实现电路设计与分析。
(1) 原理图设计模块(Schematic模块)
电路原理图是表示电气产品或电路工作原理的重要技术文件,电路原理图主要由代表各种电子器件的图形符号、线路和结点组成。图2.2所示为一张电路原理图。该原理图是由Schematic模块设计完成的。Schematic模块具有如下功能:丰富而灵活的编辑功能、在线库编辑及完善的库管理功能、强大的设计自动化功能、支持层次化设计功能等。
(2) 印制电路板设计模块(PCB设计模块)
印制电路板(PCB)制板图是由电路原理图到制作电路板的桥梁。设计了电路原理图后,需要根据原理图设计成印制电路板的制板图,然后在根据制板图制作具体的电路板。印制电路板设计模块具有如下主要功能和特点:可完成复杂印制电路板(PCB)的设计;方便而又灵活的编辑功能;强大的设计自动化功能;在线式库编辑及完善的库管理;完备的输出系统等。
(3) 电路信号仿真模块
电路信号仿真模块是一个功能强大的数字/模拟混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。它运行在Protel的EDA/Client集成环境下,与Protel Advanced Schematic原理图输入程序协同工作,作为Advanced Schematic的扩展,为用户提供了一个完整的从设计到验证仿真设计环境
[15]
。
在Protel中进行仿真,只需从仿真用元器件库中放置所需的元器件,连接好原
15
本科毕业设计说明书(论文)
理图,加上激励源,然后单击防真按钮即可自动开始。
第 16 页 共 39页
3.2 PCB板设计及实物图
(1) 定元件的封装
① 打开网络表(可以利用一些编辑器辅助编辑),将所有封装浏览一遍,确保所有元件的封装都正确无误并且元件库中包含所有元件的封装,网络表中所有信息全部大写。
② 标准元件全部采用公司统一元件库中的封装。 ③ 元件库中不存在的封装,应自己建立元器件库。 (2) 建立PCB板框
① 根据PCB结构图,或相应的模板建立PCB文件,包括安装孔、禁布区等相关信息。
② 尺寸标注。在钻孔层中应标明PCB的精确结构,且不可以形成封闭尺寸标注。 (3) 载入网络表
① 载入网表并排除所有载入问题,具体请看《PROTEL技术大全》。其他软件载入问题有很多相似之处,可以借鉴。
② 如果使用PROTEL,网表须载入两次以上(没有任何提示信息)才可以确认载入无误。
(4) 布局
① 首先要确定参考点。
一般参考点都设置在左边和底边的边框线的交点(或延长线的交点)上或印制板的插件的第一个焊盘。
② 一但参考点确定以后,元件布局、布线均以此参考点为准。布局推荐使用25MIL网格。
③ 根据要求先将所有有定位要求的元件固定并锁定。 ④ 布局的基本原则
A 遵循先难后易、先大后小的原则。
B 布局可以参考硬件工程师提供的原理图和大致的布局,根据信号流向规
律放置主要原器件。
C 总的连线尽可能的短,关键信号线最短。
D 强信号、弱信号、高电压信号和弱电压信号要完全分开。
16
本科毕业设计说明书(论文)
E 高频元件间隔要充分。 F 模拟信号、数字信号分开。
⑤ 相同结构电路部分应尽可能采取对称布局。
⑥ 按照均匀分布、重心平衡、版面美观的标准来优化布局。 3 酒精浓度检测仪PCB如图3.1所示:
第 17 页 共 39页
图3.1 酒精浓度检测仪PCB
17
本科毕业设计说明书(论文)
4 软件编程
4.1 软件流程图
本设计软件主程序流程图如下图所示。
[3]
第 18 页 共 39页
数据初始化
定时器初始化
A/D转换初始化
显示初始化
进入后台while循环 触发A/D转换
换算酒精浓度
酒精浓度显示
超过阈值吗? 是
否 酒精浓度显示 是 有键按下吗?
否
图4.1 主程序流程图
报警灯亮 按键处理 18
本科毕业设计说明书(论文)
4.2 程序见附录。
第 19 页 共 39页
5 酒精浓度检测仪的焊接与调试
5.1 酒精浓度检测仪的焊接
5.1.1 手工焊接的意义
手工焊接是一种比较传统的焊接方法.手工焊接的质量直接影响到维修效果,而且它是一项实践性很强的技能,初学手工焊接人员一定要多练.多实践,才能达到较好的焊接效果,即有好的焊接质量。 本次设计中用到的元件如下表:
表5-1 元件列表
[7]
元件名称
STC12C5A32AD单片机芯片 AT24C02芯片 六脚开关 四角按键 LED
IN4148二极管 电解电容 瓷片电容 电阻 晶振 接口
5.1.2 正确的焊接方法
元件个数 1个 1个 1个 2个
绿色1个、红色2个 1个
22uf 1个、10uf 1个 20pf 2个、0.1uf 1个 1K 6个、10K 4个 1个 若干
焊接时利用烙铁头的对元件引线和焊盘预热,烙铁头与焊盘的平面最好成45°夹角,等待焊金属上升至焊接温度时,再加焊锡丝。被焊金属未经预热,而将焊锡直接加在烙铁头上,使焊锡直接滴在焊接部位,这种焊接方法常常会导致虚焊。 5.1.3 插件元件焊接步骤 (1)插入
将插件元件插入电路板标示位置过孔中,与电路板紧贴至无缝为止。如未与电路
19
本科毕业设计说明书(论文)
损伤或脱落。 (2) 预热
第 20 页 共 39页
板贴紧,在重复焊接时焊盘高温易使焊盘损伤或脱落,物流过程中也可导致焊盘
烙铁与元件引脚、焊盘接触,同时预热焊盘与元件引脚,而不是仅仅预热元件,此过程约需1秒钟时间。 (3) 加焊锡
焊锡加焊盘上(而不是仅仅加在元件引脚上),待焊盘温度上升到使焊锡丝熔化的温度,焊锡就自动熔化。 (4) 加适量的焊锡,然后先拿开焊锡丝。 (5) 焊后加热
拿开焊锡丝后,不要立即拿走烙铁,继续加热使焊锡完成润湿和扩散两个过程,直到是焊点最明亮时再拿开烙铁,不应有毛刺和空隙。 (6) 冷却
在冷却过程中不要移动插件元件。 5.1.4 贴片元件焊接步骤
(1)在待焊元件的一端点上焊锡。
(2)用镊子将贴片元件水平放置在电路板上标示位置,先焊接好已点锡的一端,再
在未点锡的一端加上焊锡焊接好即可。 5.1.5 焊接注意事项 (1)焊接温度和时间
焊锡的最佳温度为350oC,温度太低易形成冷焊点,高于400oC易使焊点质量变差,且容易导致焊盘(铜皮)变形或脱落。
焊接时间:完成润湿和扩散两个过程需2-3S,1S 仅完成润湿和扩散两个过程的35%。一般IC、三极管焊接时间小于3S,其他元件焊接时间为4-5S。 (2) 焊锡量适当
焊点上焊锡过少,机械强度低。焊锡过多,会容易造成绝缘距离减小、焊点相碰或跳锡等现象。 (3)电烙铁使用注意事项
电烙铁温度升高后,首先应将烙铁尖点上薄薄的一层焊锡,避免烙铁尖因氧化而不沾锡。使用过程中,烙铁尖表面应一直保持有薄薄的焊锡层,多余的焊锡 可
20
本科毕业设计说明书(论文)
烙铁温度调至最低。
手工焊接所焊的实物如图5.1、图5.2:
第 21 页 共 39页
轻轻甩在烙铁架上,或用一块湿布(湿海绵)擦拭一下。暂时不用时,应将电
图5.1 酒精浓度检测仪实物反面图
图5.2 酒精浓度检测仪实物正面图
21
本科毕业设计说明书(论文)
5.2 酒精浓度检测仪的实物调试
5.2.1 调试工作的主要内容
第 22 页 共 39页
调试工作包括调整和测试两个方面。调整主要是对电路参数而言,即对整机内电感线圈的可调磁芯、可变电阻器、电位器、微调电容器等可调元器件及与电气指标有关的调谐系统、机械传动部分等进行调整,使之达到预定的性能指标和功能要求。
测试是用规定精度的测量仪表对单元电路板和整机的各项技术指标进行测试,以此判断被测项技术指标是否符合规定的要求。调试工作的主要内容有以下几点:
(1) 正确合理地选择和使用测试所需的仪器仪表。
(2) 严格按照调试工艺指导卡的规定,对单元电路板或整机进行调整和测试,
完成后按照规定的方法紧固调整部位。 (3) 排除调整中出现的故障,并作好记录。
(4) 认真对调试数据进行分析、反馈和处理,并撰写调试工作总结,提出改进
措施。
对于简单的小型整机,如稳压电源、半导体收音机、单放机等,调试工作简便,一旦装配完成后,可以直接进行整机调试;而对于结构复杂、性能指标要求高的整机,调试工作先分散后集中,即通常可先对单元电路板进行调试,达到要求后再进行总装,最后进行整机调试。 5.2.2 调试的一般步骤
调试工作遵循的一般规律为:先调试部件,后调试整机;先内后外;先调试结构部分,后调试电气部分;先调试电源,后调试其余电路;先调试静态指标,后调试动态指标;先调试独立项目,后调试相互影响的项目;先调试基本指标,后调试对质量影响较大的指标。
由于电子产品的种类繁多,电路复杂,内部单元电路的种类、要求及技术指标等也不相同,所以调试程序不尽相同。但对一般电子产品来说,调试程序大致如下:
(1)电源的调试
较复杂的电子产品都有独立的电源电路,它是其他单元电路和整机工作的基础。通常在电源电路调试正常后,再进行其他项目的调试。通常应先置电源开关于“OFF”位置,检查电源变换开关是否符合要求、输入电压是否正确,然后插上电源开关插头,打开电源开关通电。接通电源后,电源指示灯亮,此时应注意有无放电、打火、冒烟现象,有无异常气味。若有这些现象,立即停电检查。另外,还应检查各种保险开关、
22
本科毕业设计说明书(论文)
第 23 页 共 39页
控制系统是否起作用,各种散热系统是否正常工作。电源调试通常在空载状态下进行,切断该电源的一切负载后进行初调(开关电源需带假负载调试)。其目的是避免因电源电路未经调试带负载,容易造成部分电子元器件的损坏。调试时,接通电源电路板的电源,测量有无稳定的直流电压输出,其值是否符号设计要求,或调节取样电位器使电源电压达到额定值。测试检测点的直流工作点和电压波形,检查工作状态是否正常,有无自激振荡等。空载调试正常后,电源加负载进行细调。在初调正常的情况下,加上定额负载,再测量各项性能指标,观察是否符合设计要求。当达到要求的最佳值时,锁定有关调整元件(如电位器等),使电源电路具有加负载时所需的最佳功能状态。
(2) 单元电路板调试
电源电路调好后,可以进行其他电路的调试,这些电路通常按单元电路的顺序,根据调试的需要及方便,由前到后或由后到前地依次接通各部件或印制电路板的电流,分别进行调试。首先检查和调整静态工作点,然后进行各参数的调整,直到各部分电路均符合技术文件规定的各项指标为止。 A 输入模块的调试:
用万用表检测输入模块的输出电压是否是5V左右,如果不是,说明输入模块出现了连接不良现象。 B 芯片引脚测试
用万用表检测芯片是否有电压输入,只有当有电压输入时芯片才能正常工作,然后再检测各个引脚的功能所必须的输出信号,进行排查与检测。 C 输出模块调试
用示波器检测输出模块是否有正确稳定的电压、电流输出,如果没有且在前面电路没错误的情况下进行输出模块排查,直到找出错误。 (3) 整机调试
各单元电路、部件调试好后,接通所有的部件及印制电路板的电源,进行整机调整。检查各部分连接有无影响以及机械结构对电气性能的影响等,整机电路调整好后,调试整机总电流和消耗功率。
5.3 酒精检测仪程序下载调试
当程序在uVision环境下编写完成,并编译生成.hex文件后,就可以下载并进行调试了。
23
本科毕业设计说明书(论文)
USB转串口驱动安装
第 24 页 共 39页
打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.exe安装文件,按提示安装USB转串口驱动程序。安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(Prolific USB-to-Serial Comm Port(COMX)。X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装
[13]
。
成功安装USB转串口驱动示意图如图5.1:
图5.1 成功安装USB转串口驱动示意图
下载程序
打开STC单片机下载软件文件夹,点击运行STC_ISP_V481.exe程序,出现如下界面。
正确选择MCU (STC12C5A32AD)类型,COM口(与刚才安装的COM号一致),最高波特率和最低波特率都选2400bps或者1200bps件。
下载软件如图5.3:
[14]
,并打开正确的.hex数据文
24
本科毕业设计说明书(论文)
第 25 页 共 39页
图5.3 下载软件
点击“Download/下载”按纽,窗口出现提示: Chinese:正在尝试与 MCU/单片机 握手连接 ... Chinese:连接失败,请尝试以下操作:
(1) 在单片机停电状态下,点下载按钮,再给单片机上电 (2) 停止下载,重新选择 RS-232 串口, 接好电缆 (3) 可能需要先将 P1.0/P1.1 短接到地 (4) 可能外部时钟未接
(5) 因 PLCC、PQFP 转换座引线过长而引起时钟不振荡,请调整参数 (6) 可能要升级电脑端的 STC-ISP.exe 软件
(7) 若仍然不成功,可能 MCU/单片机内无 ISP 系统引导码,或需退回升级,或 MCU
已损坏
(8) 若使用 USB 转 RS-232 串口线下载,可能会遇到不兼容的问题,可以让我们
帮助购买兼容的 USB 转 RS-232 串口线仍在连接中, 请给 MCU 上电... MCU Type is: STC12C5A32AD MCU Firmware Version: 6.2I
25
本科毕业设计说明书(论文)
Chinese:MCU 固件版本号: 6.2I 下次冷启动后使用外部晶体或时钟 RESET pin 仍为 RESET 上电复位增加额外的复位延时
振荡器放大增益: High gain 下次下载时 P1.0/P1.1 与下载无关
下次下载用户应用程序时将数据Flash区擦除: NO P4.6/RESET2 用作 P4.6
启动内部看门狗后禁止改看门狗分频数 NO 下次上电自动用有关参数启动内部看门狗 NO Idle(空闲)状态时内部看门狗停止计数 YES 冷启动后内部看门狗预分频数(未启动): 256 MCU Clock:11.069631MHz./时钟频率:11.069631M. Chinese:正在重新连接 ...
Current Baud is: / 当前波特率为: 2400 bps. We are erasing MCU flash... 正在擦除应用程序区... ( 00:02 ) 正在下载... ( 开始时间: 09:57:43 ) Program OK / 下载 OK Verify OK / 校验 OK
erase times/擦除时间 : 00:02 program times/下载时间: 00:15 Encrypt OK/ 已加密
第 26 页 共 39页
按下电路板上的电源按纽,保证其有个失电至上电的过程,则窗口显示开始烧录芯片。
芯片烧录成功后,程序开始运行,酒精浓度测试仪正常工作。
26
本科毕业设计说明书(论文)
第 27 页 共 39页
结 论
本设计的主要任务是进行酒精浓度检测仪的设计与制作。所设计的酒精浓度检测仪主要包含酒精采集模块以及单片机处理模块和显示部分。通过MQ-3型酒精传感器模块完成酒精信号的检测,通过STC12C5A32AD单片机完成信号的接收处理以及控制。并输出由1602液晶显示所测数值。本设计过程包括了硬件电路设计和软件程序的编写两部分。硬件电路部分结构简单,使用方便,适合大众化使用。软件部分采用模块化设计思想,各个子程序的功能相对独立,便于调试和修改。本设计编程采用C语言,体现了其很好的计算机语言优势。
该测量系统功能完整、可靠性高,在实际的工业测量、生产中具有一定的应用价值。本人非常认真地且独立地完成了本毕业设计地全部工作,有电路图的设计,原理图的绘制,实物的制作,程序的编写与调试、论文的撰写。在设计中查过许多资料,请教过老师和同学。当然,本设计也存在一些不足之处,如:体积过于大了,不易于携带,灵敏度有待进一步验证等,该系统还可以进一步完善,实现更多功能。
27
本科毕业设计说明书(论文)
第 28 页 共 39页
致 谢
酒精浓度检测仪的论文以及设计已经完成,本论文从选题,实验,到论文的写作,整个过程得到了钱松老师的精心指导和细心帮助,在此表示衷心的感谢。钱老师多次询问研究进程,并为我指点迷津,帮助我开拓研究思路,精心点拨、热忱鼓励。钱老师一丝不苟的作风,严谨求实的态度,踏踏实实的精神,不仅授我以文,而且教我做人,给我以终生受益无穷之道。对钱老师的感激之情是无法用言语表达的。 感谢老师等对我的教育培养。钱松老师严谨的治学态度,孜孜不悔的教学精神,平易近人的人格魅力,对我影响深远。
这几个月以来,感谢在整个毕业设计期间和我密切合作的同学,和曾经在各个方面给予过我帮助的伙伴们,在此,我再一次真诚地向帮助过我的老师和同学表示感谢!
大学生活一晃而过,回首走过的岁月,心中倍感充实,当我完成论文的那一刻,感觉到我们的大学生活即将结束,大学四年学习生涯即将告以段落,在此要感谢三年以来一直对教学和指导工作认真负责,孜孜不倦的所有的老师们,同时还要感谢跟我一同学习的同学,他们给了我帮助、支持和动力,让我度过了一个美好的大学生活。
28
本科毕业设计说明书(论文)
第 29 页 共 39页
参 考 文 献
[1] 俞国亮. MCS-51单片机原理与应用[M].清华大学出版社,2008. [2] 张大明. 单片微机控制应用技术[M]. 机械工业出版社,2006. [3] 谭浩强.《c程序设计》[M],清华大学出版社。
[4] 刘志民. 电路分析 西安电子科技大学出版社 -2008.6
[5] 康华光. 模拟电子技术 高等教育出版社 -2006.1
[6] 夏路易. 石宗义,电路原理图和电路板设计教程 Protel99se -2002.6 [7] 廖芳. 电子产品制作工艺与实训 电子工业出版社 –20010.7 [8] 谢自美. 电子线路设计.实验.测试[M].华中科技大学出版社,2005. [9] 夏路易. 电路板原理图与电路板设计教程[M].希望电子出版社,2002.
[10] 何立民. MCS-51系统单片机应用设计配置与接口技术[J],1990. [11] 刘清平.《科技广场》[J] ,2012.7 [12] Yen-Liang YehCheng. Chi. WangMing-Jyi JangYen-Pin Lin《Optics and Lasers
in Engineering》, EI SCI 2009 5
[13] LI Yong-guo,LIU Hong,ZHANG FangWANG,Zheng-tao,HU Zhi-bi《Chemical Research in Chinese Universities》, EI SCI 2006 4
[14] Koike, RKitagawa, FOtsuka, K《Journal of Separation Science》, EI SCI
2009 3
[15] Thomas Wallner《Journal of engineering for gas turbines and power》, EI
SCI 2011 8
[16] Fernandes ENReis BF《Journal of AOAC International》, EI SCI 2004 4 [17] Nguyen Ha Thi-Hoang Fujio,Yoshifumi《Analytica Chimica Acta》, EI SCI
1999 1-2
29
本科毕业设计说明书(论文)
第 30 页 共 39页
附录 : C程序
1、主程序
#include \#include \#include \
#define uchar unsigned char #define uint unsigned int
#define ALCH 80 #define K_MG_MV 80/160 #define K_ZERO 15
sbit Key_Up = P3^6; sbit Key_Down = P3^7;
sbit Led_Warn1 = P3^4; sbit Led_Warn2 = P3^5;
sbit DOUT = P1^4; sbit AOUT = P1^7;
volatile bit FlagStartAL = 0; volatile bit FlagKeyPress = 0;
uchar Threshold; uint ALCounter; long ALValue;
uint keyvalue, keyUp, keyDown; char * pSave;
void Data_Init(); void Timer0_Init(); void Port_Init(); void ADC_Init(); uchar GetADVal();
void KeyProcess(uint );
void Data_Init() {
ALCounter = 0; ALValue = 0;
30
本科毕业设计说明书(论文)
第 31 页 共 39页
Led_Warn1 = 1; Led_Warn2 = 2; keyvalue = 0; keyUp = 1; keyDown = 1; }
void Timer0_Init() {
ET0 = 1; TMOD = 1; TL0 = 0xcc; TH0 = 0xf8; TR0 = 1; }
void Timer0_ISR (void) interrupt 1 using 0 {
TL0 = 0xcc;
TH0 = 0xf8;
ALCounter ++;
if (ALCounter >= 500) {
FlagStartAL = 1; ALCounter = 0; } }
void Port_Init() {
P1M0 = 0x80; P1M1 = 0x80; }
void ADC_Init() {
uint i;
P1ASF = 0x80; ADC_RES = 0; ADC_CONTR|=0x80; for(i=5000;i>0;i--) ;
ADC_CONTR = ADC_CONTR&0xE0;
ADC_CONTR = ADC_CONTR&0xf8|0x07;
31
本科毕业设计说明书(论文)
第 32 页 共 39页
for(i=2500;i>0;i--) ; }
uchar GetADVal() {
uint i;
ADC_CONTR&=0xf7;
for(i=250;i>0;i--); //ADC_RES = 0;
ADC_CONTR |= 0x08; while((ADC_CONTR&0x10)==0); ADC_CONTR&=0xe7; }
void Save_Setting() {
pSave = (char *)&Threshold; wrteeprom(0, *pSave); DELAY(3000); pSave ++;
wrteeprom(1, *pSave); DELAY(3000); }
void Load_Setting() {
pSave = (char *)&Threshold; *pSave++ = rdeeprom(0); *pSave = rdeeprom(1);
if ((Threshold>=255)||(Threshold<0)) Threshold = 80; }
void KeyProcess(uint num) {
switch (num) {
case 1:
if (Threshold<255) Threshold++; break; case 2:
if (Threshold>1) Threshold--; break; default: break;
32
本科毕业设计说明书(论文)
第 33 页 共 39页
}
L1602_int(2,4,Threshold); Save_Setting(); }
void main() {
uint i,j;
EA = 0;
Data_Init(); Timer0_Init(); Port_Init(); ADC_Init(); EA = 1;
L1602_init();
L1602_string(1,1,\ L1602_string(2,1,\
for (i=0;i<1000;i++) for (j=0;j<1000;j++) {;}
L1602_string(1,1,\ L1602_string(2,1,\ L1602_string(1,1,\ L1602_string(2,1,\
Load_Setting();
L1602_int(2,4,Threshold); while(1) {
if (FlagStartAL == 1) {
ALValue = (long)500 * GetADVal() / 256; ALValue = ALValue - K_ZERO; if (ALValue < 0) ALValue = 0;
ALValue = ALValue * K_MG_MV; L1602_int(1,4,(int)ALValue);
if (ALValue > Threshold) Led_Warn1 = 0; else Led_Warn1 = 1; FlagStartAL = 0; }
if (DOUT == 0) Led_Warn2 = 0;
33
本科毕业设计说明书(论文)
第 34 页 共 39页
else Led_Warn2 = 1;
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); } }
2、1602液晶显示程序 #include \#include \
void delay() {
int i,j;
for(i=0; i<=10; i++) for(j=0; j<=2; j++) ; }
uchar Convert(uchar In_Date) {
return In_Date; }
void enable(uchar del) {
P0 = Convert(del); RS = 0; RW = 0; E = 0; delay(); E = 1; delay(); }
void write(uchar del) {
34
本科毕业设计说明书(论文)
第 35 页 共 39页
P0 = Convert(del); RS = 1; RW = 0; E = 0; delay(); E = 1; delay(); }
void L1602_init(void) {
enable(0x01); enable(0x38); enable(0x0c); enable(0x06); enable(0xd0); }
void L1602_char(uchar hang,uchar lie,char sign) {
uchar a;
if(hang == 1) a = 0x80; if(hang == 2) a = 0xc0; a = a + lie - 1; enable(a); write(sign); }
void L1602_string(uchar hang,uchar lie,uchar *p) {
uchar a;
if(hang == 1) a = 0x80; if(hang == 2) a = 0xc0; a = a + lie - 1; enable(a); while(1) {
if(*p == '\\0') break; write(*p); p++; } }
void L1602_int(uchar hang, uchar lie, long num) {
35
本科毕业设计说明书(论文)
第 36 页 共 39页
uint temp;
uint qianwei, gewei,shiwei,baiwei,sign; L1602_char(hang, lie+0, ' '); L1602_char(hang, lie+1, ' '); L1602_char(hang, lie+2, ' '); L1602_char(hang, lie+3, ' ');
sign = 0;
temp = abs(num);
qianwei = temp / 1000;
temp = temp - qianwei*1000; baiwei = temp / 100;
temp = temp - baiwei*100; shiwei = temp / 10;
gewei = temp - shiwei*10; num = abs(num); if (num >= 1000) {
L1602_char(hang, lie+1, qianwei+48); L1602_char(hang, lie+2, baiwei+48); L1602_char(hang, lie+3, shiwei+48); L1602_char(hang, lie+4, gewei+48); }
else if (num>=100) {
L1602_char(hang, lie+2, baiwei+48); L1602_char(hang, lie+3, shiwei+48); L1602_char(hang, lie+4, gewei+48); }
else if (num>=10) {
L1602_char(hang, lie+3, shiwei+48); L1602_char(hang, lie+4, gewei+48); } else {
L1602_char(hang, lie+4, gewei+48); }
3、24C02程序
#include \
void DELAY(unsigned int t) {
while(t!=0)
36
本科毕业设计说明书(论文)
第 37 页 共 39页
t--; }
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=250; DELAY(1); SCL=1; DELAY(1); CY=SDA; while(CY) {
errtime--;
37
本科毕业设计说明书(论文)
第 38 页 共 39页
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;i<8;i++) {
if((dat<
unsigned char Read_byte(void) {
unsigned char i,temp=0; for(i=0;i<8;i++) {
SDA=1; SCL=1;
DELAY(1); if(SDA==1) {
temp=temp<<1; temp=temp|0x01; } else
temp=temp<<1; SCL=0; }
return temp; }
38
本科毕业设计说明书(论文)
第 39 页 共 39页
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 temp; }
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(); }
39