当前位置: 首页 > news >正文

基于51单片机直流电机转速数码管显示控制系统

一、系统方案
本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统,并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节,从而控制其输入信号波形等均作了详细的阐述。另外,本系统中使用了霍尔元件对直流电机的转速进行测量,经过处理后,将测量值送到数码管显示出来。
在这里插入图片描述
二、硬件设计
原理图如下:
在这里插入图片描述

三、单片机软件设计
1、首先是系统初始化
TMOD=0x11; //定时器方式1
TH0=0xdc;
TL0=0x00; //定时器装入初值
EA=1; //开总中断
ET0=1; //定时器0开中断
TR0=1;
// EX0=1;
IT1=1; //定时器启动
TH1=0xff;
TL1=0x9c;//定时100us
ET1=1; //定时器1开中断
TR1=1;
EX1=1;
PT0=1;
2、数码管显示程序
void display(void)
{
P0=0x00;
COM1 = 0;
P0 = cc_table[temp/1000];
delay(2);
COM1 = 1;
P0=0x00;
COM2 = 0;
P0 = cc_table[temp%1000/100];
delay(2);
COM2 = 1;
P0=0x00;
COM3 = 0;
P0 = cc_table[temp%1000%100/10];
delay(2);
COM3 = 1;

P0=0x00;
COM4 = 0;
P0= cc_table[temp%10];		
delay(2);
COM4 = 1; 

}

