基于单片机酒精浓度测试仪设计毕业设计_第1页
基于单片机酒精浓度测试仪设计毕业设计_第2页
基于单片机酒精浓度测试仪设计毕业设计_第3页
基于单片机酒精浓度测试仪设计毕业设计_第4页
基于单片机酒精浓度测试仪设计毕业设计_第5页
已阅读5页,还剩31页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、 防防 灾灾 科科 技技 学学 院院 毕毕 业业 设设 计计 题题目目基于单片机酒精浓度测试仪设计 学生姓名学生姓名骆成曦学学号号 105032211 系系 别别 防灾仪器系 专专 业业测控技术与仪器 班班级级 1050322 开题时间开题时间2013 年 12 月 20 日答辩时间答辩时间 2014 年 6 月 6 日 指导教师指导教师刘淑聪 职职 称称讲师 基于单片机酒精浓度测试仪设计 作 者 骆成曦 指导教师 刘淑聪 摘要摘要 本文设计一种可以检测酒精浓度并在超过一定浓度阈值时进行声光报警提示的酒精浓度 测试仪。系统采用酒精浓度传感器 mq3,把检测到的酒精浓度转换为电信号,经 a/d

2、转换器转换成 数字信号在传给单片机,最后单片机进行相应处理,lcd 液晶可以显示酒精浓度,当超过设定值时 系统可以进行声光报警。 关键词:关键词:89c5189c51 单片机;单片机;mq3mq3 浓度酒精传感器;浓度酒精传感器;adc0908adc0908;lcd1602lcd1602 液晶;液晶; based on single chip microcomputer alcohol tester design author luo chengxi teacher liu shucong abstract: this paper studies can detect alcohol conc

3、entration and sound and light alarm prompt more than the threshold. mainly adopts mq3, alcohol concentration sensor to detect the alcohol concentration can be converted into electrical signals, after a/d converter is converted into digital signals to single chip microcomputer, the corresponding sing

4、le-chip processing, lcd liquid crystal display (lcd) and alcohol concentration exceeds the set value of sound and light alarm. in this paper, we introduce the sensor, converter, mcu, lcd monitor, when alarm circuit and the principle of use. keywords:89 c51; mq3 alcohol concentration sensor; adc0908

5、converter; lcd1602 lcd; the hardware and software design. 目目 录录 第一章第一章 绪论绪论.4 第二章第二章 酒精测试仪总体设计酒精测试仪总体设计.5 2.1 酒精浓度检测仪设计要求.5 2.2 酒精浓度检测仪设计方案.5 第三章第三章 硬件设计硬件设计.6 3.1 传感器的选择.6 3.2 a/d 转换电路.7 3.3 89c51 单片机系统.11 3.4 lcd1602 液晶.15 3.5 键盘电路.19 3.6 报警电路.20 第四章第四章 软件设计软件设计.22 4.1 keil 与 protel99se 介绍.22 4.2

6、主程序框图.23 4.3 数据采集子程序程序框图.25 第五章第五章 测试结果及结论测试结果及结论.26 5.1 调试.26 5.2 结论.27 致谢致谢.28 参考文献参考文献.29 附录附录.30 第一章第一章 绪论绪论 随着国家的发展,我们的国家有车的人可以说与日俱增,而酒驾酿成的交通事故 经常出现。因此,国家很重视酒驾问题并严惩,所以设计可检测驾驶员口腔酒精浓度 的智能仪器是很有必要的。本课程研究的是用气体传感器检测,a/d 转换信号,单片机 处理的设计,可知道驾驶员呼出气体的酒精浓度,还可以进行声光报警。这可以检测 空气中酒精浓度,并可自由设定阈值,如果超过设定阈值时会发出声光报警提

7、示。 本课题分为硬件和软件部分。硬件部分是用酒精浓度传感器 mq3,把检测到的酒精 浓度转换为电信号,经 a/d 转换器转换成数字信号在传给单片机,最后单片机进行相 应处理,lcd 液晶显示酒精浓度并超过设定值的声光报警。程序主要是模块化设计,因 为个模块化的程序都是独立的,方便调试,修改。硬件电路主要包括单片机最小系统、 声光报警电路、a/d 转换电路、lcd 液晶显示电路,按键电路,其原理设计将会在后面 进行详细介绍。 第二章第二章 酒精测试仪总体设计酒精测试仪总体设计 2.12.1 酒精浓度检测仪设计要求酒精浓度检测仪设计要求 设计的酒精浓度测试仪特点: (1)单片机是采集系统的重要部分

8、,其电路周围有lcd显示电路和键盘电路,不 用连接其他计算机,可以直接用于显示工作,完成数据的采集、存储、计算、分析等 过程。 (2)系统具有低功耗、高稳定性、功能强、小型化、性价比高等特点。 (3)各个零件都选用方便,便于携带,小等特点,如数码管显示器,单片机最小 系统,小键盘等。主要通过操作单片机控制的键盘和led显示,操作界面简单,方便, 清晰。 (4)软件设计简单明了,模块分明,独立性强。 2.22.2 酒精浓度检测仪设计方案酒精浓度检测仪设计方案 刚开始,注意到是把酒精传感器检测到的非电量转换成电量,而且传感器输出电 压不到5伏,电压也稳定,扰外部干扰能力强等,所以传感器输出电压不需

