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

0158-基于单片机-温湿度智能自控-系统设计(1602+18B20+AD0832+24C02)

功能描述

1、采用51单片机作为主控芯片;
2、采用18B20检测温度;
3、采用模拟传感器+AD0832检测湿度;
4、通过按键设置温湿度调控范围阈值、报警范围阀值;调控范围小于报警范围,只调控不报警。
5、如果温度过高,启动散热;温度过低,启动加热;湿度过高,启动除湿;湿度过低,启动加湿。
6、采用1602显示:温湿度、上下限阀值;
7、采用24C02存储设置,掉电保存;

电路设计

采用Altium Designer作为电路设计工具。Altium Designer通过把原理图设计、PCB绘制编辑、拓扑逻辑自动布线、信号完整性分析和设计输出等技术的完美融合,为设计者提供了全新的设计解决方案,使设计者可以轻松进行设计,熟练使用这一软件必将使电路设计的质量和效率大大提高。

单片机管脚说明:

P0端口(P0.0-P0.7):P0口为一个8位漏极开路双向I/O口,每个引脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。

P1端口(P1.0-P1.7):P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高电平,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。

P2端口(P2.0-P2.7):P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口,用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

P3端口(P3.0-P3.7):P3口管脚是一个带有内部上拉电阻的8位的双向I/O端口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入端时,由于外部下拉为低电平,P3口将输出电流(ILL)。P3口同时为闪烁编程和编程校验接收一些控制信号。

仿真设计

采用Proteus作为仿真设计工具。Proteus是一款著名的EDA工具(仿真软件),从原理图布图、代码调试到单片机与外围电路协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。

主程序设计

void main() { //初始化存储 wen_lim0=At24c02Read(0); if(wen_lim0>99) wen_lim0=25; wen_lim1=At24c02Read(1); if(wen_lim1>99) wen_lim1=30; shi_lim0=At24c02Read(2); if(shi_lim0>99) shi_lim0=50; shi_lim1=At24c02Read(3); if(shi_lim1>99) shi_lim1=60; wen_L=At24c02Read(4); if(wen_L>99) wen_L=20; wen_H=At24c02Read(5); if(wen_H>99) wen_H=50; shi_L=At24c02Read(6); if(shi_L>99) shi_L=30; shi_H=At24c02Read(7); if(shi_H>99) shi_H=80; init_1602(); hang1[9]=0xdf; hang3[5]=0xdf; hang3[10]=0xdf; TMOD|=0X01; TH0=0X3C; TL0=0XB0; ET0=1;//打开定时器0中断允许 EA=1;//打开总中断 TR0=1;//打开定时器 while(1) { //按键检测 if(!k4)//确认 { delay(1000); if(!k4) { flag=0; } while(!k4); } if(!k1)//切换 { delay(1000); if(!k1) { if(flag<8) flag++; else flag=0; } while(!k1); } if(!k2)//加 { delay(1000); if(!k2) { switch(flag) { case 1: //温度控制阀值,低 if(wen_lim0<wen_lim1) wen_lim0++; At24c02Write(0,wen_lim0); break; case 2: //温度控制阀值,高 if(wen_lim1<80) wen_lim1++; At24c02Write(1,wen_lim1); break; case 3: //湿度控制阀值,低 if(shi_lim0<shi_lim1) shi_lim0++; At24c02Write(2,shi_lim0); break; case 4: //湿度控制阀值,高 if(shi_lim1<80) shi_lim1++; At24c02Write(3,shi_lim1); break; case 5: //温度报警阀值,低 if(wen_L<wen_H) wen_L++; At24c02Write(4,wen_L); break; case 6: //温度报警阀值,高 if(wen_H<100) wen_H++; At24c02Write(5,wen_H); break; case 7: //湿度报警阀值,低 if(shi_L<shi_H) shi_L++; At24c02Write(6,shi_L); break; case 8: //湿度报警阀值,高 if(shi_H<100) shi_H++; At24c02Write(7,shi_H); } } while(!k2); }

源文件获取

👇👇👇 点击、扫码、发送关键字“温湿度”获取

http://www.jsqmd.com/news/459716/

相关文章:

  • verl批量推理优化:提高生成任务吞吐量
  • 从Python到NES:pyNES编译器工作原理深度剖析
  • 快慢指针找链表中点:为什么是fast.next and fast.next.next?
  • web第一周任务
  • 图漾相机Vcamera Python语言---(4.X.X)版本文档(待完善版本)
  • Nunchaku-FLUX.1-dev开源模型部署实录:CentOS7+RTX4090D环境搭建全过程
  • Linuxbrew vs 系统包管理器:为什么选择Linuxbrew管理Unix工具?
  • 探索IKEA VINDRIKTNING内部结构:传感器通信协议与硬件接口详解
  • Qwen3-14B快速入门:三步在Ollama运行14B大模型
  • Nanbeige 4.1-3B Streamlit UI多场景落地:内容创作/学习辅助/角色扮演
  • 解决RSpec-Core常见问题:测试新手到专家的进阶之路
  • Python3.9镜像部署教程:Miniconda环境快速搭建实战指南
  • 为什么选择ENSwiftSideMenu?轻量级iOS侧边菜单组件深度评测
  • CLIP-GmP-ViT-L-14图文匹配工具实战教程:支持负样本输入与区分度量化分析
  • 为什么选择RunWASI?轻量级容器化运行时的7大核心优势
  • terraform-google-kubernetes-engine模块解析:构建可复用的GKE配置
  • Linuxbrew (Legacy) 公式开发入门:10 个实用技巧快速上手
  • replace-jquery高级技巧:自定义生成指定jQuery方法的原生实现
  • 匿名代码块与静态代码块
  • Angular UI Tree实战案例:构建可折叠的文件目录浏览器
  • CLIP-GmP-ViT-L-14图文匹配工具部署教程:Kubernetes单节点轻量集群部署方案
  • OpenClaw安全吗?斯坦福哈佛最新发文—混乱智能体:AI自主智能体的安全漏洞实证研究
  • AI赋能测试
  • 10分钟上手RDVTabBarController:iOS新手的快速集成指南
  • VaLiK:无需标注的多模态知识图谱构建,提升大模型推理能力
  • 2026年3月成都租车公司综合对比与推荐榜:五家服务商深度评测与选择指南 - 品牌推荐
  • PAT 乙级 1018
  • Guard::LiveReload高级技巧:自定义配置实现个性化开发流程
  • 宁波鸿雁包装材料有限公司电话查询:业务咨询方式与注意事项 - 品牌推荐
  • linphone-android与其他SIP客户端对比:为什么它是开源通信的最佳选择