范文一:酒精浓度测试仪
酒后驾车测试仪的设计
摘 要
以单片机和气体传感器为核心,设计了酒精浓度检测仪,实现了不同环境下酒精浓度的检测。本文主要介绍了酒精浓度检测仪整体结构,设计了系统硬件电路,阐述了各模块功能并着重研究了气体传感器的选择。
关键词:单片机;A/D 转换;酒精传感器
Abstract
An alcohol concentration detector is designed taken single chip computer and gas sensor as kernel. The alcohol concentration in different environment can be measured . In this paper , the whole
construct of the alcohol concentration detector is introduced ; the system hardware circuit is designed ; the function of each model and how to select the gas sensor are discussed especially .
Keywords : Single Chip Computer ; A/D Transformer ; Alcohol Sensor
目 录
摘 要.............................................................................................................................. 2
Abstract .......................................................................................................................... 2
1 引言............................................................................................................................ 4
1.1
1.2 课题的背景和意义 ...................................................................................... 4 本论文主要工作 .......................................................................................... 4
2 总体设计方案......................................................................................................... 4
2.1
2.2
2.3
2.4 酒精浓度检测仪整体结构设计 .................................................................. 4 硬件设计及功能概述 .................................................................................. 5 硬件电路设计 .............................................................................................. 6 各功能模块的设计 ...................................................................................... 6
3 总结与展望............................................................................................................ 10 参考文献.................................................................................... 错误!未定义书签。0
1、引言
1.1课题的背景和意义
近年来,随着我国经济的高速发展,人民的生活水平迅速提高,越来越多的人有了自己的私家车,而酒后驾车造成的交通事故也频频发生。酒后驾车引起的交通事故是由于司机的过量饮酒造成人体内酒精浓度过高,麻痹神经,造成大脑反应迟缓,肢体不受控制等症状。少量饮酒并不会有上述症状,即人体内酒精浓度比较低时,而人体内酒精超过某一个值时就会引起危险。为此,需要设计一智能仪器能够监测驾驶员体内酒精含量。目前全世界绝大多数国家都采用呼气酒精测试仪对驾驶人员进行现场检测,以确定被测量者体内酒精含量的多少,以确保驾驶员的生命财产安全。此外,空气酒精浓度监测仪还能监测某一特定环境的酒精浓度如酒精生产车间可避免发生起火、爆炸及工业场地酒精中毒等恶性事故,确保环境安全。
1.2本论文主要工作
本课题研究的是一种以气敏传感器和单片机为主,监测空气酒精浓度,并具有声光报警功能及LCD显示功能的空气酒精浓度监测仪。其可监测出空气环境中酒精浓度值,并根据不同的环境设定不同的阈值,对超过的阈值进行声光报警.来提示危害。采用汇编语言来实现其软件功能。该仪器硬件电路设计简单、软件功能完善、灵敏度高、工作性能好,并且具有尺寸小、方便携带的优点。此外,低功耗、低成本的特点可以使其吸引更多的市场目光。
2、总体设计方案
2.1酒精浓度检测仪整体结构设计
(1)数据采集系统以单片机为控制核心,外围电路带有LCD 显示以及键盘响应电路,无需要其他计算机,用户就可以与之进行交互工作,完成数据的采集、存储、计算、分析等过程。
(2)系统具有低功耗、小型化、高性价比等特点。
(3)从便携式的角度出发,系统成功使用了大屏幕液晶显示器以及小键盘。由单片机系统控制键盘和LCD 显示来实现人机交互操作,界面友好。
(4)软件系统采用汇编语言编写,在兼顾实时性处理的同时也能很方便地进行数据处理。
2.2硬件设计及功能概述
本文设计的酒精浓度检测仪主要是以酒精传感器和单片机为平台设计而成的,其硬件系统功能框图如图一所示。
图一硬件系统功能框图
酒精浓度检测仪主要是用来检测酒精浓度的,它主要由酒精传感器、模数转换器、单片机、LCD 显示、键盘以及声音报警构成。
酒精传感器将检测到的酒精浓度转化为电信号,然后将电信号传送给模数转换器,经过模数转换器转换后,把转换后得到的数字信号传给单片机,单片机对
所输入的数字信号进行分析处理,最后将分析处理的结果通过显示器显示出来。
由于不同的环境对酒精浓度的要求也不一样,所以,可以通过键盘来设定不同环境中酒精浓度的不同阀值。如果所检测到的空气中的酒精浓度超过了所设定的阀值,那么单片机将会控制蜂鸣器发出声音报警,用来提示危害。
2.3硬件电路设计
依据硬件系统功能框图设计出系统硬件的整体电路图如图二和图三所示。其中图二是单片机与LCD、键盘以及声音报警电路的电路连接图。
图二单片机与LCD、键盘及声音报警电路的电路连接图
2.4各功能模块的设计
2.4.1 AT89S52的特性
AT89S52 是低功耗、高性能、采用CMOS 工艺的8 位单片机,其片内具有8KB 的可在线编程的Flash 存储器。该单片机采用了ATMEL 公司的高密度、非易失性存储器技术,与工业标准型80C51 单片机的指令系统和引脚完全兼容;片内的Flash 存储器可在线重新编程,或者使用通用的非易失性存储器编程;通用的8 位CPU 与在线可编程Flash 集成在一块芯片上,从而使AT89S52
功能更加完善,
应用更加灵活;具有较高的性能价格比,使其在嵌入式控制系统中有着广泛的应用前景。
2.4.2 ADC的选择
模数转换电路的功能是将连续变化的模拟量转换为离散的数字量,是架起模拟系统跟数字系统之间连接的桥梁。对于本系统而言,就是用于快速、高精度地对输入的酒精浓度信号进行采样编码,将其转换成单片机所能够处理的数字量。模数转换电路是本系统的关键部分,其性能的好坏直接影响整个系统的质量。
根据A/D 转换器的工作原理可将A/D 转换器分成两大类:一类是直接型A/D 转换器;另一类是间接型A/D 转换器。在直接型A/D 转换器中,输入的模拟电压被直接转换成数字代码,不经任何中间变量。在间接型A/D 转换器中,首先把输入的模拟电压转换成某种中间变量(时间、频率、脉冲宽度等等),然后再把这个中间变量转换为数字代码输出。
2.4.3 气体传感器的选择
气体传感器是气体检测系统的核心,通常安装在探测头内。从本质上讲,气体传感器是一种将某种气体体积分数转化成对应电信号的转换器。探测头通过气体传感器对气体样品进行调理,通常包括滤除杂质和干扰气体、干燥或制冷处 理、样品抽吸,甚至对样品进行化学处理,以便化学传感器进行更快速地测量。
在选择传感器的时候,一定要考虑到稳定性、灵敏度、选择性和抗腐蚀性,本系统选择MQ3 型酒精传感器。
MQ3 酒精传感器是气敏传感器,其具有很高的灵敏度、良好的选择性、长期的使用寿命和可靠的稳定性。MQ3 型气敏传感器由微型Al2O3、陶瓷管和SnO2 敏感层、
测量电极和加热器构成的敏感元件固定在塑料或者不锈钢的腔体内,加热器为气敏元件的工作提供了必要的工作条件。传感器的标准回路有两部分组成:其一为加热回路;其二为信号输出回路,它可以准确反映传感器表面电阻的变化。传感器表面电阻RS 的变化,是通过与其串联的负载电阻RL 上的有效电压信号VRL 出面获得的。二者之间的关系表述为:RS/RL=(VC-VRL)/VRL,其中VC 为回路电压,10V。
负载电阻RL 可调为0.5~200K,加热电压Uh 为5V。上述这些参数使得传感器输
出电压为0~5V。MQ3 型气敏传感器的结构和外形如图三所示,标准回路如图四所示,传感器阻值变化率与酒精浓度、外界温度的关系如图五所示。为了使测量
的精度达到最高,误差最小,需要找到合适的温度,一般在测量前需要将传感器预热5 分钟。
图三MQ3 的结构和外形
图四MQ3 标准回路
图五传感器阻值变化率与酒精浓度、外界温度之间的关系 为了更好地使用酒精传感器MQ3,现将MQ3 的标准工作条件和环境条件进行介绍,如表一和表二所示。
表一标准工作条件
表二酒精传感器MQ3 的环境条件
3、总结与展望
本文设计了基于单片机的酒精浓度检测仪,设计过程包括了硬件电路设计和软件程序的编写两部分。硬件电路部分结构简单、使用方便、适合大众化使用。软件部分采用模块化设计思想,各个子程序的功能相对独立,便于调试和修改。通过软、硬件联合调试,实验结果满足设计基本要求,达到设计指标。 应用单片机编写不同的程序嵌入各种仪器中便形成不同功能的智能仪器。作为广泛应用于工程中的智能仪器将有更大的运用空间。空气酒精浓度监测仪将越来越深入的运用到普通人民的生活中。 参考文献
[1]王幸之.AT89 系列单片机原理与接口技术[M].北京:北京航空航天大学出版社,2004.
[2]郑学坚,周斌.微型计算机原理及应用[M].北京:清华大学出版社,2006.
[3]纪宗南.单片机外围器件使用手册—输入通道器件分册[M].北京:北京航空航天大学出版社,2005.
[4]郑义,陈俊.用AT89C52 和TLC1543 实现数据采集系统[J].电子世界,2004,
(12):24-25.
[5]卢丽君.基于TLC1543 的单片机多路采样监测系统的设计[J].仪器仪表与分析监测,2007,(04):5-7.
[6]何希才.传感器技术与应用[M].北京:北京航空航天大学出版社,2005.
范文二:酒精浓度测试仪
南 阳 理 工 学 院
本科生毕业设计(论文)
学院(系): 机 电 工 程 系
专 业: 测控技术与仪器
学 生:指导教师:
完成日期 二0一一年 五 月
南阳理工学院本科生毕业设计(论文)
酒精浓度测试仪的设计与实现
The Design and Implementation of Alcohol
Concentration Tester
总 计: 29 页
表 格: 4 个
插 图 : 17 幅
南阳理工学院本科生毕业设计(论文)
酒精浓度测试仪的设计与实现
The Design and Implementation of Alcohol Concentration Tester
学 院(系): 机电工程系
专 业: 测控技术与仪器
学 生 姓 名: 王成坤
学 号: 29107011
指 导 教 师(职称): 李珍(高级工程师)
评阅教师: 毛 翠 丽
完 成 日 期: 2011年5月
南阳理工学院
Nanyang Institute of Technology
酒精浓度测试仪的设计与实现
测控技术与仪器专业 王成坤
[摘 要]:本设计测试对象为空气中的酒精气体浓度。首先通过气敏传感器MQ-J1 完成了对空气中酒精气体浓度信号向电信号的转换,并利用集成芯片LM3914和发光二极管实现了对其浓度的简单指示,在此基础上,又利用单片机STC12C5A60S2和数码管对其浓度具体数值进行精确显示,可满足生产、生活中大多测量需求。
[关键词]:气体传感器,模数转换,单片机
The Design and Implementation of Alcohol Concentration
Tester
Measurement and Control Technology and Instruments Major Wang Chengkun
Abstract: The test object in this thesis is the gas concentration of alcohol in the air. Firstly,
the gas concentration of alcohol in the air is converted to electrical signal through the gas sensor MQ-J1 . Secondly, the integrated chip LM3914 and light emitting diodes are used to achieve simple instruction for the concentration. Based on this, the microcontroller STC12C5A60S2 and nixie tubes are used to show the accurate values of its concentration. The design can meet the most needs of the measurements in the production and life.
Key Words : gas sensor, A/D conversion, MCU
目录
1绪论 .............................................................................................................................................. 1
1.1 引言 .................................................................................................................................. 1
1.2 气敏传感器的研究现状 .................................................................................................. 1
1.3 设计酒精浓度探测仪的意义 .......................................................................................... 2
1.4 本文主要研究工作 .......................................................................................................... 2
2 硬件电路设计与实现 ................................................................................................................. 3
2.1 单片机开发流程 .............................................................................................................. 3
2.2 硬件系统框图 .................................................................................................................. 4
2.3 信号采集电路 .................................................................................................................. 5
2.4 信号转换电路 .................................................................................................................. 7
2.5 发光二极管显示电路 .................................................................................................... 13
2.6 数码管显示电路 ............................................................................................................ 15
2.7 系统整体电路图 ............................................................................................................ 17
3 软件编程 ................................................................................................................................... 19
3.1 开发环境 ........................................................................................................................ 19
3.2 程序流程 ........................................................................................................................ 19
3.3 程序编写 ........................................................................................................................ 19
4 电路调试与测试结果 ............................................................................................................... 22
4.1 电路调试 ........................................................................................................................ 22
4.2 浓度与显示之间的关系 ................................................................................................ 23
5 结束语 ....................................................................................................................................... 24
致 谢 ....................................................................................................................................... 26
附 录 ....................................................................................................................................... 27
1绪论
1.1 引言
我国传感器市场的增长率超过15%,2003年销售额为186亿元人民币,2006年销售额为283亿元人民币,预计2007年为325亿元人民币,2008年为374亿元人民币。我国传感器4大类中,工业和汽车电子产品占市场份额的33.5%。近年来,传感器正处于传统型向新型传感器转型的发展阶段,新型传感器的特点是微型化、数字化、智能化、多功能化、系统化、网络化,它将不仅促进系统产业的改造,而且可导致建立新型工业和军事变革,是21世纪新的经济增长点[1]。
由于气体与人类的日常生活密切相关,对气体的检测已经是保护和改善生态居住环境不可缺少的手段,气体传感器发挥着极其重要的作用。气体传感器是把气体中的特定成分检测出来,并转化为电信号的一类器件,用来对有害气体,易燃易爆气体等进行安全检测和报警,对生产生活中需要了解的气体进行检测,分析,研究等。近年来,我国气敏传感器产业有了较快的发展,但与国外相比,从技术水平,产业化及应用等领域均存在着不小的差距。
目前,气敏传感器领域还存在一些问题。一是元件的稳定性差。由于元件电阻和灵敏度随时间而不断变化,漂移大给检测结果的可靠性带来不稳定的因素。二是选择性差。由于在检测气体时,往往还存在着其它的干扰气体(如烟酒等),使气敏元件发生交叉响应,产生误报。三是催化剂中毒。掺有催化剂的气敏元件接触某些气体后,活性组分被毒化,将会改变元件的选择性,降低其敏感度和稳定性,另外催化剂本身也存在着不稳定性问题。灵敏度问题。四是SnO2元件有时由于灵敏度过大导致误报,但是在检测某些低浓度气体时灵敏度却难以达到要求[2]。
1.2 气敏传感器的研究现状
气敏元件性能与敏感功能材料的种类、结构及制作工艺密切相关。用金属氧化敏感材料制作的半导体式气敏元件具有灵敏度高,结构简单,体小质轻,坚固耐用等优点而得到广泛的应用,目前仍以SnO2材料为主[3]。SnO2是一种广普型的气敏材料,围绕SnO2为基体材料的气敏材料的制备及其气敏元件制备的研究课题十分活跃。纯SnO2的气敏特性不甚好,尤其是它的热稳定性不高。为改善其气敏特性,常在SnO2基体中掺入贵金属或其他金属氧化物。尽管SnO2基传感材料具有许多优点,作为材料也存在一定缺点。通过控制气敏材料微粒大小,颗粒纳米化,掺杂其它添加剂或催化剂,利用过滤设备或透气膜来获得选择性,控制工作温度及环境湿度影响,改进制备等方法可以改善
SnO2传感器的气敏性能[4]。
纳米科学技术(Nano—ST)是研究尺寸在0.1—100nm的物质组成体系的运动规律和相互作用以及可能的实际应用中的技术问题的科学技术。纳米技术的发展,不仅为传感器提供了优良的敏感材料,而且为传感器制作提供了许多新型方法。纳米固体材料具有庞大的界面,提供了大量气体通道,从而大大提高了灵敏度,工作温度大大降低,大大缩小了传感器的尺寸。当然,在己获得明显进展的纳米传感领域中尚存在很多问题,从敏感材料到制作技术都很不成熟,其性能也有不尽人意的地方[5]。
气敏传感器在家用电器中也有相当广泛的应用。吸油烟机等产品上常用MQ-J1型半导体气敏传感器,它采用旁热式结构,陶瓷管内装有高阻抗加热丝,管外涂有梳状金属电极,金属电极之外涂有SnO2材料,使SnO2烧结体位于两电极之间[6]。气敏传感器工作时,加热器通电加热,若无被检气体侵入时,气敏元件的阻值基本不变当气敏元件表面产生吸附作用,其阻值将随气体浓度的变化变化。当被检气体浓度增大到一定值时,气敏元件的阻值将随之下降到某一值,使电压比较器的状态发生变化,输出控制信号经电流放大后,控制继电器或双向晶闸管接通电动机电源使吸排油烟机工作[7]。
1.3 设计酒精浓度探测仪的意义
本设计基于STC12C5A60S2单片机设计的酒精气体浓度探测仪,可用来检测酒精气体浓度,最主要的用途是检测司机的酒精含量。酒后驾车发生事故的机率高达27%。随着摄入酒精量的增加,选择反应错误率显著增加,当血液中酒精含量由0.5‰增至1‰,发生车祸的可能性便增加5倍,如果增至1.5‰,可能性再增加6倍。机动车驾驶人员“酒后驾车” 及“醉酒驾车”极易发生道路交通事故, 严重危害了道路交通安全和人民生命财产安全。人饮酒后, 酒精通过消化系统被人体吸收, 经过血液循环, 约有90%的酒精通过肺部呼气排出, 因此测量呼气中的酒精含量, 就可判断其醉酒程度。开车司机只要将嘴对着传感头使劲吹气,仪器就能发上显示出酒精浓度的高低,从而判断该司机是否酒后驾车,避免事故的发生。当然,最好的办法是在车内安装这种测试仪,司机一进入车内检测仪就检测司机的酒精含量,如果超出允许值,系统控制引擎无法启动,这样就可从根本上解决酒后驾车问题。
酒精气体浓度探测仪在生产生活中也有重要的应用,比如,在一些环境要求严格的生产车间,用这种酒精浓度探测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高于允许限定值时,发出警报,提醒人们及时通风换气,做到安全生产。
1.4 本文主要研究工作
本文以STC12C5A60S2单片机为核心,设计了用于测量酒精浓度的探测仪,主要研
究工作包括以下3个方面。
(1)硬件电路方面,对气体传感器MQ-J1根据检测电路,接上一定阻值的负载电阻,检测它的技术参数,确定MQ-J1所接负载电阻的大小,完成信号采样电路的设计;采样到的模拟电压电信号通过A/D转换,得到可供单片机处理的数字信号,再由单片机作相应的数据处理;发光二极管报警显示和4个单位8段共阴数码管浓度值显示。
(2)软件方面,标准的确定是该部分要做的主要工作。因为原始的采样值是一个间接的负载分压值,需要将它转化为被测酒精浓度值。通过多个样品的测量确定多个浓度区间的转换标准,并将每个区间的转换关系近似线性化处理,然后通过软件编程的方法来实现。
(3)为了尽量减少设计的气体传感器的测量误差,在测量酒精溶液样品时要考虑并解决3个主要问题。一是外界环境流动空气对传感器的影响和对气体样品的稀释,二是样品的稳定性对测量带来的误差,三是水蒸气对测量的影响。针对这3个主要问题提出以下解决方案和验证方法。
测量样品时,将探头尽量放入塑料瓶内,可以在一定程度上消除流动空气的影响,同时应选择空气流动较小的室内环境来测量。水蒸气对MQ-J1的影响很小,这一点可以通过对只装有纯净水的塑料瓶的多次测量来验证。用相同容量的塑料瓶配制好不同浓度的酒精溶液后,将它密封并放置一段时间,待其稳定后再测量。再通过反复多次测量多组数据,求其平均值的方法来缩小测量误差。
2 硬件电路设计与实现
2.1 单片机开发流程
(1)可行性调研。可行性调研的目的,是分析完成这个项目的可能性。进行这方面的工作,可参考国内外有关资料,看是否有人进行过类似的工作。如果有,则可分析他人是如何进行这方面工作的,有什么有点和缺点,有什么值得借鉴的;如果没有,则需要作进一步的调研,此时的重点应放在能否实现这个环节,首先从理论上进行分析,探讨实现的可能性,所需求的客观条件是否具备,然后结合实际情况,再决定能否立项的问题。
(2)系统总体方案的设计。在进行可行性调研后,如果可以立项,下一步工作就是系统总体方案的设计。工作的重点应放在该项目的技术难度上,此时可参考这一方面更详细、更具体的资料,根据系统的不同部分和要实现的功能,参考国内外同类产品的性能,提出合理而可行的技术指标,编写出设计任务书,从而完成系统总体方案设计。
(3)设计方案细化,确定软硬件功能。一旦总体方案确定下来,下一步的工作就是将该项目细化,即需明确哪些部分用硬件来完成,哪些部分用软件来完成。由于硬件
结构与软件方案会相互影响,因此,从简化电路结构、降低成本、减少故障率、提高系统的灵活性与通用性方面考虑,提倡软件能实现的功能尽可能由软件来完成;但也应考虑软件代硬件的实质是以降低系统的实时性、增加处理进行为代价的,而且软件设计费用、研制周期也将增加,因此系统的软硬件功能分配应根据系统的要求及实际情况而合理安排,统一考虑。在确定软硬件功能的基础上,设计者的工作就开始涉及到具体的问题,如仪器的体积及与具体技术指标相对应的硬件实现方案,软件的总体规划等。在确定人员分工、安排工作进度、规定接口参数后,就比须考虑硬件软件的具体问题了。
(4)一个单片机应用系统经过调研、总体设计、硬件软件设计、制版、元件安装后,在系统的程序存储器中放入编制好的应用程序,系统即可运行。但一次性成功的几乎是不是不可能的。由于单片机在执行程序时人工是无法控制的,为了能够调试程序,检查硬件、软件运行情况,这就需要借助某种开发工具模拟用户实际的单片机,并且能随时观察运行的中间过程而不改变运行中有的数据性能和结果,从而进行模拟现场的真实调试。
2.2 硬件系统框图
基于STC12C5A60S2单片机用MQ-J1型气体传感器实现酒精气体浓度的检测,需要信号采集模块用于对酒精浓度信号的采集,该信号是通过MQ-J1气体传感器和负载电压得到分压电信号。信号转换模块用来把采集到得模拟电压信号转换位可以用单片机处理的数字信号。数码管显示模块是对单片机处理后的数字信号的显示,用来显示酒精的浓度。报警模块是对设定值提供报警功能,该功能用发光二极管显示。根据各功能模块的设计,可得到它的系统总框图,如图2.1所示。
图2.1 系统总框图
2.3 信号采集电路
气体传感器的选择
根据被检测气体的不同,气敏传感器可分为以下三类:
(1)可燃性气体气敏传感器。目前该类气敏传感器需求量最大,包含各种无机和有机类气体检测,主要用于抽油烟机、泄露报警器和空气清新剂等方面,并已经形成生产规模,在油田、矿区、化工、企业及家庭等生产和生活领域广泛用作气体泄露报普,特别是用于家庭气体泄露报警,需求量不断增加,使该类传感器有着广泛的发展空间。
(2)CO和H2气敏传感器。CO气敏元件可用于工业生产、环保、汽车、家庭等CO泄露和不完全燃烧检测报警;H2气敏元件除应用于工业等领域外,主要用于家庭管道煤气泄露报警。由于我国管道煤气中H2含量很高,而氢敏元件较氧化碳元件价格低,灵敏度高,因此,用氢敏元件做城市管道煤气泄露报警更为适宜。
(3)毒性气体传感器。毒性气体传感器又称为环境有毒有害气体传感器,主要用于检测烟气、尾气、废气等环境污染气体,虽然SnO2气敏传感器对CO,H2S等有毒有害
气体敏感,但应用最多的仍是电解式化学传感器。
传感器的分类方式有很多种,以上是根据被检测气体的性质进行的分类,也有根据元件的物理特性进行分类的。
一个新型的气体检测系统应该包括:
(1)基于一种或几种传感技术的气体传感器。
(2)组合了气体传感器和采样调理电路的探头。
(3)配有人机接口软件的中心监测和控制系统。
(4)在一些应用中,与其它安全系统和仪器的接口。
本设计中的酒精气体传感器采用MQ-J1型,它属于MQ系列气敏元件的一种。如图
2.2所示:
图2.2 MQ-J1
特点:检测范围为10ppm~2000ppm ;灵敏度高,输出信号为伏特级;响应速度快,小于10秒;功耗小于0.75W,尺寸:D17*H10。
MQ-J1型气敏传感器的敏感部分是由金属氧化物(二氧化锡)的N型半导体微晶烧结层构成。当其表面吸附有被测气体酒精分子时,表面导电电子比例就会发生变化,从而其表面电阻会随着被测气体浓度的变化而变化。由于这种变化是可逆的,所以能重复使用。
检测电路如图2.3所示,当电源开关S断开时,传感器加热电流为零,实测A,B之间电阻大于20MΩ。S接通,则f,f之间电流由开始时155mA降至153mA而稳定。加热开始几秒钟后A,B之间电阻迅速下降至10KΩ以下,然后又逐渐上升至120KΩ以上后并保持着。此时如果将酒精溶液样品靠近MQ-J1传感器,我们立即可以看到数字万用表显示值马上由原来大于120KΩ降至10KΩ以下。移开小瓶过1分钟左右后,A,B之间电阻恢复至大于120KΩ。这种反应可以重复试验,但要注意使空气恢复到洁净状态。经实验的反复检测,MQ-J1传感器可以正常工作使用,对不同浓度的酒精溶液有不同的变化,响应时间和恢复时间都正常,可以开始作信号采样模块电路的设计。
图2.3 MQ-J1检测电路
信号采样电路
信号的采样模块电路如图2.4所示。MQ-J1的加热电阻两端即H引脚接至+5V直流稳压电源,用于电阻丝对敏感体电阻的加热。MQ-J1的两个A引脚相连,作为敏感体电阻的一个电极。MQ-J1的两个B引脚也连接在一起,作为敏感体电阻的另一个电极。将电极断A接到电源正极,电极端B接两个270Ω并联的电阻。
MQ-J1型气敏传感器与电位器串联构成分压电路,采样点为电位器的分压。MQ-J1
型气敏传感器的敏感部分是由金属氧化物SnO2的N型半导体微晶烧结层构成。当其表面吸附有被测气体酒精分子时,表面导电电子比例就会发生变化,从而其表面电阻会随着被测气体浓度的变化而变化。由于这种变化是可逆的,所以能重复使用。当气敏传感器的敏感体电阻阻值发生改变时,对应的电位器的分压值也会发生相应的变化,即一个电压值对应着一个被测酒精气体浓度。对酒精气体浓度的采样就可以转化为对电位器分压的采样。
在采样硬件电路中实际要考虑到MQ-J1的实际技术参数,即加热电阻和敏感体电阻的大小,该部分应与电源正极相连。负载电阻要根据MQ-J1实际的技术参数而选择阻值合适的电阻。应为实验所用的MQ-J1在预热5到10分钟后,它的敏感体电阻只有120KΩ,所以负载电阻选用一个6.8kΩ串联,构成采样部分的分压电阻。
图2.4 采样模块
2.4 信号转换电路
单片微机是单片微型计算机的译名简称,在国内也常称为“单片微机”或“单片机”。它包括中央处理器CPU,随机存储器RAM,只读存储器ROM,中断系统,定时器/计数器,串行口和I/O口等等。现在,单片微机已不仅指单片计算机,还包括微计算机,微处理器,微控制器和嵌入式控制器,单片微机已是它们的俗称[8]。
根据实际需要,本次设计选用的是以8051为核心单元Atmel公司的低耗STC12C5A60S2单片机。STC12C5A60S2芯片有40条引脚,采用双列直插式封装,如图2.5所示。
单片机最小系统的设计包括电源,晶振和复位电路三个部分。这是使单片机正常工作的必要外围电路部分。针对不同型号的单片机在最小系统设计上会有一些差别。对于选用的STC12C5A60S2单片机,根据美国ATMEL公司提供的技术资料,可以对它的最小系统作恰当的设计,如图6所示[9]。
对于电源部分,技术资料中性能参数里给出的标准工作电压是4.0~5.5V。因此,单片机的引脚40对应的VCC接到+5V电源的正极,引脚10对应的GND接到+5V
电
源的接地端,为STC12C5A60S2单片机提供正常的工作电压。
关于晶振电路:
如果外部时钟频率在33MHz以上时,建议直接使用外部有源晶振;
如果使用内部R/C振荡器时钟(室温情况下5V单片机为:11MHz~17MHz,3V单片机为8MHz~12MHz),XTAL1和XTAL2脚浮空.如果外部时钟频率在27MHz以上时,使用标称频率就是基本频率的晶体,不要使用三泛音的晶体,否则如参数搭配不当,就有可能振在基频,此时实际频率就只有标称频率的1/3了,或直接使用外部有源晶振,时钟从XTAL1脚输入,XTAL2脚必须浮空.
图2.5 STC12C5A60S2芯片管脚
对于复位电路部分,STC12C5A60S2技术资料给出:
关于复位电路:
时钟频率低于12MHz时,可以不用C1,R1接1K电阻到地,如图2.6所示。
时钟频率高于12MHz时,建议使用第二复位功能脚
(STC12C5A60S2系列在RST2/EX_LVD/P4.6口STC12C5201AD系列在
RST2/EX_LVD/P1.2口)
当时钟频率小于12MHZ时,建议用第二复位功能脚,可以不用C1,R1接1K电阻到地,此时的最小系统电路如图2.7所示。
图2.6 时钟频率低于12MHz时的最小电路图
由于STC12C5A60S2中,数模转换电路集成与芯片内部,我们就以ADC0809为例,对数模转换原理进行分析:
ADC0809是CMOS单片型逐次逼近式A/D转换器,内部结构如图8所示,它由8路模拟开关、地址锁存与译码器、比较器、8位开关树型A/D转换器、逐次逼近寄存器、三态输出锁存器等其它一些电路组成。因此,ADC0809可处理8路模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与TTL兼容。
ADC0809芯片有28条引脚,采用双列直插式封装,如图9所示。下面说明各引脚功能。
IN0~IN7:8路模拟量输入端。
2~2:8位数字量输出端。
ADDA、ADDB、ADDC 3位地址输入线,用于选通8路模拟输入中的一路。如表1所示。
-1-8
图2.7 STC12C5A60S2单片机最小系统设计电路
图2.8 ADC0809内部结构
图2.9 ADC0809芯片
ALE:地址锁存允许信号,输入,高电平有效。
START:A/D转换启动信号,输入,高电平有效。
EOC:A/D转换结束信号,输出,当A/D转换结束时,此端输出一个高电平(转换期间一直为低电平)。
OE:数据输出允许信号,输入,高电平有效。当A/D转换结束时,此端输入一个高电平,才能打开输出三态门,输出数字量。
CLK:时钟脉冲输入端。要求时钟频率不高于640KHZ。
REF(+)、REF(-):基准电压。
Vcc:电源,单一+5V。
GND:地。
ADC0809的工作过程是:首先输入3位地址,并使ALE=1,将地址存入地址锁存器中。此地址经译码选通8路模拟输入之一到比较器。START上升沿将逐次逼近寄存器复位。下降沿启动 A/D转换,之后EOC输出信号变低,指示转换正在进行。直到A/D转换完成,EOC变为高电平,指示A/D转换结束,结果数据已存入锁存器,这个信号可用作中断申请。当OE输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。
当检测到酒精气味时,气体传感器的A-B间电阻变小,则ADC0809的模拟输入端IN0的电压变大。采用查询方式对输入模拟信号进行A/D转换,然后将数据通过三位八段数码管显示。
表1 ADC0809通道地址 ADDC ADDB ADDA
0 0 0
0 0 1
0 1 0
0 1 1
1 0 0
1 0 1
1 1 0
1 1 1 选通通道 IN0 IN1 IN2 IN3 IN4 IN5 IN6 IN7
ADC0809芯片内部没有时钟脉冲源,可以用单片机提供的地址锁存控制输入信号ALE经D触发器二分频后,作为 ADC0809的时钟输入。ALE端信号的频率是单片机时钟频率的1/6。单片机的时钟频率是11.0952MHz,则ALE端输出信号的频率为
1.8492MHz,再二分频后为0.9246Hz,符合ADC0809对时钟频率的要求。由于ADC0809具有三态输出数据琐存器,其8位数据输出端可以直接与数据总线相连。地址选通端ADDA,ADDB,ADDC分别与单片机地址总线的低三位A0,A1,A2相连,用于选通IN0-IN7中的某一通道。由于ALE和START连在一起,ADC0809在锁存通道地址的同时启动A/D转换。在读取A/D转换结果时,OE产生的正脉冲信号用于打开三态输出锁存器。ADC0809的EOC信号与单片机的P3.3相连,作为A/D转换是否结束的状态信号供单片机查询。
由于STC12C5A60S2在Proteuse中,无法仿真,我们就用ADC0809和89C51进行电路仿真。
ADC0809与89C51单片机的接口电路如图2.10所示[11]。
图2.10 ADC0809与单片机89C51接口电路
2.5 发光二极管显示电路
发光二极管集成驱动芯片LM3914的管脚图如图2.11所示。其内部的缓冲放大器最大限度的提高了该集成电路的输入电阻(5脚),电压输入信号经过缓冲器(增益为零)同时送到10个电压比较器的异相(-)输入端。10个电压比较器的同相输入(+)端分别接到10个等值电阻(1KΩ)串联回路的10个分压端。因为与串联回路相接的内部参考电压为1.2V,所以相邻分压端之间的电压差为1.2V/10=0.12V。为了驱动LED1发光,集成电路LM3914的1脚输出应该为低电平,因此要求电压比较器异相(-)端的输入电压应大于0.12V。同理,要使LED2发光,异相端输入电压应大于0.12*2=0.24V;要使LED10发光,异相端输入电压应大于0.12*10=1.2V。
LM3914的9脚为点,条方式选择端,当9脚与11脚相接为点状显示;当9脚与3脚相接,则为条状显示。本系统采用条状显示方式,即将引脚9和引脚3都接到电源的正极。
图2.11 LM3914管脚图
如图2.12所示,LM3914的3和9引脚接电源正极,使发光二极管成柱状显示,7和8引脚接一个2K的电阻,控制发光二极管的亮度,5引脚为采样信号的输入端,10到18引脚和1引脚分别接发光二极管的负极端,4和2引脚与发光二极管的正极间接一个10μF的电容,作为发光二极管的虚电源,驱动要反光的二极管点亮。
当检测到酒精气味时,气敏传感器的A-B间电阻变小,LM3914的5端电位升高,通过比较放大,驱动发光二极管依次发光,从而区分出酒精含量的高低,直观的看出所测的酒精浓度达到了哪个水平值,起到报警的作用。
输入灵敏度可以通过负载电阻的调节来实现,即对地电阻调小时灵敏度下降;反之,灵敏度增加。改变7脚与8脚之间电阻的阻值可以调节发光二极管的显示亮度,当阻值增加亮度减弱,反之加强。
图2.12 发光二极管显示
2.6 数码管显示电路
发光二极管一般是砷化镓半导体二极管,在发放光二极管两端加上正向电压,则发光二极管发光。数码管是由若干发光二极管组合而成的,有共阴极和共阳极两种结构形。8段共阴数码管由a﹑b﹑c﹑d﹑e﹑f﹑g、dg这8个发光二极管组成。把8个发光二极管的阴极连接在一起构成共阴极端,接进电路时,共阴极端接地,给要发光显示的二极管的阳极端接高电平可使该发光二极管导通点亮。如图2.13所示。
设计选用3个单位8段共阴数码管来显示输出的数据; LED显示器工作方式有两种:静态显示方式和动态显示方式。
静态显示的特点是每个数码管的段选必须接一个8位数据线来保持显示的字形码。当送入一次字形码后,显示字形可一直保持,直到送入新字形码为止。这种方法的优点是占用CPU时间少,显示便于监测和控制。缺点是硬件电路比较复杂,成本较高。
图2.13 8段共阴数码管结构图
动态显示的特点是将所有位数码管的段选线并联在一起,由位选线控制是哪一位数码管有效。选亮数码管采用动态扫描显示。所谓动态扫描显示即轮流向各位数码管送出字形码和相应的位选,利用发光管的余辉和人眼视觉暂留作用,使人的感觉好像各位数码管同时都在显示。动态显示的亮度比静态显示要差一些,所以在选择限流电阻时应略小于静态显示电路中的。
根据对数码管显示方式特点分析可知,静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就可以驱动数码管显示数据,直到下一次显示数据需要更新时再传送一次新的数据就可以了。静态显示数据稳定,占用CPU时间少。动态显示需要时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU 时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。
通过对比静态显示和动态显示的优缺点后,该设计选用的显示方式为动态显示,电路如图2.14所示:
图2.14 数码管显示电路
2.7 系统整体电路图
信号采样模块电路的输出接到发光二极管显示LM3914的输入端,同时也将采样信号输出端接至A/D转换芯片的输入端,再加上单片机最小系统电路、单片机与模数转换芯片的连接和单片机与数码管显示的连接,即可作出它的整体电路图,如图2.15所示。
图2.15 整体电路图
图2.16实物图示
3 软件编程
3.1 开发环境
选用的开发平台为Keil uVision3单片机开发环境,只需在PC机上安装Keil uVision3软件,然后在Keil uVision3软件代码编辑器编辑程序代码,经修改,产生代码,形成输入输出口实验十六进制.HEX文件。
打开Keil uVision3,在菜单options选项中选择select device,在弹出的窗口中选择器件STC12C5A60S2,并选Byte Mode点击OK。初始化器件后,将经过编译生成的.HEX十六进制文件下载到单片机。
对于8051系列单片机,现有四种语言支持,即汇编、PL/M、C和BASIC。本设计软件编程部分选用C语言来写程序代码。
3.2 程序流程
当检测到酒精气味时,气体传感器MQ-J1两个电极端A-B间电阻将变小,对应与气体传感器负载电阻的分压将变大。因为模拟输入端IN0与负载电阻的一端用导线连在了一起。所以单片机在启动测试模数转换芯片之前要选择通道0,写入模数转换芯片,然后启动对通道IN0端输入的采集电压信号作模数转换,等待转换的结束。模数转换结束后,就可以开始读取数据了。单片机通过I/O口与模数转换芯片的数据输出口相连读取转换后的数据。读取后的数据送到数据存储器单元中,经过单片机作相应的处理,即要将该电压值转换为酒精浓度值,然后处理后的数据转换成三位十进制BCD码用数码管显示。程序流程图如图3.1所示。
3.3 程序编写
系统电源线接通或者系统复位后,程序从主程序入口进入运行。因为在程序中每次对模数转换后读取的数据,需要相应的存储空间,同时对读取的数据作适当处理后也要送到特定的存储空间存储起来,以供后面的数码管显示用。当然,在程序运行的过程当中,还要用到工作寄存器,因为工作寄存器都是临时存储数据,不需要保存作为以后处理要用到的数据,所以工作寄存器的初始化这部分可以省去。于是,对于程序的初始化程序代码可以相应写出[13]。
sfr ADC_CONTR=0XBC; sfr AUXR1=0XA2; sfr ADC_RES=0XBD; sfr ADC_RESL=0XBE; sfr P1ASF=0X9D;
图3.1 程序流程图
对模拟电压信号的数字转换由单片机STC12C5A60S2控制来完成。模拟电压的输入端接在模数转换的IN0通道,然后启动模数转换,模数转换需要一定的时间;最后把转换后得到的数字电压值读取到单片机。
模数转换后得到的数字电压量被单片机读取后还要作一定的数据处理,其中包括把电压值转换为与之相对应的酒精浓度值,根据总体设计思路,对电压值都近似作对应区间的线性转换。即首先,单片机要对采集到的数据在哪个区间作个判断跳转,然后再根据该区间的线性关系作转换,得到对应的酒精浓度值。根据酒精浓度与电压的线性映射关系,可以写出该部分的程序代码
if(m_data>3200) {
C=0.11*m_data-22; }
else if(m_data>2740) {
C=0.35*m_data-789; }
else if(m_data>2330) {
C=0.17*m_data-296; }
else if(m_data>1730) {
C=0.11*m_data-156; }
else if(m_data>1450) {
C=0.046*m_data-47; }
else if(m_data>1100) {
C=0.014*m_data; } else C=0;
display(C); }
从读取到的电压值得到酒精浓度值后,还要把该值转换为3位10进制BCD码,存储到特定的存储单元以供数码管显示数值。数码管显示选用的是动态态显示的方法;
表2 七段LED字型码
显示字符 0
1 2 3
共阴极字型码 3FH 06H 5BH 4FH
共阳极字型码 C0H F9H A4H B0H
4 5 6 7 8 9
66H 6DH 7DH 07H 7FH 6FH 99H 92H 82H F8H 80H 90H
根据程序流程图和各个子程序的编写可以得到整个设计的总程序代码,见附录。
4 电路调试与测试结果
4.1 电路调试
根据各个模块功能的设计和绘制的整体电路图,找到各功能模块的连接点。按照设计的步骤,并对照总电路图,在面包板上连接电路。电路的连接顺序是,先连接好各个模块,在调试检查正确的前提下再把各个模块连接起来。
打开Keic软件,将写好的调试程序代码在计算机上输入、汇编、修改、产生代码,形成输入输出口实验.HEX文件。初始化器件后,将经过编译生成的,HEX十六进制文件下载到单片机。
电路连接好,并将调试程序代码(注释电压到酒精浓度转换关系代码)烧写到STC12C5A60S2单片机上后,接上+5V电源开始调试。先把气体传感器探头用一个阻值为20kΩ的电阻替代,复位单片机,观察数码管上的显示数据和发光二极管的点亮情况。用万用表测量采样点的电压值,看用万用表测得的电压值与数码管上显示数据是否一致。因为各导线和元器件对电压电流的影响,数码管显示的数据与万用表测得的数据存在一定的偏差,但在可接受的范围内。调节电位器,观察数码管数据显示的变化,同样用万用表测量电压值作比较。测量数据与数码管显示数据基本一致,说明电路数码管显示部分连接正确。然后,再把电位器阻值从0开始逐渐调大,在每过一个0.12V电压后观察相应发光二极管点亮,说明发光二极管显示部分电路连接正确。
调试电路其他功能模块正确后,将预热足够长时间能正常工作的气体传感器MQ-J1换上原来20kΩ的电阻。准备好若干个不同浓度的酒精气体样品,检测气体传感器是否能正常工作。当把不同浓度的酒精溶液样品靠接气敏传感器时,各自对应一个不同的数据显示,说明整体电路已经完全正确。
如图17所示,硬件电路中发光二极管显示和3位数码管显示都正确后,表明所连接的硬件电路已经调试成功。这时候可以配制几个酒精溶液对调试电路作初步测试。图17所示是测量其中一个样品溶液时显示的数值。
4.2 浓度与显示之间的关系
在系统电路调试正确以后,要作改进工作,使数码管上正确显示所测的酒精气体浓度值。之前显示的是酒精浓度值与电压的对应关系,所以要显示酒精浓度值,需要找到电压与浓度之间的关系,然后才能建立酒精浓度值与显示的映射关系。
测量用的酒精溶液是用无水乙醇和纯净水按体积比来配制的,单位mL/mL表示的是1mL酒精溶液中含酒精的体积。准备多个不同浓度的酒精气体样品,从小到大,依次用气敏传感器检测,记录对应的电压值,记录样品的浓度和电压值之间的关系,确定传感器的酒精浓度检测大致范围,然后根据这个范围选择7个合适的浓度值,多次测量电压值,再取平均值作为最后电压值,把6个标准区间范围定下来,如表3所示。
表3 样品对应电压值
样品浓度C(mL/mL)
0.375 0.333 0.167 0.100 0.033 0.020 0.010
C1 3.68 3.19 2.76 2.33 1.74 1.47 0.76
C2 3.54 3.20 2.74 2.35 1.70 1.42 0.74
C3 3.60 3.17 2.73 2.34 1.75 1.43 0.76
C4 3.61 3.22 2.74 2.30 1.73 1.46 0.73
均值C 3.61 3.20 2.74 2.33 1.73 1.45 0.75
在酒精气体浓度的每个小区间内,将电压值与数码管显示值之间的关系当作线性处理,即每段小区间对应着一个线性映射关系,如表4所示。
在要作不同线性转换电压区间范围和对应的线性转换关系确定好了以后,根据表4所对应的关系,修改数据处理程序部分,建立酒精浓度和电压之间的关系。使最终显示的数据为酒精浓度值。根据编写的数据处理程序,数码管最终显示的是酒精浓度值小数部分的前3位数字。这样,一个完整的基于STC12C5A60S2单片机酒精浓度探测仪就设计出来了。
表4 浓度与电压线性映射关系
电压值区间(V) 3.61~3.20 3.20~2.74 2.74~2.33 2.33~1.73 1.73~1.45 1.45~0.75
浓度转换关系 C=0.11*V-0.022 C=0.35*V-0.789 C=0.17*V-0.296 C=0.11*V-0.156 C=0.046*V-0.047 C=0.014*V
5 结束语
MQ-J1传感器属于金属半导体电阻式传感器,灵敏度高,响应速度快,可重复性使用。当传感器的敏感部分吸附有酒精分子时,表面的导电电子比例就会发生变化,从而其表面电阻会随着被测酒精气体浓度的不同而发生相应的变化,且这种变化是可逆的,可重复使用。MQ-J1接上一定阻值的负载电阻,即可构成对酒精气体浓度的检测部分。负载电阻的分压值即对应着一个酒精气体的浓度值,只需对该分压值采样,就可得到要测酒精气体浓度值的信号。将该信号通过A/D转换,将模拟信号转化为数字信号。转换后的数字信号由单片机作相应的数据处理,得到BCD码并将其送数码管显示。在发光二极管显示报警模块中,将采集信号输入二极管集成功率放大器,对该采集信号放大后驱动相应的发光二极管点亮,起到指示的作用。
半导体气敏传感器和电化学固体电解质气敏传感器具有测量精度高、所需试样少、响应快等特点,广泛应用于化工、建筑、环保、医疗、家电、安全保卫等领域。随着纳米技术、薄膜技术等新材料研制成功,微机械与微电子技术、计算机技术等的综合应用,高性能的气敏传感器将会不断出现。
参考文献
[1] 司士辉.生物传感器[M].化学工业出版社,2003.
[2] 吴桂秀.传感器应用制作入门[M].浙江科学技术出版社,2004. [3] 彭军.传感器与检测技术[M].西安电子科技大学出版社,2003. [4] 陈杰,黄鸿.传感器与检测技术[M].北京:高等教育出版社,2003. [5] 吴桂秀.传感器应用制作入门[M].浙江科学技术出版社,2004. [6] 张锡富.传感器[M].北京:机械工业出版社,2002.
[7] 郁有文.传感器原理及工程应用[M].西安:西安电子科技大学出版社,2003. [8] 楼然苗,李光飞.51系列单片机设计实例[M].北京航空航天大学出版社,2003. [9] 朱定华,戴汝平.单片微机原理与应用[M].清华大学出版社,2003.
[10] 胡乾斌,李光斌,李玲.单片微型计算机原理与应用[M].华中科技大学出版社,2002.
[11] 胡汉才.单片机原理与借口技术[M].清华大学出版社,2004. [12] 余家春.Protel 99 SE电路设计实用教程[M].中国铁道出版社,2004. [13] 张培仁.基于汇编语言编程MCS-51单片机原理与应用[M].北京:清华大学出
版社,2003.
[14] T.Someya,J.Small,P. Kim,C.Nuckolls,J.T.Yardley.Alcohol vapor sensors
based on single-walled carbon nanotube field effect transistors[M].Nano Letters,2003.
[15] M.Penza et al.Alcohol detection using carbon nanotubes acoustic and optical
sensors[M].Applied Physics Letters,2004.
[16] F.Rettig,R.Moos.Direct thermoelectric gas sensors Design aspects and first gas
sensors[M].Sens Actuators B,2007.
致 谢
基于STC12C5A60S2单片机酒精浓度探测仪设计与实现论文已经完成。本论文从选题,实验,到论文的写作,整个过程得到了李珍老师的精心指导,在此表示衷心的感谢。
大学四年学习生涯即将结束,在此要感谢四年以来一直对教学和指导工作认真负责,孜孜不倦的所有南阳理工学院的老师们的谆谆教导,同时还要感谢跟我一同学习的同学,他们给了我帮助、支持和动力,让我度过了一个美好的大学生活!
附 录
#include
sfr ADC_CONTR=0XBC;
sfr AUXR1=0XA2;
sfr ADC_RES=0XBD;
sfr ADC_RESL=0XBE;
sfr P1ASF=0X9D;
unsignedchar code led[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f}; unsigned int m_data,m,C;
void delay(unsigned char ms)
{
unsigned int i;
while(ms--)
for(i=0;i
}
void display(unsigned int s)
{
unsigned char a,ge,shi,bai,qian;
a=5;
qian=s/1000%10;
bai=s/100%10;
shi=s/10%10;
ge=s%10;
while(a--)
{
P2=0xfe;
P0=led[ge];
delay(2);
P2=0xfd;
P0=led[shi];
delay(2);
P2=0xfb;
P0=led[bai];
delay(2);
P2=0xf7;
P0=led[qian]|0x80;
delay(2);
}
}
unsigned int ADC()
{
P1ASF=0X01;
AUXR1=0X04; //
ADC_CONTR=0XE0; //P1_0为模拟量输入端,
delay(1); //是输出电压达到稳定
ADC_CONTR=0XE8; // 启动ad转换
delay(2); // 关闭ad转换
while((ADC_CONTR&0X10)==0) //等待转换结束
ADC_CONTR=0XE0;
return ((ADC_RES&0x03)*256+ADC_RESL); //返回转换结果 }
main()
{
while(1)
{ m_data=ADC();
m_data=m_data*4.883;
if(m_data>3200)
{
C=0.11*m_data-22;
}
else if(m_data>2740)
{
C=0.35*m_data-789;
}
else if(m_data>2330)
{
C=0.17*m_data-296;
}
else if(m_data>1730)
{
C=0.11*m_data-156;
}
else if(m_data>1450)
{
C=0.046*m_data-47; }
else if(m_data>1100) {
C=0.014*m_data; }
else
C=0;
display(C);
}
}
范文三:酒精浓度测试仪
酒精浓度测试仪
目 录
一、 设计意
义 ................................................................................................................................. 3
二、 硬件设
计 ................................................................................................................................. 3
1、设计框
图 ............................................................................................................................. 3
2、乙醇信号检测及调理电
路 ................................................................................................. 4
3、单片机电
路 ......................................................................................................................... 7
4、显示电
路 ............................................................................................................................. 8
5、供电及程序下载电
路 ......................................................................................................... 9
三、 Protel硬件开发软
件 ............................................................................................................ 10
1(Protel软件组
成 ............................................................................................................. 10
2(PCB板设
计 .................................................................................................................... 11
四、 软件编
程 ............................................................................................................................... 13
1、软件流程
图 ............................................................................................................................... 13
2、主程
序....................................................................................................................................... 14
五、 下载与调
试 ........................................................................................................................... 20
1、 USB转串口驱动安
装 .................................................................................................... 20
2、 下载程
序 ........................................................................................................................
21
参考文
献..........................................................................................................................
............... 22
程
序 ........................................................................................................................
........................ 22
一、 设计意义
自《刑法修正案(八)》和修改后的《道路交通安全法》正式实施,“醉酒驾驶”正式入刑。不仅交警部门,而且很多车主都期盼能够有便携仪器方便地测量气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。
二、 硬件设计
1、设计框图
MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为:
?
?
?
? 对乙醇蒸汽有很高的灵敏度和良好的选择性 快速的响应恢复特性 长期的寿命和可靠的稳定性 简单的驱动回路
主要技术指标:
MQ-3乙醇气体传感器灵敏度曲线如图2所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。
图2 MQ-3乙醇气体传感器灵敏度曲线
MQ-3乙醇气体传感器管脚与测试电路如图3所示。
(a) 管脚图 (b) 测试电路
图3 MQ-3乙醇气体传感器管脚及测试电路
MQ-3乙醇气体传感器及其调理电路原理如图4所示。其外形如图5所示。经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。
图4 传感器及调理模块原理图
该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。 ? ? 具有信号输出指示。 双路信号输出(模拟量输出及TTL电平输出)
? ? TTL输出有效信号为低电平。 (当输出低电平时信号灯亮,可直接接单片机)
模拟量输出0~5V电压,浓度越高电压越高。
3、单片机电路
本设计选用宏晶公司高性能单片机STC89C52,其管脚如图6所示。
图6 STC89C52单片机管脚图
该芯片为52内核8位单片机,适用于常用检测电路。由STC89C52组成的单片机系统原理图如图7所示。图中AOUT为MQ-3传感器模块输出
的检测电压信号,送入ADC0832采集芯片端口进行处理,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。
图7 单片机系统原理图
图7中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。
4、显示电路
显示部分采用SMC 1602液晶屏进行数据显示,其主要技术参数为:
表1 液晶屏技术指标
接口信号说明如表2所示。
表2 液晶屏接口信号说明
与单片机接口电路如图8所示。其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的7—14引脚为数据引脚。
图8 LCD与单片机接口电路
5、供电及程序下载电路
本设计采用电池盒接口供电,电源电压5V。同时,其电路原理如图10所示。
图10 供电及程序下载电路
三、 Protel硬件开发软件
Protel是目前国内最流行的通用EDA软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的EDA
工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。它集成了软件界面、仿真功能和PLD设计和信号完整性分析,在此基础上Protel 99SE又增加了一些新的功能,用户使用更加方便灵活。Protel的功能十分强大,在电子电路设计领域占有极其重要的地位。它以其强大功能和实用性,逐渐获得广大硬件设计人员的青睐,是目前众多EDA设计软件中用户最多的产品之一。
1(Protel软件组成
Protel软件主要由电路原理图设计模块、印制电路板设计模块(PCB设计模块)、电路信号仿真模块和PLD逻辑器件设计模块等组成,各模块具有强大的功能,可以很好的实现电路设计与分析。
(1) 原理图设计模块(Schematic模块)
电路原理图是表示电气产品或电路工作原理的重要技术文件,电路原理图主要由代表各种电子器件的图形符号、线路和结点组成。图4.1所示为一张电路原理图。该原理图是由Schematic模块设计完成的。Schematic模块具有如下功能:丰富而灵活的编辑功能、在线库编辑及完善的库管理功能、强大的设计自动化功能、支持层次化设计功能等。
(2) 印制电路板设计模块(PCB设计模块)
印制电路板(PCB)制板图是由电路原理图到制作电路板的桥梁。设计了电路原理图后,需要根据原理图生设计成印制电路板的制板图,然后在根据制板图制作具体的电路板。印制电路板设计模块具有如下主要功能和特点:可完成复杂印制电路板(PCB)的设计;方便而又灵活的编辑功能;强大的设计自动化功能;在线式库编辑及完善的库管理;完备的输出
系统等。
(3) 电路信号仿真模块
电路信号仿真模块是一个功能强大的数字/模拟混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。它运行在Protel的EDA/Client集成环境下,与Protel Advanced Schematic原理图输入程序协同工作,作为Advanced Schematic的扩展,为用户提供了一个完整的从设计到验证仿真设计环境。
在Protel中进行仿真,只需从仿真用元器件库中放置所需的元器件,连接好原理图,加上激励源,然后单击防真按钮即可自动开始。
2(PCB板设计
(1) 定元件的封装
? 打开网络表(可以利用一些编辑器辅助编辑),将所有封装浏览一遍,确保所有元件的封装都正确无误并且元件库中包含所有元件的封装,网络表中所有信息全部大写,一面载入出问题,或PCB BOM不连续。
? 标准元件全部采用公司统一元件库中的封装。
? ???元件库中不存在的封装,应自己建立元器件库。
(2) 建立PCB板框
? 根据PCB结构图,或相应的模板建立PCB文件,包括安装孔、禁布区等相关信息。
? 尺寸标注。在钻孔层中应标明PCB的精确结构,且不可以形成封闭尺寸标注。
(3) 载入网络表
? 载入网表并排除所有载入问题,具体请看《PROTEL技术大全》。其他软件载入问题有很多相似之处,可以借鉴。
? 如果使用PROTEL,网表须载入两次以上(没有任何提示信息)才可以确认载入无误。
(4) 布局
? 首先要确定参考点。
一般参考点都设置在左边和底边的边框线的交点(或延长线的交点)上或印制板的插件的第一个焊盘。
? 一但参考点确定以后,元件布局、布线均以此参考点为准。布局推荐使用25MIL网格。
? 根据要求先将所有有定位要求的元件固定并锁定。
? 布局的基本原则
A. 遵循先难后易、先大后小的原则。
B. 布局可以参考硬件工程师提供的原理图和大致的布局,根据信号流向规律放置主要原器件。
C. 总的连线尽可能的短,关键信号线最短。
D. 强信号、弱信号、高电压信号和弱电压信号要完全分开。
E. 高频元件间隔要充分。
F. 模拟信号、数字信号分开。
? 相同结构电路部分应尽可能采取对称布局。
? 按照均匀分布、重心平衡、版面美观的标准来优化布局。
(5) PCB设计遵循的规则
? 地线回路规则:
图11 地线回路规则
环路最小规则,即信号线与其回路构成的环面积要尽可能小,环面积要尽可能小,环面积越小,对外的辐射越少,接收外界的干扰也越小。针对这一规则,在地平面分割时,要考虑到地平面与重要信号走线的分布,防止由于地平面开槽等带来的问题;在双层板设计中,在为电源留下足够空间的情况下,应该将留下的部分用参考地填充,且增加一些必要的过孔,将双面信号有效连接起来,对一些关键信号尽量采用地线隔离,对一些频率较高的设计,需特别考虑其地平面信号回路问题,建议采用多层板为宜。
? 窜扰控制
窜扰(CrossTalk)是指PCB上不同网络之间因较长的平行布线引起的
相互干扰,主要是由于平行线间的分布电容和分布电感的作用。克服窜扰的主要措施是:
A.加大平行布线的间距,遵循3W规则。
B.在平行线间插入接地的隔离线。
C.减少布线层与地平面的距离
? 屏蔽保护
图12 屏蔽保护
对应地线回路规则,实际上也是为了尽量减小信号的回路面积,多用于一些比较重要的信号,如时钟信号,同步信号;对一些特别重要,频率特别高的信号,应该考虑采用铜轴电缆屏蔽结构设计,即将所布的线上下左右用地线隔离,而且还要考虑好如何有效的让屏蔽地与实际地平面有效
结合。
? 走线方向控制规则
相邻层的走线方向成正交结构,避免将不同的信号线在相邻层走成同一方向,以减少不必要的层间窜扰;当由于板结构限制(如某些背板)难以避免出现该情况,特别是信号速率较高时,应考虑用地平面隔离各布线层,用地信号线隔离各信号线。
? 电源与地线层的完整性规则
对于导通孔密集的区域,要注意避免孔在电源和地层的挖空区域相互连接,形成对平面层的分割,从而破坏平面层的完整性,并进而导致信号线在地层 的回路面积增大。
四、 软件编程
1、软件流程图
本设计软件主程序流程图如图13所示。
图13 主程序流程图
2、主程序
下面介绍main.c主程序编写,其他程序略。
(1) 头文件和一些宏定义
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255 #define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include <intrins.h>
//#include "lcd1602.h"
sbit CS=P2^4; //CS定义为P2口的第4位脚,连接ADC0832CS脚
sbit SCL=P2^3; //SCL定义为P2口的第3位脚,连接ADC0832SCL脚 sbit DO=P2^2; //DO定义为P2口的第4位脚,连接ADC0832DO脚
sbit beep = P3^2; //蜂鸣器IO口定义
long dengji,s_dengji = 50; //酒精等级
bit flag_300ms ;
uchar key_can; //按键值的变量
uchar menu_1; //菜单设计的变量
uchar flag_clock;
#include "eeprom52.h"
#include "lcd1602.h"
/***********************1ms延时函数
*****************************/ void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/******************把数据保存到单片机内部eeprom中******************/ void write_eeprom()
{
SectorErase(0x2000);
// byte_write(0x2000, s_dengji);
byte_write(0x2001, s_dengji);
byte_write(0x2060, a_a);
}
/******************把数据从单片机内部eeprom中读出来
*****************/ void read_eeprom()
{
// s_dengji = byte_read(0x2000);
s_dengji = byte_read(0x2001);
a_a = byte_read(0x2060);
}
/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
read_eeprom(); //先读
if(a_a != 2) //新的单片机初始单片机内问eeprom
{
s_dengji = 80;
a_a = 2;
write_eeprom();
}
}
/***********读数模转换数据
********************************************************/
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
// 1 0 0 通道
// 1 1 1 通道
unsigned char ad0832read(bit SGL,bit ODD)
{
unsigned char i=0,value=0,value1=0;
SCL=0;
DO=1;
CS=0; //开始
SCL=1; //第一个上升沿
SCL=0;
DO=SGL;
SCL=1; //第二个上升沿
SCL=0;
DO=ODD;
SCL=1; //第三个上升沿
SCL=0; //第三个下降沿
DO=1;
for(i=0;i<8;i++)
{
SCL=1;
SCL=0; //开始从第四个下降沿接收数据
value<<=1;
if(DO)
value++;
}
for(i=0;i<8;i++)
{ //接收校验数据
value1>>=1;
if(DO)
value1+=0x80;
SCL=1;
SCL=0;
}
CS=1;
SCL=1;
if(value==value1) //与校验数据比较,正确就返回数据,否则返回
0
return value;
return 0;
}
/*************定时器0初始化程序***************/
void time_init()
{
EA = 1; //开总中断
TMOD = 0X01; //定时器0、定时器1工作方式1
ET0 = 1; //开定时器0中断
TR0 = 1; //允许定时器0定时
}
/****************按键处理显示函数***************/
void key_with()
{
if(key_can == 1)
{
s_dengji ++ ; //酒精浓度设置数加1
if(s_dengji > 999)
s_dengji = 999;
}
if(key_can == 2)
{
s_dengji -= 1; //酒精浓度设置数减1
if(s_dengji <= 1)
s_dengji = 1 ;
}
write_sfm2(2,9,s_dengji); //显示酒精等级
write_eeprom(); //保存数据
}
/********************独立按键程序*****************/
uchar key_can; //按键值
void key() //独立按键程序
{
static uchar key_new;
key_can = 20; //按键值还原
P1 |= 0x0f;
if((P1 & 0x0f) != 0x0f) //按键按下
{
delay_1ms(1); //按键消抖动
if(((P1 & 0x0f) != 0x0f) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P1 & 0x0f)
{
case 0x0b: key_can = 2; break; //得到k3键值 case 0x07:
key_can = 1; break; //得到k4键值 }
}
}
else
key_new = 1;
}
/****************报警函数***************/
void clock_h_l()
{
static uchar value;
if(dengji >= s_dengji ) //报警
{
value ++;
if(value >= 2)
{
value = 10;
beep = ~beep; //蜂鸣器报警
}
}else
{
if(dengji < s_dengji) //取消报警
{
value = 0;
beep = 1;
}
}
}
/***************主函数*****************/
void main()
{
beep = 0; //开机叫一声
delay_1ms(150);
P0 = P1 = P2 = P3 = 0xff; //单片机IO口初始化为1
init_eeprom(); //读eeprom数据
time_init(); //初始化定时器
init_1602();
while(1)
{
key(); //独立按键程序
if(key_can < 10)
{
key_with(); //按键按下要执行的程序
}
if(flag_300ms == 1)
{
flag_300ms = 0;
clock_h_l(); //报警函数
dengji = ad0832read(1,0);
dengji = dengji * 450 / 255.0;
dengji = dengji - 130; //首先减去零点漂移,一般是1V if(dengji < 0)
dengji = 0;
dengji = dengji * 2; //将mV转变成mg/L,系数需要校准
//电压每升高0.1V,实际被测气体的浓度增加20ppm //1ppm=1mg/kg=1mg/L=1×10-6 常用来表示气体浓度,或者溶液浓度。
write_sfm2(1,9,dengji); //显示酒精浓度
}
}
}
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{
static uchar value;
TH0 = 0x3c;
TL0 = 0xb0; // 50ms
value ++;
if(value % 6 == 0)
}
{ } flag_300ms = 1; value = 0; //300ms
五、 下载与调试
当程序在uVision环境下编写完成,并编译生成.hex文件后,就可以下载并进行调试了。
1、 USB转串口驱动安装
打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.exe安装文件,按提示安装USB转串口驱动程序。安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(Prolific USB-to-Serial Comm Port(COMX)。X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装。记住括号里的COM口号。
图14 成功安装USB转串口驱动示意图
2、 下载程序
打开STC单片机下载软件文件夹,点击运行STC_ISP_V481.exe程序,出现如下界面。
图15 下载软件
正确选择MCU 类型,COM口(与刚才安装的COM号一致),最高波特率和最低波特率都选2400bps或者1200bps (下载线内PL2303芯片所限,没办法~),并打开正确的.hex数据文件。
点击“Download/下载”按纽,窗口出现提示: Chinese:正在尝试与 MCU/单片机 握手连接 ...
Connection is failure. You can try:
1.Give your MCU Power On Reset.
2.Stop operation, then re-select COM Port.
3.Because PLCC-DIP/PQFP-DIP Socket trace too long.
4.Update the STC ISP.exe version. 5.If still error, your MCU Firmware is
error
or null.
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 上电...
按下电路板上的电源按纽,保证其有个失电至上电的过程,则窗口显示开始烧录芯片。
参考文献
[1] 陈明荧.8051单片机课程设计实训教材[M]. 北京:清华大学出版社,2003
[2] 徐新艳.单片机原理、应用与实践[M]. 北京:高等教育出版社,2005
[3] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M]. 北京:清华大学出版社,2002
[4] 王千.实用电子电路大全[M]. 电子工业出版社,2001
[5] 冯博琴.微型计算机原理与接口技术[M]. 北京:清华大学出版社,2004
[6] 张毅刚.MCS-51单片机应用设计[M]. 哈尔滨工业大学出版社,2004
[7] 张淑清,姜万录等.单片微型计算机接口技术及应用[M]. 国防工业出版社,2003
[8] 吴金戌,沈庆阳,郭庭吉.8051单片机实践与应用[M]. 北京:清华大学出版社,2001
[9] 赵亮,侯国锐.单片机C语言编程与实例[M]. 北京:人民邮电出版社,2003
[10] 王振红,李洋,郝承祥.WT588D语音芯片的工作原理及其在智能控制系统中的应用[J].
电子器件2002年3月第25卷第1期
[11] Ingle-Chip Voice Record/Playback Devices 4-, 5-, 6-, and 8-Minute
Durations,1990
[12] ANALOG DEVICES.The technology of AT89C51[EB/OL].White
Paper,Spe.28,2000
程序
#include <reg52.h> //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include <intrins.h>
//#include "lcd1602.h"
sbit CS=P2^4; //CS定义为P2口的第4位脚,连接ADC0832CS脚
sbit SCL=P2^3; //SCL定义为P2口的第3位脚,连接ADC0832SCL脚 sbit DO=P2^2; //DO定义为P2口的第4位脚,连接ADC0832DO脚
sbit beep = P3^2; //蜂鸣器IO口定义
long dengji,s_dengji = 50; //酒精等级
bit flag_300ms ;
uchar key_can; //按键值的变量
uchar menu_1; //菜单设计的变量
uchar flag_clock;
#include "eeprom52.h"
#include "lcd1602.h"
/***********************1ms延时函数
*****************************/ void delay_1ms(uint q)
{
uint i,j;
for(i=0;i<q;i++)
for(j=0;j<120;j++);
}
/******************把数据保存到单片机内部eeprom中
******************/ void write_eeprom()
{
SectorErase(0x2000);
// byte_write(0x2000, s_dengji);
byte_write(0x2001, s_dengji);
byte_write(0x2060, a_a);
}
/******************把数据从单片机内部eeprom中读出来
*****************/ void read_eeprom()
{
// s_dengji = byte_read(0x2000);
s_dengji = byte_read(0x2001);
a_a = byte_read(0x2060);
}
/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
read_eeprom(); //先读
if(a_a != 2) //新的单片机初始单片机内问eeprom
{
s_dengji = 80;
a_a = 2;
write_eeprom();
}
}
/***********读数模转换数据
********************************************************/
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
// 1 0 0 通道
// 1 1 1 通道
unsigned char ad0832read(bit SGL,bit ODD)
{
unsigned char i=0,value=0,value1=0;
SCL=0;
DO=1;
CS=0; //开始
SCL=1; //第一个上升沿
SCL=0;
DO=SGL;
SCL=1; //第二个上升沿
SCL=0;
DO=ODD;
SCL=1; //第三个上升沿
SCL=0; //第三个下降沿
DO=1;
for(i=0;i<8;i++)
{
SCL=1;
SCL=0; //开始从第四个下降沿接收数据
value<<=1;
if(DO)
value++;
}
for(i=0;i<8;i++)
{ //接收校验数据
value1>>=1;
if(DO)
value1+=0x80;
SCL=1;
SCL=0;
}
CS=1;
SCL=1;
if(value==value1) //与校验数据比较,正确就返回数据,否则返回
0
return value;
return 0;
}
/*************定时器0初始化程序***************/
void time_init()
{
EA = 1; //开总中断
TMOD = 0X01; //定时器0、定时器1工作方式1
ET0 = 1; //开定时器0中断
TR0 = 1; //允许定时器0定时
}
/****************按键处理显示函数***************/
void key_with()
{
if(key_can == 1)
{
s_dengji ++ ; //酒精浓度设置数加1
if(s_dengji > 999)
s_dengji = 999;
}
if(key_can == 2)
{
s_dengji -= 1; //酒精浓度设置数减1
if(s_dengji <= 1)
s_dengji = 1 ;
}
write_sfm2(2,9,s_dengji); //显示酒精等级
write_eeprom(); //保存数据
}
/********************独立按键程序*****************/
uchar key_can; //按键值
void key() //独立按键程序
{
static uchar key_new;
key_can = 20; //按键值还原
P1 |= 0x0f;
if((P1 & 0x0f) != 0x0f) //按键按下
{
delay_1ms(1); //按键消抖动
if(((P1 & 0x0f) != 0x0f) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P1 & 0x0f)
{
case 0x0b: key_can = 2; break; //得到k3键值 case 0x07:
key_can = 1; break; //得到k4键值 }
}
}
else
key_new = 1;
}
/****************报警函数***************/
void clock_h_l()
{
static uchar value;
if(dengji >= s_dengji ) //报警
{
value ++;
if(value >= 2)
{
value = 10;
beep = ~beep; //蜂鸣器报警
}
}else
{
if(dengji < s_dengji) //取消报警
{
value = 0;
beep = 1;
}
}
}
/***************主函数*****************/
void main()
{
beep = 0; //开机叫一声
delay_1ms(150);
P0 = P1 = P2 = P3 = 0xff; //单片机IO口初始化为1
init_eeprom(); //读eeprom数据
time_init(); //初始化定时器
init_1602();
while(1)
{
key(); //独立按键程序
if(key_can < 10)
{
key_with(); //按键按下要执行的程序
}
if(flag_300ms == 1)
{
flag_300ms = 0;
clock_h_l(); //报警函数
dengji = ad0832read(1,0);
dengji = dengji * 450 / 255.0;
dengji = dengji - 130; //首先减去零点漂移,一般是1V if(dengji < 0)
dengji = 0;
dengji = dengji * 2; //将mV转变成mg/L,系数需要校准
//电压每升高0.1V,实际被测气体的浓度增加20ppm //1ppm=1mg/kg=1mg/L=1×10-6 常用来表示气体浓度,或者溶液浓度。
write_sfm2(1,9,dengji); //显示酒精浓度
}
}
}
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{
static uchar value;
TH0 = 0x3c;
TL0 = 0xb0; // 50ms
value ++;
if(value % 6 == 0)
} { } flag_300ms = 1; value = 0; //300ms
范文四:DMA M密度浓度测试仪
新一代M型密度计
领先一步
想象一下,它是一台让您完全信赖的密度计,一台您能够确信 样品进样过程准确无误,一台按最高标准要求进行测量,一台 测量结果让您充分信任的密度计。这就是安东帕公司新推出的 M型密度计——全球最精确的数字式密度计。它使安东帕公司 继续保持在密度测量领域全球领先的地位。
新一代M型密度计是几十年经验的浓缩。它集先进的设计理念 和原 DMA 系列产品的卓越性能于一身:不仅保留了传统的集成 一体的参比振荡管、内置高精度的铂金温度计以及全范围的粘 度修正等功能,还增加了很多新的功能。
这些新功能保证了新一代 M 型密度计在样品进样和测量过程的 准确性,因此也就确保了更加精准的测量结果。
进样自动检测功能 FillingCheck?:
可自动检测进样错误或样品中的气泡,提醒操作者并自动保存 错误报告。确保在任何条件下进样的正确性。
U 形管可视功能 U-View?:
可通过显示屏实时监控样品进样过程,或者之后随时调出整个 U 形管内样品的存储图像。这些存储图像有助于随后检查进样 和测量是否正确,尤其是在使用自动进样系统时。操作者可以 放心的离开让仪器自己工作。
热平衡功能 ThermoBalance?:
无需多点温度校正,即可完成在不同温度下快速准确测量。可 补偿由于温度差异造成的测量值漂移,甚至在进样温度与测量 温度有很大差距时,仍然能在延续一段时间内提供稳定的读 数。新的M系列密度计是目前全球唯一的拥有上述功能的密度 测量仪器。
符合 FDA 21 CFR Part 11和 cGLP/GMP的要求: M 型密度计完全符合 21 CFR Part 11 和 cGLP/GMP的要求。 所有的校准、测量结果和报告都是被保护的,不能随意篡改。 测量报告可以电子签名,所有的测量和校准数据包括日期时间、 序列号、用户名、样品编号及其它重要信息都可以输出。
新一代 M 型密度计的下列特点最大限度地保证了检测操作的 舒适性和便捷性。
友好的用户设计:
触摸屏操作方便迅速,快捷按钮帮助用户更快地找到经常使 用的菜单功能。可设计不同用户权限预防意外修改。所有的 重要信息比如正在进行测量,进样警报和自动进样器当前状 态等都会在屏幕上显示。
配置可调功能:
在恶劣环境下用户可以使用触摸屏下方的功能键或鼠标以及 外接键盘进行操作。样品编号可以通过键盘或条码扫描仪还 有其它方式来输入。还可外接计算机屏幕或触摸屏来读取测 量结果或进行远程操作。密度单位可以选择常用密度单位如 g/cm3, kg/m3, pound/gallon,还可通过用户表格来计算浓度, 可选单位有 %w/w, %m/m。
自动空气校正:
确保用于空气校正的当地气压值被正确地计算。
便捷的数据信息处理:测量结果可无限期地保存,也可使用 各种媒介如U盘、打印机或以太网输出结果。报告采用常用格 式,如 PDF , TXT 和 XLS 。
即插即用自动进样器:
节省空间的自动进样器,可测量样品最高粘度达 35,000 mPa.s 。根据样品特点选择不同自动进样器,插上电源后密 度计可自动识别。可自动测量大批量样品,用户可以同时做 其他重要的事情。进样自动检测功能可在进样出现错误时自 动报警,同时 U 形管可视功能 U-View? 允许用户随后检查进 样和结果。
测量密度和浓度
新一代 DMA 密度计 M 系列的产品型号如下:DMA 4100 M
4 测量准确度: 0.0001 g/cm3
4 进样自动检测功能 FillingCheck?
4 热平衡功能 ThermoBalance?
DMA 4500 M
4 测量准确度: 0.00005 g/cm3
4 进样自动检测功能 FillingCheck?
4 U 形管可视功能 U-View?
4 热平衡功能 ThermoBalance?
DMA 5000 M
4 测量准确度: 0.000005 g/cm3
4 进样自动检测功能 FillingCheck?
4 U 形管可视功能 U-View?
4 热平衡功能 ThermoBalance?
4 温度扫描功能 Temperature scan安东帕 DMA 系列密度计它把革命性的 U 形振荡管原理、集成 一体的参比振荡管、高精度的铂金温度计和全范围的粘度修 正等众多特点集成于一身,为密度测量提供无与伦比的卓越 性能。新一代的 DMA 密度计 M 系列又在此基础上增加更高水 准的可靠性及操作舒适度。
密度计如何工作 ?
向U形振荡管内注入 1mL 样品,仪器电子激发 U 形管传感器, 使之发生共振。以集成一体的参比振荡管为基准,测量 U 形管 的振动特征。参比振荡管与 U 形振荡管集成一体,两者温度一 致。独特的位置设计使得参比振荡管可补偿由于温度变化对 U 形管传感器造成的结果漂移。通过这些检测手段,得到最精 确的密度测量值。同时通过粘度修正消除粘度对密度测量值 的影响。
自动进样系统
即插即用自动进样系统与新M型密度计相匹配,可节省 实验台空间。自动检测大批量样品,全自动检测功能将 用户解放出来做其他重要的事情。 FillingCheck? 进样自 动检测功能可在出现问题时发出警报,通过 U-View?U 形管可视功能,用户可在之后随时检查每一步骤。
如果需要,还可以通过样品目录为每个样品分别设定不 同的检测方法,也可以根据用户的需要随时在预先设定 好的顺序里插入优先检测的样品。为用户提供无与伦比 的灵活性和高效性。
下面的 Xsample 系列自动进样系统可满足 用户的特殊要求:
Xsample 122
适用于低粘度样品,例如 :
4 非腐蚀性水质样品
4 无需外加试剂清洗的样品
4 含酒精的饮料
4 软饮料和果汁
Xsample 452
适用于高粘度样品 (最高粘度可达 35000mPa.s) 及含有挥发性成分的样品,例如:
4 石化产品
4 香精香料
4 化学品
4 药品
4 含酒精的饮料
您的理想选择-- 安东帕
Company Structure
强大的研发团队
公司与 U 形振荡管密度计的发明者 Hans Stabinger博士一 直紧密合作,密度计和进样系统均由安东帕公司自己加 工生产。强大的研发团队将科学技艺与实践经验完美结 合,在科研领域不断推陈出新。安东帕公司拥有 40多年 的经验、功能强大的仪器以及当代先进的操作理念。
丰富的应用知识
安东帕公司的产品专家拥有丰富而渊博的应用知识,可 为我们的用户提供专业的技术支持,并不断开拓发展新 的应用。
专业的培训机制
定期培训—既有应用知识,也包括技术问题。对安东帕 公司销售和维护人员以及合作伙伴的定期培训保证了安 东帕公司的用户自始至终得最新的专业知识和服务。
专业的用户售后服务支持
受过良好培训的销售和维护人员以及售后服务网络为用 户提供专业的支持服务,安东帕的售后服务团队随时为 用户提供优质的服务。
Direct sales byAnton Paar
范文五:酒精浓度测试仪
酒精浓度测试仪设计报告
一、 设计意义
自《刑法修正案(八)》和修改后的《道路交通安全法》正式实施,“醉酒驾驶”正式入刑。不仅交警部门,而且很多车主都期盼能够有便携仪器方便地测量气体酒精浓度,为安全驾驶提供保障,有效减少重大交通事故的发生。 本研究设计的酒精浓度测试仪是一款实用性强、安全可靠的气体乙醇浓度检测工具,采用高精度MQ-3乙醇气体传感器对空气中的乙醇浓度进行检测,利用宏晶公司高性能低成本单片机STC89C52对检测信号进行A/D转换和处理,最后通过液晶屏显示输出。本研究设计的酒精浓度测试仪还具有醉酒阈值设定功能,可以根据法律法规或用户需要设定修改醉酒阈值,并进行保存。
二、 硬件设计
1、设计框图
本研究设计的酒精浓度测试仪框图如图1所示。MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经AD转换,与设定的醉酒阈值进行比较,并显示或报警。
图1 酒精浓度测试仪方框图
2、乙醇信号检测及调理电路
MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。其技术特点为:
?
?
?
? 对乙醇蒸汽有很高的灵敏度和良好的选择性 快速的响应恢复特性 长期的寿命和可靠的稳定性 简单的驱动回路
主要技术指标:
MQ-3乙醇气体传感器灵敏度曲线如图2所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。
图2 MQ-3乙醇气体传感器灵敏度曲线
MQ-3乙醇气体传感器管脚与测试电路如图3所示。
(a) 管脚图 (b) 测试电路
图3 MQ-3乙醇气体传感器管脚及测试电路
MQ-3乙醇气体传感器及其调理电路原理如图4所示。其外形如图5所示。经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。
图4 传感器及调理模块原理图
该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。 ? ?
?
? 具有信号输出指示。 双路信号输出(模拟量输出及TTL电平输出) TTL输出有效信号为低电平。 (当输出低电平时信号灯亮,可直接接单片机) 模拟量输出0~5V电压,浓度越高电压越高。
3、单片机电路
本设计选用宏晶公司高性能单片机STC89C52,其管脚如图6所示。
图6 STC89C52单片机管脚图
该芯片为52内核8位单片机,适用于常用检测电路。由STC89C52组成的单片机系统原理图如图7所示。图中AOUT为MQ-3传感器模块输出的检测电压信号,送入ADC0832采集芯片端口进行处理,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。
图7 单片机系统原理图
图7中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。
4、显示电路
显示部分采用SMC 1602液晶屏进行数据显示,其主要技术参数为:
表1 液晶屏技术指标
接口信号说明如表2所示。
表2 液晶屏接口信号说明
与单片机接口电路如图8所示。其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的7—14引脚为数据引脚。
图8 LCD与单片机接口电路
5、供电及程序下载电路
本设计采用电池盒接口供电,电源电压5V。同时,其电路原理如图10所示。
图10 供电及程序下载电路
三、 Protel硬件开发软件
Protel是目前国内最流行的通用EDA软件,它是将电路原理图设计、PCB板图设计、电路仿真和PLD设计等多个实用工具软件组合后构成的EDA工作平台,是第一个将EDA软件设计成基于Windows的普及型产品。它集成了软件界面、仿真功能和PLD设计和信号完整性分析,在此基础上Protel 99SE又增加了一些新的功能,用户使用更加方便灵活。Protel的功能十分强大,在电子电路设计领域占有极其重要的地位。它以其强大功能和实用性,逐渐获得广大硬件设计人员的青睐,是目前众多EDA设计软件中用户最多的产品之一。
1.Protel软件组成
Protel软件主要由电路原理图设计模块、印制电路板设计模块(PCB设计模块)、电路信号仿真模块和PLD逻辑器件设计模块等组成,各模块具有强大的功能,可以很好的实现电路设计与分析。
(1) 原理图设计模块(Schematic模块)
电路原理图是表示电气产品或电路工作原理的重要技术文件,电路原理图主要由代表各种电子器件的图形符号、线路和结点组成。图4.1所示为一张电路原理图。该原理图是由Schematic模块设计完成的。Schematic模块具有如下功能:丰富而灵活的编辑功能、在线库编辑及完善的库管理
功能、强大的设计自动化功能、支持层次化设计功能等。
(2) 印制电路板设计模块(PCB设计模块)
印制电路板(PCB)制板图是由电路原理图到制作电路板的桥梁。设计了电路原理图后,需要根据原理图生设计成印制电路板的制板图,然后在根据制板图制作具体的电路板。印制电路板设计模块具有如下主要功能和特点:可完成复杂印制电路板(PCB)的设计;方便而又灵活的编辑功能;强大的设计自动化功能;在线式库编辑及完善的库管理;完备的输出系统等。
(3) 电路信号仿真模块
电路信号仿真模块是一个功能强大的数字/模拟混合信号电路仿真器,能提供连续的模拟信号和离散的数字信号仿真。它运行在Protel的EDA/Client集成环境下,与Protel Advanced Schematic原理图输入程序协同工作,作为Advanced Schematic的扩展,为用户提供了一个完整的从设计到验证仿真设计环境。
在Protel中进行仿真,只需从仿真用元器件库中放置所需的元器件,连接好原理图,加上激励源,然后单击防真按钮即可自动开始。
2.PCB板设计
(1) 定元件的封装
① 打开网络表(可以利用一些编辑器辅助编辑),将所有封装浏览一遍,确保所有元件的封装都正确无误并且元件库中包含所有元件的封装,网络表中所有信息全部大写,一面载入出问题,或PCB BOM不连续。
② 标准元件全部采用公司统一元件库中的封装。
③ ④⑥⑤元件库中不存在的封装,应自己建立元器件库。
(2) 建立PCB板框
① 根据PCB结构图,或相应的模板建立PCB文件,包括安装孔、禁布区等相关信息。
② 尺寸标注。在钻孔层中应标明PCB的精确结构,且不可以形成封闭尺寸标注。
(3) 载入网络表
① 载入网表并排除所有载入问题,具体请看《PROTEL技术大全》。其他软件载入问题有很多相似之处,可以借鉴。
② 如果使用PROTEL,网表须载入两次以上(没有任何提示信息)才可以确认载入无误。
(4) 布局
① 首先要确定参考点。
一般参考点都设置在左边和底边的边框线的交点(或延长线的交点)上或印制板的插件的第一个焊盘。
② 一但参考点确定以后,元件布局、布线均以此参考点为准。布局推荐使用25MIL网格。
③ 根据要求先将所有有定位要求的元件固定并锁定。
④ 布局的基本原则
A. 遵循先难后易、先大后小的原则。
B. 布局可以参考硬件工程师提供的原理图和大致的布局,根据信号流向规律放置主要原器件。
C. 总的连线尽可能的短,关键信号线最短。
D. 强信号、弱信号、高电压信号和弱电压信号要完全分开。
E. 高频元件间隔要充分。
F. 模拟信号、数字信号分开。
⑤ 相同结构电路部分应尽可能采取对称布局。
⑥ 按照均匀分布、重心平衡、版面美观的标准来优化布局。
(5) PCB设计遵循的规则
① 地线回路规则:
图11 地线回路规则
环路最小规则,即信号线与其回路构成的环面积要尽可能小,环面积
要尽可能小,环面积越小,对外的辐射越少,接收外界的干扰也越小。针对这一规则,在地平面分割时,要考虑到地平面与重要信号走线的分布,防止由于地平面开槽等带来的问题;在双层板设计中,在为电源留下足够空间的情况下,应该将留下的部分用参考地填充,且增加一些必要的过孔,将双面信号有效连接起来,对一些关键信号尽量采用地线隔离,对一些频率较高的设计,需特别考虑其地平面信号回路问题,建议采用多层板为宜。
② 窜扰控制
窜扰(CrossTalk)是指PCB上不同网络之间因较长的平行布线引起的相互干扰,主要是由于平行线间的分布电容和分布电感的作用。克服窜扰的主要措施是:
A.加大平行布线的间距,遵循3W规则。
B.在平行线间插入接地的隔离线。
C.减少布线层与地平面的距离
③ 屏蔽保护
图12 屏蔽保护
对应地线回路规则,实际上也是为了尽量减小信号的回路面积,多用于一些比较重要的信号,如时钟信号,同步信号;对一些特别重要,频率特别高的信号,应该考虑采用铜轴电缆屏蔽结构设计,即将所布的线上下左右用地线隔离,而且还要考虑好如何有效的让屏蔽地与实际地平面有效结合。
④ 走线方向控制规则
相邻层的走线方向成正交结构,避免将不同的信号线在相邻层走成同一方向,以减少不必要的层间窜扰;当由于板结构限制(如某些背板)难以避免出现该情况,特别是信号速率较高时,应考虑用地平面隔离各布线层,用地信号线隔离各信号线。
⑤ 电源与地线层的完整性规则
对于导通孔密集的区域,要注意避免孔在电源和地层的挖空区域相互连
接,形成对平面层的分割,从而破坏平面层的完整性,并进而导致信号线在地层 的回路面积增大。
四、 软件编程
1、软件流程图
本设计软件主程序流程图如图13所示。
图13 主程序流程图
2、主程序
下面介绍main.c主程序编写,其他程序略。
(1) 头文件和一些宏定义
#include //调用单片机头文件
#define uchar unsigned char //无符号字符型 宏定义 变量范围0~255
#define uint unsigned int //无符号整型 宏定义 变量范围0~65535
#include
//#include "lcd1602.h"
sbit CS=P2^4; //CS定义为P2口的第4位脚,连接ADC0832CS脚
sbit SCL=P2^3; //SCL定义为P2口的第3位脚,连接ADC0832SCL脚
sbit DO=P2^2; //DO定义为P2口的第4位脚,连接ADC0832DO脚
sbit beep = P3^2; //蜂鸣器IO口定义
long dengji,s_dengji = 50; //酒精等级
bit flag_300ms ;
uchar key_can; //按键值的变量
uchar menu_1; //菜单设计的变量
uchar flag_clock;
#include "eeprom52.h"
#include "lcd1602.h"
/***********************1ms延时函数*****************************/
void delay_1ms(uint q)
{
uint i,j;
for(i=0;i
for(j=0;j
}
/******************把数据保存到单片机内部eeprom中******************/
void write_eeprom()
{
SectorErase(0x2000);
// byte_write(0x2000, s_dengji);
byte_write(0x2001, s_dengji);
byte_write(0x2060, a_a);
}
/******************把数据从单片机内部eeprom中读出来*****************/
void read_eeprom()
{
// s_dengji = byte_read(0x2000);
s_dengji = byte_read(0x2001);
a_a = byte_read(0x2060);
}
/**************开机自检eeprom初始化*****************/
void init_eeprom()
{
read_eeprom(); //先读
if(a_a != 2) //新的单片机初始单片机内问eeprom
{
s_dengji = 80;
a_a = 2;
write_eeprom();
}
}
/***********读数模转换数据********************************************************/
//请先了解ADC0832模数转换的串行协议,再来读本函数,主要是对应时序图来理解,本函数是模拟0832的串行协议进行的
// 1 0 0 通道
// 1 1 1 通道
unsigned char ad0832read(bit SGL,bit ODD)
{
unsigned char i=0,value=0,value1=0;
SCL=0;
DO=1;
CS=0; //开始
SCL=1; //第一个上升沿
SCL=0;
DO=SGL;
SCL=1; //第二个上升沿
SCL=0;
DO=ODD;
SCL=1; //第三个上升沿
SCL=0; //第三个下降沿
DO=1;
for(i=0;i
{
SCL=1;
SCL=0; //开始从第四个下降沿接收数据
value
if(DO)
value++;
}
for(i=0;i
{ //接收校验数据
value1>>=1;
if(DO)
value1+=0x80;
SCL=1;
SCL=0;
}
CS=1;
SCL=1;
if(value==value1) //与校验数据比较,正确就返回数据,否则返回0
return value;
return 0;
}
/*************定时器0初始化程序***************/
void time_init()
{
EA = 1; //开总中断
TMOD = 0X01; //定时器0、定时器1工作方式1
ET0 = 1; //开定时器0中断
TR0 = 1; //允许定时器0定时
}
/****************按键处理显示函数***************/
void key_with()
{
if(key_can == 1)
{
s_dengji ++ ; //酒精浓度设置数加1
if(s_dengji > 999)
s_dengji = 999;
}
if(key_can == 2)
{
s_dengji -= 1; //酒精浓度设置数减1
if(s_dengji
s_dengji = 1 ;
}
write_sfm2(2,9,s_dengji); //显示酒精等级
write_eeprom(); //保存数据
}
/********************独立按键程序*****************/
uchar key_can; //按键值
void key() //独立按键程序
{
static uchar key_new;
key_can = 20; //按键值还原
P1 |= 0x0f;
if((P1 & 0x0f) != 0x0f) //按键按下
{
delay_1ms(1); //按键消抖动
if(((P1 & 0x0f) != 0x0f) && (key_new == 1))
{ //确认是按键按下
key_new = 0;
switch(P1 & 0x0f)
{
case 0x0b: key_can = 2; break; //得到k3键值
case 0x07: key_can = 1; break; //得到k4键值
}
}
}
else
key_new = 1;
}
/****************报警函数***************/
void clock_h_l()
{
static uchar value;
if(dengji >= s_dengji ) //报警
{
value ++;
if(value >= 2)
{
value = 10;
beep = ~beep; //蜂鸣器报警
}
}else
{
if(dengji
{
value = 0;
beep = 1;
}
}
}
/***************主函数*****************/
void main()
{
beep = 0; //开机叫一声
delay_1ms(150);
P0 = P1 = P2 = P3 = 0xff; //单片机IO口初始化为1
init_eeprom(); //读eeprom数据
time_init(); //初始化定时器
init_1602();
while(1)
{
key(); //独立按键程序
if(key_can
{
key_with(); //按键按下要执行的程序
}
if(flag_300ms == 1)
{
flag_300ms = 0;
clock_h_l(); //报警函数
dengji = ad0832read(1,0);
dengji = dengji * 450 / 255.0;
dengji = dengji - 130; //首先减去零点漂移,一般是1V if(dengji
dengji = 0;
dengji = dengji * 2; //将mV转变成mg/L,系数需要校准
//电压每升高0.1V,实际被测气体的浓度增加20ppm //1ppm=1mg/kg=1mg/L=1×10-6 常用来表示气体浓度,或者溶液浓度。
write_sfm2(1,9,dengji); //显示酒精浓度
}
}
}
/*************定时器0中断服务程序***************/
void time0_int() interrupt 1
{
}
static uchar value; TH0 = 0x3c; TL0 = 0xb0; // 50ms value ++; if(value % 6 == 0) { flag_300ms = 1; //300ms value = 0; }
五、 下载与调试
当程序在uVision环境下编写完成,并编译生成.hex文件后,就可以下载并进行调试了。
1、 USB转串口驱动安装
打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.exe安装文件,按提示安装USB转串口驱动程序。安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(Prolific USB-to-Serial Comm Port(COMX)。X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装。记住括号里的COM口号。
图14 成功安装USB转串口驱动示意图
2、 下载程序
打开STC单片机下载软件文件夹,点击运行STC_ISP_V481.exe程序,出现如下界面。
图15 下载软件
正确选择MCU 类型,COM口(与刚才安装的COM号一致),最高波特率和最低波特率都选2400bps或者1200bps (下载线内PL2303芯片所限,没办法!),并打开正确的.hex数据文件。
点击“Download/下载”按纽,窗口出现提示: Chinese:正在尝试与 MCU/单片机 握手连接 ... Connection is failure. You can try:
1.Give your MCU Power On Reset.
2.Stop operation, then re-select COM Port.
3.Because PLCC-DIP/PQFP-DIP Socket trace too long.
4.Update the STC ISP.exe version.
5.If still error, your MCU Firmware is error or null.
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 上电...
按下电路板上的电源按纽,保证其有个失电至上电的过程,则窗口显示开始烧录芯片。
芯片烧录成功后,程序开始运行,酒精浓度测试仪正常工作。