基于51单片机的电机控制和角度检测

目录

一、主要功能

二、硬件资源

三、程序编程

四、实现现象


一、主要功能

基于51单片机,采用滑动变阻器连接ADC0832数模转换器模拟角度传感器,然后通过LCD1602显示数值,然后按键按下不动,电机正转,松开停止。第二个按键按下,电机反转,松开停止,角度范围10到80度。

二、硬件资源

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

三、程序编程

#include <REGX52.H>	    //定义头文件
#include<intrins.h>		//定义头文件
#include<stdio.h>		//定义头文件
#include "Delay.h"		//定义Delay头文件
#include "LCD1602.h"	//定义LCD1602头文件#define uchar unsigned char	 //定义变量
#define uint unsigned  int	 //定义变量sbit CS=P2^5;                 //adc0832引脚
sbit CLK=P2^3;				  //adc0832引脚
sbit DIO=P2^4;				  //adc0832引脚
sbit Motor1_IN1 = P3^3;	//电机IN口
sbit Motor1_IN2 = P3^4;	//电机IN口
sbit key1 = P1^0;
sbit key2 = P1^1;
sbit key3 = P1^2;
sbit key4 = P1^3;
sbit key5 = P1^4;uchar get_AD_Res()            //ADC0832启动读取函数
{uchar i, data1=0, data2=0;	 //赋值变量CS=0;						 //CS赋值低电平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;	//返回值
}void main()					  //主函数
{	double u,U,R;        //定义变量LCD_Init();         //显示屏初始化LCD_ShowString(1,1,"jiaodu:");while(1){u=get_AD_Res();	       //读取ADC0832值R=(u/255)*70+10;//		U=(250*u)/128;         //此处将模拟信号转化为数字信号,要根据上拉电阻阻值来确定
//		R=200*U/250;	       //公式换算LCD_ShowNum(1,8,R,3); //LCD1602第一行第13个字符开始显示R的值if(key1==0){Motor1_IN1 = 1;Motor1_IN2 = 0;}else if(key1 == 1){Motor1_IN1 = 0;Motor1_IN2 = 0;	}if(key2==0){Motor1_IN2 = 1;Motor1_IN1 = 0;}else if(key1 == 1){Motor1_IN1 = 0;Motor1_IN2 = 0;	}if(key3==0){Delay(100);if(key3==0){R=10;}}if(key4==0){Delay(100);if(key4==0){R=30;}}if(key5==0){Delay(100);if(key5==0){R=55;}}}
}

四、实现现象

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

基于51单片机的电机控制和角度检测

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

百度网盘资料下载

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

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

相关文章

红外绝缘子数据集

红外绝缘子数据集&#xff0c;绝缘子旋转框检测 电气工程专业研究可用 电力领域稀有红外图像数据集 红外图像总数5000多张&#xff0c;txt格式&#xff0c;可直接用于yolo训练 红外绝缘子数据集 (Infrared Insulator Dataset, IID) 数据集描述 IID是一个专为电气工程专业研究…

react中解析markdown文本

背景 产品想把从某个地方复制出来的markdown文本&#xff0c;保存下来&#xff0c;并且在前端这边展示的时候&#xff0c;按照对应的格式展示 工具 markedhighlight.jsmarked-highlight 原来的marked版本&#xff0c;是可以直接处理高亮配置&#xff0c;但是后续更新为了轻量…

耦合微带线单元的网络参量和等效电路公式推导

文档下载链接&#xff1a;耦合微带线单元的网络参量和等效电路资源-CSDN文库https://download.csdn.net/download/lu2289504634/89583027笔者水平有限&#xff0c;错误之处欢迎留言&#xff01; 一、耦合微带线奇偶模详细推导过程 二、2,4端口开路 三、2端口短路、3端口开路 四…

Apple Intelligence预计会在iOS 18.1和iOS 18.4之间按此顺序推出

本月早些时候 iOS 18 已公开发布&#xff0c;但首批 Apple Intelligence 功能要等到 10 月份 iOS 18.1 发布后才可以使用。Apple Intelligence 功能将继续在 iOS 18.2 及更高版本中推出&#xff0c;预计路线图如下&#xff0c;出自 Apple 网站和传闻。 Apple Intelligence 需要…

electron-vite使用vue-i18n,ts 检查报错上不存在属性“$t”

问题&#xff1a; electron-vite使用vue-i18n&#xff0c;ts类型检查报错&#xff0c;但实际运行没有问题 解决方案&#xff1a; 1. 在electron-vite渲染端代码src目录下&#xff0c;增加 vue-i18n.d.ts 文件&#xff0c;添加如下内容&#xff1a; /* eslint-disable */ im…

【d47_2】【Java】【力扣】1791.找出星型图的中心节点

思路 直接判断 edges[0][0] edges[0][1] edges[1][0] edges[1][1] 谁重复了 例如&#xff1a; [ [1,2] [2,3] ....],那么中心节点一定是2 代码 class Solution {public int findCenter(int[][] edges) {for (int i0;i<1;i){if (edges[1][0]edges[0][i]) {return edg…

Java/Spring项目的包开头为什么是com?

Java/Spring项目的包开头为什么是com&#xff1f; 下面是一个使用Maven构建的项目初始结构 src/main/java/ --> Java 源代码com.example/ --->为什么这里是com开头resources/ --> 资源文件 (配置、静态文件等)test/java/ --> 测试代码resourc…

3D建模:Agisoft Metashape Professional 详细安装教程分享 Mac/win

