硬件设计
文件仅供参考
链接:https://pan.baidu.com/s/1H49s8Kp7LL3U4IZNXNsjlg
提取码:vf6u
方案
为了实现晾衣自身能够完成对外界数据的采集与分析,集成控制环节我们采用了ATMEL公司生产的AT89C52单片机,与市面上的其他嵌入式控制单元相比较在体积与功耗方面都相当出色。此次设计主要突破在于设计合理的控制电路单元,同时结合采用的主控编写高质量的源码并使系统在实际与应用中能够发挥出色的稳定性和参考价值。本次将围绕主控单元设计合理的电路,结合SHT11温湿度采集单元、感光原件单元、LCD显示单元、模式控制单元使晾衣架能够得到外界的实时数据并作出相应的调整。在设定合适的温湿度及感光度的条件下能够自动控制电机驱动滑杆实现自动量晒与回收衣物,结合光线角度进行上下左右调整。主要框架如下图所示:
仿真1:
仿真2:
程序1
#include<reg52.h>
#include <intrins.h>
#include <math.h>
#include <stdio.h>
#include <1602.h>
#include <sht11.h>
#include <24c02.h>
#define uchar unsigned char
#define uint unsigned int
#define W_cmd 0xa0 //24c02写指令
#define R_cmd 0xa1
uint temp,humi;
value humi_val,temp_val; //定义两个共同体,一个用于湿度,一个用于温度
uchar error; //用于检验是否出现错误
uchar checksum; //CRC
uchar TEMP_data[7]; //用于记录实测的温度
uchar HUMI_data[6]; //用于记录实测的湿度
uchar LIGH_data[4]; //用于记录实测光感度
uchar show_temp[5]; //显示设定的温度
uchar show_humi[4]; //显示设定的湿度
uchar data temp_humi_cache[4]; //温湿度设置缓存
uchar temp_set; //保存温度变量
uchar humi_set; //保存湿度变量
uchar presskeynum; //按键次数变量
uchar nn; //用于蜂鸣器
uchar code word1[]={
" a product of "};
uchar code word2[]={
"UNITED ELECTRONS"};
uchar code word3[]={
" Welcome........"};
sbit k1=P2^0; //选择按键
sbit k2=P2^1; //增加按键
sbit k3=P2^2; //减小按键
sbit k4=P2^3;// 确认按键
sbit led1=P1^4; //温度过低指示灯
sbit led2=P1^5; //温度过高
sbit led3=P1^6; //湿度低于下限值,报警,加湿。
sbit led4=P1^7; //湿度过高,报警,不调湿
sbit motor1=P3^4;
sbit motor2=P3^5;
sbit motor3=P3^6;
sbit motor4=P3^7;
sbit P2_6=P2^6;
//********延时函数*********
void delay(uint z) //z为毫秒数
{
int a,b;
for(a