目录
一、主要功能
基于AT89C51单片机,湿度检测模块通过ADC0832数模转换器,
将模拟信号转换为数字信号给单片机,然后通过LCD1602显示屏显示出当前的湿度值,并判断当前湿度值是否大于60%,若大于60%则P2.6输出低电平,电机1启动,若处于60%以下,则P2.7输出低电平,电机2启动,此时电机12同时进行工作,到达用户预设的50%即停机结束工作。
仿真图:
编辑
二、硬件资源
基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。
本系统由51单片机最小系统、LCD1602显示模块、继电器电机、YL-69湿度传感器组成。
三、程序编程
#include <REGX52.H>
#include<intrins.h>
#include<stdio.h>
#include "Delay.h"
#include "LCD1602.h"
#define uchar unsigned char
#define uint unsigned int
typedef unsigned char u8;
typedef unsigned int u16;
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
/*引脚定义*/
sbit CS=P1^0; //51单片机引脚设置
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit motor1 = P2^6; //电机1口
sbit motor2 = P2^7; //电机2口
/*变量定义*/
static int MAXNUMBER = 60,MINNUMBER = 50;
static uchar u,U,R;
static int flag;
/*函数定义*/
void watermotorpd();
uchar get\_AD\_Res() //ADC0832启动读取函数
{
uchar i, data1=0, data2=0;
CS=0;
CLK=0;DIO=1;\_nop\_();
CLK=1;\_nop\_();
CLK=0;DIO=1;\_nop\_();
CLK=1;\_nop\_();
CLK=0;DIO=0;\_nop\_();
CLK=1;\_nop\_();
CLK=0;DIO=1;\_nop\_();
for(i=0; i<8; i++)
{
CLK=1;\_nop\_();
CLK=0;\_nop\_();
data1=(data1<<1)|(uchar)DIO;
}
for(i=0; i<8; i++)
{
data2=data2|(uchar)DIO<<i;
CLK=1;\_nop\_();
CLK=0;\_nop\_();
}
CS=1;
return(data1 == data2)?data1:0;
}
void main() //主函数
{
LCD_Init(); //显示屏初始化
motor1 = 1;
motor2 = 1;
LCD_ShowString(1,1,"HUM:");
LCD_ShowString(1,8,"%");
LCD_ShowString(2,1,"CURRENT HUM:");
LCD_ShowString(2,16,"%");
while(1)
{
u=get\_AD\_Res(); //读取ADC0832的值
u= u/2;
if(u <= 50)
{
u = 50;
}
LCD_ShowNum(2,13,u,3);//通过LCD1602显示湿度的值
LCD_ShowNum(1,5,MAXNUMBER,3);//通过LCD1602显示湿度的值
watermotorpd(); //电机判断
if(flag == 1)
{
motor1 = 0; //电机1转动
motor2 = 1;
}
else if(flag == 2)
{
motor1 = 0;//电机1转动
motor2 = 0;//电机2转动
}
if(u <= MINNUMBER)
{
motor1 =1;
motor2 =1;
}
}
}
void watermotorpd()
{
if(u > MAXNUMBER)
{
flag = 1;
}
else if( MINNUMBER < u <= MAXNUMBER)
{
flag = 2;
}
else
{
flag =3;
}
}
四、实现现象
具体动态效果看B站演示视频:
基于AT89C52单片机的湿度检测及自动电机驱动_哔哩哔哩_bilibili
全部资料(源程序、仿真文件、安装包、演示视频):
链接:https://pan.baidu.com/s/1SUIep4_ZyOQJ_g4lsudL_w
提取码:hzze
–来自百度网盘超级会员V4的分享c