51单片机数码管0832烟雾报警器的编程程序

51单片机数码管0832烟雾报警器的编程程序,第1张

#include<at89x52.h>

#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。


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/yw/12219742.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-21
下一篇2023-05-21

发表评论

登录后才能评论

评论列表(0条)

    保存