品牌网站源码,传业做微采商城网站,资阳建设机械网站,汕头企业建站模板目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于AT89C51单片机#xff0c;湿度检测模块通过ADC0832数模转换器#xff0c;将模拟信号转换为数字信号给单片机#xff0c;然后通过LCD1602显示屏显示出当前的湿度值#xff0c;并判断当前湿度值是… 目录 一、主要功能 二、硬件资源 三、程序编程 四、实现现象 一、主要功能 基于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#includeintrins.h#includestdio.h#include Delay.h#include LCD1602.h#define uchar unsigned char#define uint unsigned inttypedef unsigned char u8;typedef unsigned int u16;typedef unsigned char uint8;typedef unsigned int uint16;typedef unsigned long uint32; /*引脚定义*/sbit CSP1^0; //51单片机引脚设置sbit CLKP1^1;sbit DIOP1^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, data10, data20;CS0; CLK0;DIO1;_nop_();CLK1;_nop_(); CLK0;DIO1;_nop_(); CLK1;_nop_(); CLK0;DIO0;_nop_();CLK1;_nop_(); CLK0;DIO1;_nop_(); for(i0; i8; i){CLK1;_nop_();CLK0;_nop_();data1(data11)|(uchar)DIO; } for(i0; i8; i){data2data2|(uchar)DIOi;CLK1;_nop_();CLK0;_nop_();}CS1; 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){uget_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的分享