【【51单片机直流电机调速】】

这篇具有很好参考价值的文章主要介绍了【【51单片机直流电机调速】】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

学会电机调速,掌握中国速度

PWM的生成方法

先用户设定一个比较值,然后计数器定时自增。
当计数器<比较值,输出0
当计数器>比较值,输出1
【【51单片机直流电机调速】】,51单片机微型设计,51单片机,嵌入式硬件,单片机
【【51单片机直流电机调速】】,51单片机微型设计,51单片机,嵌入式硬件,单片机文章来源地址https://www.toymoban.com/news/detail-616927.html

main.c

#include <REGX52.H>
#include"delay.h"
#include"key.h"
#include"Nixie.h"
#include"Timer0.h"

unsigned char Counter,Compare;
unsigned char KeyNum,Speed;
sbit Motor=P1^0;


void main()
{
	Timer0_Init();
	
	while(1)
	{
		KeyNum=Key();
		if(KeyNum==1)
		{
			Speed++;
			Speed%=4;
			if(Speed==0){Compare=0;}
			if(Speed==1){Compare=50;}
			if(Speed==2){Compare=75;}
			if(Speed==3){Compare=100;}
			
		}
		Nixie(1,Speed);
		
		
		
		
		
		
	}	
	
}



void Timer0_Routine() interrupt 1
{
	
	TL0 = 0x9C;		//设置定时初值
	TH0 = 0xFF;		//设置定时初值
	Counter++;
	Counter%=100;
	if(Counter<Compare)
	{
		Motor=1;
	}
	else
	{
		Motor=0;
	}
}

delay.c

void Delay(unsigned int xms)		//@12.000MHz
{
	while(xms)
	{
	unsigned char i, j;

	i = 2;
	j = 239;
	do
	{
		while (--j);
	} while (--i);
	xms--;
}
}

delay.h

#ifndef _DELAY_H__
#define _DELAY_H__
void Delay(unsigned int xms);
 
 #endif

key.c

#include <REGX52.H>
#include "Delay.h"

/**
  * @brief  获取独立按键键码
  * @param  无
  * @retval 按下按键的键码,范围:0~4,无按键按下时返回值为0
  */
unsigned char Key()
{
	unsigned char KeyNumber=0;
	
	if(P3_1==0){Delay(20);while(P3_1==0);Delay(20);KeyNumber=1;}
	if(P3_0==0){Delay(20);while(P3_0==0);Delay(20);KeyNumber=2;}
	if(P3_2==0){Delay(20);while(P3_2==0);Delay(20);KeyNumber=3;}
	if(P3_3==0){Delay(20);while(P3_3==0);Delay(20);KeyNumber=4;}
	
	return KeyNumber;
}

key.h

#ifndef __KEY_H__
#define __KEY_H__

unsigned char Key();

#endif

Nixie.c

#include <REGX52.H>
#include "Delay.h"	//包含Delay头文件

//数码管段码表
unsigned char NixieTable[]={0x3F,0x06,0x5B,0x4F,0x66,0x6D,0x7D,0x07,0x7F,0x6F};

//数码管显示子函数
void Nixie(unsigned char Location,Number)
{
	switch(Location)		//位码输出
	{
		case 1:P2_4=1;P2_3=1;P2_2=1;break;
		case 2:P2_4=1;P2_3=1;P2_2=0;break;
		case 3:P2_4=1;P2_3=0;P2_2=1;break;
		case 4:P2_4=1;P2_3=0;P2_2=0;break;
		case 5:P2_4=0;P2_3=1;P2_2=1;break;
		case 6:P2_4=0;P2_3=1;P2_2=0;break;
		case 7:P2_4=0;P2_3=0;P2_2=1;break;
		case 8:P2_4=0;P2_3=0;P2_2=0;break;
	}
	P0=NixieTable[Number];	//段码输出
	//Delay(1);				//显示一段时间
	//P0=0x00;				//段码清0,消影
}

Nixie.h

#ifndef __NIXIE_H__
#define __NIXIE_H__

void Nixie(unsigned char Location,Number);

#endif

Timer0.c

#include <REGX52.H>

/**
  * @brief  定时器0初始化,100us@12.000MHz
  * @param  无
  * @retval 无
  */
void Timer0_Init(void)
{
	TMOD &= 0xF0;		//设置定时器模式
	TMOD |= 0x01;		//设置定时器模式
	TL0 = 0x9C;		//设置定时初值
	TH0 = 0xFF;		//设置定时初值
	TF0 = 0;		//清除TF0标志
	TR0 = 1;		//定时器0开始计时
	ET0=1;
	EA=1;
	PT0=0;
}

