最近设计了一个项目基于单片机的宠物喂食器系统,与大家分享一下:

一、基本介绍

项目名:宠物喂食器
项目编号:mcuclub-jj-053
单片机类型:STC89C52、STM32F103C8T6
具体功能:
1、通过DS1302获取时间
2、通过AT24C02存储设定的投喂时间
3、通过按键可修正实时时间、添加或删除投喂时间、查看投喂时间
4、当投喂时间到达时,蜂鸣器报警提醒(2s),并开启两个继电器(喂食、喂水)
5、通过显示屏显示数据
拓展功能:通过蓝牙模块手机端可分别控制两个继电器及蜂鸣器报警

二、51实物图

单片机型号:STC89C52

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

三、51仿真图

仿真软件版本:proteus8.9

电路连线方式:网络标号连线方式

注意:部分实物元器件仿真中没有,仿真中会用其他工作原理相似的元件代替,这样可能导致实物程序和仿真程序不一样

四、32实物图

单片机型号:STM32F103C8T6

板子为绿色PCB板,两层板,厚度1.2,上下覆铜接地。元器件基本上为插针式,个别降压芯片会使用贴片式。

供电接口:TYPE-C

五、原理图

软件版本:AD2013

电路连线方式:网络标号连线方式

注意:原理图只是画出了模块的引脚图,而并不是模块的内部结构原理图

六、PCB图

由原理图导出,封装很大一部分都是作者自己绘制,不提供封装库,只提供连接好的源文件。中间有一个项目编号,隐藏在单片机底座下,插入单片机后不会看到。

两层板,上下覆铜接地。

七、系统框图

本设计以单片机为核心控制器,加上其他模块一起组成此次设计宠物喂食器的整个系统,其中包括中控部分、输入部分和输出部分。中控部分采用了单片机控制器,其主要作用是获取输入部分的数据,经过内部处理,逻辑判断,最终控制输出部分。输入由四部分组成,第一部分是时钟模块,通过该模块获取当前的时间;第二部分是存储模块,通过该模块存储投喂时间;第三部分是按键模块,用户可以根据自己的需求设置定时投喂时间等信息;第四部分是供电模块,通过该模块可给整个系统进行供电。输出由三部分组成,第一部分是显示模块,通过该模块可以显示监测的数据以及设置的阈值;第二部分是继电器模块,通过继电器控制投喂实物或者水;第三部分是声光报警模块,定时投喂时间到达进行报警提醒。除此之外,蓝牙模块既作为输入又作为输出,蓝牙模块和手机进行连接,可以将监测的数据传输到用户手机端,用户也可以通过手机端发送指令控制继电器的工作及其模式的切换。具体系统框图如图所示。

八、软件设计流程

系统的主流程图如图所示。在主程序中:首先对各个模块进行初始化,随后进入while主循环,在主循环中,首先进入第一个函数按键函数,该函数主要分为两部分,第一部分为调用按键扫描函数获取按键键值,第二部分通过键值进行相应的处理操作,包括切换界面、设置时间、开关水等;紧接着进入第二个函数监测函数,该函数主要通过调用相应的驱动函数获取测量值,并通过蓝牙模块将监测的数据传输到手机端,用户也可以通过手机端发送指令,设备根据用户发送的指令执行对应的处理;紧接着进入第三个函数显示函数,该函数显示监测值及阈值;最后进入第四个函数处理函数,判断当前时间是否是投喂时间,如果是,开始投喂5S,且开启两秒蜂鸣器,手动喂食,定时到达时,关闭继电器。

九、部分程序展示

软件版本:keil5

逻辑程序和驱动程序分开,分布于main.c和其他.c文件

void Manage_function(void)
{uchar i = 0;if(flag_display == 0)                  //测量界面{if(flag_time_feed == 0){for(i = 0; i < set_feed_count; i++)   //判断当前时间是否是投喂时间,如果是,开始投喂5S,且开启两秒蜂鸣器{if(p_feeddata[i].time_shi == ds1302_buf[4] && p_feeddata[i].time_fen == ds1302_buf[5] && ds1302_buf[6] == 0){BEEP = 0;RELAY_TS = 0;RELAY_WS = 0;beep_crtl = 1;flag_timer_begin = 1;flag_time_feed = 1;break;}}}else{if(flag_1s < 2){if(time_num % 20 == 0)BEEP = ~BEEP;}else{BEEP = 1;beep_crtl = 0;if(flag_1s >= 5){flag_timer_begin = 0;flag_time_feed = 0;flag_1s = 0;RELAY_TS = 1;RELAY_WS = 1;}}}if(flag_time_feed == 0 && flag_manu == 1)   //手动喂食,定时到达时,关闭继电器{if(flag_1s >= 3){flag_timer_begin = 0;flag_manu = 0;RELAY_TS = 1;RELAY_WS = 1;beep_crtl = 0;BEEP = 1;}else{if(beep_crtl == 1){if(time_num % 20 == 0)BEEP = ~BEEP;}}}}else                                                            //设置界面{BEEP = 1;RELAY_TS = 1;RELAY_WS = 1;}
}

