MQ3酒精传感器设计原理图与其程序.docx

上传人:b****5 文档编号:29839746 上传时间:2023-07-27 格式:DOCX 页数:25 大小:259.35KB
下载 相关 举报
MQ3酒精传感器设计原理图与其程序.docx_第1页
第1页 / 共25页
MQ3酒精传感器设计原理图与其程序.docx_第2页
第2页 / 共25页
MQ3酒精传感器设计原理图与其程序.docx_第3页
第3页 / 共25页
MQ3酒精传感器设计原理图与其程序.docx_第4页
第4页 / 共25页
MQ3酒精传感器设计原理图与其程序.docx_第5页
第5页 / 共25页
点击查看更多>>
下载资源
资源描述

MQ3酒精传感器设计原理图与其程序.docx

《MQ3酒精传感器设计原理图与其程序.docx》由会员分享,可在线阅读,更多相关《MQ3酒精传感器设计原理图与其程序.docx(25页珍藏版)》请在冰豆网上搜索。

MQ3酒精传感器设计原理图与其程序.docx

MQ3酒精传感器设计原理图与其程序

 

MQ-3酒精传感器模块使用说明书

 

简要说明:

一、尺寸:

32mmX22mmX27mm长X宽X高

二、主要芯片:

LM393、ZYMQ-3气体传感器

三、工作电压:

直流5伏

四、特点:

1、拥有信号输出指示。

2、双路信号输出〔模拟量输出及TTL电平输出〕

3、TTL输出有效信号为低电平。

〔当输出低电平时信号灯亮,可直接接单片机〕

4、模拟量输出0~5V电压,浓度越高电压越高。

5、对乙醇蒸汽拥有很高的矫捷度和优异的选择性。

6、拥有长远的使用寿命和可靠的牢固性

7、快速的响应恢复特点

五、应用:

用于灵巧车驾驶人员及其他严禁酒后作业人员的现场检测,也用于其他场所乙醇蒸汽的检测

【注明说明】

 

【原理图】

 

【测试方式】

 

1、传感器先预热20秒左右。

2、将传感器放在无被测气体的地方,顺时针调治电位器,调治到指示灯亮,尔后逆时针转

 

半圈,调到指示灯不亮,尔后凑近被测气体,指示灯亮,走开被测气体,指示灯熄灭,就证明传感器是好的!

【测试程序】

 

实现功能:

1、当测量浓度大于设定浓度时,单片机IO口输出低电平

/********************************************************************

汇诚科技

实现功能:

此版配套测试程序

使用芯片:

AT89S52

晶振:

波特率:

9600

编译环境:

Keil

zhangxinchunleo

【声明】此程序仅用于学习与参照,引用请注明版权和作者信息!

*********************************************************************/

/********************************************************************

说明:

1、当测量浓度大于设定浓度时,单片机

IO

口输出低电平

*********************************************************************/

#include//#defineucharunsignedchar//#defineuintunsignedint//

库文件

宏定义无符号字符型

宏定义无符号整型

/********************************************************************

I/O

定义

*********************************************************************/

sbitLED=P1^0;sbitDOUT=P2^0;//

//定义单片机定义单片机

P1口的第

P2口的第

1位〔即

1位〔即

P1.0〕为指示端

P2.0〕为传感器的输入端

/********************************************************************

延时函数

*********************************************************************/

voiddelay()//延时程序

{

ucharm,n,s;

for(m=20;m>0;m--)

for(n=20;n>0;n--)

for(s=248;s>0;s--);

}

/********************************************************************

主函数

*********************************************************************/

voidmain()

{

 

while

(1)//无量循环

{

LED=1;//熄灭口灯

if(DOUT==0)//当浓度高于设定值时,执行条件函数

{

delay();//延时抗搅乱

if(DOUT==0)//确定浓度高于设定值时,执行条件函数

{

LED=0;

//

点亮

 

口灯

}

}

}

}

/********************************************************************

结束

*********************************************************************/

【测试程序】

*********************************************************************/

#include

//

头文件

#defineucharunsignedchar//

宏定义无符号字符型

#defineuintunsigned

int

//

宏定义无符号整型

codeuchar

seg7code[10]={0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90};//

显示段码

数码管字跟

ucharwei[4]={0XEf,0XDf,0XBf,0X7f};