9、加稳压、放 大,直接传给a/d转换器进行相应处理,处理后得到的数据再传给单片机。除此之外, 液晶显示,键盘,报警系统等也必不可少。 如图2-1所示: 被测 环境 气敏 传感器 a/d 转换 电路 单片机 声光报警电路 液晶显示 键盘 图图2-12-1 系统结构图系统结构图 第三章第三章 硬件设计硬件设计 3.13.1 传感器的选择传感器的选择 此传感器是为了检测空气中的酒精浓度,呼出的酒精浓度也是血液中所含的酒精 浓度,所以选择气敏传感器。由于空气中还有其他气体成分而影响到传感器检测的精 确度,选择的传感器只针对酒精气体敏感,而对其他气体的敏感度极低,所以选 mq3 气敏传感器。其拥有灵敏度高

10、、选择性好、使用寿命长和稳定性强等特点。mq3 气敏传 感器的组成有敏感层 sno2、微型 al2o3、陶瓷管、测量电极和加热器构成的敏感元件, 而这些敏感元件固定在塑料或不锈钢的腔体内,其工作过程中加热器又起到至关重要 的作用。加热回路与输出回路构成了传感器中的标准回路。标准回路是对传感器表面 电阻的检测,能很好的影响其阻值的变化。传感器的表面电阻 rs 与负载电阻 rl 串联, 而电阻 rl 上的有效输出电压 vrl 影响电阻 rs 的阻值变化。负载电阻 rl 阻值限制在 05-200k。加热电压 uh 为 5v。电阻 rl 与电压 uh 限制了传感器输出电压在 0-5v 之间。 mq3

11、气敏传感器的结构和外形如图 3-1、标准回路如图 3-2、传感器阻值变化率与乙醇 浓度关系如图 3-3。为了提高检测时的精确度,减小误差,一般要在适宜的环境下,将 传感器预热 46 分钟。 图图3-13-1 mq3mq3 结构和外形结构和外形 a 1 f 2 a 3 b 4 f 5 b 6 rl3 mq -2 +5 g nd r8 470 g nd in r7 5.1 c4 104 图图3-23-2 mq3mq3 原理图原理图 图图3-33-3 乙醇浓度与传感器阻值变化率的关系乙醇浓度与传感器阻值变化率的关系 3.23.2 a/da/d 转换电路转换电路 在接受信号时,由于单片机只能接受数字信

12、号不能直接接受非电物理量(如温度 等),传感器把这种非电物理量转换成需要的模拟电信号,而转换器就可以再次把这 些模拟电信号转换成单片机能接受的数字信号。能把模拟信号转换成数字信号的元器 件叫做 a/d 转换器(adc)。 a/d 转换器可以归纳成三种:第一种是双积分 a/d 转换器,其拥有很高的精度,稳 定性好,能抵抗外界的干扰,价格也便宜,可运行的速度不快;第二种是逐次逼近型 a/d 转换器,一般常用这种,因其特点都适中,而没什么大缺点;第三种是-a/d 转换器,主要是针对信号的幅度。 所以采用了第二种转换器 adc0809,它是 8 位的。adc0809 的模拟输入端口有 8 个, 而引脚

13、(23-25)的选择既是模拟信号的位置选用。22 号引脚是地址锁存控制,要对信 号锁存,输入高电平即可。6 号引脚是测试控制,用于控制转换,当有适当的高电平就 可进行转换,一般输入 2s。7 号引脚是转换结束标志,当检测到有高电平输出,表 明转换结束。9 号引脚是转换数据输出允许端,只有高电平时,才可以进行转换数据输 出。10 号引脚是 adc0809 的时钟输入端,由输入传输数据的连续性决定。 adc0809adc0809 的引脚及功能的引脚及功能 一般都选择逐次比较型 a/d 转换器因其各个性能,特点都适宜,没有什么有影响 的缺点。下面是 adc0809 的引脚和功能,如图 3-4。 图图

14、 3-43-4 adc0809adc0809 的引脚的引脚 adc0809 拥有 8 路模拟输入以及相对应的 8 路数字输出。上图所示,adc0809 一共 28 个引脚,是一种双列直插式封装的转换器。重要,常用引脚功能如下: in0in7:8 路模拟量输入端。 d0d7:8 位数字量输出端。 adda、addb、addc:3 位地址输入线,决定 in0in7 哪路通。 ale:地址锁存允许信号,要锁存,必需先高电平触发。 start:启动脉冲输入端,下降沿启动转换,上升沿复位。 eoc: a/d 转换结束标志,输出低电平表示转换,高电平表示结束。 oe:数据输出允许信号,高电平触发。只有触发

