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

相关文章

Java中实现订单超时自动取消功能(最新推荐)

《Java中实现订单超时自动取消功能(最新推荐)》本文介绍了Java中实现订单超时自动取消功能的几种方法,包括定时任务、JDK延迟队列、Redis过期监听、Redisson分布式延迟队列、Rocket... 目录1、定时任务2、JDK延迟队列 DelayQueue(1)定义实现Delayed接口的实体类 (

将java程序打包成可执行文件的实现方式

《将java程序打包成可执行文件的实现方式》本文介绍了将Java程序打包成可执行文件的三种方法:手动打包(将编译后的代码及JRE运行环境一起打包),使用第三方打包工具(如Launch4j)和JDK自带... 目录1.问题提出2.如何将Java程序打包成可执行文件2.1将编译后的代码及jre运行环境一起打包2

shell脚本自动删除30天以前的文件(最新推荐)

《shell脚本自动删除30天以前的文件(最新推荐)》该文章介绍了如何使用Shell脚本自动删除指定目录下30天以前的文件,并通过crontab设置定时任务,此外,还提供了如何使用Shell脚本删除E... 目录shell脚本自动删除30天以前的文件linux按照日期定时删除elasticsearch索引s

在不同系统间迁移Python程序的方法与教程

《在不同系统间迁移Python程序的方法与教程》本文介绍了几种将Windows上编写的Python程序迁移到Linux服务器上的方法,包括使用虚拟环境和依赖冻结、容器化技术(如Docker)、使用An... 目录使用虚拟环境和依赖冻结1. 创建虚拟环境2. 冻结依赖使用容器化技术(如 docker)1. 创

Go Mongox轻松实现MongoDB的时间字段自动填充

《GoMongox轻松实现MongoDB的时间字段自动填充》这篇文章主要为大家详细介绍了Go语言如何使用mongox库,在插入和更新数据时自动填充时间字段,从而提升开发效率并减少重复代码,需要的可以... 目录前言时间字段填充规则Mongox 的安装使用 Mongox 进行插入操作使用 Mongox 进行更

C语言中自动与强制转换全解析

《C语言中自动与强制转换全解析》在编写C程序时,类型转换是确保数据正确性和一致性的关键环节,无论是隐式转换还是显式转换,都各有特点和应用场景,本文将详细探讨C语言中的类型转换机制,帮助您更好地理解并在... 目录类型转换的重要性自动类型转换(隐式转换)强制类型转换(显式转换)常见错误与注意事项总结与建议类型

Spring Boot 整合 ShedLock 处理定时任务重复执行的问题小结

《SpringBoot整合ShedLock处理定时任务重复执行的问题小结》ShedLock是解决分布式系统中定时任务重复执行问题的Java库,通过在数据库中加锁,确保只有一个节点在指定时间执行... 目录前言什么是 ShedLock?ShedLock 的工作原理:定时任务重复执行China编程的问题使用 Shed

IDEA如何让控制台自动换行

《IDEA如何让控制台自动换行》本文介绍了如何在IDEA中设置控制台自动换行,具体步骤为:File-Settings-Editor-General-Console,然后勾选Usesoftwrapsin... 目录IDEA如何让控制台自http://www.chinasem.cn动换行操作流http://www

vscode保存代码时自动eslint格式化图文教程

《vscode保存代码时自动eslint格式化图文教程》:本文主要介绍vscode保存代码时自动eslint格式化的相关资料,包括打开设置文件并复制特定内容,文中通过代码介绍的非常详细,需要的朋友... 目录1、点击设置2、选择远程--->点击右上角打开设置3、会弹出settings.json文件,将以下内

Go中sync.Once源码的深度讲解

《Go中sync.Once源码的深度讲解》sync.Once是Go语言标准库中的一个同步原语,用于确保某个操作只执行一次,本文将从源码出发为大家详细介绍一下sync.Once的具体使用,x希望对大家有... 目录概念简单示例源码解读总结概念sync.Once是Go语言标准库中的一个同步原语,用于确保某个操