基于51单片机的酒精浓度测试系统 下载本文

void delay(intms) { inti;

while(ms--) {

for(i = 0; i< 250; i++) {

_nop_(); _nop_(); _nop_(); _nop_(); } } }

/*遇忙等待函数*/

void WaitForEnable(void) {

_nop_(); _nop_();

while(a8255_PA&0x40); //1忙 a8255_PA=0xbf; //10111111 }

/*写命令*/

void write_com(uchar com) { a8255_CON=0x80; WaitForEnable( );

a8255_PA=0x8f; //10001111 a8255_PB=com; delay(2);

a8255_PA=0xcf; //11001111 delay(2);

a8255_PA=0x8f; //10001111 }

/***********写数据函数*************/ void write_data(uchardat) {

a8255_CON=0x80; WaitForEnable();

a8255_PA=0x9f; //10011111 a8255_PB=dat; delay(2);

a8255_PA=0xdf; //11011111 delay(2);

a8255_PA=0x9f;

}

/***************LCD1602初始化*****************/ void lcdinit (void) {

a8255_PA=0xff; a8255_CON=0x80; a8255_PA=0x9f; write_com(0x38);

write_com(0x0f); //00001111 开显示,开光标,不闪烁 write_com(0x06); //00000111 指针加1 write_com(0x01); //清屏 write_com(0x80); //write_com(0x80); }

void main( ) { intnum; lcdinit();

for(num=0;num<10;num++) {

write_data(table[num]); delay(20); }

while(1); }

6.4 声光报警测试

为了达到设定的要求,酒精浓度超过阀值时,由单片机控制实现声光报警功能,给单片机的P3.3口一个低电平,蜂鸣器就会响,灯会亮。以下是相应的模块程序。 程序6-4:

Sbit Beep=P3^3; if(j>=set_Value) {

Beep=0;

delay_ms(200); Beep=1;

delay_ms(20); }

6.5 整体功能调试程序

本设计采用模块化程序设计结构,方便调试,易于查错,可移植性强。详细的模块程序请查看相应的附录,该检测仪的整体功能实现即由每个模块的分工协作来实现。将程序在Keil编译器中编译成功后,生成HEX文件,然后将程序烧录到单片机中,上电即可进行工作了。上电后该酒精检测仪将按照初始化的程序进行工作,酒精浓度阈值为当初设定的,超过阈值则会产生报警。一旦有设定酒精浓度阈值的按键按下,并且检测按键按下的次数,则酒精浓度的阈值即被重新设定,在没被下一次设定前,实时检测的酒精浓度将与它进行比较,超过该界限值即报警,同时酒精浓度值一直将会显示出来。

第7章结论

经过近半年时间的不断查找资料、设计原理图、布板、焊接以及软、硬件调试,该检测仪基本实现了既定的功能。可以进行酒精浓度阈值设定、声光报警、以及酒精浓度的显示,不过整个检测仪的反应速率相对较慢,经分析可能与单片机的处理的位数、环境的温度有关,因为环境的温度会对酒精传感器的灵敏度造成很大的影响,但酒精传感器良好的稳定性和选择性使得检测仪抗干扰性很强。结构简单、体积小、携带方便等优点相信会使它具有很好的市场前景。总之,虽然在这过程当中遇到过很多阻碍,比如原理图中有些元件设置不对导致没有导入PCB工程中,还有部分因为封装问题导致生成的PCB出现错误,不过有了这些错误同时让自己对知识有了更深一层的了解,培养了自己独立思考问题、解决问题的能力。

摘要

这个时代路上的车辆越来越多,交通问题日渐严重,其中酒驾屡见不鲜,这是对自己的不负责也是对家人的不负责更是对社会的不负责。所以我此次设计为酒精浓度测试系统,该设计稳定性高,便于携带,精确度高。酒精浓度测试仪是在单片机AT89C51作为核心的基础上,再用气敏传感器,使用气敏电阻来测试酒精浓度数值。可以设置阈值,一旦酒精浓度超过此阈值,便会发出声光告警,最后在LCD上面显示出酒精浓度数值。系统完成了对于酒精浓度的及时检测与显示功能,还有按时测量和报警提示等一系列功能。实验结果表明,系统功能正常,测试时间短,灵敏度高,便于携带测试结果准确,实现了此设计的功能。

关键词:酒精浓度;单片机AT89C52;气敏传感器