3、按键检测程序
void keyscan() //键盘扫描函数
{
if(num10)
{
delay(5); //消除抖动
if(num1
0)
{
if(m<=199)
m++;

 }

}
if(num20)
{
delay(5);
if(num2
0)
{
if(m>=1)
m–;

 }

}
if(num30)
{
delay(5);
if(num3
0)
{
zheng=1; //正传标志置1
fan=0; // 反转标志置0

 }

}
if(num40)
{
delay(5);
if(num4
0)
{
zheng=0; //正传标志置0
fan=1; // 反转标志置1

 }

}
if(num50)
{
delay(5);
if(num5
0)
{
while(num5==0) ;
kai=1-kai;
}
}
}
4、核心算法程序
void main()
{
flag_1=0;
m=100; //占空比为100
zhuansu=0; //转速初值0
flag=0;
zheng=1; //初始化电机正转动
fan=0;

init();              //初始化while(1)
{
keyscan();				//键盘扫描程序display();}

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

相关文章:

基于51单片机直流电机转速数码管显示控制系统

一、系统方案 本文主要研究了利用MCS-51系列单片机控制PWM信号从而实现对直流电机转速进行控制的方法。本文中采用了三极管组成了PWM信号的驱动系统&#xff0c;并且对PWM信号的原理、产生方法以及如何通过软件编程对PWM信号占空比进行调节&#xff0c;从而控制其输入信号波形等…...

小程序商品如何指定打印机

有些商家&#xff0c;可能有多个仓库。不同的仓库&#xff0c;存放不同的商品。当客户下单时&#xff0c;小程序如何自动按照仓库拆分订单&#xff0c;如何让打印机自动打印对应仓库的订单呢&#xff1f;下面就来介绍一下吧。 1. 设置订单分发模式。进入管理员后台&#xff0c…...

LLaMA-7B微调记录

Alpaca&#xff08;https://github.com/tatsu-lab/stanford_alpaca&#xff09;在70亿参数的LLaMA-7B上进行微调&#xff0c;通过52k指令数据&#xff08;https://github.com/tatsu-lab/stanford_alpaca/blob/main/alpaca_data.json&#xff09;&#xff0c;在8个80GB A100上训…...

域名子目录发布问题(nginx、vue-element-admin、uni-app)

域名子目录发布问题&#xff08;nginx、vue-element-admin、uni-app&#xff09; 说明Vue-Element-Admin 代码打包nginx配置&#xff1a;uni-app打包 说明 使用一个域名下子目录进行打包&#xff1a; 比如&#xff1a; http://www.xxx.com/merchant 商户端代码 http://www.xx…...

【环境配置】Windows 10 安装 PyTorch 开发环境,以及验证 YOLOv8

Windows 10 安装 PyTorch 开发环境&#xff0c;以及验证 YOLOv8 最近搞了一台Windows机器&#xff0c;准备在上面安装深度学习的开发环境&#xff0c;并搭建部署YOLOv8做训练和测试使用&#xff1b; 环境&#xff1a; OS&#xff1a; Windows 10 显卡&#xff1a; RTX 3090 安…...

数学建模之“层次分析法”原理和代码详解

一、层次分析法简介 层次分析法&#xff08;Analytic Hierarchy Process&#xff0c;AHP&#xff09;是一种用于多准则决策分析和评估问题的定量方法&#xff0c;常用于数学建模中。它是由数学家托马斯赛蒂&#xff08;Thomas Saaty&#xff09;开发的。 层次分析法将复杂的决…...

使用IText导出复杂pdf

1、问题描述 需要将发票导出成pdf&#xff0c;要求每页都必须包含发票信息和表头行。 2、解决方法 使用IText工具实现PDF导出 IText8文档&#xff1a;Examples (itextpdf.com) 3、我的代码 引入Itext依赖&#xff0c;我这里用的是8.0.1版本 <dependency><groupId>…...

多线程并发服务器(TCP)

服务器 客户端 结果...

uni-app的Vue.js实现微信小程序的紧急事件登记页面功能

主要功能实现 完成发生时间选择功能&#xff0c;用户可以通过日期选择器选择事件发生的时间。实现事件类型选择功能&#xff0c;用户可以通过下拉选择框选择事件的类型。添加子养殖场编号输入框&#xff0c;用户可以输入与事件相关的子养殖场编号。完成事件描述输入功能&#…...

面试题 17.16.按摩师

​​题目来源&#xff1a; leetcode题目&#xff0c;网址&#xff1a;面试题 17.16. 按摩师 - 力扣&#xff08;LeetCode&#xff09; 解题思路&#xff1a; 动态规划&#xff0c;对于第 i 个预约&#xff0c;若接下&#xff0c;其最大值为不接上一个时的最大值与当前值之和&a…...

vscode里配置C#环境并运行.cs文件

vscode是一款跨平台、轻量级、开源的IDE, 支持C、C、Java、C#、R、Python、Go、Nodejs等多种语言的开发和调试。下面介绍在vscode里配置C#环境。这里以配置.Net SDK v5.0&#xff0c;语言版本为C#9.0&#xff0c;对应的开发平台为VS2019&#xff0c;作为案例说明。 1、下载vsc…...

uniapp配置添加阿里巴巴图标icon流程步骤

文章目录 下载复制文件到项目文件夹里项目配置目录结构显示图标 下载 阿里巴巴icon官网 https://www.iconfont.cn/ 复制文件到项目文件夹里 项目配置目录结构 显示图标...

大模型基础02:GPT家族与提示学习

大模型基础&#xff1a;GPT 家族与提示学习 从 GPT-1 到 GPT-3.5 GPT(Generative Pre-trained Transformer)是 Google 于2018年提出的一种基于 Transformer 的预训练语言模型。它标志着自然语言处理领域从 RNN 时代进入 Transformer 时代。GPT 的发展历史和技术特点如下: GP…...

算法基础课——基础算法(模板整理)

快速排序 快速排序 #include <iostream> #include <algorithm> using namespace std; int n; int s[100000]; int main() {cin>>n;for(int i0;i<n;i){cin>>s[i];}sort(s,sn);for(int i0;i<n;i){cout<<s[i]<<" ";}cout<…...

如何解决使用npm出现Cannot find module ‘XXX\node_modules\npm\bin\npm-cli.js’错误

遇到问题&#xff1a;用npm下载组件时出现Cannot find module ‘D&#xff1a;software\node_modules\npm\bin\npm-cli.js’ 问题&#xff0c;导致下载组件不能完成。 解决方法&#xff1a;下载缺少的npm文件即可解决放到指定node_modules目录下即可解决。 分析问题&#xff1…...

【华为认证数通高级证书实验-分享篇2】

实验拓扑 注&#xff1a;代码块为各交换机路由器中的配置命令 配置拓扑文件 实验要求 实现全网通 实验配置 SW3 [SW3]v b 10 20 [SW3]int e0/0/1 [SW3-Ethernet0/0/1]po link-t a [SW3-Ethernet0/0/1]po de v 10 [SW3-Ethernet0/0/1]int e0/0/2 [SW3-Ethernet0/0/2]po li…...

ui设计需要学编程吗难不难学习 优漫动游

ui设计需要学编程吗难不难学习&#xff0c;对于基础小白来说学习编程确实有一定难度&#xff0c;所以很想知道零基础学习ui设计需要学编程吗&#xff0c;需不需要写代码呢&#xff0c;这些问题小编来简单的分析分析解决零基础小白的一些困惑&#xff0c;希望对你有帮助。 ui…...

什么是线程优先级?Java中的线程优先级是如何定义和使用的?

线程优先级是指在多线程环境中&#xff0c;通过给线程分配不同的优先级来决定线程获取CPU时间片的顺序。优先级较高的线程会更有可能被调度执行&#xff0c;而优先级较低的线程可能会获得较少的CPU时间。 在Java中&#xff0c;线程优先级是通过整数表示的&#xff0c;范围从1到…...

无涯教程-TensorFlow - XOR实现

在本章中&#xff0c;无涯教程将学习使用TensorFlow的XOR实现&#xff0c;在TensorFlow中开始XOR实施之前&#xff0c;看一下XOR表值。这将帮助了解加密和解密过程。 A B A XOR B 0 0 0 0 1 1 1 0 1 1 1 0 XOR密码加密方法基本上用于加密&#xff0c;即通过生成与适当密钥匹配…...

计算机组成与设计 Patterson Hennessy 笔记(二)MIPS 指令集

计算机的语言&#xff1a;汇编指令集 也就是指令集。本书主要介绍 MIPS 指令集。 汇编指令 算数运算&#xff1a; add a,b,c # abc sub a,b,c # ab-cMIPS 汇编的注释是 # 号。 由于MIPS中寄存器大小32位&#xff0c;是基本访问单位&#xff0c;因此也被称为一个字 word。M…...

基于LLM的dbt智能体:自动化数据建模与项目管理的工程实践

1. 项目概述&#xff1a;当数据建模遇上大语言模型 最近在数据工程圈里&#xff0c;一个叫 pragunbhutani/dbt-llm-agent 的项目引起了我的注意。简单来说&#xff0c;它试图用大语言模型&#xff08;LLM&#xff09;来辅助甚至自动化我们日常的 dbt 数据建模工作。作为一个和…...

Go语言建造者模式:复杂对象构建

Go语言建造者模式&#xff1a;复杂对象构建 1. 建造者实现 type User struct {Name stringAge intEmail stringPhone stringAddress string }type UserBuilder struct {user *User }func NewUserBuilder() *UserBuilder {return &UserBuilder{user: &User{}…...

Zotero插件市场:告别繁琐安装,开启高效学术插件管理新时代

Zotero插件市场&#xff1a;告别繁琐安装&#xff0c;开启高效学术插件管理新时代 【免费下载链接】zotero-addons Zotero Add-on Market | Zotero插件市场 | Browsing, installing, and reviewing plugins within Zotero 项目地址: https://gitcode.com/gh_mirrors/zo/zoter…...

DeepSeek LDAP同步延迟从15分钟压缩至800ms:基于增量Sync+Change Notification机制的深度调优实录

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;DeepSeek LDAP集成方案 DeepSeek 模型服务在企业级部署中常需与现有身份认证体系对接&#xff0c;LDAP&#xff08;Lightweight Directory Access Protocol&#xff09;作为主流目录服务协议&#xff0…...

英矽智能对标宁德时代,AI 制药规模化复制难题待解!

AI 制药巨头“朋友圈”扩大AI 制药巨头的“朋友圈”越来越大了。“港股 AI 制药一哥”英矽智能日前宣布与谷歌云达成战略合作&#xff0c;要把 Gemini 大模型塞进自家 Pharma.AI 平台。这意味着英矽智能已不再满足于做一家“卖算法的”公司&#xff0c;而是要把自己变成药物发现…...

DLSS Swapper完整指南:如何5分钟提升游戏性能50%?

DLSS Swapper完整指南&#xff1a;如何5分钟提升游戏性能50%&#xff1f; 【免费下载链接】dlss-swapper 项目地址: https://gitcode.com/GitHub_Trending/dl/dlss-swapper 您是否曾经为游戏卡顿而烦恼&#xff1f;是否在寻找提升帧率的方法却不知从何入手&#xff1f;…...

为什么顶尖社会学期刊编辑开始拒收未使用AI辅助验证的民族志推论?(NotebookLM可复现性协议首曝)

更多请点击&#xff1a; https://intelliparadigm.com 第一章&#xff1a;NotebookLM社会学研究辅助 面向质性研究的语义增强工作流 NotebookLM 是 Google 推出的基于用户上传文档进行“可信引用”的 AI 助手&#xff0c;特别适用于社会学研究中对访谈转录稿、田野笔记、政策…...

LLM赋能网页抓取:基于ChatGPT的智能数据提取实战指南

1. 项目概述与核心价值最近在数据采集和自动化领域&#xff0c;一个名为“oxylabs/chatgpt-web-scraping”的项目引起了我的注意。乍一看&#xff0c;这像是把两个热门概念——大型语言模型&#xff08;LLM&#xff09;和网页抓取&#xff08;Web Scraping&#xff09;——强行…...

GitHub Pages静态博客全栈指南:从Jekyll部署到SEO优化

1. 项目概述&#xff1a;一个静态博客的诞生与演进 如果你对个人博客、技术分享或者打造一个纯粹属于自己的线上空间有过想法&#xff0c;那么“eirikrrrr/eirikrrrr.github.io”这个项目标题对你来说&#xff0c;可能就是一个绝佳的起点和范本。这本质上是一个托管在GitHub P…...

微内核操作系统nanoclaw:面向嵌入式与边缘计算的极简设计

1. 项目概述&#xff1a;一个为嵌入式与边缘计算而生的微型操作系统最近在折腾一些资源极其有限的嵌入式板子&#xff0c;比如只有几十KB内存的MCU&#xff0c;或者那些主打低功耗的边缘计算节点。在这些场景下&#xff0c;跑一个完整的Linux系统简直是天方夜谭&#xff0c;而传…...