15、 oe 才可以让三态门正常工作,输 出转换后的数字量。 clk:时钟脉冲输入端。其值必需小于 640khz。 ref(+) 、ref(-):参考电压输入端。稳定,抗干扰强。 vcc:电源输入端,一般输入 5v。 gnd:接地端。 编码 adda、addb、addc,输入高电平到 ale,打开地址锁存。打开的模拟量输入 端将输入的量发给比较器。start 输入脉冲变为下降沿时启动 a/d 转换,而 eoc=0 标 志着正在正常工作转换中。当 a/d 转换完成后,而 eoc=1 也意味转换已完成,转换完 成后的数据存入锁存器,中断申请可以在此申请。高电平触发 oe,三态门触发,锁存 器中的数字量就

16、可以输出到对应的 d0d7。 最后 d0d7 输出的数字量传送给单片机。当只有 a/d 转换完成才可以接着传输数 字量,以下是三种确定转换完成的方式。 (1)定时传送方式 a/d 转换器所转换所花费的时间一般是厂家设定好的,不会变的。例如 adc0809 转 换要 128s,若 51 单片机的晶振是 6mhz,也就是其 64 个机器周期。所以可以编写一 个延时子程序,当开始转换时调用此子程序,设定延迟的时间超过转换时间一点,这 样就可以确定转换完成,这样就可以输出转换完成的数据。 (2)查询方式 a/d 转换芯片有转换结束标志位,就选用的 adc0809 的 eoc 端。所以只需要检测 eoc

17、 输出的高低电位就可以知道转换完成没有,这样就可以输出转换完成的数据。 (3)中断方式 以 eoc 作为中断请求,用中断把转换完成的数据输出。 定时,查询,中断都可以选用,当都检测到转换后,编写相应程序输出数据。而 且 oe 触发后,转换完成的数字量传送到 d0d7,最后到达单片机并进行处理。 adc0809 有 8 路模拟量输入端和 8 位数字量输出端,但输入端只可以换 1 路,而引 脚 adda、addb、addc 的编写对其控制,如图 3-5。 图图 3-53-5 通道选择表通道选择表 adc0809adc0809 的结构及转换原理的结构及转换原理 adc0809 是逐次逼近型,vcc

18、需输入 5v。模拟量输入端有 8 路模拟开关,而选用是 由 adda、addb、addc 的编写控制。adc0809 转换时间是 100s,数字量输出端有三态 输出锁存器,转换后的数据可直接发送到 mcs-51 的数据总线。adc0809 的结构框图如 图 3-6。 start clk oevr(+) vr() vcc gnd eoc d0 . . . d7 三态输 出锁存 器 8 位 a/d 转换 器 地址锁 存与密 码 c b a ale 8 路模 拟量开 关 in7 . in0 图图 3-63-6 adc0809adc0809 的结构框图的结构框图 adc0809adc0809 连线图连

19、线图 如图 3-7: in3 1 in5 3 in6 4 in7 5 st art 6 eoc 7 d3 8 oe 9 clock 10 v cc 11 v ref+ 12 gnd 13 d1 14 d2 15 v ref- 16 d0 17 d4 18 d5 19 d7 21 ale 22 addc 23 addb 24 adda 25 in0 26 in1 27 in4 2 d6 20 in2 28 adc0809 adc1 adc0809 +5 gnd d0 d1 d2 gnd d3 d4 d5 d6 d7 st steoc oe clk in 图图 3-73-7 adc0809adc0

20、809 的连线图的连线图 3.33.3 89c5189c51 单片机系统单片机系统 单片机是一种有计算机属性也被说成微型计算机的集成芯片,并且用户自己通过 编程来控制实现其功能。实现的方式主要输入输出高低电平到引脚触发,然后就可以 实现引脚连接处的电路。单片机的应用很广泛,可用于自动化,智能仪器,消费类电 子产品,通信,武器装备等。 单片机片内结构单片机片内结构 单片上集中那些具有特殊功能的器件,如图 3-8。主要组成结构: 2 个 16 位定时器、计数器。 一个串行口。 中断系统。 数据存储器(ram)。 控制器(cpu) 。 特殊功能寄存器(sfr) 。 程序存储器(rom/eprom)

21、。 4 个 i/o 口(p0、p1、p2、p3) 。 psen 88 e o c x t a l 1 cpu (运算器) (控制器) 数据存储器 ram p0p2程序存储器 rom/eprom p1 串 行 口 定时 器/计 数器 中断 系统 特殊功能 寄存器 (sfr) p3 aleea in7 . i 0 x t a l 2 8 8 reset 图图 3-83-8 5151 单片机片内结构单片机片内结构 这些器件在单片机内连接在同一总线上,原理是控制器和单片机周边器件组成的 传统结构模式。运算器对器件的工作是通过 sfr 的集中控制方式。 单片机的型号选择是 at89c51。因其与其他系列

