【Proteus51单片机仿真】YL-69湿度检测和继电器电机自启动

news2024/11/14 13:50:36

目录

一、主要功能

二、硬件资源

三、程序编程

四、实现现象


一、主要功能

基于AT89C51单片机,湿度检测模块通过ADC0832数模转换器,将模拟信号转换为数字信号给单片机,然后通过LCD1602显示屏显示出当前的湿度值,并判断当前湿度值是否大于60%,若大于60%则P2.6输出低电平,电机1启动,若处于60%以下,则P2.7输出低电平,电机2启动,此时电机12同时进行工作,到达用户预设的50%即停机结束工作。

仿真图:

二、硬件资源

基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。

本系统由51单片机最小系统、LCD1602显示模块、继电器电机、YL-69湿度传感器组成。

三、程序编程


  
  
  1. #include <REGX52.H>
  2. #include<intrins.h>
  3. #include<stdio.h>
  4. #include "Delay.h"
  5. #include "LCD1602.h"
  6. #define uchar unsigned char
  7. #define uint unsigned int
  8. typedef unsigned char u8;
  9. typedef unsigned int u16;
  10. typedef unsigned char uint8;
  11. typedef unsigned int uint16;
  12. typedef unsigned long uint32;
  13. /*引脚定义*/
  14. sbit CS=P1^ 0; //51单片机引脚设置
  15. sbit CLK=P1^ 1;
  16. sbit DIO=P1^ 2;
  17. sbit motor1 = P2^ 6; //电机1口
  18. sbit motor2 = P2^ 7; //电机2口
  19. /*变量定义*/
  20. static int MAXNUMBER = 60,MINNUMBER = 50;
  21. static uchar u,U,R;
  22. static int flag;
  23. /*函数定义*/
  24. void watermotorpd();
  25. uchar get_AD_Res() //ADC0832启动读取函数
  26. {
  27. uchar i, data1= 0, data2= 0;
  28. CS= 0;
  29. CLK= 0;DIO= 1;_nop_();
  30. CLK= 1;_nop_();
  31. CLK= 0;DIO= 1;_nop_();
  32. CLK= 1;_nop_();
  33. CLK= 0;DIO= 0;_nop_();
  34. CLK= 1;_nop_();
  35. CLK= 0;DIO= 1;_nop_();
  36. for(i= 0; i< 8; i++)
  37. {
  38. CLK= 1;_nop_();
  39. CLK= 0;_nop_();
  40. data1=(data1<< 1)|(uchar)DIO;
  41. }
  42. for(i= 0; i< 8; i++)
  43. {
  44. data2=data2|(uchar)DIO<<i;
  45. CLK= 1;_nop_();
  46. CLK= 0;_nop_();
  47. }
  48. CS= 1;
  49. return(data1 == data2)?data1: 0;
  50. }
  51. void main() //主函数
  52. {
  53. LCD_Init(); //显示屏初始化
  54. motor1 = 1;
  55. motor2 = 1;
  56. LCD_ShowString( 1, 1, "HUM:");
  57. LCD_ShowString( 1, 8, "%");
  58. LCD_ShowString( 2, 1, "CURRENT HUM:");
  59. LCD_ShowString( 2, 16, "%");
  60. while( 1)
  61. {
  62. u= get_AD_Res(); //读取ADC0832的值
  63. u= u/ 2;
  64. if(u <= 50)
  65. {
  66. u = 50;
  67. }
  68. LCD_ShowNum( 2, 13,u, 3); //通过LCD1602显示湿度的值
  69. LCD_ShowNum( 1, 5,MAXNUMBER, 3); //通过LCD1602显示湿度的值
  70. watermotorpd(); //电机判断
  71. if(flag == 1)
  72. {
  73. motor1 = 0; //电机1转动
  74. motor2 = 1;
  75. }
  76. else if(flag == 2)
  77. {
  78. motor1 = 0; //电机1转动
  79. motor2 = 0; //电机2转动
  80. }
  81. if(u <= MINNUMBER)
  82. {
  83. motor1 = 1;
  84. motor2 = 1;
  85. }
  86. }
  87. }
  88. void watermotorpd()
  89. {
  90. if(u > MAXNUMBER)
  91. {
  92. flag = 1;
  93. }
  94. else if( MINNUMBER < u <= MAXNUMBER)
  95. {
  96. flag = 2;
  97. }
  98. else
  99. {
  100. flag = 3;
  101. }
  102. }

