单片机报告Word下载.docx
《单片机报告Word下载.docx》由会员分享,可在线阅读,更多相关《单片机报告Word下载.docx(17页珍藏版)》请在冰豆网上搜索。
4.6供电及程序下载电路…………………………………………
4.7稳压电源模块………………………………………………
5软件设计………………………………………………………
5.1软件流程图…………………………………………………
5.2主程序………………………………………………………
6总结…………………………………………………………
7参考文献……………………………………………………
8附件…………………………………………………………
8.1附件一电路原理图…………………………………………
8.3附件二PCB图……………………………………………………
8.4附件三实物图……………………………………………………
酒精浓度测试仪的设计
1、绪论
1.1酒精浓度检测仪开发背景
酒精的重要作用,是逐渐使得脑部及神经系统反应迟钝——这也是许多人喜欢适量饮酒的主要原因。
喝一、两杯酒对人有镇定或松弛的作用。
即使是少量的酒精,也没有刺激振奋的作用,这跟许多人的想法正好相反。
然而,酒精有时会造成抑制力明显减弱,这会导致创造力的出现,或者是有时候会导致实际的侵略攻击性行为。
根据WHO数据,全球2003年的人均纯酒精消费量为6.2L,其中欧洲地区人均达11.9L,美洲地区人均为8.7L。
俄罗斯及其周边的东欧国家酒精消费量最高,其次为欧洲其他国家。
在人均国民生产总值(GDP)低于7000美元的低收入国家,酒精消费量与人均GDP相关,GDP越高酒精消费量越高。
受到酒精影响的司机通常会有如下特征:
对信号灯反应慢;
逆向行驶;
摇摆不定、突然转向、飘忽不定或在道路中线驾驶;
乱踩刹车;
转弯幅度大;
蛇形;
没有原因就停车;
开车速度极慢;
突然转弯或违法转弯;
天黑时不开前灯。
据统计,驾驶员酒后开车,其发生交通事故的比率为没有饮酒情况下的16倍。
由日常道路交通安全违法行为和交通肇事案例来看,机动车驾驶员酒后驾车约占38.6%;
而摩托车交通肇事中,酒后驾驶的比例则高达72.3%。
酒后驾驶让人付出了惨痛的代价,为了避免类似事故的发生,酒精浓度检测仪随之产生。
1.2酒精浓度检测仪的发展
以对气体中酒精含量进行检测的设备有五种基本类型,即:
燃料电池型(电化学)、半导体型、红外线型、气体色谱分析型、比色型。
但由于价格和使用方便的原因,目前(截止2009年8月)常用的只有燃料电池型(电化学型)和半导体型两种。
燃料电池是当前全世界都在广泛研究的环保型能源,它可以直接把可燃气体转变成电能,而不产生污染,酒精传感器只是燃料电池的一个分支。
燃料电池酒精传感器采用贵金属白金作为电极,在燃烧室内充满特种催化剂,使进入燃烧室内的酒精充分燃烧转变为电能,也就是在两个电极上产生电压,电能消耗在外接负载上,此电压与进入燃烧室内气体的酒精浓度成正比。
与半导体型相比,燃料电池型呼气酒精测试仪具有稳定性好,精度高,抗干扰性好的优点。
但是由于燃料电池酒精传感器的结构要求非常精密,制造难度相当大,目前(2009年)只有美国、英国、德国等少数几个国家能够生产,加上材料成本高,因此价格相当昂贵,是半导体酒精传感器的几十倍。
2、设计任务
设计前的准备工作
本次设计中主要测试的对象就是几种不同浓度的酒精溶液,主要的控制对象就是基于STC12C5A16AD单片机控制处理部分,那么在设计首先需要研究的就是该系统的硬件结构,通过几天的资料查询,确定下来以MQ-3为测试的传感器,有了传感器之后就利用了Proteus数字电路仿真软件进行了硬件的电路的设计,有了硬件电路之后就需要设计软件了,那么也是通过各种渠道进行资料的收集,大概出来一个初步的设计构思,最后一个就是要对MQ-3的酒精传感器进行一个特性的研究分析,在查询各种资料后得出了,为了尽量减少设计的气体传感器的测量误差,在测量酒精溶液样品时要考虑并解决3个主要问题。
一是外界环境流动空气对传感器的影响和对气体样品的稀释,二是样品的稳定性对测量带来的误差,三是水蒸气对测量的影响。
知道了这三点信息之后就进行前期的测试和验证,通过98%的工业乙醇和水混合得到几种浓度的酒精溶液进行测试,根据自己的测试和各种查询的资料得出了一点酒精传感器相关特性的资料。
设计的要求
在这次设计当中,设计的要求有通过酒精传感器要对几种不同浓度的酒精溶液进行浓度测试,通过前期的资料查询和各种分析最终确定下来测试浓度范围在0~30度,误差率在5%~15%之间,由于酒精传感器的特性关系测量的浓度越高误差率就越大了,在模拟量转换过程中使用到单片机自带的A/D功能,需要在液晶屏上对酒精浓度的显示并且超过预设值后进行蜂鸣器报警,除此之外还需要通过串口与上位机进行通讯并且能够简单的传送一些数据等。
3、设计方案与论证
4、硬件设计
4.1设计框图
本研究设计的酒精浓度测试仪框图如图1所示。
MQ-3乙醇气体传感器输出信号经信号调理电路处理,输出随乙醇浓度变化的电压信号,该电压信号送入单片机系统,经AD转换,与设定的醉酒阈值进行比较,并显示或报警。
图1酒精浓度测试仪方框图
4.2乙醇信号检测及调理电路
MQ-3乙醇气体传感器可以应用用于机动车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测。
其技术特点为:
●对乙醇蒸汽有很高的灵敏度和良好的选择性
●快速的响应恢复特性
●长期的寿命和可靠的稳定性
●简单的驱动回路
MQ-3乙醇气体传感器灵敏度曲线如图2所示,其传感原理为气敏电阻的输出阻值随乙醇气体等浓度变化而变化。
图2MQ-3乙醇气体传感器灵敏度曲线
MQ-3乙醇气体传感器及其调理电路原理如图3所示。
其外形如图4所示。
经过调理,检测信号由电阻值转变成电压值,便于后续电路进行A/D转换和处理。
图3传感器及调理模块原理图
图4MQ-3传感器模块外形图
该传感器模块具有如下特点,方便与单片机系统接口组成检测仪器。
●具有信号输出指示。
●双路信号输出(模拟量输出及TTL电平输出)
●TTL输出有效信号为低电平。
(当输出低电平时信号灯亮,可直接接单片机)
●模拟量输出0~5V电压,浓度越高电压越高。
4.3单片机电路
本设计选用宏晶公司高性能单片机STC12C5A16AD,其管脚如图5所示。
图5STC12C2052AD单片机管脚图
该芯片为52内核8位单片机,内部集成了10位多路A/D转换模块,适用于常用检测电路。
由STC12C5A16AD组成的单片机系统原理图如图7所示。
图中AOUT为MQ-3传感器模块输出的检测电压信号,送入ADC7端口进行处理,DOUT为传感器模块输出的数字电平信号,该信号可以根据乙醇气体浓度直接输出报警信号,报警阈值通过模块上的电位器进行调节。
图6单片机系统原理图
图6中,按键K2和K3为醉酒阈值调整键,其中K2为“增加”,K3为“减小”按键。
L2和L3为报警指示灯,分别可以进行酒后和醉酒两级报警。
4.4显示电路
显示部分采用SMC1602液晶屏进行数据显示,其主要技术参数为:
表1液晶屏技术指标
接口信号说明如表2所示。
表2液晶屏接口信号说明
与单片机接口电路如图7所示。
其中J2的3脚为背光引脚,R9和R10电阻用于调节背光亮度。
J2的4、5、6引脚分别接液晶的RS、E/W和E控制引脚,J2的7—14引脚为数据引脚。
图7LCD与单片机接口电路
4.5阈值存储
醉酒阈值存储在EEPROM芯片AT24C04中,并可以通过“增加”、“减少”按键调节并保存。
AT24C04是IIC接口的EEPROM芯片,可以用于掉电不易失数据的存储。
其电路如图8所示。
图中A0、A1和A2为芯片的地址引脚,一般接地即可。
SCL和SDA为AT24C04和单片机IIC通信的时钟线和数据线。
图8EEPROM存储电路
4.6供电及程序下载电路
当程序在uVision环境下编写完成,并编译生成.hex文件后,就可以下载并进行调试了。
1、USB转串口驱动安装
打开USB驱动文件夹下的PL2303_Prolific_DriverInstaller_v130.exe安装文件,按提示安装USB转串口驱动程序。
安装完成后,插入USB下载线后,在[开始]-[控制面板]-[打印机和其他硬件]-[设备管理器],在“端口”分支下有(ProlificUSB-to-SerialCommPort(COMX)。
X表示串口号,如果没有说明USB转串口驱动没有安装,须重新安装。
记住括号里的COM口号。
2、下载程序
打开STC单片机下载软件文件夹,点击运行STC_ISP_V481.exe程序
本设计采用USB接口供电,电源电压5V。
同时,USB接口通过内含PL2303芯片的转换电路对单片机进行程序编写。
其电路原理如图9所示。
图9供电及程序下载电路
5、软件设计
5.1软件流程图
本设计软件主程序流程图如图10所示。
图10主程序流程图
5.2主程序
#include<
reg52.h>
#include<
new8051.h>
#defineALCH80
#defineK_MG_MV160/60
#defineK_ZERO0
sbitKey_Up=P3^6;
sbitKey_Down=P3^7;
sbitLed_Warn1=P3^4;
sbitLed_Warn2=P3^5;
sbitDOUT=P1^4;
volatilebitFlagStartAL=0;
volatilebitFlagKeyPress=0;
uchareThreshold;
UintALCounter;
IntALValue;
FloatALtemp;
Uintkeyvalue,keyUp,keyDown;
Char*pSave;
VoidData_Init();
VoidTimer0_Init();
VoidPort_Init();
VoidADC_Init();
UcharGetADVal();
VoidKeyProcess(uint);
VoidData_Init()
{
ALCounter=0;
ALValue=0;
Led_Warn1=1;
Led_Warn2=2;
keyvalue=0;
keyUp=1;
keyDown=1;
}
VoidTimer0_Init()
ET0=1;
TMOD=1;
TL0=0xcc;
TH0=0xf8;
TR0=1;
VoidTimer0_ISR(void)interrupt1using0
ALCounter++;
If(ALCounter>
=500)
FlagStartAL=1;
VoidPort_Init()
P1M0=0x80;
P1M1=0x80;
VoidADC_Init()
Uinti;
P1ASF=0x80;
ADC_RES=0;
ADC_CONTR|=0x80;
for(i=5000;
i>
0;
i--);
ADC_CONTR=ADC_CONTR&
0xE0;
0xf8|0x07;
for(i=2500:
UcharGetADVal()
ADC_CONTR&
=0xf7;
for(i=250;
ADC_CONTR|=0x08;
While((ADC_CONTR&
0x10)==0);
=0xe7;
ReturnADC_RES;
VoidSave_Setting()
pSave=(chare*)&
THreshold;
wrteeprom(1,*pSave);
DELAY(300);
VoidLoad_Setting()
pSave=(char*)&
*pSave++=rdeeprom(0);
*pSave=rdeeprom
(1);
If((THreshold>
=255)||(THreshold<
0))THreshold=80;
VoidKeyProcess(uintnum)
Switch(num)
Case1;
If(THreshold<
255)THreshold++;
Break;
Case2;
If(THreshold>
1)THreshold--;
Default;
L1602_int(2,9,THreshold);
Save_Setting();
Voidmain()
Uinti,j;
EA=0;
Data_Init();
Timer0_Init;
Port_Init();
ADC_Init();
EA=1;
L1602_init();
L1602_string(1,1,”WelcometoALCT!
”);
L1602_string(1,2,”DesignedbyAAA!
For(i=0;
i<
1000;
i++)
For(j=0;
j<
j++)
{;
L1602_string(1,1,””);
L1602_string(1,2,””);
L1602_string(1,1,”Alcohol:
mg/L”);
L1602_string(1,1,”Thresho:
Load_Setting();
L1602_int(2,9Threshold);
While
(1)
If(FlagStartAL==1)
ALValue=500*GetADal()/256;
ALValue=ALValue-K_ZERO;
If(ALValue<
0)ALValue=0;
ALValue=ALValue*K_MG_MV;
L1602_int(1,9,ALValue);
If(ALValue>
Thershold)Led_Warn1=0;
ElseLed_Warn1=1
FlagStartAL=0;
If(DOUT==0)Led_Warn2=0;
ElseLed_Warn2=1;
If((Key_Up)&
&
(keyUp==0)){FlagKeyPress=1;
keyvalue=1;
Elseif((Key_Down)&
(keyDown==0)){FlagKeyPress=1;
keyvalue=2;
If(FlagKeyPress==1)
KeyProcess(keyvalue);
FlagKeyPress=0;
If(!
key_Up)keyUp=0;
ElsekeyUp=1;
Key_Down)keyDown=0;
ElsekeyDown=1;
6、总结
本作品针对生活中因醉酒驾驶引发交通事故日益严重,明确研究方向,制定计划方案。
深入研究酒精传感器、模数转换器等器件原理,查阅相关酒驾标准。
为制作出满足实际要求的作品,做好充分的准备。
在此期间所遇到的问题,通过最有效、最准确的渠道进行解决,为成功扫清障碍。
完成本作品的主要困难有:
(1)在课程中虽然我们学过C语言程序设计,但是始终处于理论阶段,对于程序控制运行方面无任何实战经验;
(2)开始对单片机、ADC0809、LCD显示器一无所知,必需从头学习,而且在时间的分配上也要把握好;
(3)对于遇到非人为因素所带来的问题,导致的解决问题效率低下,使我们的时间更感急迫。
随着对单片机、ADC0809、LCD显示器的加深了解,对信号采集和数据算法处理的进一步学习;
加入温度、湿度和气压的影响,在现有基础上进行改进,一定会使测得的数据更加准确,使作品与预期目标更接近。
使其能成为商品,进入家庭,实现我们以此为课题的最终目的。
7、参考文献
[1]
张立红
单片微型计算机原理与应用[M]
中国劳动和社会保障出版社
[2]
周坚
单片机C语言轻松入门[M]
北京航空航天大学出版社
[3]
赵建领
零基础单片机C语言程序设计[M]
机械工业出版社
8、附件
附件一电路原理图
附件二元件清单
MQ-3乙醇气体传感器,AD转换,高性能单片机STC12C5A16AD,SMC1602液晶屏,EEPROM芯片
附件三实物图