96-基于stm32单片机多功能宠物定时自动喂食器Proteus仿真+程序源码

本文主要是介绍96-基于stm32单片机多功能宠物定时自动喂食器Proteus仿真+程序源码,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

一:功能介绍

1、采用stm32单片机+LCD1602+DHT11温湿度传感器+DS1302传感器+按键+蜂鸣器+LED灯+电机,制作一个多功能可显示温湿度、光照强度的可调时钟闹钟;

2、通过按键设置喂食定时的小时和分钟;当定时时间到,LED闪烁提醒,打开喂食电机进行喂食;

3、该多功能喂食器可以采集温湿度,当温度大于一定值,蜂鸣器报警提醒高温环境;

4、LCD1602显示ds1302时钟的时间和采集的温湿度、定时时间;

二:仿真演示视频+程序简要讲解:(程序有中文注释,新手容易看懂)

96-基于stm32单片机多功能宠物定时自动喂食器Proteus仿真+程序源码+讲解视频

三:设计软件介绍

本设计使用C语言编程设计,程序代码采用keil5编写,程序有中文注释,新手容易看懂,仿真采用Proteus软件进行仿真演示视频使用的是Proteus8.9版本;资料包里有相关软件包,可自行下载安装。

四:程序打开方法

特别注意:下载资料包以后一定要先解压!(建议解压到桌面上,文件路径太深会导致程序打开异常),解压后再用keil5打开。

e9d8600285fb2abc5d65369af61e42fc.png

bde9861cfab9fdd73e8477b10bcd685a.png