【单片机毕业设计】【mcuclub-jj-053】基于单片机的宠物喂食器的设计相关推荐

  1. 【分享】基于单片机嵌入式的家用智能节水淋浴控制器的设计-基于单片机的电子贺卡控制系统设计-基于单片机的倒计时牌控制系统设计-基于单片机的彩灯控制器系统设计-多模式彩灯-单片机的八路路数字电压表控制设计

    1334基于单片机嵌入式的家用智能节水淋浴控制器的设计-全套毕设课设设计资料 三个ds18b20分别采集进水口热水  冷水 和温水的水温,然后分别显示出来,按下开始按键,系统初始化,自动设置出水温度为 ...

  2. 计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW)

    计算机毕业设计Python+uniapp+安卓基于Android健康饮食搭配的设计与实现(WEB+APP+LW) 该项目含有源码.文档.程序.数据库.配套开发软件.软件安装教程 项目运行 环境配置: ...

  3. android 课程表论文,毕业设计(论文)-基于Android的课程表管理的设计与实现.doc...

    太原理工大学毕业设计(论文)用纸 太 原 理 工 大 学 毕业设计(论文)题目: 基于android的课程表管理的设计与实现 全套设计加扣 3012250582 毕业设计(论文)要求及原始数据(资料) ...

  4. 宠物喂食器的设计-基于涂鸦三明治三件套

    宠物喂食器的设计-基于涂鸦三明治三件套 本文章允许涂鸦智能转载使用 去年疫情突发,全国很多地区封城,封小区,让原本备受宠爱的主子与铲屎官异地分离.遇到有准备的铲屎官,主子们还能勉强度日,那些没有准备的 ...

  5. 基于ssm的宠物商城网站设计与实现

    项目描述 临近学期结束,还是毕业设计,你还在做java程序网络编程,期末作业,老师的作业要求觉得大了吗?不知道毕业设计该怎么办?网页功能的数量是否太多?没有合适的类型或系统?等等.这里根据疫情当下,你 ...

  6. 单片机声光电子琴程序流程图_基于单片机的智能家居控制系统毕业设计

    次毕业设计主要包括硬件端和软件端,硬件端功能如下: 使用 DS1302 模块产生时钟数据并实现时间和日历实时显示: 使用 DS18B20 模块检测周围环境温度并实时显示: 使用烟雾和光敏传感器模块对房 ...

  7. 【设计方案分享】基于单片机温度监测监控报警系统设计-基于单片机钞票自动智能识别系统设计-基于单片机乒乓球游戏机控制系统设计-基于单片机温度监测监控报警系统设计-基于单片机矩阵键盘的电子密码锁设计

    820基于单片机温度监测监控报警系统设计-设计资料 温度监测器功能描述: 1.主控芯片用的是51单片机(STC89C51). 2.使用温度传感器DS18b20采集温度. 3.用1602液晶显示显示温度 ...

  8. 基于单片机乒乓球游戏机控制系统设计-基于单片机矩阵键盘的电子密码锁设计-基于单片机温度监测监控报警系统设计-基于单片机钞票自动智能识别系统设计-设计资料【转发分享】

    819基于单片机乒乓球游戏机控制系统设计-设计资料下载 乒乓球游戏机设计任务为: (1)使用乒乓游戏机的甲乙双方各在不同的位置发球或击球. (2)乒乓球的位置和移动方向由灯亮及依次点燃的方向决定,球移 ...

  9. 基于单片机c语言的豆浆机,基于单片机的智能豆浆机控制系统设计(附实物图,电路原理图,程序)...

    基于单片机的智能豆浆机控制系统设计(附实物图,电路原理图,程序)(任务书,开题报告,中期检查表,毕业论文11800字) 摘要 由于市面上的豆浆机不具有长时间保温的功能,打浆完成后残渣很多,而且打浆用时 ...

最新文章

  1. ALD对照CVD淀积技术的优势
  2. SpringMVC学习笔记四:数据绑定
  3. 网络病毒源的排查(2005年3月22日维护记录)
  4. 一个openMP编程处理图像的示例
  5. WIFI配网方式(AP模式、Smartconfig等模式)
  6. Intel Hex概述
  7. Linux学习总结(46)——Centos7.4设置开机自动登陆及网卡自动启用
  8. web测试与app功能测试的区别
  9. 错误: 代理抛出异常错误: java.rmi.server.ExportException: Port already in use: 1099; nested exception is
  10. 2017/08/03 工作日志
  11. mysqld_multi单机启动多个mysql
  12. Android--记录莫名其妙的引用、依赖冲突解决办法
  13. 知名国产论坛,凉了!!!!
  14. baidumap vue 判断范围_vue-baidu-map 行政区域划分
  15. 通信LOGO隐秘史(续集:运营商篇)
  16. python开发:开源pytesseract文字识别
  17. 如何在生化实验中选择合适的牛血清白蛋白(BSA)?
  18. Linux自动启动ssh方法
  19. 代码急转弯——Tupper(塔珀自指公式)
  20. 携手强化「内容审核」能力,融云与数美科技达成战略合作

热门文章

  1. 科研实习 | 南方科技大学魏鸿鑫老师机器学习课题组招收访问学生/全职RA
  2. 看完这篇还不会Elasticsearch,我跪搓衣板,90%程序员已收藏
  3. Matlab 画多根线,matlab plot画多条不同颜色的线
  4. 1139 First Contact (30分)[DFS]
  5. 不同Vlan之间的PC相互通信(二)
  6. 基于微信平台做视频直播时,如何裂变引流吸粉
  7. 如虎添翼 高德地图+Serverless 护航你的假日出行
  8. 【Java知识体系】JVM深入浅出,图解易懂,赶紧收藏,入股不亏
  9. TC Games 电脑玩手机游戏助手全新版本常见问题解决方法汇总
  10. opencv无法读取MP4格式视频