基于51单片机的自动化窗户控制系统设计
注:
功能:主要实现了自动和手动功能,在手动模式下,可以通过手动进行窗户开关窗
自动模式下,满足设定温度(初始为30度),大于30且红外检测有人开窗,雨水检测
下雨关窗,光线暗开窗(初始光线限为6)。
扩展:可以通过设定温度限,光线限,时间校准和定时。
#include <reg52.h>
#define uchar unsigned char
#define uint unsigned int
bit flag_200ms;
sbit yushui = P2 ^ 4; /* 雨水IO口定义 */
sbit LED = P2 ^ 7; /* 灯光模块 */
sbit yw = P2 ^ 6; /* 红外模块 */
bit flag_relay_en;
uchar flag_kaig_moshi = 0; /* 开关模式 */
bit flag_zd_sd; /* 自动 手动 模式 */
bit flag_lj_en; /*按键连加使能 */
bit flag_lj_3_en; /*按键连3次连加后使能 加的数就越大了 */
uchar key_time, flag_value; /* 用做连加的中间变量 */
bit key_500ms;
uchar menu_shudu = 20; /* 用来控制连加的速度 */
uchar value, i;
uchar k_shi = 1, k_fen = 2; /* 开窗帘时间 */
uchar g_shi = 3, g_fen = 4; /* 关窗帘时间 */
uint t_high = 30; /* 高温 */
sbit DO = P3 ^ 7; /* DO定义为P1口的第4位脚,连接ADC0832DO脚 */
sbit SCL = P3 ^ 6; /* SCL定义为P1口的第3位脚,连接ADC0832SCL脚 */
sbit CS = P3 ^ 5; /* CS定义为P1口的第4位脚,连接ADC0832CS脚 */
uchar guanxian, guanxian_set = 6; /* 光线 */
void write_eepom();
#include "eepom52.h"
#include "key.h"
#include "ds1302.h"
#include "lcd1602.h"
#include "18b20_2lu.h"
#include "bujindianji.h"