51单片机实现直流电机的调速控制

发布者:艺泉阁最新更新时间:2015-10-12 来源: eefocus关键字:51单片机  直流电机  调速控制 手机看文章 扫描二维码
随时随地手机看文章
前一段时间一直拿一个开发板练习51,觉得对AD还不是很熟练,就想单独画一块板子,图都做完了一查价钱,小小的一个样板就要上百,实在有点舍不得,就先再proteus上仿真了一下,然后准备在万用板上搭电路。

电路图如下

[转载]51单片机实现直流电机的调速控制(proteus <wbr>仿真)

占空比18%-82%连续可调,通过调节电路中的电位器实现。

做了单定时器控制和双定时器控制两个程序,电路图一样。

单定时器控制程序

#include //
#include
int count0=1000;
bit A=0;
sbit IN1=P3^4;
sbit IN2=P3^5;
sbit INTR=P3^2;
sbit wr=P3^6;
sbit rd=P3^7;
sbit PB1=P3^0;
int T0_H,T0_L;
char TAB[11]={0xc0,0xf9,0xa4,0xb0,0x99,
              0x92,0x82,0xf8,0x80,0x90,0xff};
void delay(int);
void display(void);
main()
{int i,DATA;
  IE=0x82;
 TMOD=0x01;
 T0_H=(65535-count0)/256;
 T0_L=(65535-count0)%6;
 TH0=T0_H;
 TL0=T0_L;
 IN1=0;
 IN2=1;
 TR0=1;
  P2=0xff;
  while(1)
    {INTR=1;
  wr=1;
  rd=1;
   P0=0xff;
   PB1=1;
   wr=0;
    _nop_();
   wr=1;
    _nop_();
   while(INTR==1);
   for(i=0;i<10;i++)
    {_nop_();}
   rd=0;
   _nop_();
      DATA=P0;
   wr=1;
   DATA=DATA<<5;
   count0=1000+DATA;
    display();
  }
}

void t0(void)interrupt 1
{if(A==0)
  {
 T0_H=(65535-count0)/256;
 T0_L=(65535-count0)%6;
 TH0=T0_H;
 TL0=T0_L;
 IN1=~IN1;IN2=0;
 A=1;
  }
else
  {
 T0_H=(55535+count0)/256;
 T0_L=(55535+count0)%6;
 TH0=T0_H;
 TL0=T0_L;
 IN1=~IN1;IN2=0;
 A=0;
  }
 
}

