电子开发网

电子开发网电子设计 | 电子开发网Rss 2.0 会员中心 会员注册
搜索: 您现在的位置: 电子开发网 >> 电子开发 >> 单片机实例 >> 正文

MCU-51单片机直流电机驱动(PWM)51单片机驱动直流电机

作者:佚名    文章来源:本站原创    点击数:    更新时间:2023/4/4

目录

一、直流电机介绍

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

二、直流电机驱动电路

直流电机驱动电路 

三、PWM

3.1 PWM介绍

PWM(Pulse Width Modulation)即脉冲宽度调制,在具有惯性的系统中,可以通过对一系列脉冲的宽度进行调制,来等效地获得所需要的模拟参量,常应用于电机控速、开关电源等领域
PWM重要参数:
频率 = 1 / TS 占空比 = TON / TS 精度 = 占空比变化步距
 

3.2 产生PWM方法

基本原理是由单片机内部集成PWM发生器模块在程序控制下产生PWM信号。优点是电路简单、便于程序控制。缺点是不利于学生观测PWM产生过程,闭环控制复杂和使用时受单片机性能制约。
 

四、代码演示

电机调速
main.c

#include <REGX52.H>
#include "Delay.h"
#include "Key.h"
#include "Nixie.h"
#include "Timer0.h"
sbit Motor=P1^0;
unsigned char Counter,Compare;
unsigned char KeyNum,Speed;
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;
 }
 
}

注意:一定要看

千万不要直接复制代码,因为是模块化编写,模块的代码没有往上复制(模块的代码在以往的文章中可以找到),大家一定要自己动手,跟着视频学!!!!!

Tags:51单片机,直流电机,驱动  
责任编辑:admin
请文明参与讨论,禁止漫骂攻击,不要恶意评论、违禁词语。 昵称:
1分 2分 3分 4分 5分

还可以输入 200 个字
[ 查看全部 ] 网友评论
关于我们 - 联系我们 - 广告服务 - 友情链接 - 网站地图 - 版权声明 - 在线帮助 - 文章列表
返回顶部
刷新页面
下到页底
晶体管查询