基于51单片机直流电机PWM调速液晶1602显示设计

news2024/11/24 13:24:47

一、系统方案
本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。另外,本系统中使用了霍尔元件对直流电机的转速进行测量,经过处理后,将测量值送到液晶显示出来。
在这里插入图片描述
二、硬件设计
原理图如下:
在这里插入图片描述
三、单片机软件设计
1、首先是系统初始化
void init()//初始化
{
en=0;
rw=0;
write_com(0x01); //lcd初始化
write_com(0x38); //5X7显示
write_com(0x0c); //关闭光标
TMOD=0x01; //定时器方式1
TH0=0xdc;
TL0=0x00; //定时器初值
EA=1; //开中断
ET0=1; //定时器0开中断
TR0=1;
EX1=1;
IT1=1; //定时器启动
TH1=0xfc;
TL1=0x66;//定时100us
ET1=1; //定时器1开中断
TR1=1;
write_com(0x80);
write_data(‘V’);
write_data(‘:’);
write_com(0x87); //第一行显示转数
write_data(‘r’);
write_data(‘p’);
write_data(‘m’);
write_com(0xc0);
write_data(‘z’);
write_data(‘h’);
write_data(‘a’);
write_data(‘n’);
write_data(‘k’);
write_data(‘o’);
write_data(‘n’);
write_data(‘g’);
write_data(‘b’);
write_data(‘i’); //第二行显示占空比:
write_data(‘:’);
displaym();
}
2、液晶显示程序

void write_com(uchar com)//1602控制指令
{
rs=0;
P0=com;
delay(5);
en=0;
delay(10);
en=1;
}
void write_data(uchar date)//1602数据指令
{
rs=1;
P0=date;
delay(5);
en=0;
delay(5);
en=1;
}

