找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2690|回复: 5
打印 上一主题 下一主题
收起左侧

求程序 有没有用51和MQ-3做的酒精浓度实时检测显示的?

[复制链接]
跳转到指定楼层
楼主
ID:114987 发表于 2017-5-4 18:05 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
有没有用51和MQ-3做的酒精浓度实时检测显示的?????求程序
分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏1 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:82765 发表于 2017-5-4 20:04 | 只看该作者
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

板凳
ID:7485 发表于 2017-5-4 20:10 | 只看该作者
是气体的还是液体的?
回复

使用道具 举报

地板
ID:114987 发表于 2017-5-5 15:37 | 只看该作者
ahshmj 发表于 2017-5-4 20:10
是气体的还是液体的?

气体的
回复

使用道具 举报

5#
ID:114987 发表于 2017-5-5 15:37 | 只看该作者
cjjcjj1 发表于 2017-5-4 20:04
你好!酒精浓度电路做好了吗?

没有。。
回复

使用道具 举报

6#
ID:164722 发表于 2017-5-6 14:00 | 只看该作者
烟雾报警器制作过程及相关程序
//程序头函数
#include <reg52.h>

//宏定义
#define uint unsigned int
#define uchar unsigned char
#define Data_ADC0809 P1
//管脚声明
sbit Feng = P3^0;
//ADC0809
sbit ST=P3^3;
sbit EOC=P3^4;
sbit OE=P3^2;
//按键
sbit Key1=P3^5;
sbit Key2=P3^6;
sbit Key3=P3^7;
//显示数组 0-9+F
uchar Data_[]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x71,0x3f};
sbit Wei1 = P2^7;
sbit Wei2 = P2^6;
sbit Wei3 = P2^5;
sbit Wei4 = P2^4;
//函数声明
extern uchar ADC0809();
void Display(uchar X,uchar Data);
void delay(uint t);
//酒精含量变量
uchar temp=0;
//蜂鸣器变量
uchar FF=10;
//显示模式
uchar Mode=0;
uchar p;
void main()
{
while(1)
{
//正常模式
if(Mode==0)
{
//读取AD值
temp=ADC0809();
for(p=0;p<30;p++)
Display(0,temp);
//判断是否报警
if(temp>FF)
{
Feng=0;
}
else
{
Feng=1;
}
}
//调整模式
else
{
Display(1,FF);
}
//功能键
if(Key3==0)
{
Feng=0;
delay(100);
while(Key3==0)
{
if(Mode==0)
Display(0,temp);
else
Display(1,FF);
}
if(Mode==0)
Mode=1;
else
Mode=0;
Feng=1;
}
//增加
if(Key2==0&&Mode==1)
{
Feng=0;
delay(100);
while(Key2==0)
{
Display(1,FF);
}
FF++;
if(FF==251)
FF=250;
Feng=1;
}
//减少
if(Key1==0&&Mode==1)
{
Feng=0;
delay(100);
while(Key1==0)
{
Display(1,FF);
}
FF--;
if(FF==0xff)
FF=0;
Feng=1;
}
}
}
//ADC0809读取信息
uchar ADC0809()
{
uchar temp_=0x00;
//初始化高阻太
OE=0;
//转化初始化
ST=0;
//开始转换
ST=1;
ST=0;
//外部中断等待AD转换结束
while(EOC==0)
//读取转换的AD值
OE=1;
temp_=Data_ADC0809;
OE=0;
return temp_;
}
//延时
void delay(uint t)
{
uint i,j;
for(i=0;i<t;i++)
for(j=0;j<10;j++);
}
//显示 X表示状态 Data表示数据
void Display(uchar X,uchar Data)
{
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=0xff;
//正常模式
if(X==0)
{
P0=~Data_[11];
}
//非正常
else
{
P0=~Data_[10];
}
Wei1=0;
Wei2=1;
Wei3=1;
Wei4=1;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=~Data_[Data/100];
Wei1=1;
Wei2=0;
Wei3=1;
Wei4=1;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;

P0=~Data_[Data/10%10];
Wei1=1;
Wei2=1;
Wei3=0;
Wei4=1;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
P0=~Data_[Data%10];
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=0;
delay(10);
Wei1=1;
Wei2=1;
Wei3=1;
Wei4=1;
}

增加显示部分的程序就行了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表