基于51单片机宠物自动投料喂食器控制系统仿真设计( proteus仿真+程序+讲解视频)

news2024/9/30 1:28:50

基于51单片机宠物自动投料喂食器控制系统仿真设计( proteus仿真+程序+讲解视频)

仿真图proteus 7.8及以上

程序编译器:keil 4/keil 5

编程语言:C语言

设计编号:S0029

视频讲解

基于51单片机的宠物自动投料喂食器控制系统proteus仿真设计

主要功能:

结合实际情况,基于51单片机设计宠物自动投料喂食器控制系统。该系统应满足的功能要求为:

电机驱动,数码管(或液晶)显示、独立键盘。

具体功能:

\1. 采用C语言。

\2. 通过小键盘设置自动/手动喂食模式切换。

\3. 自动模式下,可设置喂食时间和当前时间,步进电机正转模拟投食,投食结束后电机反转:手动模式下,按键手动喂食开,手动喂食关;

\4. 数码管(或液晶)显示每次喂食时间和当前时间。

\5. 上位机监控功能要求:通过串口或USB口实现上/下位机通信,能够显示步进电机当前状态。

资料下载链接(可点击):

【腾讯文档】S0029 网盘链接

以下为本设计资料展示图:

仿真

img

开始仿真

img

开始仿真后显示当前实时时间,mos代表当前运行模式Z代表自动,S代表手动。串口显示电机工作状态Z是正转F是反转。按下自动模式按键,运行模式改为自动模式。按下手动模式按键,运行模式改为手动模式。手动模式下短按设置分别可以设置定时时间和当前实时时间,通过加减按键做调整,定时时间到电机正转后再反转。手动模式下,开盖按键电机正转模拟投食,关盖按键按下电机反转模拟投食结束。

程序:

img

主函数

void main(){
  	xiezhilin(0x01);    //显示清屏
	xiezhilin(0x38);   //显示模式设置
    xiezhilin(0x0c);     //光标设置
    TH1 = 0xFD;  //晶振11.0592mhz 波特率设为9600  
    TL1 = 0xFD;  
    TMOD = 0x21;    //定时器1方式2  
    SCON = 0x50;     //串口接收使能  
    ES = 0;          //串口中断使能    //使用外中断函数必须ES为0
    TR1 = 1;         //定时器1使能  
    TI = 0;          //发送中断标记位,必须设置  
	EA = 1; 
	 xianshi(0x80+0,'m');//显示m
	 xianshi(0x80+1,'o');//显示O
	 xianshi(0x80+2,'s');//显示S
	 xianshi(0x80+14,'D');//显示D
	 xianshi(0x80+15,'Y');//显示Y
	 dushi();
	 shijian=1;		
  	while(1){ 
		ms++;
	   if(ms>=5){aa=~aa;ms=0;dushi();}	
	   if(shu=='Z')z_zhuan();  			
       if(shu=='F')f_zhuan();
		shu=0;		
		key();
		xian();			 
		if((shi==shi_n)&&(fen==fen_n)&&(miao==miao_n)){//定时时间到
         shijian=1; 
        }				 
        if(shijian==1){//定时时间到之后,延时一段时间再反转,期间读取时间。
				 z_zhuan();
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 delay(100);
				 dushi();
				 xian();
				 f_zhuan();
				 shijian=0;
       }
	}
}

资料清单:

文章开头有下载链接
img

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/96411.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

数据结构—最小生成树

目录 一、生成树 二、最小生成树(代价最小树) 三、求最小生成树 1、Prim算法(普里姆) 2.Kruskal 算法(克鲁斯卡尔) 3.Prim算法和Kruskal算法对比 一、生成树 连通图的生成树是包含图中全部顶点的一个…

[附源码]Nodejs计算机毕业设计基于框架的秧苗以及农产品交易网站Express(程序+LW)

该项目含有源码、文档、程序、数据库、配套开发软件、软件安装教程。欢迎交流 项目运行 环境配置: Node.js Vscode Mysql5.7 HBuilderXNavicat11VueExpress。 项目技术: Express框架 Node.js Vue 等等组成,B/S模式 Vscode管理前后端分…

算法分析专业工具——大O记法

本文内容借鉴一本我非常喜欢的书——《数据结构与算法图解》。学习之余,我决定把这本书精彩的部分摘录出来与大家分享。 写在前面 从之前的章节中我们了解到,影响算法性能的主要因素是其所需的步数。 然而,我们不能简单地把一个算法记为“…

Postman下载,安装,汉化,注册及登录教程

目录 一、Postman简介 二、Postman的注册 1、首先下载Postman,进入官网:Download Postman | Get Started for Free 2、安装Postman 3、下载汉化包 4、找到所下载的app.zip文件,将文件进行解压,放置到此路径下 Postman\app9…

代码随想录Day52|300.最长递增子序列、674.最长连续递增序列、718.最长重复子数组

文章目录300.最长递增子序列674.最长连续递增序列718.最长重复子数组300.最长递增子序列 文章讲解:代码随想录 (programmercarl.com) 题目链接:300. 最长递增子序列 - 力扣(LeetCode) 题目: 给你一个整数数组 nums…

Eclipse常用开发配置

Eclipse常用开发配置1. 编码配置1.1 输出中文乱码问题1.2 Java文件中文乱码2. 切换JDK、修改JRE3. 错误:找不到或无法加载主类4. 修改字体大小4.1 修改编辑窗口字体大小4.2 修改编译器字体大小5. 新建Java项目6. 导入项目6.1 导入git6.2 导入已有Java项目7. 运行中文…

