1038-基于51单片机的报警器(4路,TLC1543)原理图、流程图、物料清单、仿真图、源代码
功能介绍:
4路模拟量报警器(煤气、一氧化碳、甲烷等自定义每个测量点含义)
1、使用ADC芯片测量4路模拟量输入,使用电位器代替
2、显示测量结果0-99%
3、按键设置阀值,测量值超过阀值,报警提示
有哪些资料:
1、仿真工程文件
2、源代码工程文件
3、原理图工程文件
4、流程图
5、功能介绍
6、元件清单
#include "reg51.h"
#include"TLC1543.h"
#include "lcd1602.h"
#define uchar unsigned char
#define uint unsigned int
sbit k1=P3^6;//按钮
sbit k2=P3^7;
sbit led1=P2^4;//指示灯
sbit led2=P2^5;
sbit led3=P2^6;
sbit led4=P2^7;
sbit beep=P1^5;//蜂鸣器
uchar disp1[]="00% 00% 00% 00%";
uchar disp2[]="limit:00%";
uchar limit=10;//报警值
uint qiti1=0,qiti2=0,qiti3=0,qiti4=0;//有害气体浓度
uchar time=0;
//延时函数
void delay(uint i)
{
while(i--);
}
//主函数
void main()
{
init_1602();
TMOD|=0X01;
TH0=0X3C;
TL0=0XB0;
ET0=1;//打开定时器0中断允许
EA=1;//打开总中断
TR0=1;//打开定时器
while(1)
{
if(!k1)//加
{
delay(1000);
if(!k1)
{
if(limit<99)
limit++;
while(!k1);
}
}
if(!k2)//减
{
delay(1000);
if(!k2)
{
if(limit>0)
limit--;
while(!k2);
}
}
//报警
if(qiti1>limit)
led1=0;
else
led1=1;
if(qiti2>limit)
led2=0;
else
led2=1;
if(qiti3>limit)
led3=0;
else
led3=1;
if(qiti4>limit)
led4=0;
else
led4=1;
if(!led1 || !led2 || !led3 || !led4)
beep=0;
else
beep=1;
}
}