程序部分展示,有中文注释,新手容易看懂
//T1 温度WrByte1602(0,0,'T'); //.WrByte1602(0,1,'='); //.    WrByte1602(0,2,AsciiCode[wendu%100/10]);WrByte1602(0,3,AsciiCode[wendu%10]);WrByte1602(0,4,' ');  //T2 湿度WrByte1602(0,8,'H'); //.WrByte1602(0,9,'='); //.    WrByte1602(0,10,AsciiCode[shidu%100/10]);WrByte1602(0,11,AsciiCode[shidu%10]);WrByte1602(0,12,' ');    xxx=0;yyy=1;WrByte1602(yyy,xxx++,AsciiCode[shi%100/10]);//时间显示WrByte1602(yyy,xxx++,AsciiCode[shi%10]);WrByte1602(yyy,xxx++,':');    WrByte1602(yyy,xxx++,AsciiCode[fen%100/10]);WrByte1602(yyy,xxx++,AsciiCode[fen%10]);WrByte1602(yyy,xxx++,':');  WrByte1602(yyy,xxx++,AsciiCode[miao%100/10]);WrByte1602(yyy,xxx++,AsciiCode[miao%10]);WrByte1602(yyy,xxx++,' ');                    //定时显示WrByte1602(yyy,xxx++,'T');    WrByte1602(yyy,xxx++,AsciiCode[xiaoshi%100/10]);WrByte1602(yyy,xxx++,AsciiCode[xiaoshi%10]);WrByte1602(yyy,xxx++,':');    WrByte1602(yyy,xxx++,AsciiCode[fenzhong%100/10]);WrByte1602(yyy,xxx++,AsciiCode[fenzhong%10]);WrByte1602(yyy,xxx++,' ');  }int main(void)
{  char  i=0;//时钟配置SystemInit();    SystemCoreClockUpdate();//引脚配置GPIO_Configuration();//LCD1602初始化Init1602();NVICConfig();//RCC时钟开启RCC_APB2PeriphClockCmd(RCC_APB2Periph_TIM1, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM2, ENABLE);RCC_APB1PeriphClockCmd(RCC_APB1Periph_TIM3, ENABLE);DS1302_Configuration();  //DS1302数据编码格式需要进行转换ReadDS1302Clock(time_data);  shi = time_data[3]%16+time_data[3]/16*10;fen = time_data[4]%16+time_data[4]/16*10;  miao = time_data[5]%16+time_data[5]/16*10;  xiaoshi=shi;fenzhong = fen+1;PBout(14)=PBout(6)=1;//LED灯和蜂鸣器默认关闭while (1){    i++;delay_ms(10);if(i>=100){  i=0;            //读取室内温湿度DHT11_receive(&shidu,&wendu);ReadDS1302Clock(time_data);  shi = time_data[3]%16+time_data[3]/16*10;fen = time_data[4]%16+time_data[4]/16*10;  miao = time_data[5]%16+time_data[5]/16*10;        //显示全部参数Display(); }//按键扫描anjiansaomiao();//定时时间到if(xiaoshi==shi && fenzhong==fen ){PBout(14)=0;//LED灯亮 开始喂食}else  PBout(14)=1;//LED灯灭 喂食关闭if(wendu>35)   PBout(6)=0;//环境温度过高  蜂鸣器提醒else PBout(6)=1;}

:仿真文件(采用Proteus打开)

b3b2755e47691911ca03c0b4e8c84753.png

f47817536197f08131706ebfab6670be.png

c0458f6e770d35de9978d9010db578f8.png

六:资料清单展示(文件中包含的相关资料)

5e4d1752e40e32dae91804444ec580d3.png

百度云盘资料下载链接

这篇关于96-基于stm32单片机多功能宠物定时自动喂食器Proteus仿真+程序源码的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/391041

相关文章

Python使用Tenacity一行代码实现自动重试详解

《Python使用Tenacity一行代码实现自动重试详解》tenacity是一个专为Python设计的通用重试库,它的核心理念就是用简单、清晰的方式,为任何可能失败的操作添加重试能力,下面我们就来看... 目录一切始于一个简单的 API 调用Tenacity 入门:一行代码实现优雅重试精细控制:让重试按我

Oracle数据库定时备份脚本方式(Linux)

《Oracle数据库定时备份脚本方式(Linux)》文章介绍Oracle数据库自动备份方案,包含主机备份传输与备机解压导入流程,强调需提前全量删除原库数据避免报错,并需配置无密传输、定时任务及验证脚本... 目录说明主机脚本备机上自动导库脚本整个自动备份oracle数据库的过程(建议全程用root用户)总结

SQL Server跟踪自动统计信息更新实战指南

《SQLServer跟踪自动统计信息更新实战指南》本文详解SQLServer自动统计信息更新的跟踪方法,推荐使用扩展事件实时捕获更新操作及详细信息,同时结合系统视图快速检查统计信息状态,重点强调修... 目录SQL Server 如何跟踪自动统计信息更新:深入解析与实战指南 核心跟踪方法1️⃣ 利用系统目录

Spring Security 单点登录与自动登录机制的实现原理

《SpringSecurity单点登录与自动登录机制的实现原理》本文探讨SpringSecurity实现单点登录(SSO)与自动登录机制,涵盖JWT跨系统认证、RememberMe持久化Token... 目录一、核心概念解析1.1 单点登录(SSO)1.2 自动登录(Remember Me)二、代码分析三、

MyBatis-Plus 自动赋值实体字段最佳实践指南

《MyBatis-Plus自动赋值实体字段最佳实践指南》MyBatis-Plus通过@TableField注解与填充策略,实现时间戳、用户信息、逻辑删除等字段的自动填充,减少手动赋值,提升开发效率与... 目录1. MyBATis-Plus 自动赋值概述1.1 适用场景1.2 自动填充的原理1.3 填充策略

golang程序打包成脚本部署到Linux系统方式

《golang程序打包成脚本部署到Linux系统方式》Golang程序通过本地编译(设置GOOS为linux生成无后缀二进制文件),上传至Linux服务器后赋权执行,使用nohup命令实现后台运行,完... 目录本地编译golang程序上传Golang二进制文件到linux服务器总结本地编译Golang程序

使用Docker构建Python Flask程序的详细教程

《使用Docker构建PythonFlask程序的详细教程》在当今的软件开发领域,容器化技术正变得越来越流行,而Docker无疑是其中的佼佼者,本文我们就来聊聊如何使用Docker构建一个简单的Py... 目录引言一、准备工作二、创建 Flask 应用程序三、创建 dockerfile四、构建 Docker

SpringBoot+Docker+Graylog 如何让错误自动报警

《SpringBoot+Docker+Graylog如何让错误自动报警》SpringBoot默认使用SLF4J与Logback,支持多日志级别和配置方式,可输出到控制台、文件及远程服务器,集成ELK... 目录01 Spring Boot 默认日志框架解析02 Spring Boot 日志级别详解03 Sp

MySQL 定时新增分区的实现示例

《MySQL定时新增分区的实现示例》本文主要介绍了通过存储过程和定时任务实现MySQL分区的自动创建,解决大数据量下手动维护的繁琐问题,具有一定的参考价值,感兴趣的可以了解一下... mysql创建好分区之后,有时候会需要自动创建分区。比如,一些表数据量非常大,有些数据是热点数据,按照日期分区MululbU

浏览器插件cursor实现自动注册、续杯的详细过程

《浏览器插件cursor实现自动注册、续杯的详细过程》Cursor简易注册助手脚本通过自动化邮箱填写和验证码获取流程,大大简化了Cursor的注册过程,它不仅提高了注册效率,还通过友好的用户界面和详细... 目录前言功能概述使用方法安装脚本使用流程邮箱输入页面验证码页面实战演示技术实现核心功能实现1. 随机