100字范文,内容丰富有趣,生活中的好帮手!
100字范文 > 基于51单片机的自动窗户控制系统风速测量proteus仿真原理图PCB

基于51单片机的自动窗户控制系统风速测量proteus仿真原理图PCB

时间:2018-12-14 04:01:27

相关推荐

基于51单片机的自动窗户控制系统风速测量proteus仿真原理图PCB

功能介绍:

0.本系统采用STC89C52作为单片机

1.系统实时监测当前的雨滴、温湿度、风速,烟雾浓度

2.支持手动/自动两种模式

3.自动模式下

窗户关闭状态下,当烟雾浓度超过阈值,打开窗户,或者环境均在阈值范围以内,打开窗户。其中烟雾浓度过高的情况,蜂鸣器将报警,并需要手动解除报警

窗户开启状态下,当窗户外有人或温湿度超过阈值或风速过高,窗户关闭。其中窗户外有人的情况,蜂鸣器将报警,并需要手动解除报警

4.按键可设定阈值,手动控制窗户,切换工作模式

5.采用DC002作为电源接口可直接输入5V给整个系统供电

原理图:

PCB:

主程序:

#include "main.h"/*******************变量定义*********************/enum _MODE_DF_ dispMode;bit modeFlag = AUTO; //模式标记uchar motorFlag = 0; //标记当前控制状态,=0已关闭,=1过程中,=2已打开bit motorDir = 1;bit alarmFlag = 0; //报警标志char motorCnt=0;uchar setIndex = 0;uint humidity; //湿度uint temperature; //温度uint gas; //气体uint rain; //雨滴uint windSpeed; //风速//阈值设定uint hmMin= 25;uint hmMax= 50;uint tempMin = 25;uint tempMax = 40;uint gasMin = 30;uint gasMax = 60;uint rainMin = 30;uint rainMax = 60;uint windSpeedMin = 5;uint windSpeedMax = 20;bit dispFlag = 0;char dis[16];/********************************************************函数名称:void mian()函数作用:主函数参数说明:********************************************************/void main(){modeFlag = MANUAL;Timer0_Init(); //初始化定时器0LCD_Init(); //初始化液晶DelayMs(200); //延时有助于稳定LCD_DispStr(4, 0, "Welcome!");LCD_Clear(); //清屏BYJ48 = ((BYJ48 & 0xF0) | REV[0]); //取数据ULN_DQ3 = BIT3; ULN_DQ2 = BIT2; ULN_DQ1 = BIT1; ULN_DQ0 = BIT0;while (1) //死循环{if (dispFlag == 1){dispFlag = 0;if (dispMode == NORMAL){DispNormal();}}if (modeFlag == AUTO){if (motorFlag == 0 || motorFlag == 1) //已关闭或关闭状态中,优先处理气体浓度高的情况{if (gas > gasMax) //气体浓度过高,打开窗户{motorFlag = 1;motorDir = 0;alarmFlag = 1; //报警标志modeFlag = MANUAL; //切换至手动模式}else{if (IR_PIN

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。