四、实现现象

具体动态效果看B站演示视频:

基于AT89C52单片机的湿度检测及自动电机驱动_哔哩哔哩_bilibili

全部资料(源程序、仿真文件、安装包、演示视频):

链接:https://pan.baidu.com/s/1SUIep4_ZyOQJ_g4lsudL_w 
提取码:hzze 
--来自百度网盘超级会员V4的分享

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/2128196.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

大模型的第一个杀手级应用场景出来了

大家终于都意识到大模型首先改变的是软件行业自己&#xff0c;而软件的根基是代码生成。代码生成第一波就是AI辅助开发&#xff0c;这个会是大模型第一个杀手级应用。大家苦苦逼问自己的大模型杀手级应用&#xff0c;为什么会是辅助编程&#xff0c;这里说下什么&#xff1a; 必…

数据集 Total-Text 文本检测 >> DataBall

开源数据集 Total-Text 文本检测 深度学习 人工智能 Total-Text 是一个文本检测数据集&#xff0c;由 1,555 张图像组成&#xff0c;具有多种文本类型&#xff0c;包括水平、多向和弯曲文本实例。训练分割和测试分割分别有 1,255 张图像和 300 张图像。 article{CK2019, author…

时序预测 | Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测

时序预测 | Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测 目录 时序预测 | Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测预测效果基本介绍程序设计参考资料 预测效果 基本介绍 Matlab实现PSO-CNN粒子群优化卷积神经网络时间序列预测&#xff08;完整源码和数…

新手教学系列——用Nginx将页面请求分发到不同后端模块

在当今的Web开发中,前后端分离架构已经成为主流,尤其是大型应用项目。前端可以通过Vue这样的框架来统一管理页面和用户交互,而后端则通常会拆分成多个微服务模块,以便应对不同业务需求和功能扩展。在这样的架构下,Nginx作为一个高效、灵活的Web服务器,能够帮助我们将前端…

打造自己的大模型LLMs!独家训练秘籍!

目录 前言大语言模型 Vs机器学习模型训练过程 步骤1&#xff1a;数据策划&#xff08;Data Curation)步骤2&#xff1a;格式化与预处理步骤3&#xff1a;训练模型步骤4&#xff1a;模型评估 LLM Leaderboard [LLM Leaderboard 2024](https://www.vellum.ai/llm-leaderboard)[O…

怎么修改mvn的java版本

在maven所在目录下的bin目录中找到 mvn.cmd 文件&#xff0c;选中这个文件后&#xff0c;鼠标右键选择编辑。 在第一行添加java对应版本号的jre的路径 再次重新查看cmd下的指定的mvn -version的java版本

HT513 2.8W I2S 输入单声道D类音频功率放大器