Timer0.h

#ifndef __TIMER0_H__
#define __TIMER0_H__

void Timer0_Init(void);

#endif

到了这里,关于【【51单片机直流电机调速】】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

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

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

    2024年02月11日
    浏览(40)
  • 基于单片机串口控制直流电机调速

    一、系统方案 (2)本设计采用STC89C5单片机作为主控器,串口控制直流电机调速,串口助手发送1-8,改变电机速度,数码管显示对应速度。 二、硬件设计 原理图如下: 三、单片机软件设计 1、首先是系统初始化 TMOD=0x21;//定时器0工作方式1 ET1=0; SM0=0; SM1=1; REN=1; EA=1; ES=1; 2、数码管

    2024年02月12日
    浏览(38)
  • 单片机学习笔记---LED呼吸灯&直流电机调速

    目录 LED呼吸灯 直流电机调速 模型结构 波形 定时器初始化函数 中断函数 主程序 上一节讲了电机的工作原理,这一节开始代码演示! 我们上一篇说 Ton的时间长Toff时间短电机会快,Ton的时间短Toff时间长电机会慢 并且我们还要保证无论Ton和Toff哪个时间比较长, Ts都得是固定

    2024年02月19日
    浏览(29)
  • 单片机控制PWM的直流电机调速系统的设计

    单片机控制PWM的直流电机调速系统的设计  摘 要:在国民生产中,随着现代技术的发展,电力电子技术已得到了全面的发展,其技术已应用到各个领域。在各类机电系统中,由于直流电机具有良好的启动、制动和调速性能,直流电机调速系统已广泛运用于工业、航天领域的各个

    2024年02月04日
    浏览(34)
  • 51单片机-直流电机学习

    51单片机采用的是5V的直流电机 轴长:8mm 轴径:2mm 电压:1-6V 参考电流:0.35-0.4A 3V 转速:17000-18000 转每分钟 直流电机的结构应由 定子 和 转子 两大部分组成。 直流电机运行时静止不动的 部分称为定子 定子的主要作用是产生磁场,由机座、主磁极、 换向极、 端盖、 轴承和

    2024年02月09日
    浏览(33)
  • 基于STM32单片机的直流电机PWM调速(数码管显示)(Proteus仿真+程序)

          由 STM32单片机+数码管显示模块+键盘模块+L298N电机驱动模块+直流电机 1、采用STM32F103单片机为主控制器 2、四个按键,分别为启动/暂停、方向切换、加速、减速功能 3、数码管显示PWM占空比和电机转动方向(0正转,1反转) 注意:proteus8.11版本才能打开   24、基于STM32单

    2024年02月11日
    浏览(50)
  • [proteus]STM32F103单片机直流电机PID算法PWM波电机调速正反转Proteus仿真

    1、实现功能: (1)、基于STM32F103单片机PID算法PWM控制直流电机正反转调速,LCD1602显示转速等。可通过“加速”、“减速”按键修改“目标转速”并实时测量“实际转速”送到LCD1602上显示。 (2)、“启动”按键控制电机启动,默认启动电机是正转(示波器上的黄色PWM波)。 (3)、“

    2024年02月06日
    浏览(38)
  • 【毕业设计】2-基于单片机控制的直流电机调速系统设计(原理图+仿真+答辩论文+答辩PPT)

    包含此题目毕业设计全套资料: 原理图工程 仿真工程 源代码工程 答辩论文,配套设计参考设计说明书,字数:18077 答辩PPT 主要研究内容: 1.单片机;2.直流电机,液晶显示器LCD。 设计思路: 查阅相关文献资料学习单片机、直流电机,液晶显示器LCD,编程实现单片机控制的直

    2024年02月03日
    浏览(48)
  • 【51单片机】直流电机驱动(PWM)(江科大)

    · 直流电机是一种将电能转换为机械能的装置。一般的直流电机有两个电极,当电极正接时,电机正转,当电极反接时,电机反转 · 直流电机主要由永磁体(定子)、线圈(转子)和换向器组成 · 除直流电机外,常见的电机还有步进电机、舵机、无刷电机、空心杯电机等 电机的驱动无法

    2024年02月20日
    浏览(40)
  • 基于51单片机的直流电机转速显示+加速减速启停

    做了一个实战项目,这个实战项目主要是实现对直流电机转速的控制,可以实现电机加速,减速,报警、启停以及显示转速。在本电路的基础上也可以进行一些拓展改变电机正反转的状态,只需要外加一个按键和修改部分程序即可,在文章的最后会对拓展进行一个说明。基础

    2023年04月27日
    浏览(39)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包