找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7989|回復: 2
打印 上一主題 下一主題
收起左側

51單片機+直流電機PWM調(diào)速控制Proteus仿真(附Word文檔+C程序+流程圖)

[復制鏈接]
跳轉到指定樓層
樓主
ID:596401 發(fā)表于 2019-8-8 12:21 | 只看該作者 |只看大圖 回帖獎勵 |倒序瀏覽 |閱讀模式
設計思路:
直流電機PWM控制系統(tǒng)的主要功能包括:實現(xiàn)對直流電機的加速、減速以及電機的正轉、反轉和急停,并且可以調(diào)整電機的轉速,能夠很方便的實現(xiàn)電機的智能控制。
主體電路:即直流電機PWM控制模塊。這部分電路主要由AT89C52單片機的I/O端口、定時計數(shù)器、外部中斷擴展等控制直流電機的加速、減速以及電機的正轉和反轉,并且可以調(diào)整電機的轉速,能夠很方便的實現(xiàn)電機的智能控制。其間是通過AT89C52單片機產(chǎn)生脈寬可調(diào)的脈沖信號并輸入到L298驅(qū)動芯片來控制直流電機工作的。該直流電機PWM控制系統(tǒng)由以下電路模塊組成:
設計輸入部分:這一模塊主要是利用帶中斷的獨立式鍵盤來實現(xiàn)對直流電機的加速、減速以及電機的正轉、反轉和急�?刂�。
設計控制部分:主要由AT89C52單片機的外部中斷擴展電路組成。直流電機PWM控制實現(xiàn)部分主要由一些二極管、電機和L298直流電機驅(qū)動模塊組成。
設計顯示部分: LED數(shù)碼顯示部分,實現(xiàn)對PWM脈寬調(diào)制占空比的實時顯示。

系統(tǒng)框架設計:

仿真運行:

程序部分:
*********************************************************************
                                                 直流電機PWM調(diào)速
功能描述:使用單片機T0定時器產(chǎn)生(xxxHz)脈寬調(diào)制信號,輸?shù)?/font>L298NEN_A
                實現(xiàn)雙直流電機的速度調(diào)控。
修訂日期:2011-5-7
*********************************************************************/
#include<reg52.h>   
#include<intrins.h>                        
#define uchar unsigned char  
#define uint unsigned int

/**********************************************************************
                                                 L298n接口定義
**********************************************************************/  
sbit MOTOR_A_2=P3^6;
sbit MOTOR_A_1=P3^7;
sbit EN_MOTOR_A =P3^4;                                                                                                              
sbit k1=P1^5;
sbit k2=P3^1;
sbit k3=P3^2;
sbit k4=P3^3;
uchar T=0;
uchar W=0;
uchar A=0;
uchar k=0;
uchar i=0;

uchar code table1[]={
0x3f,0x06,0x5b,0x4f,
0x66,0x6d,0x7d,0x07,
0x7f,0x6f,0x77,0x7c,
0x39,0x5e,0x79,0x71};

uchar code table2[]={0xef,0xbf,0xdf,0x7f};

void delayms(uint t);                                                      
/**********************************************************************
                                          數(shù)碼管顯示
**********************************************************************/
void disp(void)
{
       P0=table2[3];  
       P2=table1[W%10];
       delayms(1);
       P0=0xff;

       P0=table2[2];
       P2=table1[W/100];
       delayms(1);
       P0=0xff;

       P0=table2[1];
       P2=table1[W/10%10];
       delayms(1);
       P0=0xff;

       P0=table2[0];
       P2=table1[A];
       delayms(1);
       P0=0xff;
}

/**********************************************************************
                                                 定時器變量定義
**********************************************************************/


void init(void)
{
       TMOD=0x01;
       EA=1;                                       
       ET0=1;
       TR0=1;
       //設置定時時間
       TH0=0xfd;
       TL0=0x17;
}
void timer0() interrupt 1
{
       TL0=0x17;
       TH0=0xff;
       T++;
       disp();
       if(T>W)
              EN_MOTOR_A=1;
       else
              EN_MOTOR_A=0;
       if(T==100)
              T=0;

}                  
/**********************************************************************
                                                 延時1ms
**********************************************************************/
void delayms(uint t)
{
       ucharj;
       while(t--)
       {
              for(j=0;j<250;j++)
              {
          _nop_();
      _nop_();
      _nop_();
      _nop_();
              }
       }

}



分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏5 分享淘帖 頂 踩
回復

使用道具 舉報

沙發(fā)
ID:605314 發(fā)表于 2019-9-8 17:36 來自手機 | 只看該作者
根本不全,還要關注
回復

使用道具 舉報

板凳
ID:723721 發(fā)表于 2020-5-4 21:00 來自手機 | 只看該作者
哭了,樓主能分享一下全部的嘛
回復

使用道具 舉報

地板
ID:347629 發(fā)表于 2020-6-9 09:06 | 只看該作者
樓主在嗎,需要全部,
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規(guī)則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表