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智听未来一站式有声阅读平台听书系统小程序源码

智听未来,一站式有声阅读平台听书系统 🌟 开篇:遇见未来,从“智听”开始 在这个快节奏的时代,你是否渴望在忙碌的间隙,找到一片属于自己的宁静角落?是否梦想着能随时随地,沉浸在知识的海洋,或是故事的奇幻世界里?今天,就让我带你一起探索“智听未来”——这一站式有声阅读平台听书系统,它正悄悄改变着我们的阅读方式,让未来触手可及! 📚 第一站:海量资源,应有尽有 走进“智听

让树莓派智能语音助手实现定时提醒功能

最初的时候是想直接在rasa 的chatbot上实现,因为rasa本身是带有remindschedule模块的。不过经过一番折腾后,忽然发现,chatbot上实现的定时,语音助手不一定会有响应。因为,我目前语音助手的代码设置了长时间无应答会结束对话,这样一来,chatbot定时提醒的触发就不会被语音助手获悉。那怎么让语音助手也具有定时提醒功能呢? 我最后选择的方法是用threading.Time

Java ArrayList扩容机制 (源码解读)

结论:初始长度为10,若所需长度小于1.5倍原长度,则按照1.5倍扩容。若不够用则按照所需长度扩容。 一. 明确类内部重要变量含义         1:数组默认长度         2:这是一个共享的空数组实例,用于明确创建长度为0时的ArrayList ,比如通过 new ArrayList<>(0),ArrayList 内部的数组 elementData 会指向这个 EMPTY_EL

如何在Visual Studio中调试.NET源码

今天偶然在看别人代码时,发现在他的代码里使用了Any判断List<T>是否为空。 我一般的做法是先判断是否为null,再判断Count。 看了一下Count的源码如下: 1 [__DynamicallyInvokable]2 public int Count3 {4 [__DynamicallyInvokable]5 get

工厂ERP管理系统实现源码(JAVA)

工厂进销存管理系统是一个集采购管理、仓库管理、生产管理和销售管理于一体的综合解决方案。该系统旨在帮助企业优化流程、提高效率、降低成本,并实时掌握各环节的运营状况。 在采购管理方面,系统能够处理采购订单、供应商管理和采购入库等流程,确保采购过程的透明和高效。仓库管理方面,实现库存的精准管理,包括入库、出库、盘点等操作,确保库存数据的准确性和实时性。 生产管理模块则涵盖了生产计划制定、物料需求计划、

基于UE5和ROS2的激光雷达+深度RGBD相机小车的仿真指南(五):Blender锥桶建模

前言 本系列教程旨在使用UE5配置一个具备激光雷达+深度摄像机的仿真小车,并使用通过跨平台的方式进行ROS2和UE5仿真的通讯,达到小车自主导航的目的。本教程默认有ROS2导航及其gazebo仿真相关方面基础,Nav2相关的学习教程可以参考本人的其他博客Nav2代价地图实现和原理–Nav2源码解读之CostMap2D(上)-CSDN博客往期教程: 第一期:基于UE5和ROS2的激光雷达+深度RG

【STM32】SPI通信-软件与硬件读写SPI

SPI通信-软件与硬件读写SPI 软件SPI一、SPI通信协议1、SPI通信2、硬件电路3、移位示意图4、SPI时序基本单元(1)开始通信和结束通信(2)模式0---用的最多(3)模式1(4)模式2(5)模式3 5、SPI时序(1)写使能(2)指定地址写(3)指定地址读 二、W25Q64模块介绍1、W25Q64简介2、硬件电路3、W25Q64框图4、Flash操作注意事项软件SPI读写W2

EMLOG程序单页友链和标签增加美化

单页友联效果图: 标签页面效果图: 源码介绍 EMLOG单页友情链接和TAG标签,友链单页文件代码main{width: 58%;是设置宽度 自己把设置成与您的网站宽度一样,如果自适应就填写100%,TAG文件不用修改 安装方法:把Links.php和tag.php上传到网站根目录即可,访问 域名/Links.php、域名/tag.php 所有模板适用,代码就不粘贴出来,已经打

基于51单片机的自动转向修复系统的设计与实现

文章目录 前言资料获取设计介绍功能介绍设计清单具体实现截图参考文献设计获取 前言 💗博主介绍:✌全网粉丝10W+,CSDN特邀作者、博客专家、CSDN新星计划导师,一名热衷于单片机技术探索与分享的博主、专注于 精通51/STM32/MSP430/AVR等单片机设计 主要对象是咱们电子相关专业的大学生,希望您们都共创辉煌!✌💗 👇🏻 精彩专栏 推荐订阅👇🏻 单片机

跨系统环境下LabVIEW程序稳定运行

在LabVIEW开发中,不同电脑的配置和操作系统(如Win11与Win7)可能对程序的稳定运行产生影响。为了确保程序在不同平台上都能正常且稳定运行,需要从兼容性、驱动、以及性能优化等多个方面入手。本文将详细介绍如何在不同系统环境下,使LabVIEW开发的程序保持稳定运行的有效策略。 LabVIEW版本兼容性 LabVIEW各版本对不同操作系统的支持存在差异。因此,在开发程序时,尽量使用