只要在检测范围内,感应到了人的存在,就会自动判断是否需要排风。在没有感应到人的活动时,只要在检测范围内,感应到了人的存在,就会自动判断是否需要排风。在没有感应到人的活动时,启动排风装置。只有当红外感应器感应到有人活动时,才以正常功耗运行整个装置,这时,若甲醛浓度超标,则蜂鸣警报,同时立刻启动排风装置。
#include /* 包含头文件,一般情况不需要改动,头文件包含特殊功能寄存器的定义 */
#include "intrins.h"
#define u8 unsigned char
#define u16 unsigned int
#define uchar unsigned char
#define uint unsigned int
uchar setValue = 100; /* 采样预设值 */
uchar nowValue; /* 用于读取ADC数据 */
/* 运行模式 */
uchar Mode = 0; /* =1是设置温度阀值 =2是设置采样阀值 =0是正常监控模式 */
/* 管脚声明 */
sbit Led_Reg = P2 ^ 2; /* 红灯 */
sbit Led_Yellow = P2 ^ 4; /* 黄灯 */
sbit Buzzer = P2 ^ 0; /* 蜂鸣器 */
sbit Fan = P3 ^ 3; /* */
sbit Motor = P2 ^ 5;
sbit People = P2 ^ 4;
/********************************************************************
* 名称 : delay_1ms()
* 功能 : 延时1ms函数
* 输入 : q
* 输出 : 无
***********************************************************************/
void delay_ms( uint q )
{
uint i, j;
for ( i = 0; i < q; i++ )
for ( j = 0; j < 110; j++ )
;
}
/***********************************************************************************************************
* LCD1602相关函数
***********************************************************************************************************/
/* LCD管脚声明 (RW引脚实物直接接地,因为本设计只用到液晶的写操作,RW引脚一直是低电平) */
sbit LCDRS = P2 ^ 7;
sbit LCDEN = P2 ^ 6;
sbit D0 = P0 ^ 0;
sbit D1 = P0 ^ 1;
sbit D2 = P0 ^ 2;
sbit D3 = P0 ^ 3;
sbit D4 = P0 ^ 4;
sbit D5 = P0 ^ 5;
sbit D6 = P0 ^ 6;
sbit D7 = P0 ^ 7;