Agisoft Metashape中文版&#xff08;以前称为 PhotoScan&#xff09;是一款独立软件产品&#xff0c;可对数字图像进行摄影测量处理并生成 3D 空间数据&#xff0c;用于 GIS 应用程序、文化遗产文献和视觉效果制作以及各种比例的物体的间接测量。 明智地实施数字摄影测量技术…

Windows 离线安装显示驱动

下载驱动人生&#xff0c;查看需要安装的驱动版本 驱动人生 驱动人生官网-显卡驱动_打印机驱动_网卡驱动_声卡驱动等驱动程序下载及检测平台驱动人生是一款提供电脑驱动下载和安装自动化的软件&#xff0c;通过驱动人生可一键安装显卡驱动、网卡驱动、声卡驱动、打印机驱动、…

Unity中Rigidbody 刚体组件和Rigidbody类是什么?

Rigidbody 刚体组件 Rigidbody 是 Unity 中的一个组件&#xff0c;它可以让你的游戏对象像真实世界中的物体一样移动和碰撞。想象一下&#xff0c;你有一个小球&#xff0c;你希望它像真实世界中的球一样滚动、弹跳和碰撞&#xff0c;那么你就可以给这个小球添加一个 Rigidbod…

R语言中的shiny框架

R语言中的shiny框架 Shiny 的基本概念基本用法示例常见用法示例1. 输入控件2. 输出控件3. 动态 UI4. 数据传递和反应式编程 高级功能1. 使用 shinyjs2. 使用 shinythemes Shiny 是一个 R 语言的框架&#xff0c;用于构建交互式的网页应用&#xff0c;可以让用户以最少的 HTML、…

uniapp出现 下拉框等组件被遮挡 的分析

目录 1. 问题所示2. 代码复现3. 解决方法3.1 下拉框被遮挡3.2 uni-collapse-item 无法下拉的问题 1. 问题所示 下拉框被遮挡的问题&#xff1a; uni-collapse-item组件无法下拉的问题&#xff1a; 2. 代码复现 博主的代码精简如下&#xff1a; <template><view>…

离职员工客户如何管理?解锁2024企业微信新功能

公司里员工来来去去很正常&#xff0c;但每次有人走&#xff0c;老板们都会头疼&#xff0c;因为客户信息得有人接着管。客户对公司来说太重要了&#xff0c;不能丢。2024年&#xff0c;企业微信出了个新招&#xff0c;就是员工离职后&#xff0c;客户信息可以轻松转给新来的员…

kalman滤波三:时序数据预测(一维kalman滤波)

文章目录 原理kalman滤波一&#xff1a;基础理论kalman滤波二&#xff1a;二维目标跟踪 一维kalman滤波状态变量测量值状态转移矩阵 示例代码&#xff1a;运行结果&#xff1a;真实场景示例 以下是一个测距的应用&#xff0c;在图像上计算目标离参考点的距离&#xff0c;测距的…

如何删除链表的中间节点和a/b处的节点?

文章目录 删除中间节点删除 a/b 处的节点 示例定义链表节点结构删除中间节点删除 a/b 处的节点 注意事项 Python 实现案例创建链表删除中间节点删除 a/b 处的节点测试代码示例代码完整版测试输出 在链表中删除中间节点或者特定位置&#xff08;如 a/b 处&#xff09;的节点涉及…

学习干货HVV必学远控工具及Webshell流量合集分析(建议收藏+附面试题)

0x01 前言 本篇文章为各位师傅总结了一些当下流行的Webshell远程工具及其中的流量分析&#xff0c;方便在平时监测、hvv、攻防演练中进行及时发现、阻拦回溯等、在某些比赛上可能也会有类似的流量分析题目&#xff0c;根据工具的一些流量特征进行说明&#xff0c;其中会附带一…

如何融合文本信息提高时序预训练模型?

今天小编给大家介绍两篇联合文本和时序数据进行预训练的文章。 UniTime: A Language-Empowered Unified Model for Cross-Domain Time Series Forecasting 文献地址&#xff1a;https://arxiv.org/pdf/2310.09751.pdf 代码地址&#xff1a;https://github.com/liuxu77/UniTim…

国产 AI 大模型成果展示,囊括 12 大金融应用场景!

前言 随着人工智能技术的飞速发展&#xff0c;国产AI大模型在医疗健康领域的应用日益广泛&#xff0c;正在逐步改变传统的医疗服务模式&#xff0c;提升医疗服务的质量和效率。以下是对国产AI大模型在医疗领域应用的典型案例盘点&#xff0c;覆盖了十大医疗应用场景。 01 智…

治愈系视频素材哪里找?非常优秀的治愈系素材分享

在快节奏的现代生活中&#xff0c;寻找心灵的慰藉成为了一个日益重要的话题。治愈系视频以其温暖人心的内容和独特的魅力&#xff0c;为观众提供了一种减压和放松的方式。要制作出触动人心的治愈系视频&#xff0c;首先需要挑选合适的视频素材。以下是几个优质的治愈系视频素材…

使用build_chain.sh离线搭建匹配的区块链,并通过命令配置各群组节点的MySQL数据库

【任务】 登陆Linux服务器&#xff0c;以MySQL分布式存储方式安装并部署如图所示的三群组、四机构、 七节点的星形组网拓扑区块链系统。其中&#xff0c;三群组名称分别为group1、group2和group3&#xff0c; 四个机构名称为agencyA、agencyB、agencyC、agencyD。p2p_port、cha…