17【Protues单片机仿真】基于51单片机的太阳能智能谷物翻晒机器人

目录

一、主要功能

二、硬件资源

三、程序编程

四、实现现象


一、主要功能

基于51单片机,避障,低于50CM报警,LED灯亮起,自动翻晒用光敏电阻,光照强度大,电机转动,相当于翻晒粮食,远程控制用按键代替,按下去电机就转动,相当于翻晒粮食,然后光照强度和超声波的距离都在LCD1602显示屏显示出来。

二、硬件资源

基于KEIL5编写C++代码,PROTEUS8.15进行仿真,全部资源在页尾,提供安装包。

1、51单片机

2、超声波传感器

3、光照传感器

4、ADC0832数模转换器

5、L298N驱动电机模块

6、LCD1602显示模块

7、灯光报警模块

8、按键模块

仿真图:

编辑

三、程序编程

/*所有代码资源看页尾*/
#include <REGX52.H>
#include<intrins.h>
#include<stdio.h>
#include "Delay.h"
#include "LCD1602.h"
#define uchar unsigned char
#define uint unsigned  int
typedef unsigned char u8;
typedef unsigned int  u16;
typedef unsigned char uint8;
typedef unsigned int uint16;
typedef unsigned long uint32;
sbit CS=P1^0;        //51单片机引脚设置
sbit CLK=P1^1;
sbit DIO=P1^2;
sbit Motor1_IN1 = P3^3;	      //电机IN1口
sbit Motor1_IN2 = P3^4;
sbit Motor1_EN =  P3^2;       //电机使能端1sbit Motor2_IN1 = P3^5;	      //电机IN1口
sbit Motor2_IN2 = P3^6;
sbit Motor2_EN =  P3^7;       //电机使能端2sbit LED =  P1^5;  //LED灯定义
sbit key =  P1^4;
sbit key1 = P1^6;
sbit BEEP = P1^3;sbit Tr=P3^0;//触发信号
sbit Ec=P3^1;//回响信号
uchar Recv_Buffer\[4\];
uint Voltage\[\]={'0','0','0','0'};
bit bdata IIC_ERROR;unsigned char count;
unsigned int distance;
static uint temp;
uint temp;
static unsigned char num;
static int flag = 0, flag1 = 0;
unsigned int Read_value(void);//读值函数void Delay10us(void);//10us延时函数void Time0_Init()          //定时器初始化
{TMOD = 0x01;TH0 = 0x00;TL0 = 0x00;TR0 = 0;//先关闭定时器0
}void Time0_Int() interrupt 1 //中断程序
{TH0  = 0xfe;             //重新赋值TL0  = 0x33;
}uchar get\_AD\_Res()          //ADC0832启动读取函数
{uchar i, data1=0, data2=0;CS=0;CLK=0;DIO=1;\_nop\_();CLK=1;\_nop\_();CLK=0;DIO=1;\_nop\_(); CLK=1;\_nop\_();CLK=0;DIO=0;\_nop\_();CLK=1;\_nop\_();CLK=0;DIO=1;\_nop\_(); for(i=0; i<8; i++){CLK=1;\_nop\_();CLK=0;\_nop\_();data1=(data1<<1)|(uchar)DIO; }for(i=0; i<8; i++){data2=data2|(uchar)DIO<<i;CLK=1;\_nop\_();CLK=0;\_nop\_();}CS=1;return(data1 == data2)?data1:0;
}
unsigned int Read_value()
{uint result;Tr=1;//触发引脚发出11us的触发信号(至少10us)Delay10us();Tr=0;while(!Ec);//度过回响信号的低电平TR0=1;//开启定时器0while(Ec);//度过回响信号高电平TR0=0;//关闭定时器0result=((TH0\*256+TL0)\*0.034)/2;		// 距离cm=(时间us * 速度cm/us)/2return result + 2;	//+2修正补偿	
}void main()					  //主函数
{	uchar u;Tr=0;               //出发引脚首先拉低LCD_Init();         //显示屏初始化LCD_ShowString(1,1,"Distance:"); //显示字符串DistanceLCD_ShowString(2,1,"GZQD:");     //显示字符串GZQD 光照强度Time0_Init();	   //定时初始化Motor2_EN = 1;	   //顺时针Motor2_IN1 = 1;Motor2_IN2 = 0;LED = 0;BEEP = 0;while(1){u=get\_AD\_Res();        //读取光照强度distance = Read_value();//读值distance-=1;LCD_ShowNum(1,10,distance,3); //显示距离LCD_ShowNum(2,6,u,3);         //显示光照强度if( (distance>=50) && (distance<= 100)){Motor2_EN = 1;		   //逆时针Motor2_IN1 = 0;Motor2_IN2 = 1;LED  = 0; 	 //LED灯熄灭BEEP = 0;	 //蜂鸣器关掉}else if(distance < 50)	  //超声波距离判断{LED  = 1;   //LED灯亮起BEEP = 1;   //蜂鸣器响起}else if(distance > 100){Motor2_EN = 1;	    //顺时针Motor2_IN1 = 1;Motor2_IN2 = 0;}if(u > 80) //光照强度判断{flag = 1;}else {flag = 0;}if(key == 0){Delay(100); //消除抖动if(key == 0){flag1 = 1;}}if(key1 == 0){Delay(100);//消除抖动if(key1 == 0){flag1 = 0;}}if(flag == 1){Motor1_EN = 1;  //电机端使能Motor1_IN1 = 1; //给IN1口赋值高电平Motor1_IN2 = 0; //给IN2口赋值低电平,形成顺时针转动}else if(flag1 == 1){Motor1_EN = 1;  //电机端使能Motor1_IN1 = 1; //给IN1口赋值高电平Motor1_IN2 = 0; //给IN2口赋值低电平,形成顺时针转动}else{Motor1_EN  = 0;Motor1_IN1 = 0;Motor1_IN2 = 0;}}}void Delay10us()
{TL0=0xF5;TH0=0xFF;TR0=1;while (TF0==0);TR0=0;TF0=0;
}

四、实现现象

具体动态效果看B站演示视频:

基于51单片机的太阳能自动谷物翻晒机器人控制系统_哔哩哔哩_bilibili

全部资料(源程序、仿真文件、安装包、演示视频):

链接:https://pan.baidu.com/s/1Ewj05XL8mORAxrL9C3kejA 
提取码:w4e9 
–来自百度网盘超级会员V4的分享

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Linux——pod的调度

pod的调度 控制器: rc/rs 副本数量控制器 主要保证pod的数量符合管理员要求&#xff0c;并不会对pod进行额外的管理 以下三种控制器&#xff0c;本质上是服务控制器。具备以下特性&#xff1a; 副本数量的控制服务的滚动更新&#xff08;更新pod&#xff09;支持更新失…

高校教师成果管理小程序的设计与实现springboot(lw+演示+源码+运行)

摘 要 互联网发展至今&#xff0c;无论是其理论还是技术都已经成熟&#xff0c;而且它广泛参与在社会中的方方面面。它让信息都可以通过网络传播&#xff0c;搭配信息管理工具可以很好地为人们提供服务。针对高校教师成果信息管理混乱&#xff0c;出错率高&#xff0c;信息安全…

C++ STL初阶(14): map和set

1.关联式容器与键值对 前导文章&#xff1a;C 二叉树进阶-CSDN博客 之前我们学习的线性的容器&#xff0c;如&#xff1a;vector deque list等都叫作序列式容器 与之对立的概念是关联式容器 关联式容器 也是用来存储数据的&#xff0c;与序列式容器不同的是&#xff0c;其 里面…

【C++】检测TCP链接超时——时间轮组件设计

目录 引言 时间轮思想 设计的核心思路 完整代码 组件接口 个人主页&#xff1a;东洛的克莱斯韦克-CSDN博客 引言 对于高并发的服务器来说&#xff0c;链接是一种比较珍贵的资源&#xff0c;对不活跃的链接应该及时释放。判断连接是否活跃的策略是——在给定的时间内&#…

Redis中BigKey与MoreKey优化笔记

1.MoreKey 在Redis中&#xff0c;MoreKey问题通常指的是当数据库中的key数量非常多时&#xff0c;使用如KEYS *这样的命令去检索所有的key&#xff0c;这会导致Redis服务阻塞&#xff0c;影响正常业务。因为Redis是单线程操作的&#xff0c;执行这类命令时会占用大量时间&…

Arthas redefine(加载外部的.class文件,redefine到JVM里 )

文章目录 二、命令列表2.2 class/classloader相关命令2.2.3 redefine&#xff08;加载外部的.class文件&#xff0c;redefine到JVM里 &#xff09;举例1&#xff1a;加载新的代码&#xff0c;jad/mc 命令使用举例2&#xff1a;上传 .class 文件到服务器的技巧 二、命令列表 2.…

柯桥韩语学校|韩语每日一词打卡:회갑연[회가변]【名词】花甲宴

今日一词:회갑연 韩语每日一词打卡&#xff1a;회갑연[회가변]【名词】花甲宴 原文:인구 노령화에 따라서 요즘 회갑연보다는 고희연을 더 많이 지냅니다. 意思&#xff1a;随着人口老龄化&#xff0c;最近比起花甲宴&#xff0c;更多人办古稀宴。 【原文分解】 1、인구[인구]…

【BurpSuite】访问控制漏洞和权限提升 | Access control vulnerabilities (3-6)

&#x1f3d8;️个人主页&#xff1a; 点燃银河尽头的篝火(●’◡’●) 如果文章有帮到你的话记得点赞&#x1f44d;收藏&#x1f497;支持一下哦 【BurpSuite】访问控制漏洞和权限提升 | Access control vulnerabilities (3-6&#xff09; 实验三 Lab: User role controlled b…

【IoT-NTN】系统消息SIB31信令分析

3GPP卫星通信发展迅速&#xff0c; TS36.331 R17中新增SIB31携带星历信息&#xff0c;本文对SIB31的信令内容进行了分析。 SystemInformationBlockType31 分析报告 一、概述 本文档详细描述了SystemInformationBlockType31&#xff08;简称SIB31&#xff09;的结构和内容&am…

[Redis][集群][上]详细讲解

目录 0.前言1.基本概念2.数据分片算法0.前言1.哈希求余2.一致性哈希算法3.哈希槽分区算法(Redis使用) 0.前言 说明&#xff1a;该章节相关操作不需要记忆&#xff0c;理解流程和原理即可&#xff0c;用的时候能自主查到即可 1.基本概念 哨兵模式提高了系统的可用性&#xff0…

试用Debian12.7和Ubuntu24.4小札

Debian GNU/Linux 12 (bookworm)和Ubuntu 24.04.1 LTS是现阶段&#xff08;2024年9月26日&#xff09;两个发行版的最新版本。Ubuntu Server版本默认就不带桌面&#xff08;ubuntu-24.04-live-server-amd64.iso&#xff09;&#xff0c;这个默认就是最小化安装&#xff08;安装…

Moshi: a speech-text foundation model for real time dialogue

视频号 挺神奇的东西 整下来 kyutai-labs/moshi (github.com) git clone https://github.com/kyutai-labs/moshi.git 在线体验 moshi.chat 结束后 点击Download audio Download video 可以下载音频与视频 &#xff08;不过是webm格式&#xff09; 发行版 已上传至资源 小…

springboot+大数据基于数据挖掘的招聘信息可视化大屏系统【内含源码+文档+部署教程】

博主介绍&#xff1a;✌全网粉丝10W,前互联网大厂软件研发、集结硕博英豪成立工作室。专注于计算机相关专业毕业设计项目实战6年之久&#xff0c;选择我们就是选择放心、选择安心毕业✌ &#x1f345;由于篇幅限制&#xff0c;想要获取完整文章或者源码&#xff0c;或者代做&am…

【C++】 vector 迭代器失效问题

【C】 vector 迭代器失效问题 一. 迭代器失效问题分析二. 对于vector可能会导致其迭代器失效的操作有&#xff1a;1. 会引起其底层空间改变的操作&#xff0c;都有可能是迭代器失效2. 指定位置元素的删除操作--erase3. Linux下&#xff0c;g编译器对迭代器失效的检测并不是非常…

数论——数数(找质因数个数),三位出题人(组合数学,快速幂)

数数&#xff08;找质因数个数&#xff09; 题目描述 登录—专业IT笔试面试备考平台_牛客网 运行代码&#xff08;通过率一半&#xff09; #include <iostream> #include <vector> using namespace std; const int N5e66; int n; vector<bool>vis; vo…

vmware-toolbox安装,VMware虚拟机访问win10共享目录

问题&#xff1a;VMware界面无法安装vmware-toolbox&#xff0c;共享目录设置失败 解决方法&#xff1a; VMware设置 共享文件夹 ubuntu24 vm中运行vmware-toolbox-cmd -v 检查版本 vm运行sudo apt install open-vm-tools // vm可能需要重启 vm的 /mnt 目录下如果没有 hgfs…

骨传导耳机哪个牌子好?年度五大热门骨传导耳机推荐清单来了!

近年来&#xff0c;骨传导耳机以其独特的传音方式和开放耳道的设计&#xff0c;逐渐成为运动爱好者和追求健康生活方式人群的新宠。与传统耳机相比&#xff0c;骨传导耳机不仅能够保护听力&#xff0c;还能在享受音乐的同时保持对周围环境的警觉。 随着骨传导耳机市场的不断壮…

1.MySQL的安装

目录 下载安装包 安装前环境的准备 正式安装 下载安装包 MySQL安装网址:https://www.mysql.com/cn/ 进去之后就是上面这个页面&#xff0c;进行汉化的时候将这个网页拉至最下&#xff0c;右下角点成中文就可以&#xff0c;如下这个页面。 回到页面顶端&#xff0c;点击下载&a…

并发编程---线程与进程

业务场景&#xff1a;小明去理发店理发。 小明去理发店理发&#xff0c;完成理发需要吹&#xff0c;剪&#xff0c;洗、理的过程。由这个场景我们引用进程和线程这两个 概念。 一.进程 1.什么是进程 进程是具有独立功能的程序关于某个数据集合上的一次运行活动&#xff0c;是…

基于Hadoop的NBA球员大数据分析及可视化系统

作者&#xff1a;计算机学姐 开发技术&#xff1a;SpringBoot、SSM、Vue、MySQL、JSP、ElementUI、Python、小程序等&#xff0c;“文末源码”。 专栏推荐&#xff1a;前后端分离项目源码、SpringBoot项目源码、Vue项目源码、SSM项目源码 精品专栏&#xff1a;Java精选实战项目…