22、单片机相比,都具备基本功能,且 性能不比其它差,而且拥有很好的抗干扰能力,消耗功率小,提供的电源电压只需 5v 或 12v,电压比较稳定,不易受影响。价格便宜,使用简单,操作方便,相关程序编写 更易上手。 89c5189c51 芯片介绍芯片介绍 89c51 共有 40 个引脚,如图 3-9。这些引脚都互相兼容,使用时注意有些引脚要 加上拉电阻保护,其应用双列直插封装方式。 p1.0 p1.1 p1.2 p1.3 p1.4 p1.5 p1.6 p1.7 rst (txd) p3.1 (int0) p3.2 (int1) p3.3 t0 p3.4 t1 p3.5 (wr) p3.6 (rd) p3

23、.7 xtal1 xtal2 gnd vcc p0.0 (ad0) p0.1 (ad1) p0.2 (ad2) p0.3 (ad3) p0.4 (ad4) p0.5 (ad5) p0.6 (ad6) p0.7 (ad7) ea/vpp psen p2.7 (a15) p2.6 (a14) p2.5 (a13) p2.4 (a12) p2.3 (a11) p2.2 (a10) p2.1 (a9) p2.0 (a8) pdip (rxd) p3.0 ale/prog 图图 3-93-9 单片机封装引脚图单片机封装引脚图 这些引脚大致可以归纳成三大类: 电源和时钟引脚:vcc、gnd、xtal1、x

24、tal2。 vcc、gnd:单片机电源引脚,不同型号所需要的电源电压也不同,一般接 5v,有 时也接 3.3v。 xtal1、xtal2:外时钟引脚,单片机内含有振荡电路,为时钟信号服务,此时 xtal1 要输入,xtal2 要输出。89c51 有两种时钟方式:弟一种是外时钟,xtal2 输入 信号,xtal2 接地,因其是固定电路,很少用。还有一种是内时钟,还要在电路中加入 石英晶体和振荡电容而产生脉冲,一般常用,所以选用后者。 编程控制引脚:rst、ale/ 、/vpp。psenprogea rst:复位引脚,高电压触发。要想其正常工作必需是连续输入至少 2 个机器 周期,这时才能复位初始

25、化。复位还分为上电复位和按键复位。 ale/ :ale 锁存端,第二功能脉冲输入端。现在单片机内部很完善,progprog 一般都不常用这个引脚。 :允许输出引脚,低电平触发。主要控制外部程序储存器的读操作,一般psen 连接输出允许端 oe. /vpp:选择控制引脚。若=1,就会读取片内程序存储器,若=0,就直eaeaea 接访问外部(rom) ,即使有内部(rom) 。 i/o 口:p0、p1、p2、p3 引脚,均是双向 8 位。除 p0 没有上拉电阻,其它都 有,所以 p0 要加上一个 10k 的上拉电阻。这些引脚都是独立控制,高电平触发,但 要注意有些引脚的第二功能。 因 89c51

26、内部有 rom,所以输入高电平,即使 rom 只有 4kb,但已满足本课题ea 的需要,不用要再扩展 rom。其硬件电路如图 1。 晶振电路和复位电路晶振电路和复位电路 单片机最简电路由三个最基本的电路组成,分别是复位电路,时钟电路和电源电 路。有了这三个部分单片机就可以正常工作,缺一不可。当然,若对最小系统加储存 器,a/d 等就可以进行更复杂的工作。 89c51 内部含有 rom,由其组成的最小系统只需加上时钟与复位,如图 3-10。当然 因电路简单,最小系统功能控制也有限。 图图 3-103-10 最小系统原理图最小系统原理图 (1) 时钟电路 89c51 有内时钟与外时钟,因后者电路固

27、定,不灵活,一般都用前者。如图 3- 11,有两个 30pf 的电容来稳频起振,晶振主要是靠石英晶体,其两侧分别连接 xtal1 时钟电路 复位电路 stc89c51 单片机 i/ o 口 和 xtal2,由振荡而完成脉冲。振荡频率一般在 1.212mhz 一般选用 12mhz 或 6mhz。 y1 11.0592mhz c2 30pf c3 30pf 18 19 图图 3-113-11 89c5189c51 内时钟电路内时钟电路 (2) 复位电路 需要在 rst 上持续输入 2 个周期以上高电平时复位初始化(如果一直输入高电平, 复位就一直循环) ,其又可分为上电复位与按键复位,本课题选用按

28、键复位,其电路如 图 3-12。 按键复位又分电平与脉冲,一般选用电平复位,操作简单方便,只需把 rst 直接 连接电源即可。 r1 10k c1 10uf s4vcc 9 图图 3-123-12 89c5189c51 复位电路复位电路 (3)89c51 中断 中断是为是单片机对外部或内部随机发生的事情实时处理而设置,这能提高单片 机对实践的处理能力。其定义可理解为 cpu 在进行某项工作的时候,发生了另一件事, cpu 会接受到处理请求(中断发生) ,cpu 就会放下现在做的事(中断响应) ,而去处理 刚发生的事(中断服务) ,等处理完此事后,返回原工作继续作。图 3-13。 图图 3-13

