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

一、系统方案
本文主要研究了利用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.rhkb.cn/news/101836.html

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

相关文章

Java面向对象三大特性之多态及综合练习

1.1 多态的形式 多态是继封装、继承之后&#xff0c;面向对象的第三大特性。 多态是出现在继承或者实现关系中的。 多态体现的格式&#xff1a; 父类类型 变量名 new 子类/实现类构造器; 变量名.方法名(); 多态的前提&#xff1a;有继承关系&#xff0c;子类对象是可以赋…

无线上网连接及配置

目录 1. 无线上网连接及配置 1.1 无线路由器连接方式 ​编辑 1.2 无线路由器的基本配置 1.配置用户计算机上的IP地址 2.访问无线路由Web管理界面 1.3 WAN 口设置 1.动态 IP 2.静态 IP 1. 无线上网连接及配置 一小型公司共有20名员工。由于公司业务需要访问Internet&…

考研C语言进阶题库——更新41-50题

目录 41.编写程序要求输出整数a和b若a和b的平方和大于100&#xff0c;则输出a和b的平方和&#xff0c;否则输出a和b的和 42.现代数学的著名证明之一是Georg Cantor证明了有理数是可枚举的。他是用下面这一张表来证明这一命题的&#xff1a;第一项是1/1&#xff0c;第二项是是…

【CAM】CAM(Class Activation Mapping)——可视化CNN的特征定位

文章目录 一、CAM(Class Activation Mapping)二、CAM技术实现2.1 网络修改2.2 微调2.2 特征提取 三、总结Reference 完整代码见Github &#xff1a;https://github.com/capsule2077/CAM-Visualization &#xff0c;如果有用可以点个Star&#xff0c;谢谢&#xff01; 一、CAM(C…

RSU交叉工具链安装不可用

1、在安装完交叉工具链去编译程序的时候&#xff0c;提示交叉工具链的命令找不到&#xff0c;检查各种路径配置其实都是配置好了&#xff0c;就是不行。 这是需要用下面的命令去更新一下交叉工具链&#xff0c;当然/opt目录下需要安装好对应文件 目前发现金溢、中兴的V2X交叉工…

链表的顶级理解

目录 1.链表的概念及结构 2.链表的分类 单向或者双向 带头或者不带头 循环或者非循环 3.无头单向非循环链表的实现 3.1创建单链表 3.2遍历链表 3.3得到单链表的长度 3.4查找是否包含关键字 3.5头插法 3.6尾插法 3.7任意位置插入 3.8删除第一次出现关键字为key的节点 …

【3Ds Max】可编辑多边形“点”层级的简单使用

目录 简介 示例 &#xff08;1&#xff09;移除 &#xff08;2&#xff09;断开 &#xff08;3&#xff09;焊接 &#xff08;4&#xff09;挤出 &#xff08;5&#xff09;切角 &#xff08;6&#xff09;目标焊接 &#xff08;7&#xff09;连接 简介 在3ds Max中&…

CH583/2构建工程教程

CH583/2构建工程教程 绪论资源移植步骤准备移植步骤一步骤二 工程配置修改工程名修改前修改后 工程配置修改资源文件 修改C/C general修改C/C构建修改汇编交叉编译修改C交叉编译修改GNU RISC-V Cross Linker 修改跟编译 移植注意事项 绪论 资源 CH583/2的SDK下载 移植步骤 …

昨晚做梦面试官问我三色标记算法

本文已收录至GitHub&#xff0c;推荐阅读 &#x1f449; Java随想录 微信公众号&#xff1a;Java随想录 原创不易&#xff0c;注重版权。转载请注明原作者和原文链接 文章目录 三色标记算法增量更新原始快照 某天&#xff0c;爪哇星球上&#xff0c;一个普通的房间&#xff0c…

基于Linux操作系统中的shell脚本

目录 前言 一、概述 1、什么是shell&#xff1f; 2、shell脚本的用途有哪些&#xff1f; 3、常见的shell有哪些&#xff1f; 4、学习shell应该从哪几个方面入手&#xff1f; 4.1、表达式 1&#xff09;变量 2&#xff09;运算符 4.2、语句 1&#xff09;条件语句&am…

