基于单片机串口控制直流电机调速
一、系统方案
(2)本设计采用STC89C5单片机作为主控器,串口控制直流电机调速,串口助手发送1-8,改变电机速度,数码管显示对应速度。

二、硬件设计
原理图如下:

三、单片机软件设计
1、首先是系统初始化
TMOD=0x21;//定时器0工作方式1
EA=1;//开总中断
TH0=(65536-100)/256;//赋初值定时
TL0=(65536-100)%256;//0.01msET0=1;//开定时器0中断
TR0=0;//启动定时器0 TH1=0xfd;
TL1=0xfd;
TR1=1;
ET1=0;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
2、数码管显示程序
void display(void)
{
P0=0x00;
COM1 = 0;
P0 = cc_table[dangwei2/1000];
delay(2);
COM1 = 1;
P0=0x00;
COM2 = 0;
P0 = cc_table[dangwei2%1000/100];
delay(2);
COM2 = 1;
P0=0x00;
COM3 = 0;
P0 = cc_table[dangwei2%1000%100/10];
delay(2);
COM3 = 1;
P0=0x00;
COM4 = 0;
P0= cc_table[dangwei2%10];
delay(2);
COM4 = 1;
}
3、串口程序
void Usart() interrupt 4
{
receiveData=SBUF;//出去接收到的数据
RI = 0;//清除接收中断标志位
ES=0;
SBUF=receiveData;//将接收到的数据放入到发送寄存器
while(!TI); //等待发送数据完成
TI=0; //清除发送完成标志位
ES=1;
}
4、核心算法程序
/主函数/
void main(void)
{
TMOD=0x21;//定时器0工作方式1
EA=1;//开总中断
TH0=(65536-100)/256;//赋初值定时
TL0=(65536-100)%256;//0.01msET0=1;//开定时器0中断
TR0=0;//启动定时器0 TH1=0xfd;
TL1=0xfd;
TR1=1;
ET1=0;
SM0=0;
SM1=1;
REN=1;
EA=1;
ES=1;
while(1)
{
display();
if(receiveData==‘1’)
{
dangwei2 = 10;
PWM2=1;TR0=1;pwm1(10); //控制PWM输出,进而控制电机的速度}if(receiveData=='2'){dangwei2 = 20;PWM2=1;TR0=1;pwm1(100); //控制PWM输出,进而控制电机的速度}if(receiveData=='3'){dangwei2 = 30;PWM2=1;TR0=1;pwm1(30); //控制PWM输出,进而控制电机的速度}if(receiveData=='4'){dangwei2 = 40;PWM2=1;TR0=1;pwm1(40); //控制PWM输出,进而控制电机的速度}if(receiveData=='5'){dangwei2 = 50;PWM2=1;TR0=1;pwm1(50); //控制PWM输出,进而控制电机的速度}if(receiveData=='6'){dangwei2 = 60;PWM2=1;TR0=1;pwm1(60); //控制PWM输出,进而控制电机的速度}if(receiveData=='7'){dangwei2 = 70;PWM2=1;TR0=1;pwm1(70); //控制PWM输出,进而控制电机的速度}if(receiveData=='8'){dangwei2 = 80;PWM2=1;TR0=1;pwm1(80); //控制PWM输出,进而控制电机的速度}if(receiveData=='0'){dangwei2 = 0;PWM2=0;TR0=0;pwm1(0); //控制PWM输出,进而控制电机的速度}}
}
四、proteus仿真设计
Proteus软件是一款应用比较广泛的工具,它可以在没有硬件平台的基础上通过自身的软件仿真出硬件平台的运行情况,这样就可以通过软件仿真来验证我们设计的方案有没有问题,如果有问题,可以重新选择器件,连接器件,直到达到我们设定的目的,避免我们搭建实物的时候,如果当初选择的方案有问题,我们器件都已经焊接好了,再去卸载下去,再去焊接新的方案的器件,测试,这样会浪费人力和物力,也给开发者带来一定困惑,Proteus仿真软件就很好的解决这个问题,我们在设计之初,就使用该软件进行模拟仿真,测试,选择满足我们设计的最优方案。最后根据测试没问题的仿真图纸,焊接实物,调试,最终完成本设计的作品。

相关文章:
基于单片机串口控制直流电机调速
一、系统方案 (2)本设计采用STC89C5单片机作为主控器,串口控制直流电机调速,串口助手发送1-8,改变电机速度,数码管显示对应速度。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 TMOD0x21;//定…...
Linux(基础篇一)
Linux基础篇 Linux基础篇一1. Linux文件系统与目录结构1.1 Linux文件系统1.2 Linux目录结构 2. VI/VIM编辑器2.1 vi/vim是什么2.2 模式间的转换2.3 一般模式2.4 插入模式2.4.1 进入编辑模式2.4.2 退出编辑模式 2.5 命令模式 3. 网络配置3.1 网络连接模式3.2 修改静态ip3.3 配置…...
小程序如何手动变更会员卡等级
有时候需要商家手动变更会员卡等级,以让会员获取更多的福利和特权。下面就介绍一些小程序手动变更会员卡等级的常见方法和策略。 1. 找到指定的会员卡。在管理员后台->会员管理处,找到需要更改等级的会员卡。也支持对会员卡按卡号、手机号和等级进行…...
Tensorflow2.0搭建网络八股
目录 引言:keras与Tensorflow2.0结合 一、六步法 1.导入头文件:import 2.收集处理训练集和测试集:train, test: 3.描述各层网model tf.keras.models.Sequential: 4.描述使用什么优化反向传播:model.c…...
【安装GPU版本pytorch,torch.cuda.is_available()仍然返回False问题】
TOC 第一步 检查cuda是否安装,CUDA环境变量是否正确设置,比如linux需要设置在PATH,window下环境变量编辑看看,是否有CUDA 第二步,核查python中torch版本 首先查看你环境里的pytorch是否是cuda版本,我这…...
Git 版本控制系统
git相关代码 0、清屏幕:clear 1、查看版本号 git -v2、暂存、更改、提交 3、当前项目下暂存区中有哪些文件 git ls-files4、查看文件状态 git status -s5、暂时存储,可以临时恢复代码内容 git restore 目标文件 //(注意:完全…...
70吨服务区生活污水处理设备加工厂家电话
70吨服务区生活污水处理设备加工厂家电话 设备简单说明 调节池 由于来水标高低,无法直接流入地埋式生活污水处理设备,在生化一体化设备前增加集水调节池一座。集水提升池内装有两台潜水提升泵,将集水提升池内的废水提升至一体化污水处理设备。…...
十一、hadoop应用
1.上传数据集 27.19.74.143,2015/3/30 17:38,/static/image/common/faq.gif 110.52.250.126,2015/3/30 17:38,/data/cache/style_1_widthauto.css?y7a 27.19.74.143,2015/3/30 17:38,/static/image/common/hot_1.gif 27.19.74.143,2015/3/30 17:38,/static/image/common/hot_2…...
Pytorch06-复杂模型构建
https://github.com/ExpressGit/Pytorch_Study_Demo 1、PyTorch 复杂模型构建 1、模型截图2、模型部件实现3、模型组装 2、模型定义 2.1、Sequential 1、当模型的前向计算为简单串联各个层的计算时, Sequential 类可以通过更加简单的方式定义模型。2、可以接收…...
iPhone 15 Pro与谷歌Pixel 7 Pro:哪款相机手机更好?
考虑到苹果最近将更多高级功能转移到iPhone Pro设备上的趋势,今年秋天iPhone 15 Pro与谷歌Pixel 7 Pro的对决将是一场特别有趣的对决。去年发布的iPhone 14 Pro确实发生了这种情况,有传言称iPhone 15 Pro再次受到了苹果的大部分关注。 预计iPhone 15系列会有一些变化,例如切…...
react通过ref获取函数子组件实例方法
在react16之后带来了hooks之后,确实方便了很多组件开发,也加快了函数式编程的速度,但是当你通过useRef获取子组件的时候,又恰好子组件是一个函数组件,那么将会报一个错误:报这个错误的主要原因是函数组件没…...
MathType7MAC中文版数学公式编辑器下载安装教程
如今许多之前需要手写的内容都可以在计算机中完成了。以前我们可以通过word输入一些简单的数学公式,但现在通过数学公式编辑器便可以完成几乎所有数学公式的写作。许多简单的数学公式,我们可以使用输入法一个个找到特殊符号并输入,但是对于高…...
python项目实战
文章 项目1:外星人入侵项目2:数据可视化2.a matplotlib2.b csv文件格式2.c json文件格式2.d 使用Web API2.e 使用Pygal可视化仓库 项目3:Web应用程序3.1 Django入门3.1.1 建立项目3.1.2 创建应用程序3.1.3 创建网页 3.2 用户账户3.2.1 让用户…...
网络渗透day03-Windows Server相关知识
1.在Windows Server中,以下哪个工具用于实时监视系统资源使用情况? A.Event Viewer B.Task Manager C.Performance Monitor D.Resource Monitor 正确答案:D 答案解析:Resource Monitor用于实时监视系统资源使用情况。 2.在Wi…...
关于述职答辩的一点思考和总结
公众号:赵侠客 侠客说:优秀人才的四个特征:格局、思路、实干、写作 一、前言 1.1 述职答辩的重要性 公司都会有晋升通道,述职答辩是你想升职加薪除了跳槽以外的必由之路,其重要性对个人发展来说不言而喻,…...
远程调试环境配置
远程调试环境配置 前期准备ssh连接 前期准备 安装vscode中的两个扩展包php-debug和remote-ssh 然后安装与PHP版本对应的xdebug 访问xdebug的官方网页,复制自己的phpinfo源码到方框中,再点击Analyse ssh连接 输入,你想要远程连接的主机i…...
C++:构造方法(函数);拷贝(复制)构造函数:浅拷贝、深拷贝;析构函数。
1.构造方法(函数) 构造方法是一种特殊的成员方法,与其他成员方法不同: 构造方法的名字必须与类名相同; 无类型、可有参数、可重载 会自动生成,可自定义 一般形式:类名(形参); 例: Stu(int age); 当用户没自定义构造方法时&…...
vr内容编辑软件降低了虚拟现实项目开发门槛
VR虚拟场景编辑器是一种专门用于创建、修改和设计虚拟场景的工具。它利用vr虚拟现实技术,让用户可以在三维空间中直接对场景进行操作和编辑。这种编辑器的出现,使得用户可以更加直观、自由地进行场景设计和制作,为诸多领域带来了新的可能性。…...
【水平垂直居中布局】CSS实现水平垂直居中的5种方法(附源码)
文章目录 写在前面涉及知识点1、子绝对定位父相对定位,子节点设置位移实现1.1效果1.2实现源码 2、子绝对定位父相对定位,子节点设置上下边距2.1 效果2.2 实现源码 3、利用flex布局实现3.1 效果3.2 实现源码 4、利用行高和文本水平居中设置4.1 效果4.2 实…...
原生js插入HTML元素
原生js插入HTML元素方法:insertAdjacentHTML insertAdjacentHTML语法格式 element.insertAdjacentHTML(position, text); 1)position 是相对于 element 元素的位置,并且只能是以下的字符串之一: 1.beforebegin:在 ele…...
基于LLM的MBTI人格模拟对话实验:从系统设计到工程实践
1. 项目概述:当MBTI遇上AI,一次关于人格的深度对话实验最近在GitHub上看到一个挺有意思的项目,叫“Kali-Hac/ChatGPT-MBTI”。光看名字,你可能觉得这又是一个用ChatGPT玩MBTI性格测试的简单脚本。但当我真正clone下来,…...
AnyFlip下载器:3分钟将在线翻页电子书变为永久PDF收藏
AnyFlip下载器:3分钟将在线翻页电子书变为永久PDF收藏 【免费下载链接】anyflip-downloader Download anyflip books as PDF 项目地址: https://gitcode.com/gh_mirrors/an/anyflip-downloader 你是否曾在AnyFlip网站上发现一本精彩的电子书,想要…...
从零开始将Taotoken接入现有Nodejs项目实践步骤
🚀 告别海外账号与网络限制!稳定直连全球优质大模型,限时半价接入中。 👉 点击领取海量免费额度 从零开始将Taotoken接入现有Nodejs项目实践步骤 1. 准备工作:获取API密钥与模型信息 在开始代码改造之前,…...
Gemini3.1Pro解决新媒体小编选题难痛点
做新媒体的小编,最怕的不是写,而是“今天写什么”。 选题总是来得很急,热点总是变化很快,账号又要求持续更新,结果就是:内容压力大、时间不够用、框架搭不出来。如果你每天都在追热点、找角度、写标题、搭结…...
手把手教你用PyTorch复现EfficientNetV2(附完整代码):从网络搭建到渐进式训练全流程
从零实现EfficientNetV2:代码级解析与渐进式训练实战 当你第一次翻开EfficientNetV2论文时,那些复杂的复合缩放系数和渐进式训练策略可能让人望而生畏。但别担心——本文将带你用PyTorch从最基础的卷积模块开始,逐层构建这个高效的视觉模型。…...
Java程序开发第七课
1. Java基础入门 Java特点:跨平台(JVM)、面向对象、健壮性(强类型、垃圾回收)。JDK、JRE、JVM关系: JDK (开发工具包) JRE 开发工具 (javac, java&#x…...
GIS制图必备:GlobalMapper 20制作1:100万标准图幅的完整指南与命名规则详解
GIS制图实战:GlobalMapper 20标准图幅生成与命名规范全解析 在测绘与地理信息行业,标准图幅不仅是数据管理的基石,更是跨部门协作的通用语言。当我们面对1:100万比例尺的地形图分幅时,每一个经纬网格的划分、每一组编号的生成&…...
Raw Accel终极指南:Windows鼠标加速的完整解决方案
Raw Accel终极指南:Windows鼠标加速的完整解决方案 【免费下载链接】rawaccel kernel mode mouse accel 项目地址: https://gitcode.com/gh_mirrors/ra/rawaccel 你是否厌倦了Windows系统自带的鼠标加速功能?是否在游戏和设计工作中需要更精准的鼠…...
ARM PMU性能监控架构与寄存器详解
1. ARM PMU性能监控架构概述 性能监控单元(Performance Monitoring Unit, PMU)是现代处理器中用于硬件级性能分析的关键模块。作为ARM架构的重要组成部分,PMU通过一组可编程计数器来记录处理器运行过程中发生的各类微架构事件,为系统性能分析和优化提供数…...
Godot开发者必备:awesome-godot资源库高效使用指南
1. 项目概述:一个开源游戏引擎的“宝藏库” 如果你正在使用或考虑使用 Godot 引擎进行游戏开发,那么你很可能已经听说过 awesome-godot 这个项目。它不是一个可以直接运行的软件,也不是一个插件,而是一个由社区共同维护的、结构…...