.net core AutoMapper的简单使用。

AutoMapper主要处理对象与对象之间的映射,减少程序员自己编写代码的工作量,提高开发效率。 应用场景: 假如你想对原始数据,进行部分字段展示,那么你需要创建一个对应的DTO类,进行手动映射,这样…

在电网上使用的储能系统模拟(simulink)

目录 1 概述 2 配电系统 3 动态负载模型 4 光伏电场和TMY3数据 5 储能系统 (ESS) 6 案例 7 仿真结果 8 Simulink&Matlab代码实现 1 概述 (1)目标展示了SimPowerSystems在不到一分钟的模拟时间内,以相量模式模拟电路和控制系统的能力。 (2)说明与能量存储…

对话顶立欧雅纳特丨传统制造企业的“人货场”重构该从何入手?

链条长、客单价高、标准化程度低、交付周期长......作为传统制造行业中颇具代表性的领域,家居建材一直被视为“距离互联网最远”行业之一,平均仅有10%的数字化率,行业整体的数字化转型相对滞后。随着外部环境的变动与行业生态的发展&#xff…

RK3588平台开发系列讲解(AUDIO篇)Android音频调试--tiny-alsa 工具

平台内核版本安卓版本RK3588Linux 5.10Android 12文章目录 一、工具介绍二、工具的使用2.1 tinyplay2.1 tinycap2.3 tinymix2.4 tinypcminfo沉淀、分享、成长,让自己和他人都能有所收获!😄 📢本篇将介绍Android下audio调试工具tiny-alsa的使用方法。 一、工具介绍 RK平台…

FFT学习笔记(快速傅里叶变换)

用途 快速傅里叶变换(Fast Fourier Transformation,简称FFT) 一般用来加速多项式乘法。求两个nnn次多项式相乘,朴素算法需要O(n2)O(n^2)O(n2),但FFT只需要O(nlog⁡n)O(n\log n)O(nlogn)就能解决。 多项式 系数表示法…

基于java的扫雷游戏的设计-计算机毕业设计

项目介绍 扫雷游戏的基本功能:点击鼠标左键于未知区域,如果未知区域有雷,游戏停止,显示所有的地雷。如果没雷,则显示周围雷数,如果周围没雷,则再查看周围八个区域是否有雷直到有雷为止并显示,玩家需要尽快找出雷区中的所有不是地雷的方块,而不许踩到地雷…

jsp+ssh+mysql实现的Java web学生考勤管理系统源码附带视频指导运行教程

今天给大家演示的是一款由jspsshmysql实现的Java web学生考勤管理系统,其中struts版本是struts2。本系统实现了管理员、学生、教师三个角色的功能,其中管理员可以管理基本信息,如班级信息、课程信息、用户信息、课程表等。教师可以管理自己班…

mongodb实现请求日志存储

引言 最近学习了mongodb,想实际应用到项目中,就先简单实现了一个存储请求日志的功能; 为什么使用mongodb存储日志,主要是因为日志数据量大、低价值、写入频繁,并且对事务要求不高,使用传统的关系型数据库…

Java强软弱虚引用和ThreadLocal工作原理(二)

1. 前言 读本篇文章之前,请移步到上一篇文章Java强软弱虚引用和ThreadLocal工作原理(一)_broadview_java的博客-CSDN博客 我们继续来讲一下java的强软弱引用在Android开发中的使用,并深入理解一下ThreadLocal的原理 2. 强软弱引…

Pro3:js实现放大镜效果

在我们平时见到很多购物网站都会有放大镜效果的出现,当我们将鼠标放在一个商品图片的上面,就会在旁边出现对应的放大效果。 实现步骤 实现原理是非常简单的,实际上是两张图片,一张原图和一张更大尺寸的图片。一开始通过css样式…

MessageFormat的具体使用(格式化消息)

文章目录1. 前言2. 先说结论3. 在结论上补充其他更加特殊情况1. 数字类型可以使用#字符来确认精度2. 数组类型转化需要注意3. 输出特殊字符4. 如何判断一个String是否有替换位4. 粗略原理1. 前言 在工作中发现接口的返回报文,大部分公司通常都会封装一层&#xff0c…

2022-LCLR-DIFFDOCK: DIFFUSION STEPS, TWISTS, AND TURNS FOR MOLECULAR DOCKING

2022-LCLR-DIFFDOCK: DIFFUSION STEPS, TWISTS, AND TURNS FOR MOLECULAR DOCKING Paper: https://arxiv.org/abs/2210.01776 Code: https://github.com/gcorso/DiffDock 预测小分子配体与蛋白质的结合结构(称为分子对接)是药物设计的关键。最近的深度学习方法将对接视为一个回…

GB/T 20984-2022《信息安全技术 信息安全风险评估方法》解读

前言 近年来,信息安全风险评估工作逐步在国家基础信息网络及重要行业信息系统中普遍推行,信息安全风险评估是信息安全保障工作的基础和重要环节,日前, GB/T 20984-2022 《信息安全技术 信息安全风险评估方法》发布,将…

oracle学习篇(四)

oracle学习篇(四) 1 PL/SQL异常处理 1.1 预定义异常 1.1.1 内容 oracle里面已经存在的异常 如果是自定义异常,一般写的编号是20000-20999之间1.1.2 处理异常语法 exceptionwhen 异常类型1 then输出异常类型信息1;when 异常信息2 then输出异常类型信息2;--以上都…