29、3-13 中断响应和处理过程中断响应和处理过程 3.43.4 lcd1602lcd1602 液晶液晶 lcd1602 是常用液晶,运用于仪器仪表类居多,可以表达 32 个字符。因液晶显示 器的结构简单,制作方便快捷,也经常出现在生活家电上,如电费计费表,智能冰箱 等,它可以让使用者知道想要的数字,符号及图形。它的原理也很简单,屏幕里的电 极作用于液晶分子,从而可以显示。其又可以划分成 3 种:最简单的发光管,数码管 和常用的液晶显示器。其中最后一种功能要多些,单片机的开发运用最好的选择。 选择晶液显示器的好处: 当向液晶显示器输入信号后,正常工作,且持续,也就是一直发光显示,不闪 烁,不像其它

30、一些是通过刷新亮点,而且看起来画质清晰,舒服。 液晶显示器可以表达 32 个字符,满足大多单片机的需要,它们之间的连接也很 简单,焊接时也不容易出错,接受到的信号速度也快。 液晶显示器与其它功能相当的显示器比要精致且小。 液晶显示器对外部电源耗电量少,因其内部有电极和驱动 ic 提供主要电量,从 而大大的节省电量,即低功耗。 (1)引脚介绍: 1 引脚:vss 即 gnd,接地。 2 引脚:vdd 即 vcc,电源电压,一般需要 5v。 3 引脚:vl 是对比度调整端,一般正常工作要输入低电平即接地,由于对比度太 高,不易于显示结果,要加一个 10k 左右电位器来降低对比度,避免“鬼影”的出现

31、。 也可输入高电平即接电源,此时对比度太弱,显示结果不清晰。 4 引脚:rs 是寄存器的选择,输入不同,作用也不同。若通入高电平,则表达为 数据,若通入低电平,则表达为指令。 5 引脚:r/w 是读写信号端。如果输入高电平触发,则表达为读操作,如果输入低 电平触发,则表达为写操作。 如果都向 rs 和 r/w 输入一个低电平,则液晶显示器就能进行写入指令也能显示地 址。 如果都向 rs 和 r/w 输入一个高电平,则液晶显示器就能进行读忙信号。 如果向 rs 输入高电平而 r/w 输入低电平,则液晶显示器就能进行写入数据。 6 引脚:e 是使能端。如果它的电压发生变化(只能由高变低) ,则液晶

32、显示器就 可以进行执行命令。 714 引脚:d0d7 为液晶显示器的 i/o 口。 15 引脚:背光源正极。 16 引脚:背光源负极。 (2)lcd1602 的内部工作 lcd1602 的工作原理其实并不复杂,主要是靠点阵字符来实现显示功能,这些字符 都包含在发生储存器里,并且多达 160 个,进而可以表达很多不同的图形,如常用数 字,英文等。这些字符都有自己相对应的固定代码,通过代码就可以把相对应的地址 在液晶显示上点亮点阵字符,从而可以看到想要的显示效果。 点阵字符的输入控制是靠指令的编写,下面介绍指令作用。 指令 1:主要作用是清除显示,把液晶显示恢复到原来的样子,其指令码为 01h。

33、指令 2:起复位作用,针对对象是光标,主要是把光标位置移到地址 00h,这样就 可以进行复位 。 指令 3:对光标与显示移动控制。 i/d:控制光标移动,如果输入高电平,则光标右移,如果输入低电平,则光标左 移 。 s:检测屏幕显示文字控制。如果检测到的是高电平,则代表左移或右移,如果检 测到的是低电平,则代表没有动。 指令 4:显示开关模式设置。 d:整体显示开关设置,如果检测到的是高电平,则代表是开显示,如果检测到的 是低电平,则代表是关显示。 c:开关的检测设置,主要针对对象是光标,如果检测到的是高电平,则表明有光 标,如果检测到的是低电平,则表明没有光标。 b:检测光标闪烁,如果检测到

34、的是高电平,则表示闪烁,如果检测到的是低电平, 则表示没有闪烁。 指令 5:控制光标或显示的移位设置。 s/c:如果输入的是低电平的话,则就移动光标,如果输入的是高电平,则就移动 显示的文字。 指令 6:功能设置命令 dl:一般情况下,如果输入的是高电平,则表示为 4 位总线,如果输入的是低电 平,则表示为 8 位总线(本课题选的就是这种类型,而有些则相反) 。 n:如果输入的是低电平,则代表成单行显示,如果输入的是高电平,则代表成双 行显示。 f:如果输入的是低电平,则表示选择 5x7 的点阵字符,如果输入的是高电平,则 表示选择 5x10 的点阵字符(不同类型此功能不同) 。 指令 7:控

35、制 ram,并进行相应的地址设置 ,随意取出或存入。 指令 8:控制 ddram,并进行相应的地址设置 。 指令 9:检测是否忙信号。 bf:这是忙的标志位,如果输入的是高电平,则代表现在忙,就不可以接受输入 的命令或数据,而相反输入的是低电平,则代表现在不忙,就可以接收到输入的命令 或数据,这个过程是必要的。 指令 10:表示写数据 。 指令 11:表示读数据 。 要使液晶显示器正常工作,必需要检测忙标志位,是否忙,不然写入的指令或数 据不接受而失效。当然值得注意的是:要想显示正确的字符,而不会出现乱码,必需 也要先输入相对应的字符地址,液晶显示器显示我们想要的字符。 如图 3-14: 图图

