当前位置: 首页 > news >正文

温度检测小系统兼继电器模块和小风扇

1.思路:

        代码还要封装!

        延迟1秒;串口初始化;LCD1602显示屏初始化;延迟两秒;ledone不亮;

        while循环,延迟1秒,DHT模块读取数据;封装接收数据函数;发送湿度数据;发送温度数据

注:在这段代码中;ledOne = P3^7; dht = P3^3; datas [5] (接收DHT11的数据); temp[8] ,huma[8] (用来存取接受的数据);

2.加继电器和小风扇模块

        sbit fengshan = P1^6;

             //datas[2] 是温度

          if(datas[2] > 25){

                fengshan = 0;   // 超过25度给我转      

        }

#include "reg52.h"
#include "intrins.h"sbit ledOne = P3^7;
sbit dht    = P3^3;char datas[5];
sfr	AUXR  = 0x8E;#define databuffer P0
sbit RS = P1^0;
sbit RW = P1^1;
sbit EN = P1^4;
sbit fengshan = P1^6;char temp[8];
char huma[8];void Delay15ms()		//@11.0592MHz
{unsigned char i, j;i = 27;j = 226;do{while (--j);} while (--i);
}void Delay5ms()		//@11.0592MHz
{unsigned char i, j;i = 9;j = 244;do{while (--j);} while (--i);
}void check_busy() //?
{char tmp = 0x80;databuffer = 0x80;while(tmp & 0x80){ //1000 0000RS = 0;RW = 1;EN = 0;      //??????·_nop_();     //???????,??EN = 1;      //??2?_nop_();_nop_();tmp = databuffer;EN = 0;      //??_nop_();}
}void Write_Cmd_Func(char cmd)
{check_busy();RS = 0;RW = 0;EN = 0;_nop_();databuffer = cmd;_nop_();EN = 1;_nop_();_nop_();EN = 0;_nop_();
}void Write_Data_Func(char dataShow)
{check_busy();RS = 1;RW = 0;EN = 0;_nop_();    //??1.085usdatabuffer = dataShow;_nop_();EN = 1;_nop_();_nop_();EN = 0;_nop_();
}void UartInit(void)
{AUXR = 0x01;SCON = 0x40;TMOD &= 0xF0;TMOD |= 0x20;TH1 =0xFD;TL1 =0xFD;TR1 = 1;
}void sendByte(char data_msg)
{SBUF = data_msg;while(!TI);       //(TI==0)   TI = 0;}void sendString(char *str)
{while(*str != '\0'){sendByte(*str);str++;}
}void Delay1000ms()		//@11.0592MHz
{unsigned char i, j, k;_nop_();i = 8;j = 1;k = 243;do{do{while (--k);} while (--j);} while (--i);
}void Delay30ms()		//@11.0592MHz
{unsigned char i, j;i = 54;j = 199;do{while (--j);} while (--i);
}void Delay40us()		//@11.0592MHz
{unsigned char i;_nop_();i = 15;while (--i);
}void DHT11_Start()
{dht = 1;dht = 0;Delay30ms();dht = 1;//Dwhile(dht);while(!dht);while(dht);}void Read_Data_From_DHT()
{int i; //ÂÖint j; // ÿÂÖ¶Á¶àÉÙ´Îchar tmp;char flag;DHT11_Start();for(i = 0;i<5;i++){//¿¨gµã: while(!dht)    ÓÐЧÊý¾ÝÊÇ¸ßµçÆ½£¬³ÖÐøÊ±¼ä²»Ò»Ñù£¬50us¶Á£¬µÍµçƽ0 ¸ßµçƽ1for(j = 0;j<8;j++){while(!dht); // µÈ´ý¿¨gµã  Delay40us();if(dht==1){flag = 1;while(dht); //}else{flag = 0;}tmp = tmp << 1;tmp |= flag;  //}datas[i] = tmp;}
}void LCD1602_showLine(char row,char col,char *string)
{switch(row){case 1:Write_Cmd_Func(0x80+col);while(*string){Write_Data_Func(*string);string++;}break;case 2:Write_Cmd_Func(0x80+0x40+col);while(*string){Write_Data_Func(*string);string++;}break;}
}void LCD1602_INIT()
{Delay15ms();Write_Cmd_Func(0x38);Delay5ms();Write_Cmd_Func(0x38);Write_Cmd_Func(0x08);Write_Cmd_Func(0x01);Write_Cmd_Func(0x06);Write_Cmd_Func(0x0c);}void Bulid_Datas()
{huma[0] = 'H';huma[1] = datas[0]/10 + 0x30;huma[2] = datas[0]%10 + 0x30;huma[3] = '.';huma[4] = datas[1]/10 + 0x30;huma[5] = datas[1]%10 + 0x30;huma[6] = '%';huma[7] = '\0';temp[0] = 'T';temp[1] = datas[2]/10 + 0x30;temp[2] = datas[2]%10 + 0x30;temp[3] = '.';temp[4] = datas[3]/10 + 0x30;temp[5] = datas[3]/10 + 0x30;temp[6] = 'C';temp[7] = '\0';}void main()
{Delay1000ms();UartInit();if(datas[2] > 25){fengshan = 0;   // 超过25度给我转      }LCD1602_INIT();Delay1000ms();Delay1000ms();ledOne = 1;while(1){Delay1000ms();Read_Data_From_DHT();Bulid_Datas();sendString(huma);sendString("\r\n");sendString(temp);sendString("\r\n");LCD1602_showLine(1,2,huma);LCD1602_showLine(2,2,temp);}
}

相关文章:

温度检测小系统兼继电器模块和小风扇

1.思路&#xff1a; 代码还要封装&#xff01; 延迟1秒&#xff1b;串口初始化&#xff1b;LCD1602显示屏初始化&#xff1b;延迟两秒&#xff1b;ledone不亮&#xff1b; while循环&#xff0c;延迟1秒&#xff0c;DHT模块读取数据&#xff1b;封装接收数据函数&#xff1b;发…...

[数据结构1.0]计数排序

读者老爷好&#xff0c;本鼠鼠最近学了计数排序&#xff0c;浅浅介绍一下&#xff01; 目录 1.统计相同元素出现次数 2.根据统计的结果将序列回填到原来的序列中 3.相对映射计数排序 计数排序又称为鸽巢原理&#xff0c;是对哈希直接定址法的变形应用&#xff0c;是非比较排…...

PostgreSQL入门教程

PostgreSQL是一种开源的关系型数据库管理系统&#xff0c;它具有高度的可靠性、可扩展性和性能。下面是一个简单的PostgreSQL入门教程&#xff0c;帮助你开始使用这个强大的数据库管理系统。 步骤1&#xff1a;安装PostgreSQL 首先&#xff0c;你需要下载并安装PostgreSQL。你…...

【spring】@ControllerAdvice注解学习

ControllerAdvice介绍 ControllerAdvice 是 Spring 框架提供的一个注解&#xff0c;用于定义一个全局的异常处理类或者说是控制器增强类&#xff08;controller advice class&#xff09;。这个特性特别适用于那些你想应用于整个应用程序中多个控制器的共有行为&#xff0c;比…...

【全开源】赛事报名系统源码(Fastadmin+ThinkPHP和Uniapp)

基于FastadminThinkPHP和Uniapp开发的赛事报名系统&#xff0c;包含个人报名和团队报名、成绩查询、成绩证书等。 构建高效便捷的赛事参与平台 一、引言&#xff1a;赛事报名系统的重要性 在举办各类赛事时&#xff0c;一个高效便捷的报名系统对于组织者和参与者来说都至关重…...

杰理-耳机进入关机关闭内内置触摸-节省功耗

杰理-耳机进入关机关闭内内置触摸-节省功耗 if (__this->init 0) {return LP_TOUCH_SOFTOFF_MODE_LEGACY; }if ((__this -> softoff_mode LP_TOUCH_SOFTOFF_MODE_ADVANCE) && (__this->softoff_keep 0)) {lp_touch_key_disable(); } __this->softoff_k…...

Homebrew安装、 Mac上pyenv的安装与使用,复制黏贴搞定,网上教程看得眼花缭乱的来看看,简单明了一步到胃!!

安装 Homebrew /bin/bash -c "$(curl -fsSL https://gitee.com/ineo6/homebrew-install/raw/master/install.sh)"安装pyenv brew install pyenv添加到终端使用的配置文件.zshrc、.bashrc 避免不必要的麻烦两个终端的配置文件都进行添加&#xff0c;文件在当前用户目…...

通过注意力调节实现更好的文本到图像生成对齐

近年来&#xff0c;生成性AI技术在众多领域取得了前所未有的进步。大规模预训练模型的出现激发了各种下游任务中的新应用。这在文本到图像生成领域尤为明显&#xff0c;例如Stable Diffusion、DALL-E 2和Imagen等模型已经显著展示了它们的能力。尽管如此&#xff0c;复杂提示中…...

Java开发大厂面试第26讲:生产环境如何排查问题和优化 JVM?

通过前面几个课时的学习&#xff0c;相信你对 JVM 的理论及实践等相关知识有了一个大体的印象。而本课时将重点讲解 JVM 的排查与优化&#xff0c;这样就会对 JVM 的知识点有一个完整的认识&#xff0c;从而可以更好地应用于实际工作或者面试了。 我们本课时的面试题是&#x…...

计算机科学的先驱者们

1. 艾伦图灵&#xff08;Alan Turing&#xff09;&#xff1a; 图灵是计算机科学和人工智能的先驱之一&#xff0c;他提出了“图灵机”的概念&#xff0c;这是一种理论上的计算模型&#xff0c;奠定了现代计算机理论的基础。在第二次世界大战期间&#xff0c;图灵领导了一个团…...

哈希双指针

文章目录 一、哈希1.1两数之和1.2字母异位词分组1.3最长子序列 二、双指针2.1[移动零](https://leetcode.cn/problems/move-zeroes/description/?envTypestudy-plan-v2&envIdtop-100-liked)2.2[盛最多水的容器](https://leetcode.cn/problems/container-with-most-water/d…...

【网络】UDP协议

应用层协议是请求与响应服务&#xff0c;客户端的请求与服务器的响应是通过应用层传输到网络中的&#xff0c;但再实际上&#xff0c;应用层并不能直接通信&#xff0c;需要将数据进行报头的封装&#xff0c;向下层交付&#xff0c;贯穿整个协议栈。我们已经谈到应用层协议负责…...

牛马真的沉默了,入职第一天就干活

入职第一天就干活的&#xff0c;就问还有谁&#xff0c;搬来一台N手电脑&#xff0c;第一分钟开机&#xff0c;第二分钟派活&#xff0c;第三分钟干活&#xff0c;巴适。。。。。。 打开代码发现问题不断 读取配置文件居然读取两个配置文件&#xff0c;一个读一点&#xff0c;…...

解决在cmd里下载的库,但IDLE还是显示不存在的问题

原因一&#xff1a; 环境变量配置 首先&#xff0c;你需要确认你安装库的时候使用的Python环境是否和IDLE使用的Python环境是同一个。如果cmd中你使用的是系统路径下的Python&#xff0c;而IDLE使用的是另一个路径下的Python&#xff0c;那么你在cmd中下载的库&#xff0c;IDL…...

嵌入式全栈开发学习笔记---C语言笔试复习大全23

目录 联合体 联合体的定义 联合体的长度 如果来判断设备的字节序&#xff1f; 如何把大端数据转换成小端数据&#xff1f; 枚举 枚举的定义 上一篇复习了结构体&#xff0c;这一节复习联合体和枚举。 说明&#xff1a;我们学过单片机的一般都是有C语言基础的了&#xff…...

C++函数指针,键值对集合的学习

这段代码使用了 std::unordered_map 来存储 std::wstring 作为键&#xff08;key&#xff09;&#xff0c;而对应的值&#xff08;value&#xff09;是一个 std::function<void(std::array<int, 5>, SomeClass&, int)> 类型的函数指针。这个结构使得根据字符串…...

新人攻略:避开这3大坑,让老员工主动带你飞!

进入职场的新人们&#xff0c;常常会感到困惑和挑战。他们可能会发现自己在与老员工的交流中遇到难题&#xff0c;甚至发现老员工并不愿意花费时间和精力去指导他们。这背后的原因是什么呢&#xff1f;又该如何改善这一现象呢&#xff1f;本文将从新员工的角度出发&#xff0c;…...

汽车液态电池隔膜的作用

标签: 汽车液态电池隔膜的作用; 聚乙烯(PE);聚丙烯(PP) 问题:汽车液态电池隔膜的作用? 汽车液态电池隔膜的作用 汽车液态电池中的隔膜是一个至关重要的组件,它在电池的性能、安全性和寿命方面起着关键作用。下面详细讲述隔膜的主要功能和作用: 1. 电化学隔离 隔…...

汽车液态电池充电时,充电时的化学反应是怎样的? 电池电量是怎么充满的?

标签: 汽车液态电池充电时的化学反应; 电池充电过程;锂电池,石墨负极 问题:汽车液态电池充电时,充电时的化学反应是怎样的? 电池电量是怎么充满的? 汽车液态电池充电时的化学反应 汽车液态电池(如锂离子电池)在充电时,通过电化学反应将电能转化为化学能并储存在电…...

Topk问题以及二叉树的三种层序遍历和基本操作

一、Topk问题 1、问题描述 TOP-K问题&#xff1a;即求数据结合中前K个最大的元素或者最小的元素&#xff0c;一般情况下数据量都比较大。 比如&#xff1a;专业前10名、世界500强、富豪榜、游戏中前100的活跃玩家等。 2、思路 对于Top-K问题&#xff0c;能想到的最简单直接的…...

AX-MES生产制造管理系统-总览

前言说起 MES 就不得不说 ERP&#xff0c;但是 ERP 大家基本上都知道&#xff0c;MES 就不一定了&#xff0c;常见的 ERP 系统包括 SAP、金蝶、用友等&#xff0c;ERP的流程相对来说也比较统一&#xff1b;MES就不同了&#xff0c;基本上熟悉业务流程的软件公司都可以开发并实施…...

【MySQL数据库 | 第一篇】 概述

数据库相关概念&#xff1a; 数据库(Database)&#xff1a;数据库是指一组有组织的数据的集合&#xff0c;通过计算机程序进行管理和访问。数据库管理系统&#xff1a;操纵和管理数据库的大型软件SQL&#xff1a;操作关系型数据库的编程语言&#xff0c;定义了一套操作关系型数…...

举一个具体例子说明为什么索引不是越多越好,举具体字段

文章目录1. 核心舞台&#xff1a;笔记表 (t_note) 结构设计&#x1f6a8; 错误的操作&#xff1a;2. 结合具体字段&#xff0c;拆解三大翻车现场现场一&#xff1a;给 view_count&#xff08;浏览量&#xff09;加索引 —— 导致写放大&#xff0c;拖垮数据库现场二&#xff1a…...

从安装到排错:手把手解决Linux服务器上Nacos启动失败的十大常见问题

从安装到排错&#xff1a;手把手解决Linux服务器上Nacos启动失败的十大常见问题当你在Linux服务器上部署Nacos时&#xff0c;是否遇到过启动失败却无从下手的困境&#xff1f;作为阿里巴巴开源的服务发现和配置管理平台&#xff0c;Nacos在微服务架构中扮演着重要角色。然而&am…...

3步快速上手Whisper-WebUI:轻松实现语音转字幕的完整指南

3步快速上手Whisper-WebUI&#xff1a;轻松实现语音转字幕的完整指南 【免费下载链接】Whisper-WebUI A Web UI for easy subtitle using whisper model. 项目地址: https://gitcode.com/gh_mirrors/wh/Whisper-WebUI 还在为视频制作繁琐的字幕而烦恼吗&#xff1f;Whis…...

京东自动购物终极指南:告别缺货烦恼,智能抢购神器

京东自动购物终极指南&#xff1a;告别缺货烦恼&#xff0c;智能抢购神器 【免费下载链接】Jd-Auto-Shopping 京东商品补货监控及自动下单 项目地址: https://gitcode.com/gh_mirrors/jd/Jd-Auto-Shopping 还在为心仪商品瞬间售罄而苦恼吗&#xff1f;还在熬夜等待补货却…...

NPU跑LLM实战指南:KV Cache动态性如何突破硬件限制

NPU跑LLM实战指南:KV Cache动态性如何突破硬件限制 副标题: 从预分配+Attention Mask到三层软件栈,完整解析NPU推理架构 痛点:为什么NPU跑LLM这么难? LLM的生成机制和NPU的硬件特性存在根本冲突: LLM特性 NPU特性 冲突点 逐token生成 固定shape执行 KV Cache动态增长 动…...

WarcraftHelper:让经典魔兽争霸3完美适配现代电脑的终极解决方案

WarcraftHelper&#xff1a;让经典魔兽争霸3完美适配现代电脑的终极解决方案 【免费下载链接】WarcraftHelper Warcraft III Helper , support 1.20e, 1.24e, 1.26a, 1.27a, 1.27b 项目地址: https://gitcode.com/gh_mirrors/wa/WarcraftHelper 还在为魔兽争霸3在现代操…...

Fiddler手机断网真相:TLS握手与证书固定的协议级拦截

1. 为什么Fiddler一开&#xff0c;手机就断网&#xff1f;这不是配置问题&#xff0c;是协议层的“信任危机”Fiddler抓包手机流量&#xff0c;本该是移动开发、测试、安全分析中最基础的操作之一。但几乎每个刚上手的人&#xff0c;都会在第二天早上发现&#xff1a;手机Wi-Fi…...

告别Selenium?手把手教你用Playwright录制脚本,5分钟搞定Web自动化测试

5分钟极速上手Playwright脚本录制&#xff1a;零代码实现Web自动化测试当产品经理突然丢给你一个刚上线的电商活动页&#xff0c;要求半小时内完成所有核心链路测试时&#xff0c;传统的手写Selenium脚本显然来不及。作为测试工程师&#xff0c;我最近发现微软开源的Playwright…...