基于51单片机的报警器(模拟量,上限,TLC1543,LCD1602)原理图、流程图、物料清单、仿真图、源代码
基于51单片机的报警器(模拟量,上限,TLC1543,LCD1602)(可用作CO2、CH4、CO、粉尘、酒精、NH2等模拟量传感器报警)2、如果浓度值超过阀值,报警。1、测量物理量的浓度值。
·
基于51单片机的报警器(模拟量,上限,TLC1543,LCD1602)原理图、流程图、物料清单、仿真图、源代码
基于51单片机的报警器(模拟量,上限,TLC1543,LCD1602)
简易报警器
(可用作CO2、CH4、CO、粉尘、酒精、NH2等模拟量传感器报警)
1、测量物理量的浓度值
2、如果浓度值超过阀值,报警。
3、阀值可调
#include "reg51.h"
#include "lcd1602.h"
#include"TLC1543.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P2^3;//按钮
sbit k2=P2^4;
sbit sw=P2^5;
sbit led=P3^7;//警示灯
uint alho=0;//酒精浓度
uint limit=100;
uchar disp1[]="Value:0.00mg/L";
uchar disp2[]=" 0.00mg/L";
uchar time=0;
//主函数
void main()
{
init_1602();
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
if(!k1)//加
{
if(limit<400)
limit++;
while(!k1);
}
if(!k2)//减
{
if(limit>0)
limit--;
while(!k2);
}
}
}
//定时器中断
void Timer0() interrupt 1
{
unsigned long k;
if(time<10)//0.5s
time++;
else
{
time=0;
//测量酒精
alho=TLC1543_read(0);
k=alho;
k=k*400/4096;//计算酒精浓度
alho=k;
//显示
disp1[6]=alho/100+0x30;
disp1[8]=alho%100/10+0x30;
disp1[9]=alho%10+0x30;
disp2[2]=limit/100+0x30;
disp2[4]=limit%100/10+0x30;
disp2[5]=limit%10+0x30;
write_string(1,0,disp1);
write_string(2,4,disp2);
//报警
if(alho>limit)
{
led=0;
}
else
led=1;
}
TH0=0X3C;
TL0=0XB0;
}
更多推荐
已为社区贡献17条内容
所有评论(0)