36、 3-143-14 16021602 内部显示地址内部显示地址 由图可知,lcd 是 16 字 x2 行的,倘若想要读取字符地址 40h,是否只需要输入 40h 就可以了?答案肯定是行不通的,因为有个地址是一直输入高电压的,只要 lcd 液 晶工作,那个地址 d7 就持续输入高电平,所以输入的数据要对其进行相应的计算处理, 最后得出应该输入 c0h,才可以得到 40h 的地址。液晶初始化时,必需对显示模式进行 设置,而可以不用控制光标,系统默认其自动右移。需注意要写入指令钱,必需要检 测忙标志位,不然会导致写入的指令不接受而失效。lcd 液晶主要是靠点阵字符来实现 显示功能,这些字符都包含在发

37、生储存器里,并且多达 160 个,进而可以表达很多不 同的图形,如常用数字,英文等。这些字符都有自己相对应的固定代码,通过代码就 可以把相对应的地址在液晶显示上点亮点阵字符,从而可以看到想要的显示效果。 现在液晶显示器功能,结构都得到了很好的完善,应用广泛。从液晶显示电路分 析,当输入电压,其内部就会进行模式设置与控制,从而达到显示。 本课题液晶显示电路运用了灰度调节,在电压与接地处分别加上10k 电阻和 1k 电阻,分压保护电路,灰度适中。 如图 3-15: 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 1602 16pin +5 g nd rs g nd l

38、cden +5 g nd +5 r5 1k r6 10k g nd 图图 3-153-15 液晶显示电路液晶显示电路 3.53.5 键盘电路键盘电路 电路图的键盘一端连接的是地,另一端连接输出高电平的单片机,如果按下按键, 连接单片机的端口就接地,变为低电平,改变信号,从而达到按键的作用。 单片机键盘可以划分为两大类,一类是独立键盘(本课题选择) ,另一类是矩阵式 键盘。由于原理电路复杂,编程不易,所以没有选择矩阵键盘,即使只需要几个 i/o 口。独立键盘就要简单的多,易编程,容易理解,与单片机 i/o 端口连接呈一一对应 关系,条理清晰,系统也稳定,初学者最好的选择。 独立式键盘的工作原理也

39、不复杂,键盘一端连接的是地,另一端连接输出高电平 的单片机,如果按下按键,连接单片机的端口就接地,变为低电平,改变信号,简单 的说就是对 i/o 端高低电平的检测。开关又可以分为自锁开关和常开开关,键盘常用 常开。当单片机正常运行时 i/o 变为高电平,然后一直保持,如果按下键盘,i/o 端就 接地,从而转成低电平,随后,放开按键,i/o 端又会恢复高电平,这是由于单片机里 面含有上拉电阻。所以编写程序的时候,只需要检测 i/o 端电平的高低就能知道有没 有按下键盘。值得注意的是键盘有两个抖动过程,刚开始按下与刚放开的时候,放开 时的抖动可以不用管,因为要检测的是按下,所以主要是针对刚按下时的

40、抖动进行去 抖。抖动是由于刚按下时电压不稳定造成的,抖动间隙大约为 10ms(89c51) ,属于机 械抖动。虽然抖动间隙时间看起来很短,但是运算速度很快的单片机处理时就会等待 很长的时间。去抖操作又可以通过专用去抖电路和专用去抖芯片,最好的方式是通过 程序软件延时,程序简单,易于操作,不用再往单片机上加其他电路,使其复杂化。 当检测到 i/o 口出现低电平,立即调用延时函数,等待抖动消失,延时完成后会再次 检测 i/o 口是否还是低电平,如果是,则表示按下按键,接着执行编写好的程序。 其电路如图 3-16: s1 sw spst s2 sw spst s3 sw spst gnd k1 k2

41、 k3 图图 3-163-16 按键电路按键电路 3.63.6 报警电路报警电路 ledled 显示电路显示电路 如图 3-17: d1 ledr d3 ledg r2 220 r4 2.2k +5 图图 3-17led3-17led 显示电路显示电路 led 是发光二极管,生活中常见,且无处不在,它的全称是 light emitting diode,这个只是它的英文缩写。它是一种半导体材料组成,从正极输入电流时才正常 发光,把电能转换成可见光,若从负极输入电流,则 led 不导通,不会亮。它是主要 把电直接转换成光,其工作原理并不是像传统白炽灯和节能灯,没有利用钨丝和三基 色粉发光,却另外开

