版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、常州轻工职业技术学院电子系毕业设计 常州轻工职业技术学院常州轻工职业技术学院常州轻工职业技术学院常州轻工职业技术学院 题 目 酒精浓度探测仪 姓 名 姜萍 学 号 1033323102 班 级 10 电子 331 指导教师 宋朝晖 职 称 讲师 日 期 2012.7 毕业设计毕业设计( (论文论文) )说明书说明书 摘摘 要要 本设计实现了对不同浓度酒精的检测和显示,通过适当改进可以用于检测酒后驾车。本文用 stc12c5a16ad 单片机与 mq-3 型气体传感器实现了对酒精浓度的测量,并对测量数据进行显示。 本设计主要研究了(1)硬件方面,mq-3 气体传感器技术参数的检测和将它接入到酒精
2、浓度检测 模块中;将采集到的模拟电压信号通过单片机控制经 a/d 转换,得到数字电压信号;用于显示浓度的 数码管显示模块。 (2)软件方面,主要研究了电压到浓度的线性转换和最终浓度值的数码管显示。 (3)对设计的传感器进行了标定。设计的传感器对酒精气体反应灵敏,能在有效范围内测量它的浓度 值。并且在检测低浓度酒精时误差较小,最大误差为 8.2%满足设计要求。 本设计的特色在于标准的确定。对于流动空气,样品的稳定性和水蒸气的影响,提出了解决方案 和验证方法。对不同的区间浓度和电压转换关系做线性化处理,简化了硬件电路的设计。设计的传感 器可以检测不同浓度的酒精气体,改进之后对解决酒后驾车事故和特殊
3、场合酒精检测都可以使用。 关键词关键词:气体传感器;模数转换;单片机 abstractabstract different concentrations of alcohol solution are detected and showed in the design. the design can be used to the detection of drunk driving through improvement. in this thesis, the concentration of alcohol can be measured and displayed by using th
4、e gas sensor based on stc12c5a16ad mcu and mq-3. in the thesis major researches are three points. (1) in the hardware, detecting the technology parameters mq-3 gas sensor, and connecting it to a testing part of the alcohol gas concentration; analog voltage signal amplification to drive light-emittin
5、g diode light to alarm; conversing the voltage signal through the a/d conversion at the control of the single-chip, obtaining the digital voltage signal; displaying the concentration in the digital tube display module.(2)in the software, linear conversion between the concentration of the alcohol and
6、 the voltage and the digital display of the final concentration value.(3) the designed sensor is calibrated. the design of gas sensor is responsive to the alcohol, can measure concentration in the effective range of its concentration. and in the low concentration of alcohol in the test the error is
7、small with the maximum error 8.2%, meeting requirements of the design. the characteristics of the thesis are to determine the standard. the solutions and verification methods are proposed about the flow of air samples, the sample stability and water vapor. the conversion between voltage and concentr
8、ation in different range is treated as linear relationship. the design of sensor can detect different the alcohol gas with different concentration. it plays an important role to solve the drunk-driving accidents and alcohol testing for special occasions after improvement. keykey words:words: gas sen
9、sor; a/d conversion; single-chip microcomputer 目录目录 第一章 引言.1 1.1 设计背景.1 1.2 设计酒精浓度探测仪的意义.1 1.3 本文主要研究工作.2 第二章 元器件和开发工具介绍.3 2.1 adc0809.3 2.1.1 主要特性.3 2.1.2 内部结构.3 2.1.3 外部特性(引脚功能).4 2.2 stc12c5a16ad.4 2.3 protel 软件介绍 .5 2.4 keil 介绍 .6 2.5 protuesisis 介绍 .6 第三章 硬件电路设计.8 3.1 设计框图.8 3.2 乙醇信号检测及调理电路.8 3
10、.3 单片机电路.11 3.4 显示电路.12 3.5 阈值存储.13 第四章 软件设计.14 第五章 调试.17 参考文献.20 致谢.21 附录 a 元器件清单.22 附录附录附录 b b b 实物图实物图实物图 .23 附录附录附录 c c c 程序程序程序 .24 第一章第一章 引言引言 1.11.1 设计背景设计背景 我国传感器市场的增长率超过 15%,2003 年销售额为 186 亿元人民币,2006 年销售额 为 283 亿元人民币,预计 2007 年为 325 亿元人民币,2008 年为 374 亿元人民币。我国传 感器 4 大类中,工业和汽车电子产品占市场份额的 33.5%。
11、近年来,传感器正处于传统型 向新型传感器转型的发展阶段,新型传感器的特点是微型化、数字化、智能化、多功能化、 系统化、网络化,它将不仅促进系统产业的改造,而且可导致建立新型工业和军事变革, 是 21 世纪新的经济增长点1。 由于气体与人类的日常生活密切相关,对气体的检测已经是保护和改善生态居住环境 不可缺少的手段,气体传感器发挥着极其重要的作用。气体传感器是把气体中的特定成分 检测出来,并转化为电信号的一类器件,用来对有害气体,易燃易爆气体等进行安全检测 和报警,对生产生活中需要了解的气体进行检测,分析,研究等。近年来,我国气敏传感 器产业有了较快的发展,但与国外相比,从技术水平,产业化及应用
12、等领域均存在着不小 的差距。 目前,气敏传感器领域还存在一些问题。一是元件的稳定性差。由于元件电阻和灵敏 度随时间而不断变化,漂移大给检测结果的可靠性带来不稳定的因素。二是选择性差。由 于在检测气体时,往往还存在着其它的干扰气体(如烟酒等),使气敏元件发生交叉响应, 产生误报。三是催化剂中毒。掺有催化剂的气敏元件接触某些气体后,活性组分被毒化, 将会改变元件的选择性,降低其敏感度和稳定性,另外催化剂本身也存在着不稳定性问题。 灵敏度问题。四是 sno2元件有时由于灵敏度过大导致误报,但是在检测某些低浓度气体时 灵敏度却难以达到要求。 1.21.2 设计酒精浓度探测仪的意义设计酒精浓度探测仪的意
13、义 本设计基于 stc12c5a16ad 单片机设计的酒精气体浓度探测仪,可用来检测酒精气体 浓度,最主要的用途是检测司机的酒精含量。酒后驾车发生事故的机率高达 27%。随着摄 入酒精量的增加,选择反应错误率显著增加,当血液中酒精含量由 0.5增至 1,发生 车祸的可能性便增加 5 倍,如果增至 1.5,可能性再增加 6 倍。机动车驾驶人员“酒后 驾车” 及“醉酒驾车”极易发生道路交通事故, 严重危害了道路交通安全和人民生命财 产安全。人饮酒后, 酒精通过消化系统被人体吸收, 经过血液循环, 约有 90%的酒精通过 肺部呼气排出, 因此测量呼气中的酒精含量, 就可判断其醉酒程度。开车司机只要将
14、嘴对 着传感头使劲吹气,仪器就能发上显示出酒精浓度的高低,从而判断该司机是否酒后驾车, 避免事故的发生。当然,最好的办法是在车内安装这种测试仪,司机一进入车内检测仪就 检测司机的酒精含量,如果超出允许值,系统控制引擎无法启动,这样就可从根本上解决 酒后驾车问题。 酒精气体浓度探测仪在生产生活中也有重要的应用,比如,在一些环境要求严格的生 产车间,用这种酒精浓度探测仪,可随时检测车间内的酒精气体浓度,当酒精气体浓度高 于允许限定值时,发出警报,提醒人们及时通风换气,做到安全生产。 1.31.3 本文主要研究工作本文主要研究工作 本文以 stc12c5a16ad 单片机为核心,设计了用于测量酒精浓
15、度的探测仪,主要研究 工作包括以下 3 个方面。 (1)硬件电路方面,对气体传感器 mq-3 按检测电路,接上一定阻值的负载电阻,检 测它的技术参数,确定 mq-3 所接负载电阻的大小,完成信号采样电路的设计;采样到的 模拟电压电信号通过 a/d 转换,得到可供单片机处理的数字信号,再由单片机作相应的数 据处理;lcd 液晶显示屏浓度值显示。 (2)软件方面,标准的确定是该部分要做的主要工作。因为原始的采样值是一个间 接的负载分压值,需要将它转化为被测酒精浓度值。通过多个样品的测量确定多个浓度区 间的转换标准,并将每个区间的转换关系近似线性化处理,然后通过软件编程的方法来实 现。 (3)为了尽
16、量减少设计的气体传感器的测量误差,在测量酒精溶液样品时要考虑并 解决 3 个主要问题。一是外界环境流动空气对传感器的影响和对气体样品的稀释,二是样 品的稳定性对测量带来的误差,三是水蒸气对测量的影响。针对这 3 个主要问题提出以下 解决方案和验证方法。 测量样品时,将探头尽量放入塑料瓶内,可以在一定程度上消除流动空气的影响,同 时应选择空气流动较小的室内环境来测量。水蒸气对 mq-3 的影响很小,这一点可以通过 对只装有纯净水的塑料瓶的多次测量来验证。用相同容量的塑料瓶配制好不同浓度的酒精 溶液后,将它密封并放置一段时间,待其稳定后再测量。再通过反复多次测量多组数据, 求其平均值的方法来缩小测
17、量误差。 第二章第二章 元器件和开发工具介绍元器件和开发工具介绍 2.12.1 a/da/d 模数转换器模数转换器 adc0809adc0809 图 2-1 adc0809 芯片 .1 主要特性主要特性 1)8 路 8 位 ad 转换器,即分辨率 8 位。 2)具有转换起停控制端。 3)转换时间为 100s 4)单个5v 电源供电 5)模拟输入电压范围 05v,不需零点和满刻度校准。 6)工作温度范围为-4085 摄氏度 7)低功耗,约 15mw。 .2 内部结构内部结构 adc0809 是 cmos 单片型逐次逼近式 ad 转换器,内部结构如图 2-1 所示,
18、它由 8 路 模拟开关、地址锁存与译码器、比较器、8 位开关树型 da 转换器、逐次逼近 adc0809 内部结构框图 寄存器、三态输出锁存器等其它一些电路组成。因此,adc0809 可处理 8 路 模拟量输入,且有三态输出能力,既可与各种微处理器相连,也可单独工作。输入输出与 ttl 兼容。 .3 外部特性(引脚功能)外部特性(引脚功能) adc0809 芯片有 28 条引脚,采用双列直插式封装,下面说明各引脚功能。 in0in7:8 路模拟量输入端。 2-12-8:8 位数字量输出端。 adda、addb、addc:3 位地址输入线,用于选通 8 路模拟输入中的一路。 al
19、e:地址锁存允许信号,输入,高电平有效。 start: ad 转换启动信号,输入,高电平有效。 eoc: ad 转换结束信号,输出,当 ad 转换结束时,此端输出一个高电平(转换 期间一直为低电平) oe:数据输出允许信号,输入,高电平有效。当 ad 转换结束 时,此端输入一个高电平,才能打开输出三态门,输出数字量。 clk:时钟脉冲输入端。要求时钟频率不高于 640khz。 ref(+) 、ref(-):基准电压。 vcc:电源,单一5v。 gnd:地。 adc0809 的工作过程是:首先输入 3 位地址,并使 ale=1,将地址存入地址锁存器中。 此地址经译码选通 8 路模拟输入之一到比较
20、器。start 上升沿将逐次逼近寄存器复位。下 降沿启动 ad 转换,之后 eoc 输出信号变低,指示转换正在进行。直到 ad 转换完成, eoc 变为高电平,指示 ad 转换结束,结果数据已存入锁存器,这个信号可用作中断申请。 当 oe 输入高电平 时,输出三态门打开,转换结果的数字量输出到数据总线上。 纸张与页面设置:(1)a4、纵向、单面打印。 (2)页边距:上 2.8cm、下 2.2cm、内侧 3cm、外侧 2cm;(3)装订线 0cm、页眉 1.8cm、页脚 1.4cm、对称页边距。 页眉:常州轻工职业技术毕业设计;页脚:页码,右侧。 2.22.2 单片机单片机 stc12c5a16
21、adstc12c5a16ad pdip40, stc12c5a16ad 图 2-2 stc12c5a16ad 该单片机为 dip40 封装,该单片机内置 8 位 a/d 转换器,可以将酒精传感器输出电压 转变成数字量处理。外型管脚与 at89s52 等完全相同。 特点: 1、具有信号输出指示。 2、双路信号输出(模拟量输出及 ttl 电平输出) 3、ttl 输出有效信号为低电平。 (当输出低电平时信号灯亮,可直接接单片机) 4、模拟量输出 05v 电压,浓度越高电压越高。 5、对乙醇蒸汽具有很高的灵敏度和良好的选择性。 6、具有长期的使用寿命和可靠的稳定性 7、快速的响应恢复特性 应用:用于机
22、动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸 汽的检测。 2.32.3 protelprotel 软件介绍软件介绍 电路设计软件使用的是 protel 99 se。 protel 99 se 是 prokltechnology 公司开发的基于 windows 环境下的电路板设计软件。该 软件功能强大,人机界面友好,易学易用,仍然是大中院校电学专业必学课程,同时也是 业界人士首选的电路板设计工具。 protel 99 se 由两大部分组成:电路原理图设计和多层印刷电路板设计。其中由两 部分组成:电路图编辑器和元件库编辑器。 一、电路图编辑器(schematic) (1) 、
23、概述 进入 design protel 99 se 后在 documents 中通过右键 “new” 建立 “document” 文件,打开后即可进行电路原理图的编辑。先按照已画好的电路草图将所有元件找到拖放 到编辑框里。将编辑框缩小,将元件照电路的样子搭好,整体上排列匀称。接下来就可以 进行局部的连线了。或者可以先将电路的各个模块先搭好,再通过框定各模块平移组合成 完整的电路,取消框定要通过 editdeselectinside area再用鼠标框定以前 选中的模块,就可以解除,表现为模块由黄色变成普通颜色。对某个工程的操作是对一个 数据库的操作,因此不同的数据库会在不同的窗口中打开,通过最
24、小化可看各个数据库的 窗口。 (2) 、常用操作 1、调用画图工具 viewtoolbarscustomize。 2、在移动元件时按空格可旋转元件。 3、一个工程数据库中最好不要将所有文件都放在文件夹 documents 中,因为这样会产 生一些小问题。而将文件直接放在数据库根目录下则不会出现这些问题。 二、元件库编辑器(schematic library) (1) 、概述 虽然 protel 本身包含了庞大的元件库,但在实际应用中总会遇到找不到元件的情况, 这时就需要根据元件资料自己动手在元件库中制作这个元件。还有一种情况是各种元件分 散在各个公司的元件库中,不便于使用,所以要把常用元件集中
25、到一个元件库中,这就要 自己动手制作,将经常用到的元件复制到这个元件库中,方便以后的使用。 (2) 、基本操作 元件库文件(.lib)也是基于数据库文件(.ddb)下的操作,同一个数据库下元件库 中的元件才可以通过 tools copy component 相互复制,不同数据库时可先用右键的 copy 将 整个元件库复制到当前数据库,再在该数据库中进行单个元件的复制。在放置芯 片引脚时大头指的是引脚外侧,引脚名称会嵌到芯片框里,引脚号在外侧。 1、在画芯片图时,如果用到画线的功能,则应将 view snap grid 功能打开,可 增加画线时的定位精度。 2、不同设计文件之间拷贝模块时,操作如
26、下:先选中要拷贝的部分拷贝,鼠标变成 十字线后在选定的区域中间点击左键,切换到另一个设计文件,粘贴即完成了操作。 2.42.4 keilkeil 介绍介绍 keil 软件是目前最流行开发 mcs-51 系列单片机的软件,这从近年来各仿真机厂商纷 纷宣布全面支持 keil 即可看出。keil 提供了包括 c 编译器、宏汇编、连接器、库管理和 一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境(uvision) 将这些部份组合在一起。运行 keil 软件需要 pentium 或以上的 cpu,16mb 或更多 ram、20m 以上空闲的硬盘空间、win98、nt、win2000、w
27、inxp 等操作系统。 下面介绍 keil c51 开发系统基本知识 keil c51 开发系统基本知识 1.系统概述 keil c51 是美国 keil software 公司出品的 51 系列兼容单片机 c 语言软件开发系统, 与汇编相比,c 语言在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易 用。用过汇编语言后再使用 c 来开发,体会更加深刻。 keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全 windows 界面。 另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到 keil c51 生成的目标 代码效率非常之高,多数语句生成的汇编代码很紧凑
28、,容易理解。在开发大型软件时更能 体现高级语言的优势。下面详细介绍 keil c51 开发系统各部分功能和使用。 2.keil c51 单片机软件开发系统的整体结构 c51 工具包的整体结构,其中 uvision 与 ishell 分别是 c51 for windows 和 for dos 的集成开发环境(ide),可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发 人员可用 ide 本身或其它编辑器编辑 c 或汇编源文件。然后分别由 c51 及 a51 编译器编译 生成目标文件(.obj)。目标文件可由 lib51 创建生成库文件,也可以与库文件一起经 l51 连接定位生成绝对目标文件
29、(.abs)。abs 文件由 oh51 转换成标准的 hex 文件,以供调试器 dscope51 或 tscope51 使用进行源代码级调试,也可由仿真器使用直接对目标板进行调试, 也可以直接写入程序存贮器如 eprom 中。 3.使用独立的 keil 仿真器时,注意事项 (1)仿真器标配 11.0592mhz 的晶振,但用户可以在仿真器上的晶振插孔中换插其他 频率的晶振。 (2) 仿真器上的复位按钮只复位仿真芯片,不复位目标系统。 (3) 仿真芯片的 31 脚(/ea)已接至高电平,所以仿真时只能使用片内 rom,不能 使用片外 rom;但仿真器外引插针中的 31 脚并不与仿真芯片的 31
30、脚相连,故该仿真器仍 可插入到扩展有外部 rom(其 cpu 的/ea 引脚接至低电平)的目标系统中使用。 2.52.5 protuesisisprotuesisis 介绍介绍 proteus 是英国 labcenter electronics 公司开发的 eda 工具软件。除了其具有和其 他 eda 工具一样的原理图. pcb 自动或人工布线及电路仿真的功能外,其中一个重要的功 能是,电路仿真是互动的,针对微处理器的应用,还可以直接在基于原理图的虚拟原型上 编程,并实现软件源码级的实时调试。proteus 组合了高级原理图、混合模式 spice 仿真, pcb 设计以及自动布线来实现一个完整
31、的电子设计系统。 一、proteus 简介 proteus 产品系列包含了 vsm 技术,用户口可以对基于微控制器的设计连同所有的周 围电子器件一起仿真。用户甚至可以实时采用诸如 led/lcd.键盘、rs232 终端等动态外设 模型来对设计进行交互仿真。其功能模块有一个易用而又功能强大的 isis 原理布图工具, prospice 混合模型 spice 仿真,arf.s pcb 设计。 软件具有以下特点。 (1)支持许多通用的微控制器,如 arm7,pic,avr,hc11 以及 8051。 (2)交互的装置模型包括:led 和 lcd 显示,rs232 终端,通用键盘,开关,按钮等。 (3
32、)强大的调试功能,知访问寄存器与内存,设置断点和单步运行模式。 (4)支持如 iar. keil 和 hitech 等开发工具的 c 源码和汇编的调试。 (5)内置超过 6000 标准 spice 模型,完全兼容制造商提供的 spice 模型。 (6) dll 接口为应用提供特定的模式。 (7)基于工业标准的 spice3f5 混合模型的 i“路仿真器。 (8) 14 种虚拟仪器:示波器、逻辑分析仪、信号发生器、规程分析仪等。 (9)高级仿真包括强大的基于图形的分析功能:模拟、数字和混合瞬时图形,频率, 转换,噪声,失真,傅立叶,交流、直流和音频曲线。 (10)模拟信号发生器包括直流、正弦、脉
33、冲、分段线性、音频、指数、单频 fm;数字 信号发生器包括尖脉冲、脉冲、时钟和码流。 (11)集成 proteus pcb 设计形成完整的电子设计系统。 二、 proteus isis isis 是 proteus 系统的中心,它远不仅是一个图表库。它是具有控制原理图画图的外 观的超强设计环境。无论是实现复杂设计的仿真以及 pcb 设计,还是设计精美的原理图 isis 都是最好工具。 双击桌面上的 isis 6 professional 图标或者单击屏幕左下方的 “开始”一“程序”一“proteus”一“isis 6 professional”菜单启动了 proteus isis 集成环境。
34、proteus isis 的工作界面是一种标准的 windows 界面。包括:标题栏、主菜单、工具 栏、预览窗口、挑选元件按钮、库管理按钮、原理图编辑窗口。元件列表、对象选择按钮、 预览对象方位控制按钮、仿真控制按钮、状态栏。 第三章第三章 硬件电路设计硬件电路设计 3.13.1 设计框图设计框图 本研究设计的酒精浓度测试仪框图如图 3-1 所示。mq-3 乙醇气体传感器输出信号经信 号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经 ad 转换,与设定的醉酒阈值进行比较,并显示或报警。 mq-3气体传感器 信号调理电路 mq-3传感器模块 模/数转换 电压/酒精浓度
35、转换 阈值比较外部eeprom 醉酒阈值 模拟电压信号 酒精浓度显示过阈报警 stc12c5a16ad单片机 图 3-1 酒精浓度测试仪方框图 3.23.2 乙醇信号检测及调理电路乙醇信号检测及调理电路 mq-3 乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检 测,也用于其他场所乙醇蒸汽的检测。其技术特点为: 1:对乙醇蒸汽有很高的灵敏度和良好的选择性 2:快速的响应恢复特性 3:长期的寿命和可靠的稳定性 4:简单的驱动回路 mq-3 乙醇气体传感器灵敏度曲线如图 3-2 所示,其传感原理为气敏电阻的输出阻值随 乙醇气体等浓度变化而变化。 图 3-2 mq-3 乙醇气体
36、传感器灵敏度曲线 mq-3 乙醇气体传感器管脚与测试电路如图 3-3 所示。 (a) 管脚图 (b) 测试电路 图 3-3 mq-3 乙醇气体传感器管脚及测试电路 mq-3 乙醇气体传感器及其调理电路原理如图 3-4 所示。其外形如图 3-5 所示。经过 调理,检测信号由电阻值转变成电压值,便于后续电路进行 a/d 转换和处理。 ab h 1 3 6 4 5 2 qm-n10 vccvccvcc r3 led c1 vcc 2 3 4 1 8 u1a r1 1 2 3 4 p1 rp 产产产产 产产产http:/ 产产产产产产产产http:/ r2 +5v dout aout gnd 图 3-
37、4 传感器及调理模块原理图 图 3-5 mq-3 传感器模块外形图 该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。 具有信号输出指示。 双路信号输出(模拟量输出及 ttl 电平输出) ttl 输出有效信号为低电平。 (当输出低电平时信号灯亮,可直接接单片机) 模拟量输出 05v 电压,浓度越高电压越高。 3.33.3 单片机电路单片机电路 本设计选用高性能单片机 stc12c5a16ad,其管脚如图 3-6 所示。 pdip40, stc12c5a16ad 图 3-6 stc12c2052ad 单片机管脚图 该芯片为 52 内核 8 位单片机,内部集成了 10 位多路 a/d 转
38、换模块,适用于常用检测 电路。由 stc12c5a16ad 组成的单片机系统原理图如图 7 所示。图中 aout 为 mq-3 传感器 模块输出的检测电压信号,送入 adc7 端口进行处理,dout 为传感器模块输出的数字电平 信号,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进 行调节。 图 3-7 单片机系统原理图 图 3-7 中,按键 k2 和 k3 为醉酒阈值调整键,其中 k2 为“增加” ,k3 为“减小”按键。 l2 和 l3 为报警指示灯,分别可以进行酒后和醉酒两级报警。 3.43.4 显示电路显示电路 显示部分采用 smc 1602 液晶屏进行数据显示
39、,其主要技术参数为: 表 3-1 液晶屏技术指标 接口信号说明如表 3-2 所示。 表 3-2 液晶屏接口信号说明 与单片机接口电路如图 3-8 所示。其中 j2 的 3 脚为背光引脚,r9 和 r10 电阻用于调 节背光亮度。j2 的 4、5、6 引脚分别接液晶的 rs、e/w 和 e 控制引脚,j2 的 714 引脚 为数据引脚。 图 3-8 lcd 与单片机接口电路 3.53.5 阈值存储阈值存储 醉酒阈值存储在 eeprom 芯片 at24c04 中,并可以通过 “增加” 、 “减少”按键调节并 保存。at24c04 是 iic 接口的 eeprom 芯片,可以用于掉电不易失数据的存储
40、。其电路如图 3-9 所示。图中 a0、a1 和 a2 为芯片的地址引脚,一般接地即可。scl 和 sda 为 at24c04 和单片机 iic 通信的时钟线和数据线。 图 3-9 eeprom 存储电路 第四章第四章 软件设计软件设计 1、软件流程图 本设计软件主程序流程图如图 4-1 所示。 数据初始化 a/d转换初始化 定时器初始化 显示初始化 进入后台while循环 触发a/d转换 换算酒精浓度 酒精浓度显示 超过阈值吗? 有键按下吗?按键处理 酒精浓度显示 报警 是 是 否 否 图 4-1 主程序流程图 2.简单程序介绍 #include /头文件 #define uchar uns
41、igned char /宏定义无符号字符型 #define uint unsigned int /宏定义无符号整型 code uchar seg7code10= 0 xc0,0 xf9,0 xa4,0 xb0,0 x99,0 x92,0 x82,0 xf8,0 x80,0 x90; /显示段码 数码管字跟 uchar wei4=0xef,0xdf,0xbf,0x7f; /位的控制端 /位控制码 sbit st=p30; /a/d 启动转换信号 sbit oe=p31; /数据输出允许信号 sbit eoc=p32; /a/d 转换结束信号 sbit clk=p33; /时钟脉冲 uint z,
42、x,c,v,ad0809, date;/定义数据类型 延时函数延时函数 void delay(uchar t) uchar i,j; for(i=0;i0;j-); ; 数码管动态扫描数码管动态扫描 void xianshi() /显示函数 uint z,x,c,v; z=date/1000; /求千位 x=date%1000/100; /求百位 c=date%100/10; /求十位 v=date%10; /求个位 p2=0xff; p0=seg7codez p2=wei0; delay(80); p2=0xff; p0=seg7codex; p2=wei1; delay(80); p2=0
43、xff; p0=seg7codec; p2=wei2; delay(80); p2=0xff; p0=seg7codev; p2=wei3; delay(80); p2=0xff; clkclk 振荡信号振荡信号 void timer0( ) interrupt 1 /定时器 0 工作方式 1 th0=(65536-2)/256; /重装计数初值 tl0=(65536-2)%256; /重装计数初值 clk=!clk; /取反 主函数主函数 void main() tmod=0x01; /定时器中断 0 clk=0; /脉冲信号初始值为 0 th0=(65536-2)/256; /定时时间高八
44、位初值 tl0=(65536-2)%256; /定时时间低八位初值 ea=1; /开 cpu 中断 et0=1; /开 t/c0 中断 tr0=1; while(1) /无限循环 st=0;/使采集信号为低 st=1;/开始数据转换 st=0;/停止数据转换 while(!eoc);/等待数据转换完毕 oe=1;/允许数据输出信号 ad0809=p1; /读取数据 oe=0;/关闭数据输出允许信号 if(ad0809=251)/电压显示不能超过 5v ad0809=250; date=ad0809*20;/数码管显示的数据值,其中 20 为采集数据的毫安值 xianshi();/数码管显示函数
45、 当测量浓度大于设定浓度时,单片机 io 口输出低电平 #include /库文件 #define uchar unsigned char/宏定义无符号字符型 #define uint unsigned int /宏定义无符号整型 第五章第五章 调试调试 当程序在 uvision 环境下编写完成,并编译生成.hex 文件后,就可以下载并进行调试 了。 一、一、usbusb 转串口驱动安装转串口驱动安装 打开 usb 驱动文件夹下的 pl2303_prolific_driverinstaller_v130.exe 安装文件, 按提示安装 usb 转串口驱动程序。安装完成后,插入 usb 下载线后
46、,在开始-控制面板- 打印机和其他硬件-设备管理器,在“端口”分支下有(prolific usb-to-serial comm port(comx)。x 表示串口号,如果没有说明 usb 转串口驱动没有安装,须重新安装。 记住括号里的 com 口号。 图 5-1 成功安装 usb 转串口驱动示意图 二、下载程序 打开 stc 单片机下载软件文件夹,点击运行 stc_isp_v481.exe 程序,出现如下界面。 图 5-2 下载软件 正确选择 mcu 类型,com 口(与刚才安装的 com 号一致) ,最高波特率和最低波特率 都选 2400bps 或者 1200bps (下载线内 pl2303
47、 芯片所限,没办法!) ,并打开正确的.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, y
48、our 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 串口线下载,可能会遇到不兼容 的问题,可以
49、让我们帮助购买兼容的 usb 转 rs-232 串口线 仍在连接中, 请给 mcu 上电. 按下电路板上的电源按纽,保证其有个失电至上电的过程,则窗口显示开始烧录芯片。 芯片烧录成功后,程序开始运行,酒精浓度测试仪正常工作。 参考文献 1 张毅刚.单片机原理及应用 m.高等教育出版社 2 黄惠媛.单片机原理与接口技术 m.海洋出版社 3 徐新民.单片机原理与应用 m.浙江大学出版社 4 何道清.传感器与传感器技术 m.科学出版社 5 电子制作.2007 年第 6 期 j.北京:电子制作编辑部,4243 6 电子制作.2007 年第 12 期 j.北京:电子制作编辑部,62 致谢 通过这次的课程
50、设计,我对于单片机的了解更加深入了。我发现设计过程是一个考验 人耐心的过程,不能有丝毫的急躁,对电路应该一步一步的来。经过这次课程设计的训练, 使我对单片机的运用以及编写程序有了进一步的了解,并且加深了我对这门课程的兴趣。 21 世纪是科技快速发展的时期,更是电子产品飞书速更新的时期,对于我们,是个机遇。 因此巩固理论知识,提高动手能力是我们现在的当务之急,这次课程设计是给我提高的机 会。也因为这样,我明白了真理总是在不断的揣摩中产生的,这是我的最深体会。为了做 好这次课程设计,我查阅了很多资料,也请教了老师,费了不少心思。 在此感谢老师的指导和帮助,感谢老师传授给我的知识,指导老师的严谨和求
51、实的治 学精神及踏实细致的科研态度使我受益非浅。在课程设计完成之际,谨向敬爱的宋朝晖老 师表示忠心的感谢和诚挚的祝福。最后感谢我的同学以及家人这段时间以来对我的关心和 支持。 装 订 线 附录附录 a 元器件清单元器件清单 m10-m10-单片机酒精检浓度测报警套件元器件清单单片机酒精检浓度测报警套件元器件清单 酒精浓度测试仪酒精浓度测试仪(1602)(1602)元器件清单元器件清单 元件名封装标称值说明数量 c1 直插 10uf/16v 电解电容 1 c2 直插 30pf1 c3 直插 30pf1 c4 直插 22uf/16v 电解电容 1 c5 直插 0.1uf1 d4 直插 1n4148
52、1 r1 r4 r7 r8 直插 1k1 r2 r3 r5 r6 直插 10k1 r9 r10 直插 10k1 s1 直插自锁电源开关按钮 1 s2 直插按键 1 s3 直插按键 1 d1 直插红色发光管 1 d2 直插红色发光管 1 d3 直插红色发光管 1 y1 直插 12m 晶振 1 u1dip40stc12c5a16ad 单片机 1 u2dip824c04eeprom1 u3 直插 mq-3 酒精测试模块 1 液晶屏绿屏 lcd16021 j1sip16 显示接口8 脚插座 1 j2sip4 传感器接口4 脚插座 1 单片机插座 dip401 电路板 1 附录附录附录附录 b b b
53、b 实物图实物图实物图实物图 附录附录附录附录 c c c c 程序程序程序程序 /#include reg52.h #include stc12c5a.h #include 1602.h #include 2402.h #define uchar unsigned char #define uint unsigned int /声明常量 #define alch 80 /醉驾标准 80mg/l /k_mg_mv 和 k_zero 为传感器校准系数,要根据每个 mq-3 模块校准 #define k_mg_mv 160/66 /传感器灵敏度系数,每毫克/l 对应的 10 毫伏数 #define
54、 k_zero 0 /传感器零点漂移,约 130mv /定义按键 sbit key_up = p36; sbit key_down = p37; /定义 led 报警灯 sbit led_warn1 = p34; sbit led_warn2 = p35; /定义乙醇传感器 ttl 电平输出引脚 sbit dout = p14; /定义标识 volatile bit flagstartal = 0; /开始转换标志 volatile bit flagkeypress = 0; /有键弹起标志 /全局变量定义 uchar threshold; /酒精浓度上限报警值 uint alcounter;
55、 /酒精转换计时器 uint alvalue; /酒精测量值 float altemp; /计算临时变量 uint keyvalue, keyup, keydown; /键值 char * psave; /eeprom 存盘用指针 /函数声明 void data_init(); void timer0_init(); 装 订 线 void port_init(); void adc_init(); uchar getadval(); void keyprocess(uint ); /数据初始化 void data_init() alcounter = 0; alvalue = 0; led_w
56、arn1 = 1; led_warn2 = 2; keyvalue = 0; keyup = 1; keydown = 1; /定时器 0 初始化,中断时间约 2 毫秒 /计算:晶振 11.0592mhz,定时器时钟 11059200/12=921600,每毫秒 922 个脉冲 / 16 位定时器初值 65536-1844=63692=0 xf8cc void timer0_init() et0 = 1; /允许定时器 0 中断 tmod = 1; /定时器工作方式选择 tl0 = 0 xcc; / th0 = 0 xf8; /定时器赋予初值,大约为 2 毫秒中断 1 次 tr0 = 1; /
57、启动定时器 /定时器 0 中断 void timer0_isr (void) interrupt 1 using 0 tl0 = 0 xcc; th0 = 0 xf8; /定时器赋予初值 /每 1 秒钟启动一次 ad 转换 alcounter +; if (alcounter = 500) flagstartal = 1; alcounter = 0; void port_init() p1m0 = 0 x80; /10000000,p1.7 作为 ad 输入 p1m1 = 0 x80; / void adc_init() uint i; p1asf = 0 x80; /设 p1.7 为 ad 输入 adc_res = 0; /清先前的结果 adc_contr|=0 x80; /power=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025版信托资金借贷合同合规性审查条款3篇
- 二零二五年度古董家具修复木工合同范本4篇
- 二零二五年度智能锁定制加工合同范本4篇
- 2025版环保木工材料供应与分包工程合同4篇
- 2025版事业单位聘用合同续签与绩效考核及晋升标准协议3篇
- 2025版外教中介聘请合同标准范本3篇
- 农产品仓储库存管理与优化考核试卷
- 2025版信托投资公司外汇存款账户管理合同3篇
- 2025年加盟冰淇淋店合同模板
- 2025年加盟加盟推广合同
- 道路沥青工程施工方案
- 内陆养殖与水产品市场营销策略考核试卷
- 票据业务居间合同模板
- 承包钢板水泥库合同范本(2篇)
- DLT 572-2021 电力变压器运行规程
- 公司没缴社保劳动仲裁申请书
- 损伤力学与断裂分析
- 2024年县乡教师选调进城考试《教育学》题库及完整答案(考点梳理)
- 车借给别人免责协议书
- 应急预案评分标准表
- “网络安全课件:高校教师网络安全与信息化素养培训”
评论
0/150
提交评论