//

位的控制端

//

位控制码

sbitST=P3^0;

//A/D

启动变换信号

sbitOE=P3^1;

//

数据输出赞同信号

sbitEOC=P3^2;

//A/D

变换结束信号

sbitCLK=P3^3;

//

时钟脉冲

uintz,x,c,v,AD0809,date;

//

定义数据种类

/******************************************************************

延时函数

******************************************************************/

voiddelay(uchart)

{

uchari,j;

for(i=0;i

{

for(j=13;j>0;j--);

{;

}

}

}

 

/**********************************************************************

数码管动向扫描

*********************************************************************/

voidxianshi()//

显示函数

{

uintz,x,c,v;

z=date/1000;

//

求千位

x=date%1000/100;

//

求百位

c=date%100/10;

//

求十位

v=date%10;

//

求个位

 

P2=0XFF;

P0=seg7code[z]&0x7f;

P2=wei[0];

delay(80);

P2=0XFF;

P0=seg7code[x];

P2=wei[1];

delay(80);

P2=0XFF;

P0=seg7code[c];

P2=wei[2];

delay(80);

P2=0XFF;

P0=seg7code[v];

P2=wei[3];

delay(80);

P2=0XFF;

}

/*************************************************************************

CLK振荡信号

**************************************************************************/

voidtimer0()interrupt1//

准时器

0工作方式1

{

TH0=(65536-2)/256;

//

重装计数初值

TL0=(65536-2)%256;

//

重装计数初值

CLK=!

CLK;

//取反

}

 

/*************************************************************************

主函数

**************************************************************************/

voidmain()

 

{

TMOD=0X01;

//

准时器中断0

CLK=0;

//

脉冲信号初始值为0

TH0=(65536-2)/256;

//

准时时间高八位初值

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();

//数码管显示函数

 

}

}

【ADC0809资料】

 

ADC0809中文资料

1.主要特点

1〕8路8位A/D变换器,即分辨率

8位。

2〕拥有变换起停控制端。

3〕变换时间为100μs

4〕单个+5V电源供电

5〕模拟输入电压范围0~+5V,不

需零点和满刻度校准。

6〕工作温度范围为-40~+85摄氏度

7〕低功耗,约15mW。

2.内部结构

ADC0809是CMOS单片型逐次逼近式

A/D变换器,内部结构如图13.22

所示,它由8路模拟开关、地址锁存与译码器、比较器、

8位开关树型D/A变换器、逐次

逼近

ADC0809内部结构框图

存放器、三态输出锁存器等其他一些电路组成。

因此,

ADC0809可办理8路模拟量输入,且有三态输出能力,既可与各种微办理器相连,也可单独

工作。

输入输出与

TTL兼容。

3.外面特点〔引脚功能〕

ADC0809芯片有28条引脚,采用双列直插式封装,下面说

明各引脚功能。

IN0~IN7:

8路模拟量输入端。

2-1~2-8:

8位数字量输出端。

ADDA、ADDB、ADDC:

3位地址输入线,用于选通8路模拟输入中的一路。

ALE:

地址锁存赞同信号,输入,高电平有效。

 

START:

A/D变换启动信号,输入,高电平有效。

EOC:

A/D变换结束信号,输出,当A/D变换结束时,此端输出一个高电平〔变换期

间素来为低电平〕OE:

数据输出赞同信号,输入,高电平有效。

当A/D变换结束时,此端输入一个高电平,才能翻开输出三态门,输出数字量。

CLK:

时钟脉冲输入端。

要求时钟频率不高于640KHZ。

REF〔+〕、REF〔-〕:

基准电压。

Vcc:

电源,单一+5V。

GND:

地。

ADC0809的工作过程是:

第一输入3位地址,并使ALE=1,将地址存入地址锁存器中。

此地

址经译码选通8路模拟输入之一到比较器。

START上升沿将逐次逼近存放器复位。

下降沿启

动A/D变换,此后EOC输出信号变低,指示变换正在进行。

直到A/D变换达成,EOC变为

高电平,指示A/D变换结束,结果数据已存入锁存器,这个信号可用作中断申请。

当OE

输入高电平时,输出三态门翻开,变换结果的数字量输出到数据总线上。

【图片显现】

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 人文社科 > 视频讲堂

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1