3、按键检测程序
void keyscan() //键盘扫描函数
{
if(num10)
{
delay(5); //消除抖动
if(num1
0)
{
if(m<=199)
m++;
displaym(); //占空比加一
}
}
if(num20)
{
delay(5);
if(num2
0)
{
if(m>=1)
m–;
displaym(); //占空比技跻?

 }

}
if(num30)
{
delay(5);
if(num3
0)
{
zheng=1; //开始正转
fan=0; // 反转停止

 }

}
if(num40)
{
delay(5);
if(num4
0)
{
zheng=0; //正转停止
fan=1; // 反转开始

 }

}
if(num50)
{
delay(5);
if(num5
0)
{
while(num5==0) ;
kai=1-kai;
}
}
}
4、核心算法程序
void display()
{
write_com(0x82);
zhuansu=zhuansu*30; //每分钟转速

if(zhuansu/10000!=0)
write_data(zhuansu/10000+0x30);
else
write_data(’ ');

if(zhuansu/10000)
write_data(’ ');
else
write_data(zhuansu%10000/1000+0x30);
if(zhuansu/100
0)
write_data(’ ‘);
else
write_data(zhuansu%10000%1000/100+0x30);
if(zhuansu/10==0)
write_data(’ ');
else
write_data(zhuansu%10000%1000%100/10+0x30);

write_data(zhuansu%10000%1000%100%10+0x30);
write_com(0xd0);
}
void displaym()
{
write_com(0xcb);
if(m/200%10!=0)
write_data(m/200%10+0x30);
else
write_data(’ ');

if(m/200%100&&m/20%100)
write_data(’ ');
else
write_data(m/20%10+0x30);
write_data(m/2%10+0x30);
}
四、proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。
在这里插入图片描述

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

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

相关文章

Endnote在线链接pubmed的时候报错12057:不能连接到吊销服务器,或者未能获得最终响应?

​嘎嘎嘎问题如下&#xff1a; 解决办法&#xff1a; 打开控制面板: ok,完了之后再去EndNote就不会出现此问题了。&#xff08;有的可能需要重启电脑&#xff0c;重启EndNote才会生效&#xff09;

基于MOEA/D求解电力系统中环境经济调度问题(Matlab代码实现)

&#x1f4a5;&#x1f4a5;&#x1f49e;&#x1f49e;欢迎来到本博客❤️❤️&#x1f4a5;&#x1f4a5; &#x1f3c6;博主优势&#xff1a;&#x1f31e;&#x1f31e;&#x1f31e;博客内容尽量做到思维缜密&#xff0c;逻辑清晰&#xff0c;为了方便读者。 ⛳️座右铭&a…

三维重建_基于图像的三维重建_面片/光度一致性

参考: 深蓝学院 基于图像的三维重建 1. 三维重建的流程回顾 基于深度图的三维重建:从无序图像获取稀疏点云和位姿,然后进行多视角立体重建。 多视角立体重建包含:(输入稀疏点云、各个图像位姿、图像)先进行立体对(3D-2D,2D-2D)的选择,然后计算深度图,接着进行深度图…

如何绕过计算机任何限制

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 前言一、创建记事本总结 前言 如果您在学校的电脑或笔记本就会发现它会限制您的天马行空的想法&#xff0c;因为它会限制command&#xff0c;powershell&#xff0…

java八股文面试[JVM]——JVM内存结构

参考&#xff1a; JVM学习笔记&#xff08;一&#xff09;_卷心菜不卷Iris的博客-CSDN博客 JVM是运行在操作系统之上的&#xff0c;它与硬件没有直接的交互 JVM内存结构&#xff1a; 方法区&#xff1a;存储已被虚拟机加载的类元数据信息(元空间) 堆&#xff1a;存放对象实…

【C语言】C语言用数组算平均数,并输出大于平均数的数

题目 让用户输入一系列的正整数&#xff0c;最后输入“-1”表示输入结束&#xff0c;然后程序计算出这些数的平均数&#xff0c;最后输出输入数字的个数和平均数以及大于平均数的数 代码 #include<stdio.h> int main() {int x;double sum 0;int cnt 0;int number[100…

SAP MM学习笔记26- SAP中 振替转记(转移过账)和 在库转送(库存转储)1- 移动Type间振替转记

SAP 中在库移动 不仅有入库&#xff08;GR&#xff09;&#xff0c;出库&#xff08;GI&#xff09;&#xff0c;也可以是单纯内部的转记或转送。 1&#xff0c;振替转记&#xff08;转移过账&#xff09; 2&#xff0c;在库转送&#xff08;库存转储&#xff09; 1&#xff…

Ae 效果:CC Scale Wipe、CC Radial ScaleWipe

过渡/CC Scale Wipe Transition/CC Scale Wipe CC Scale Wipe&#xff08;CC 缩放擦除&#xff09;主要通过缩放拉伸来擦除图层内容&#xff0c;从而实现一种独特的过渡效果。 CC Scale Wipe 效果示例 ◆ ◆ ◆ CC Scale Wipe 效果属性说明 Stretch 拉伸 控制对图层内容拉伸的…

中国剩余定理及扩展

目录 中国剩余定理解释 中国剩余定理扩展——求解模数不互质情况下的线性方程组&#xff1a; 代码实现&#xff1a; 互质&#xff1a; 非互质&#xff1a; 中国剩余定理解释 在《孙子算经》中有这样一个问题&#xff1a;“今有物不知其数&#xff0c;三三数之剩二&#x…

[三次握手]TCP三次握手由入门到精通(知识精讲)

⬜⬜⬜ &#x1f430;&#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;(*^▽^*)欢迎光临 &#x1f7e7;&#x1f7e8;&#x1f7e9;&#x1f7e6;&#x1f7ea;&#x1f430;⬜⬜⬜ ✏️write in front✏️ &#x1f4dd;个人主页&#xff1a;陈丹宇jmu &am…

【Rust日报】2023-08-16 Neon 基于 rust 的 AWS Aurora Postgres 的无服务器开源替代品

Neon -- AWS Aurora Postgres 的无服务器开源替代品 简介 Neon 是 AWS Aurora Postgres 的无服务器开源替代品。它将存储和计算分开&#xff0c;并通过跨节点集群重新分布数据来替代 PostgreSQL 存储层。 尝试使用 Neon 免费套餐创建无服务器 Postgres 实例。然后使用您首选的 …

第二篇论文写作启发点V1

第二篇论文写作启发点V1 2.LLFLow模型的缺陷&#xff0c;这是先验&#xff0c;如果先验出现错误&#xff0c;那么后面这个模型都会错误。而我们使用了学习的方式去解决 3. 参考文献和实验时的对照模型最好使用最新的&#xff0c;就是没有被引用过的&#xff0c;这样可以降低论文…

12. Docker可视化工具

目录 1、前言 2、Docker UI 2.1、部署Docker UI 2.2、管理容器 3、Portainer 3.1、部署Portainer 3.2、管理容器 3.3、添加远程Docker 4、Shipyard 1、前言 Docker 提供了命令行工具来管理 Docker 的镜像和运行 Docker 的容器。我们也可以使用图形工具来管理 Docker。…

机器人远程控制软件设计

机器人远程控制软件设计 That’s all.

ECA模块的提出过程

接上文 作者首先肯定了通道注意力机制&#xff08;在 S E N e t SENet SENet当中提出来的&#xff09;的作用&#xff0c;对于没有参数的 S E − V A R 1 SE-VAR1 SE−VAR1模型&#xff0c;其效果仍然超过没有通道注意力机制的网络&#xff0c;可见注意力机制是有用的。 但是作…

CMC、mAP解析:图像检索领域评价指标

1. CMC&#xff1a; Cumulative Matching Characteristics 累计匹配特征 CMC是一种计算 top-n 的评价指标&#xff0c;主要用来评估闭集中rank-n的正确率。 下面举例说明&#xff1a; 在双模态特征匹配中。底库 Gallery 中有10条数据&#xff08;label分别为1&#xff0c;2&am…

回归预测 | MATLAB实现TSO-SVM金枪鱼群算法优化支持向量机多输入单输出回归预测(多指标,多图)

回归预测 | MATLAB实现TSO-SVM金枪鱼群算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09; 目录 回归预测 | MATLAB实现TSO-SVM金枪鱼群算法优化支持向量机多输入单输出回归预测&#xff08;多指标&#xff0c;多图&#xff09;效果一览基…

深度优先遍历与连通分量(Java 实例代码源码包下载)

目录 深度优先遍历与连通分量 Java 实例代码 src/runoob/graph/Components.java 文件代码&#xff1a; 深度优先遍历与连通分量 深度优先遍历(Depth First Search)的主要思想是首先以一个未被访问过的顶点作为起始顶点&#xff0c;沿当前顶点的边走到未访问过的顶点。当没有…

AI在日常生活中的应用:从语音助手到自动驾驶

文章目录 AI的定义和发展AI在日常生活中的应用1. **智能语音助手**2. **智能家居**3. **智能医疗**4. **自动驾驶** 代码示例&#xff1a;使用Python实现基于机器学习的图片分类AI的未来前景结论 &#x1f389;欢迎来到AIGC人工智能专栏~探索AI在日常生活中的应用 ☆* o(≧▽≦…

centos9 mysql8修改数据库的存储路径

一、环境 系统&#xff1a;CentOS Stream release 9 mysql版本&#xff1a;mysql Ver 8.0.34 for Linux on x86_64 (MySQL Community Server - GPL) 二、修改mysql的数据库&#xff0c;存储路径 查看目录数据存储的位置 cat /etc/my.cnf操作 1、新建存放的目录&#xff0c;…