
#include <intrins.h>
sbit ST=P3^2
sbit OE=P3^0
sbit EOC=P3^1
unsigned char aa,bb,cc
unsigned char ge,shi,dge,dshi
unsigned adata[]={5,10,15,20,25,30,35,40,50,60,75,80,85,90,95,99,70}
void delay30ms()
{
unsigned char a,b
for(a=10a>0a--)
for(b=50b>0b--)
}
delay1ms()
{
unsigned int a,b
for(a=50a>0a--)
for(b=50b>0b--)
}
unsigned char code tab1[]=
{
0x3f,6,0x5b,0x4f,0x66,0x6d,0x7d,7,
0x7f,0x6f,0x77,0x7c,0x39,0x5e,0x79,0x71
}
void disly()
{
P2_2=0
P2_3=1
P2_4=1
P2_5=1
P0=tab1[ge]
delay1ms()
P2_2=1
P2_3=0
P2_4=1
P2_5=1
P0=tab1[shi]
delay1ms()
P2_2=1
P2_3=1
P2_4=0
P2_5=1
P0=tab1[dge]
delay1ms()
P2_2=1
P2_3=1
P2_4=1
P2_5=0
P0=tab1[dshi]
delay1ms()
}
void zhuan()
{
ge=aa%10
shi=aa/10
dge=bb%10
dshi=bb/10
}
void get1 ()
{
ST=0
ST=1
ST=0
while(EOC==0)
OE=1
cc=P1
OE=0
}
void main()
{
bb=50
P0=0xff
while(1)
{
get1()
aa=cc/2.56
zhuan()
disly()
if(aa>=bb){ P2_0=~P2_0
P2_1=1}
else { P2_0=0
P2_1=0
}
if(P3_4==0) {delay1ms()
bb++
}
if(P3_5==0) {delay1ms()
bb--
}
}
}
第一步是收集有关室外温度、湿度和气体浓度的信息,作为敏感元件烟雾传感器的输入信息。当信号输入值与放大模块的A/D转换器输入电平相匹配时,无需放大放大器;当信号输入值与放大模块的A/D转换器输入级别不匹配时,放大器将放没液樱大电气信号。A/D电路的第二阶段将模拟信号转换为单片机进行识别和判断。数字信号后,单片机接收和处理传埋橡感器发送的数字信号枯丛,分析数据,比较数字信号是否超过设定的浓度阈值(该测试设置为100ppm),并将测量的浓度转换为十进制数字发送到液晶显示器,观察效果更好。如果周围环境烟雾浓度达到设定阈值,启动蜂鸣器报警电路。整体原理图如下所示:
你的烟雾传感器带继电器输出,把触点接在单片机的一个输空行入端和0V之间,输入端对+5V接一个10K上拉电阻即可。如果是MQ-2,需要进行电平转换,51单片机的输入电压不能大于斗茄哗纳伏5V。
欢迎分享,转载请注明来源:内存溢出
微信扫一扫
支付宝扫一扫
评论列表(0条)