久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

STC單片機+2個L298N模塊+3個直流電機(演示一個電機的PWM調速過程)

  [復制鏈接]
跳轉到指定樓層
樓主
STC12單片機+2個L298N模塊+3個直流電機(演示其中一個電機的PWM調速過程)



L298模塊電路原理圖如下:

L298N電機驅動模塊pdf資料:




stc單片機源程序如下:
  1. //周期為7毫秒,100微秒一調,脈寬范圍是0~70
  2. //當脈寬小于15,電機不轉(不知道是不是跟電機有關,電壓達不到最低要求)
  3. //用的STC10F08,外接兩個L298模塊,控制3個直流電機
  4. #include <STC10.h>  
  5. #include <math.h>
  6. #include <intrins.h>       
  7. #define uchar unsigned char  
  8. #define uint unsigned int  
  9. sbit en1=P0^0;  /* L298Enable A */  
  10. sbit en2=P0^3;  /* L298Enable B */
  11. sbit en3=P0^6;


  12. sbit s1=P0^1;  /* L298Input 1 */  
  13. sbit s2=P0^2;  /* L298Input 2 */  
  14. sbit s3=P0^4;  /* L298Input 3 */  
  15. sbit s4=P0^5;  /* L298Input 4 */
  16. sbit s5=P2^0;  /* L298-2Input 1 */  
  17. sbit s6=P2^1;  /* L298-2Input 2 */


  18. sbit k1=P2^2;     //演示3個電機正轉
  19. sbit k2=P2^3;     //演示反轉
  20. sbit k3=P2^4;     //通過按鍵次數,電機速度加快
  21. sbit k4=P2^5;     //自轉
  22. sbit k5=P2^6;     //stop

  23. bit  fangx=0;//0正轉,1反轉
  24. uchar keynum=0;   //按鍵次數


  25. uchar idata t=0;   /* 中斷計數 */  
  26. uchar idata mk1=0;   /* 電機1速度對應脈寬 */  
  27. uchar idata mk2=0;   /* 電機2速度*/  
  28. uchar idata mk3=0;   /* 電機3速度*/

  29. uchar idata tmp1,tmp2,tmp3; /* 電機當前速度 */  



  30. ////////////////
  31. void delay1ms()                //@22.1184MHz
  32. {
  33.         unsigned char i, j;

  34.         _nop_();
  35.         i = 4;
  36.         j = 146;
  37.         do
  38.         {
  39.                 while (--j);
  40.         } while (--i);
  41. }
  42. ////////////////
  43. void delay50ms()                //@22.1184MHz
  44. {
  45.         unsigned char i, j, k;

  46.         i = 5;
  47.         j = 52;
  48.         k = 195;
  49.         do
  50.         {
  51.                 do
  52.                 {
  53.                         while (--k);
  54.                 } while (--j);
  55.         } while (--i);
  56. }


  57. /////////////////////////////////////////
  58. /*  index-電機號(1,2,3); 脈寬(0~70) ,方向 0=正轉*/  
  59. void motor(uchar index, char speed,bit a)  
  60. {
  61.        
  62. fangx=a;
  63.        
  64. if(a==0)     //正轉
  65. {  
  66.         switch(index)
  67.          {
  68.    case 1 :        s1=1; s2=0;mk1=speed;break;               
  69.    case 2 : s3=1; s4=0;mk2=speed;break;
  70.    case 3 : s5=1; s6=0;mk3=speed;break;
  71.                 default: break;
  72.    }
  73. }         
  74. else         //反轉
  75.    {  
  76.         switch(index)
  77.          {
  78.    case 1 :        s1=0;s2=1;   mk1=speed;break;               
  79.    case 2 : s3=0; s4=1 ; mk2=speed;break;
  80.    case 3 : s5=0; s6=1 ; mk3=speed;break;
  81.                 default: break;
  82.    }       
  83.   }
  84. }
  85. /////////////////////////////
  86. /*  index-電機號(1,2,3);*/  
  87. void motorstop(uchar index )  
  88. {   
  89.         switch(index)
  90.          {
  91.    case 1 :s1=0;s2=0; mk1=0;break;
  92.    case 2 :s3=0;s4=0; mk2=0;break;
  93.    case 3 :s5=0;s6=0; mk3=0;break;
  94.                 default: break;
  95.    }

  96. }  
  97. ///////////////
  98. void Timer0Init(void)                //100US,22.1184MHz
  99. {
  100.         AUXR |= 0x80;                //1T
  101.         TMOD &= 0xF0;               
  102.         TMOD |= 0x01;                //16位工作方式1
  103.         TL0 = 0x5C;               
  104.         TH0 = 0xF7;       
  105.         TF0 = 0;               
  106.         TR0 = 1;       
  107.         EA=1;   
  108.         ET0=1;
  109. }



  110. ///////////////////////////
  111. void main()  
  112. {  
  113.         uchar i;
  114.        
  115.   P0=P1=P2=P3=0XFF;
  116.        
  117.         Timer0Init();

  118.   while(1) /* 電機控制演示 */  
  119.    {
  120.         /////////////////
  121.    if(k1==0)           //3個電機正轉
  122.             {
  123.        motor(1,50,0);
  124.                    motor(2,30,0);
  125.                    motor(3,10,0);  
  126.        }
  127.          //////////////////////
  128.          else if(k2==0)      //3個電機反轉
  129.             {  
  130.         motor(1,20,1);
  131.                           motor(2,40,1);
  132.                     motor(3,60,1);
  133.       }
  134.          ////////////////////
  135.   else  if(k3==0)
  136.          {
  137.                  delay1ms();
  138.                  while(!k3); //等待按鍵放開
  139.                  if(keynum>=70)
  140.                  {keynum=0;}
  141.                         keynum++;            //加速                               
  142.                         motor(1,keynum,fangx);                                      
  143.          }
  144.    
  145.         /////////////////////
  146.   else  if(k4==0)
  147.          {
  148.                   delay1ms();
  149.                  while(!k4);     //等待按鍵放開
  150.                  for(i=0;i<=70;i++)
  151.                  {  
  152.                         motor(1,i,fangx);
  153.                          delay50ms();
  154.                          delay50ms();
  155.                          delay50ms();
  156.                          delay50ms();
  157.                          delay50ms();
  158.                          delay50ms();
  159.                          delay50ms();
  160.                          delay50ms();
  161.                          delay50ms();  //延時,通過示波器可以看見脈寬的變化
  162.                  }         
  163.                   
  164.          }
  165.         /////////////////////
  166.         else  if(k5==0)
  167.                 {
  168. ……………………

  169. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復制代碼



所有資料51hei提供下載:
pwm l298.rar (277.29 KB, 下載次數: 190)


評分

參與人數 3黑幣 +65 收起 理由
莫德爾 + 10 贊一個!
LQL-LQL + 5 共享資料的黑幣獎勵!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2017-5-17 19:13 | 只看該作者
好資料,51黑有你更精彩!!!
回復

使用道具 舉報

板凳
ID:252511 發表于 2017-11-22 23:40 | 只看該作者
不錯的資料,正在學習這方面。
回復

使用道具 舉報

地板
ID:336657 發表于 2018-6-5 22:38 | 只看該作者
好東西 支持
回復

使用道具 舉報

5#
ID:350637 發表于 2018-6-12 21:01 | 只看該作者
可以,正是我需要的
回復

使用道具 舉報

6#
ID:354749 發表于 2018-6-19 23:03 | 只看該作者
正是需要的   怎么樣才能下載啊!!!啊啊啊
回復

使用道具 舉報

7#
ID:342294 發表于 2018-8-21 14:25 | 只看該作者
這個我看你用的是STC10 這個沒有用過   不過程序確實寫的不錯
回復

使用道具 舉報

8#
ID:252511 發表于 2018-12-18 00:40 | 只看該作者
不錯的資料,正需要!
回復

使用道具 舉報

9#
ID:593054 發表于 2019-8-5 19:38 | 只看該作者
l298n怎么接線
回復

使用道具 舉報

10#
ID:421536 發表于 2019-8-14 12:08 | 只看該作者
好資料,幫忙頂
回復

使用道具 舉報

11#
ID:585455 發表于 2020-9-2 09:09 | 只看該作者
你的資料很完整,正需要L298N控制碼,太好了。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 日韩精品视频在线观看一区二区三区 | 成人三级视频 | 91九色麻豆| 激情五月婷婷丁香 | 一区视频 | 国产一区二区不卡 | 亚洲一区二区三区高清 | 日本中文字幕视频 | 亚洲黄色成人网 | 免费一级片 | 欧美多人在线 | 一级黄色片免费在线观看 | 日韩不卡一区二区 | 欧美一二三 | 国产一区二区精品在线观看 | 1204国产成人精品视频 | 91日韩| 国产精品久久在线观看 | 精品亚洲永久免费精品 | 视频在线亚洲 | 天天天久久久 | 亚洲精品视频在线观看免费 | 羞羞视频一区二区 | 成人一区二区三区 | 四虎免费视频 | 成人免费久久 | 日韩av一区二区在线观看 | 操到爽| 久久蜜桃资源一区二区老牛 | 妞干网av| 亚洲精品免费在线 | 激情毛片 | 欧美精品一区二区在线观看 | 国产精品视频久久久 | 亚洲成人一区 | 伊色综合久久之综合久久 | 99久久免费精品 | 麻豆亚洲| 欧美一区二区三区高清视频 | 国产精品国产馆在线真实露脸 | 一区二区三区四区在线视频 |