重庆理工大学毕业论文 基于单片机的酒精浓度测试系统设计
1 绪论
1.1 酒精浓度测试的背景
1.1.1什么叫做酒后驾驶
作为交通事故中最为常见的酒后驾驶指的是在喝酒后驾驶车辆。根据在驾驶员喝酒的量可以分为饮酒后驾驶和醉酒后驾驶,血液中酒精含量大于等于20毫克/100毫升但是并没有超出80毫克/100毫升为饮酒驾驶,而醉酒驾驶的标准则是大于或者等于80毫克/100毫升即为醉酒驾驶。现在由于酒后驾驶的危害性,现在交通法的规定只要是酒后驾驶就吊销驾驶执照。
1.1.2酒后驾驶会产生的危害
(1) 由于酒精的作用会使触觉能力降低,而且容易让精神处于亢奋状态。酒后人的会因为酒精作用无法像正常状态一样轻松的控制油门、刹车及转向系统。
(2)人在饮酒后会因为酒精作用受到麻痹,判断力会比正常情况弱很多,对灯光和声音的刺激会延长,不能很好的协调身体的动作,无法正常判断车距和速度。 (3)饮酒后的视觉会受到一定的影响,饮酒越多,视线越模糊,看到交通指示牌和标志也不能准确判断,对于附近车辆也难以发现,容易发生交通事故。
(4)当人饮酒后会因为酒精产生麻痹作用,往往容易过高估计自己的能力,对于本来自身不能做到的事情产生盲目自。
(5)饮酒后最主要的还是产生疲劳和困倦,许多可以避免的交通事故都是由于疲劳驾驶引起的,当人十分疲劳时,他的判断力和执行力将受到大幅下降,驾驶车辆将变得十分危险,甚至在驾驶时睡着,这不但会对自己产生严重的危害,也会对道路上其他车辆产生严重的危害。
1.2酒精浓度检测仪的设计内容
酒精的测试设计主要包括以下几个方面:基于89c51单片机的控制,基于ADC0832数模转换,LCD1602的液晶显示。本文围绕这个几个主要点来构建一个完整的酒精浓度测试模块,通过设计完成以下内容:超标报警,浓度检测,浓度设置,数据显示。
1
重庆理工大学毕业论文 基于单片机的酒精浓度测试系统设计
2 总体方案设计
2.1总体设计基本结构
本次设计主要通过使用MQ-3酒精传感器来测试酒精浓度,它将测试得到的电子信号传送给数模转换器ADc0832,由此将电子信号换为数字信号传回单片机89c51。89c51作为微处理器MCU处理接收的信号并将结果送到液晶显示器LCD1602上。按键和时钟作为人为控制单片机操作的模块,改变报警的上限和时间显示[1]。总体设计如图2.1
图2.1 总体设计结构图
2
重庆理工大学毕业论文 基于单片机的酒精浓度测试系统设计
2.2主要模块
2.2.1 STC89C51单片机
STC系列单片机是美国STC公司推出的一种51内核的单片机。这种单片机有两种机器周期:一种是6时钟型的,一种是12时钟型的。STC89C51一般工作在0-40MHZ。它不但有一个异步通信口还有3个16位的定时器[2]。该单片机可以存储,通过内部的RAM,不过这个RAM不大只有512B。片内含有Flash程序存储器、SRAM、UART、SPI、A\\D、PWM等模块。通用的I/O口一共有32或者36个。这个单片机的工作要求电压是3.8-5.5V。并且一般的外部封装有两种,一种是40个引脚的PDIP,还有一种是44脚PLCC和PQFP等。封装如图2.2
图2.2 PLCC和PDIP封装图
89C51单片机的引脚有很多功能,需要了解其基本使用方法: (1)VCC:表示的是该芯片的电源接入,没有电源就无法启动 (2)GND:这是整个芯片的接地端
(3)P0口:是地址/数据总线复用口,它的每一个端口都是漏极开路型双向I/O口,共有8个端口。P0口可以作为输出口使用,如果需要高阻抗输入端用则需要对端口写入高电平。在作为输入端口使用时这8个口则通过时间不同分为地址总线和数据总线,当被激活需要使用时,内部会拉上上拉电阻。
3
重庆理工大学毕业论文 基于单片机的酒精浓度测试系统设计
(4) P1口:P1口同样也是8位双向I/O口,和P0一样同样的可以作为输出口使用。也同样的可以作为输入口使用,对输入口使用时需要对端口写高电平,内部就会自动的高。
(5)P2口:和P1相同,P2是8位双向I/O口,在内部同样有上拉电阻。有上拉电阻即还在端口给高电平,内部上拉电阻便会激活,这样就可以作为输入端使用。在作为输出端使用时,P2会送出在地址端处于高8位的数据。
(6)P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。除了与P1和P2的功能一样外, P3口除了作为一般的I/O口线外,它还有一些其他的特别功能,比如串行口的输入输出,定时和中断等等。 (7)RST:复位输入。 (8)EA/VPP:外部访问允许。
(9)XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。 (10)XTAL2:振荡器反相放大器的输出端。
(11)数据存储器:89C51是由一个内部RAM的,作为数据处理和存储的地方。RAM对于现在来说并不大只有256个字节。
(12)中断:89C51共有6个中断向量:分为INT0和INT1的是外部中断,主要是处理外部引起的中断;还有3个定时器中断0,1,2,在编程内部设置的中断由定时中断处理;最后还有一个串行口中断,如果需要外部信息中断时,它就发挥作用了。 (13)时钟振荡器:单片机作为一个微处理器,它必须要有精准的时间计数,不然所有的信号和指令都混在一起根本无法进行有序的处理和执行。89C51的最小系统中就要有晶振构成,晶振连接在引脚XTAL1和XTAL2上,共同构成内部振荡器的高增益反相放大器。有了这个放大器加上晶振一起构成自激振荡器,使得89C51能够有序的执行指令和数据的传送。
2.2.2 LCD1602液晶显示
LCD1602的中文名字是工业字符型液晶,作为广泛应用的显示器,它的后缀1602表示的是16x02,非常简单的解释了它的功能是显示16列的2行字符。
LCD1602主要是用来显示字母、数字、符号的,它的每一个字符都是由固定的点阵构成的,所以根据点阵的数量可以形成数字,字符和一些常用的符号[3]。这是它的优点,但它的缺点就是由点阵形成的字符位的点阵并不多,无法很好的表现图形。
4
重庆理工大学毕业论文 基于单片机的酒精浓度测试系统设计
LCD1602由16个管脚构成,其中P7到P14是用来接收数据显示的。管脚如下图2.3
图2.3 LCD1602管脚图
1602采用标准的16脚接口,其中: 第1脚:GND为电源地 第2脚:VCC接5V电源正极
第3脚:V0为液晶显示器对比度调整端
第4脚:RS为寄存器选择,当RS不同时选择的寄存器也不一样,数据寄存器的选择指令是使RS得到高电平;要选择指令寄存器时则相反,使它为低电平。
第5脚:RW为读写信号线,如果要进行写操作时处于高电平则不能进行,只能进行读的操作;而只有低电平时才能进行写的操作,否则是无效的。
第6脚:E为使能端,想要读取数据时需要令它为高电平,这个时候使能激活;在跳变到低电平是,则开始执行数据。 第7~14脚:D0~D7为8位双向数据端。 15:脚背光正极 16:脚背光负极。 特性
一般在3.3V或者5V的稳压电源下即可工作,对比度可以又第3脚调整。 内含复位电路
有80字节显示数据存储器DDRAM
内建有192个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器CGRAM 特征应用
5