HIDS-wazuh 的配置和防御

目录 安装wazuh 常用内容 检测sql注入 主动响应 安装wazuh 本地测试的话建议用ova文件&#xff0c;直接导入虚拟机就能用了 官网&#xff1a;Virtual Machine (OVA) - Installation alternatives 常用内容 目录位置&#xff1a;/etc/ossec 配置文件&…

【自动化剧本】Role角色

目录 一、Roles模块1.1roles的目录结构1.2roles 内各目录含义解释1.3在一个 playbook 中使用 roles 的步骤 二、使用Role编写LNMP剧本2.1 搭建Nginx角色2.2搭建Mysql角色2.3搭建php角色2.4lnmp剧本 一、Roles模块 roles用于层次性、结构化地组织playbook。roles能够根据层次型结…

【从零学习python 】75. TCP协议:可靠的面向连接的传输层通信协议

文章目录 TCP协议TCP通信的三个步骤TCP特点TCP与UDP的区别TCP通信模型进阶案例 TCP协议 TCP协议&#xff0c;传输控制协议&#xff08;英语&#xff1a;Transmission Control Protocol&#xff0c;缩写为 TCP&#xff09;是一种面向连接的、可靠的、基于字节流的传输层通信协议…

Oracle-rolling upgrade升级19c

前言: 本文主要描述Oracle11g升19c rolling upgrade升级测试&#xff0c;通过逻辑DGautoupgrade方式实现rolling upgrade&#xff0c;从而达到在较少停机时间内完成Oracle11g升级到19c的目标 升级介绍&#xff1a; 升级技术: rolling upgrade轮询升级&#xff0c;通过采用跨版…

项目实战笔记2:硬技能(上)

序&#xff1a; 本节串讲了项目管理硬技能&#xff0c;有些术语可以结合书或者网上资料来理解。没有想书上讲的那样一一列举。 做计划 首先强调为什么做计划&#xff1f; 计划就是各个角色协同工作的基准&#xff08;后面做风险监控、进度的监控&#xff09;&#xff0c;贯穿于…

大数据及软件教学与实验专业实训室建设方案

一 、系统概述 大数据及软件教学与实验大数据及软件教学与实验在现代教育中扮演重要角色&#xff0c;这方面的教学内容涵盖了大数据处理、数据分析、数据可视化和大数据应用等多个方面。以下是大数据及软件教学与实验的一般内容&#xff1a;1. 数据基础知识&#xff1a;教授学生…

【C#学习笔记】匿名函数和lambda表达式

文章目录 匿名函数匿名函数的定义匿名函数作为参数传递匿名函数的缺点 lambda表达式什么是lambda表达式闭包 匿名函数 为什么我们要使用匿名函数&#xff1f;匿名函数存在的意义是为了简化一些函数的定义&#xff0c;特别是那些定义了之后只会被调用一次的函数&#xff0c;与其…

Ribbon:自定义负载均衡

自定义负载均衡算法 package com.kuang.myconfig;import com.netflix.client.config.IClientConfig; import com.netflix.loadbalancer.AbstractLoadBalancerRule; import com.netflix.loadbalancer.ILoadBalancer; import com.netflix.loadbalancer.Server;import java.util.…

STM32f103c6t6/STM32f103c8t6寄存器开发

目录 资料 寻址区 2区 TIMx RTC WWDG IWDG SPI I2S USART I2C USB全速设备寄存器 bxCAN BKP PWR DAC ADC ​编辑 EXTI ​编辑 GPIO AFIO SDIO DMA CRC RCC FSMC USB_OTG ETH&#xff08;以太网&#xff09; 7区 配置流程 外部中断 硬件中断 例子 点灯 …

typora的样式的修改

typora首先是一个浏览器&#xff0c; 当我们在typora的设置里面勾选开启调试模式之后&#xff0c; 我们在typora里面右键就会有“检查元素” 这个选项 首先右键 ----》检查元素 将普通字体变颜色 关于Typora修改样式 破解版的typora样式太单调&#xff1f;想让笔记可读性更高…