void display(void)
{int i,j,per,scan;
 per=count0;
 if(per<2700)per=per+650;
 else if((per>2700)&(per<4400))per=per+250;
 else if((per>5800)&(per<6700))per=per-250;
 else if(per>6700)per=per-650;
 scan=0x03;
 for(i=0;i<4;i++)
    {j=per;
     P1=scan;
   P2=TAB[j];
   delay(4);
     per=per/10;
   scan=scan-1;
  }
}
void delay(int x)
{int i,j;
for(i=0;i    for(j=0;j<120;j++);
}

 

双定时器控制的程序

#include //
#include
#define LED P2
int count1=0;
int count0=10000; 
#define T0_H (65535-count0)/256
#define T0_L (65535-count0)%6
#define T1_H (65535-count1)/256
#define T1_L (65535-count1)%6
sbit IN1=P3^4;
sbit IN2=P3^5;
sbit INTR=P3^2;
sbit wr=P3^6;
sbit rd=P3^7;
char TAB[11]={0xc0,0xf9,0xa4,0xb0,0x99,
              0x92,0x82,0xf8,0x80,0x90,0xff};
void delay(int);//1ms
void display(void);
void T(int);
main()
{int i;
 unsigned char DATA;
 IE=0x8a;
 TMOD=0x11;
 TH0=T0_H;TL0=T0_L;
 TH1=T1_H;TL1=T1_L;
 TR0=0;
 TR1=1;
 IN1=1;
 IN2=0;
 P2=0xff;
  while(1)
    {INTR=1;wr=1;rd=1;
   P0=0xff;
   wr=0;
    _nop_();
   wr=1;
    _nop_();
     _nop_();
   while(INTR==1);
   for(i=0;i<10;i++)
    {_nop_();}
   rd=0;
   _nop_();
     _nop_();
     DATA=P0;
   wr=1;
   T(DATA);
   display();
  }
}
void t1(void)interrupt 3
{TH1=T1_H;TL1=T1_L;
 IN1=0;
 TR0=1;
 TR1=0;
}
void t0(void)interrupt 1
{count0=10000-count1;
 TH0=T0_H;TL0=T0_L;
 IN1=1;
 TR1=1;
 TR0=0;
}
void T(int Tw)
{ Tw=Tw<<5;
 count1=1000+Tw;
}
void display(void)
{int i,j,per,scan;
 per=count1;
 if(per<2650)per=per+300;
 else if(per>5890)per=per-300;
 scan=0x03;
 for(i=0;i<4;i++)
    {j=per;
     P1=scan;
   LED=TAB[j];
   delay(4);
     per=per/10;
   scan=scan-1;
  }
}
void delay(int x)
{int i,j;
for(i=0;i    for(j=0;j<120;j++);
}
不足之处:这两种方法实现都有一个问题,输出PWM波的周期时长与期望有一定相差,期望一周期10ms,仿真后得到波形周期为12.5ms左右,具体的解决办法不是很清楚,希望有高人路过,不吝赐教!

关键字:51单片机  直流电机  调速控制 引用地址:51单片机实现直流电机的调速控制

上一篇:一种智能路灯节能控制器的设计与实现
下一篇:关于单片机的仿真

推荐阅读最新更新时间:2024-03-16 14:35

51单片机学习笔记2 -- 单灯控制及流水灯
1.LED仿真电路绘制 LED就不展开介绍了,二极管单向导通电能转换光能,直接上原理图,可以看到LED灯D1连接在51单片机P1.0引脚 在Protues元器件查找输入关键词LED,在详细列表下拉找到几个颜色的LED,分别是蓝、绿、红、黄,随便找一个颜色的LED即可 单个LED的接线按照原理图如下进行仿真电路绘制,注意LED的朝向(LED阳极接限流电阻R2,阴极接芯片引脚P1.0) 2.Keil 51工程创建 打开Keil软件,先关掉当前打开的工程,菜单栏 Project - Close Project 新建一个文件夹以存放工程文件,Keil新建工程 选择新建的文件夹存放工程,并给工程命名 选择工程对应的处
[单片机]
<font color='red'>51单片机</font>学习笔记2 -- 单灯<font color='red'>控制</font>及流水灯
51单片机S系列与C系列的区别及选型指南
有些文献甚至也将8051泛指MCS-51系列单片机,8051是早期的最典型的代表作,由于MCS-51单片机影响极深远,许多公司都推出了兼容系列单片机,就是说MCS-51内核实际上已经成为一个8位单片机的标准。 其他的公司的51单片机产品都是和MCS-51内核兼容的产品而以。同样的一段程序,在各个单片机厂家的硬件上运行的结果都是一样的,如ATMEL的89C51(已经停产)、89S51, PHILIPS(菲利浦),和WINBOND(华邦)等,我们常说的已经停产的89C51指的是ATMEL公司的 AT89C51单片机,同时是在原基础上增强了许多特性,如时钟,更优秀的是由Flash(程序存储器的内容至少可以改写1000次)存储器取带了
[单片机]
51单片机+点阵8*8上、下、左、右移显示C程序
最近在研究点阵,这东西看起来简单,但是要完全掌握它,可是要花一定时间的!我现在做得8*8点阵硬件电路是这样的,行采用74HC138+三极管8550驱动,列采用74HC595驱动,这种电路是非常用的,其次的扫描原理就是,先打开第一行,然后送代码给列,即595端,像这样扫描8次行,一个字就完成了,具体原理图如下图: 下面我将我写得代码下载地址分享下: http://www.51hei.com/f/sxzy.rar 一、上移: #include reg52.h #define uchar unsigned char #define uint unsigned int #define LINE P1//定义行线IO口,即74H
[单片机]
<font color='red'>51单片机</font>+点阵8*8上、下、左、右移显示C程序
3步教你如何用51单片机制作秒表
和很多朋友一样,在学51单片机的过程中我们肯定会涉及到制作一个秒表,牵涉到把单片机的多个部分组合起来使用,这对于我们初学者来说可能显得有些困难,我同大家一样,百思不得其解,最后头都弄大了才把这个秒表制作出来,为了给以后的朋友们一些思路,一些参考,所以在这里我把自己制作的整个详细过程整理出来供大家参考。我调试出来是没有问题的,各方面都稳定运行,由于我水平有限,中间可能会有不对的地方,欢迎大家指正,我们一起学习,一起进步! 我将分为三个部分来介绍:1.整体思路,2.硬件电路方面,3.软件编程方面。 1、整体思路 利用51单片机制作秒表时,我介绍精确到十分位(即0.1s)的制作,并让其拥有启动,暂停,复位三个功能。 用到的单片机
[单片机]
3步教你如何用<font color='red'>51单片机</font>制作秒表
泵站电机交流励磁调速控制技术
1引言 为减少洪涝灾害,我国在大江大河流域建设了许多电力排灌站。一般电力排灌站设计为固定扬程。在洪涝期间,外江水位超过设计扬程时,泵站被迫停机,使内河渍水不能及时排出,给国家和人民财产带来严重损失。如果此时能使电机超同步运行如提速5%,则水泵扬程可提高10%左右,这可在很大程度上解决水泵因外江水位过高而被迫停机的问题,减少内河涝灾损失。因此实现此类电机的超同步运行具有很大的社会与效益。 由于泵用电动机定子侧供电电压为高压,在定子侧采用变频调速时,调速设备价格昂贵,且升速受供电电压限制。如采用双馈调速,则因泵机要求调速范围有限(仅为±10%),变频设备容量比在定子侧调速要小得多,经济上合算。采用双馈调速的另一个重要优点是:
[工业控制]
泵站电机交流励磁<font color='red'>调速</font>的<font color='red'>控制</font>技术
51单片机手机拨号模块
#include AT89X52.h #include intrins.h #define Delaynop(){_nop_();_nop_();_nop_();_nop_();} sbit RS=P2^0; sbit RW=P2^1; sbit EN=P2^2; void Delayms(unsigned int ms); bit LCD_Busy(); void LCD_Pos(unsigned char); void LCD_Wcmd(unsigned char); void LCD_Wdat(unsigned char); char code Title_Text ={ --Phone Code--
[单片机]
<font color='red'>51单片机</font>手机拨号模块
基于场效应管的直流电机驱动控制电路设计
为适应小型直流电机的使用需求,各半导体厂商推出了直流电机控制专用集成电路,构成基于微处电子产品世界理器控制的直流电机伺服系统。但是,专用集成电路构成的直流电机驱动器的输出功率有限,不适合大功率直流电机驱动需求。因此采用N沟道增强型场效应管构建H桥,实现大功率直流电机驱动控制。该驱动电路能够满足各种类型直流电机需求,并具有快速、精确、高效、低功耗等特点,可直接与微处理器接口,可应用PWM技术实现直流电机调速控制。 2 直流电机驱动控制电路总体结构 直流电机驱动控制电路分为光电隔离电路、电机驱动逻辑电路、驱动信号放大电路、电荷泵电路、H桥功率驱动电路等四部分,其电路框图如图1所示。 由图可以看出,电机驱动控制电路的外围接
[嵌入式]
80c51是几位单片机 80c51单片机有几个中断源
  80c51是几位单片机   80C51是一种8位微处理器,也被称为8051,由Intel公司推出。它是最早的商用单片机之一,由于它的简单易用、灵活可靠,被广泛应用于许多嵌入式系统中。在80C51系列中,最常见的型号包括AT89C51和AT89S52等。   80c51单片机寻址范围有多少   80C51单片机的寻址范围取决于其具体的型号和存储器结构。在最常见的AT89C51和AT89S52型号中,其寻址范围如下:   内部RAM寻址范围:0x00-0x7F(128字节)   内部ROM寻址范围:0x0000-0xFFFF(64KB)   特殊功能寄存器(SFR)寻址范围:0x80-0xFF(128字节)   外部扩展RAM
[单片机]
小广播
添点儿料...
无论热点新闻、行业分析、技术干货……
设计资源 培训 开发板 精华推荐

最新单片机文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved