功能要求:
基于这个设计的上述要求,根据功能要求,须设计有下载电路、显示电路、LED控制电路、定时电路、报警电路,主控电路各个电路都有其自己的功能。通过复位按键“KEY1”,电路进入就绪状态。然后传感器开始预热大概20秒,该预设初值为60,然后实时检测周边的浓度,如果检测浓度正常,报警电路不会工作进入休眠状态,屏幕会显示正常。如果家庭的烟雾浓度超过该预设值,报警电路就会报警,并且led会持续闪烁,屏幕上显示报警!提醒居民要注意。该浓度值还可以手动调节,加与减,当设置最大的阈值,报警电路也是可以报警,需要手动关闭。
原理图:
部分程序:
#include "gather.h"
void main()
{
u8 temp;
/****IO口初始化****/
P0M1=P0M0=0X00;
P1M1=P1M0=0X00;
P2M1=P2M0=0X00;
P4M1=P4M0=0X00;
/****定时器初始化****/
Timer0Init();
ET0=0;
while(1)
{
smg();//数码管显示
temp=keyscan();//按键扫描
if(temp==1&&ET0==1)//判断返回值是否为1与定时器0是否打开 如果都满足条件 执行以下程序
{
JDQ1=!JDQ1; //继电器led取反
LED1=!LED1;
LED2=!LED2;
}
if(JDQ1==0){LED2=0;LED1=1;}//当继电器1为0时 切换灯效果
if(JDQ1==1){LED2=1;LED1=0;}
if(IR==0)ET0=1;
if(min<=0)//当倒计时为0时 所有继电器关闭
{
JDQ1=1;
JDQ2=1;
}
}
}