42、发出的是电场发光。众所周知,led 有使用持续时间长、光效好、 需要的电流低、而且辐射低等优点。各个国家都很重视其发展,因为它属于绿色光源, 拥有很广的发展前景。所以本课题选择绿色 led 来显示检测到酒精,红色显示超标, 并进行相应后续报警处理工作。 声音报警电路声音报警电路 报警装置主要是靠蜂鸣器发声来实现的。蜂鸣器在各种电子类产品中的应用有很 多,常常作为发声器件,如报警器、高压锅、电脑、汽车等。它属于电子讯响器,能 迅速对输入的电流进行工作发声,其供电方式也是常用的直流电压,常用符号 h 或 ha 来表示在原理图中。蜂鸣器有很多种类,应用最多的是压电式和电磁式,其它都可以 根据工作原理

43、来划分在里面。 压电式蜂鸣器:其内部结构有振荡器(输出信号) 、阻抗匹配器(推动作用) 、压 电蜂鸣片(主要发声)和共鸣箱(起共鸣作用)等重要部分。其工作原理:如果有合 适的电压供电时,刚开始由多谐振荡器起振,产生振荡,然后提供音频信号,再由阻 抗匹配器工作作用于压电蜂鸣片,使其发声。 电磁式蜂鸣器:与上述结构不同,主要是由振荡器、电磁线圈(最重要的部分) 、 磁铁、振动膜片等构成。其工作原理:如果有适当的电压供电时,起振部分和压电式 相同,不同的是音频信号电流处理部分,当其流入电磁线圈时,由于电磁感应而要产 生磁场,从而其磁场力作用于振动膜片。 原理如图 3-18: a 1 b 2 f bu

44、zzer +5 g nd fr1 2.2k q 1 9012 图图 3-183-18 声音报警电路声音报警电路 由上图可知,其主要元器件有蜂鸣器、电阻、三极管组成。 蜂鸣器根据输入的不同可以分为两种:有源与无源。主要区分在于前者要输入直 流电压,后者输入方波,本课题选用的是前者,因其作为发声元件,各部分参数都适 合选用要求。 电阻阻值为 2.2k,主要是起限流作用,保护电路,一般与单片机的连接都要注意 加电阻。 三极管的发射集电流流向表示类型为 pnp,如果基极接收到的是低电平,则三极管 呈关闭状态,电流不流通,不发声,如果基极接收到的是高电平,则三极管呈饱和状 态,电流通过发声。 第四章第四

45、章 软件设计软件设计 4.14.1 keilkeil 与与 protel99seprotel99se 介绍介绍 首先,在要安装 keil 软件之前,一定要在计算机里安装一套稳定可靠的软件,才 可以正常使用该软件。keil 是单片机常用程序编写软件,应用的是 c 语言来编写程序, 而非汇编,所以其优点显而易见,灵活性强、使用方便、易于理解、可读性强等,适 合初学者使用。 keil 是一种常用的开发调试软件,值得注意编程时,一定要先建工程再建文件, 且文件一定要放在工程里。其包含有很多常用库函数,易于理解使用的功能,而且是 windows 界面,方便查找。其运算速度很快,效率高,当编写好的程序经编

46、译后能迅速 转换成相应汇编代码,可以看得出高级语言的特点。 keil 软件界面如图 4-1: 图图 4-14-1 keilkeil 软件界面软件界面 protel99se 是 1999 年的软件,至今快 15 年了,应用很广泛也很成熟,今一直还 在用,而未被淘汰是有其优势的。现在很多高校都是用的 protel99se,相关电气专业 还把它作为一门课来讲,能够完成 32 个信号层,是绘制电路板中最常见的 32 位软件, 具备描绘原理图和 pcb 板,16 个机加工层,而其它相关软件是它的升级版,再此功能 的基础上拓展,对于初学者最好先学会 protel99se,学好基础。 protel99se

47、软件的特点: (1)原理图界面能用的 电气连接网络表 格式有很多,高达 30 种; (2)拥有很好全局编辑功能; (3)原理图调用好的封装模型,可以直接生成对应pcb; (4)在生成相对应的 pcb 后,可以和原理图之中双向交叉查找,能简单轻易 的看到元器件和引脚; (5)具有一致性,也就是说转换可以相互的,即把原理图生成pcb,又可 以把 pcb 转换成原理图。 (6)具有国际化,很多国家都在使用,能满足基本设计需要。 (7)可以标准 jed 文件,方便仿真。 (8)拥有很好的设计规程检查 ; (9)有很多设计模板可以使用,主要针对工业电路板; 运用 protel99se 绘制原理图如下 4

48、-2: 图图 4-24-2 prtel99seprtel99se 界面界面 4.24.2 主程序框图主程序框图 主程序框图如图 4-3 所示: 图图 4-34-3 主程序框图主程序框图 4.34.3 数据采集子程序程序框图数据采集子程序程序框图 当赋予转换器初始值,传入模拟信号,启动 adc0809 通道,并延时一会儿, adc0809 就开始正常运行,变成单片机需要的数据,并且存入内存单元,如图 4-4: 开始 初始化 读取 ad 转换酒精值 判断当前 酒精范围 判断按键 是否按下 执行相应 的控制 n 设置相应参数 显示设置数值 结束 y 图图 4-44-4 数据采集子程序框图数据采集子程