特征 电源供电: PVDD 2.5-6.5V; DVDD/AVDD 3.3V 灵活的音频输入: -I2S, LJ, RJ, TDM 输入 -8,16,32,44.1,48,88.2,96,192kHz 采样频 率输出功率: 1.40W (PVDD3.6V,RL4Ω,THDN10%) 2.80W(PVDD5.0V,RL4Ω,THDN10%) 4.70W(PVDD6.5V,RL4Ω,THDN10%) THDN0.08%(PO1W, RL4Ω, PVDD …

【直播预告】从人工智能到类脑与量子计算:数学与新计算范式

数学作为科研的基础工具&#xff0c;在推动人工智能、类脑计算、量子计算等新兴计算范式发展中起到了关键作用。 数学是人工智能的重要基石&#xff0c;数学中的逻辑推理、概率统计、优化算法等概念在人工智能中广泛应用&#xff0c;如线性代数用于数据处理和特征提取&#xf…

本地生活区域推广合伙人怎么做?前景如何?

今年3月&#xff0c;本地生活于山东青岛举行了“2024聚力生态大会”&#xff0c;并全面解读了本地生活区域合伙人的增长态势、用户价值、平台生态和平台政策等内容。而从大会结束至今&#xff0c;多个创业者交流群里关于本地生活区域推广合伙人的讨论度居高不下&#xff0c;想要…

Servlet编程第一步:从零构建Hello World应用,详细步骤+图解

前言 什么是Servlet? Servlet 是一个 Java程序&#xff0c;是在服务器上运行以处理客户端请求并做出响应的程序 什么是maven&#xff1f; 简而言之&#xff0c;maven是通过一小段描述管理和构建java项目的工具&#xff08;通过pom.xml&#xff09;&#xff0c;我们通过maven项…

HTML中的javascript基本用法及综合实例

文章目录 基本的使用方法内联JavaScript脚本标签外部脚本文件使用库和框架注意事项 几个进阶的主题和示例1. 操作DOM2. 响应用户输入3. AJAX请求4. 使用框架/库 综合实例HTML 结构JavaScript 逻辑功能解释CSS 样式 基本的使用方法 在HTML中使用JavaScript可以让网页变得更加动…

HarmonyOS开发之使用PhotoViewPicker(图库选择器)保存图片

一&#xff1a;效果图 二&#xff1a;添加依赖 import fs from ohos.file.fs;//文件管理 import picker from ohos.file.picker//选择器 三&#xff1a;下载&#xff0c;保存图片的实现 // 下载图片imgUrldownloadAndSaveImage(imgUrl: string) {http.createHttp().request(…

21世纪全球最具影响力的思想家颜廷利:当今世界公认三大哲学家

优秀&#xff0c;源自对知识的敬畏&#xff0c; 成功&#xff0c;孕育于对经历的感恩。 无私&#xff0c;是真我显现的舞台&#xff0c; 开悟&#xff0c;让心灵沐浴人间的清明。 和善&#xff0c;是通往高峰的稳健脚步&#xff0c; 互爱&#xff0c;让福气溢满整个世界……

51单片机应用开发---什么是单片机?为什么要学习单片机?

实现目标 1、熟悉单片机定义、特点、应用场景、发展历史等&#xff1b; 2、理解为什么要学习单片机&#xff1f;怎样学习单片机&#xff1f; 一、单片机是什么&#xff1f; 1、定义 单片机是集成在一块&#xff08;单&#xff09;芯片上的微型计算机。平时我们把 MCU&#x…

Basler 相机与LabVIEW进行集成

Basler 提供的相机驱动和 SDK (Software Development Kit) 允许用户通过 LabVIEW 对相机进行控制和图像采集。以下是 Basler 相机与 LabVIEW 集成的几种方式&#xff1a; 1. Baslers Pylon SDK Basler 提供的 Pylon SDK 是一套用于控制 Basler 相机的开发工具包&#xff0c;支…

给RAG开药方:亚马逊发布RAGChecker,专治AI回答不准

立即解决AI误差&#xff1a;亚马逊RAGChecker的创新之举 ©作者|Blaze 来源|神州问学 引言 在人工智能领域&#xff0c;RAG&#xff08;Retrieval-Augmented Generation&#xff09;模型以其强大的生成能力和灵活性赢得了广泛关注。它结合了信息检索和生成技术&#xff0…

Matlab2023a/b安装Cplex12.9(实测适配)

目录 1 Matlab2023a/b版本安装Yalmip2 下载Cplex12.92.1 登录官网2.2 搜索意向版本and下载 3 安装cplex4 matlab与cplex耦合&#xff01;&#xff01;&#xff01;5 测试 1 Matlab2023a/b版本安装Yalmip google一下后CSDN有很多安装说明&#xff0c;不再赘述&#xff0c;可见&…

功能这么全的excel导出,你确定不需要?

欢迎来到我的博客&#xff0c;代码的世界里&#xff0c;每一行都是一个故事 &#x1f38f;&#xff1a;你只管努力&#xff0c;剩下的交给时间 &#x1f3e0; &#xff1a;小破站 功能这么全的excel导出&#xff0c;你确定不需要&#xff1f; 前言Maven坐标HSSFWorkbook、SXSSF…

【音视频】使用movie、drawtext过滤器实现图片、文字水印(6-3)

本来准备从六月份开始研究使用ffmpeg的movie filter实现图片水印、drawtext filter实现文字水印的能力&#xff0c;但一直没时间&#xff0c;临近中秋终于有空&#xff0c;于是研究了下ffmpeg命令行&#xff08;这里不做展示&#xff0c;关注代码实现&#xff09;&#xff0c;从…

AI客服机器人开启企业客户服务新纪元

随着人工智能(AI)技术的迅猛发展&#xff0c;使得AI客服机器人走进了我们的视野&#xff0c;成为提高客户满意度和业务效率的不二法宝。这些智能机器人不仅能够处理海量信息&#xff0c;还能为客户提供个性化的服务体验。 一、AI客服机器人的基本原理 AI客服机器人是基于人工智…