49、序框图 第五章第五章 测试结果及结论测试结果及结论 5.15.1 调试调试 这是一个很简单又很复杂的过程,最开始要检测硬件设计能不能行,再仿真看可 不可以达到预期效果。焊接时注意各端口之间连接是否正确,焊接好后用万用表检测 是否出现虚焊。调试过程是模块化进行,先对各模块一一进行检测,从局部到整体, 更容易检测到问题所在并调试,有针对性,使调试更加简单化 调试中的困难: (1) 焊接时没注意仔细看单片机管脚,把一边的管脚全错位一个给焊接上了,只能 再次买些弄不下来的器件; (2) 液晶显示器上检测到的酒精浓度很大,高达 90 左右,后来查看了相关资料才 得知新的酒精传感器刚开始要通电几小时以上才

50、可以正常使用,要做老化试验。 (3) 各模块化的程序编写,通过老师的帮助,查资料学习最后进行相应的修改。 仿真如图 5-1 所示: 开始 启动 adc0809 通道,并延时 100s 转换完? 读出 a/d 转换结果 结果存入内存单元 返回 y n 图图 5-15-1 仿真图仿真图 成品展示如图 5-2 所示: 图图 5-25-2 成品图成品图 5.25.2 结论结论 通过近 20 天的学习与努力,测试仪设计基本成功。即使这不是首次接项目完成设 计,但认真独立的动手去做还是有些难度的。 由于学习过单片机,以为单片机相关知识还是掌握的可以,但真正实践还是遇到 很多麻烦,尤其是编程。硬件电路设计比

51、较好理解,一般网上都有相关资料,原理图 看懂基本就可以用。从编程过程中,学会了很多,如软件算法设计,有些程序看起来 简单,但自己动手写时才发现困难,只有自己动手写,才会理解的更深,以便以后灵 活应用。 然后是对元器件认识不足。元器件的选取都是常见常用的,可使用时才知道有很 多知识需要再学习。在图书馆查阅相关资料及厂家产品介绍,认认真真的对器件知识 进行梳理、理解,最终才学会使用。 对于这次设计,再一次让自己知道还有很多不足的地方,即使是学过的单片机, 知道的相关知识还是不能灵活运用,不能完全为己所用,所以可见实践是多么重要。 以后的学习一定会注意理论与实践有机结合,边学边用,这样才能算真正的掌

52、握,理 解的更深,为以后的学习埋下伏笔。总之,这次设计让我学会了很多东西,在大学生 活中划上了闪亮的一笔。 致谢致谢 首先,非常感谢刘淑聪老师。如果没有老师的帮助,开题都是个问题,不知道从 哪里下手,经过老师指导,慢慢的思路越来越清晰,设计业越来越得心应手。此为, 老师经常关心课题进度,遇到困难都会积极找老师,让人觉得不是独自在“战斗” 。 其次,非常感谢学校。这次课题对于我来说是一次非常难得的机会,可以检验自 己对相关知识的掌握,也提高动手能力。并且图书馆内丰富资源为让自己过的更加充 实,徜徉在知识的海洋里。 最后,还要感谢帮过我的同学。如果没有他们,课题不会这么快成功的完成,自 己也不会又

53、学习到新的知识。而且让我再一次深刻的了解到团队合作的重要性。 参考文献参考文献 1兰羽,白洁.基于 at89c51 的酒精浓度测试仪设计j.信息技术,2013(10):23-24. 2朱海华.基于电化学酒精传感器的高准确度酒精浓度测试仪设计j.电子器件,2013(4): 564-567. 3王谦,张涛.基于 stc89c52 单片机的酒精检测系统设计j.科技信息, 2012(22):32-35. 4黄敏,于文弢,徐张唯,董轶,翁泽斌,卓郑安.创新项目中对智能呼气酒精浓度检测仪 的探究j.上海工程技术大学教育研究,2012(4):17-19. 5秦岭.stm32 单片机的酒精浓度探测仪设计j.单

54、片机与嵌入式系统应用, 2013(1):52-55. 6陆德红.酒精传感器 tgs822 温度曲线快速校准j.轻工科技, 2012(2):67-69. 7薛琴波,郎明华,梁景雨.基于单片机的酒精检测防酒驾系统的开发研究 j.科技信息, 2013(8):176. 8马众,洪惠塘.基于单片机酒精浓度检测仪设计与应用j.无线互联科技, 2013(1):34-38. 9袁捷.基于 51 单片机的酒精浓度检测仪的设计j.电子设计工程,2013(18):52-54. 10赵书红,张健健.基于单片机的酒精气体浓度测试仪的设计与制作j.电子世界,2013(20): 23-25. 附录附录 /程序头函数 #include /显示函数 #include /宏定义 #define uint unsigned int #define uchar unsigned char #define data_adc0809 p1 /管脚声明 sbit led_r= p22; sbit led_g= p21; sbit feng = p25; sbit san=p34; /adc0809 sbit st=p33; sbit eoc=p36; sbit oe=p32; /按键 sbit key1=p26; sbit key2=p27; sbit key3=p37; bit bdata flag;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论