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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機直流電機的PWM速度控制程序 測試通過

[復制鏈接]
跳轉到指定樓層
樓主
ID:140343 發表于 2016-10-21 22:53 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
  1. /* =======直流電機的PWM速度控制程序======== */  
  2. /* 晶振采用11.0592M,產生的PWM的頻率約為91Hz */  
  3. #include<reg51.h>  
  4. #include<math.h>  
  5. #define uchar unsigned char  
  6. #define uint unsigned int  
  7. sbit en1=P2^0;  /* L298的Enable A */  
  8. sbit en2=P2^1;  /* L298的Enable B */  
  9. sbit s1=P2^2;  /* L298的Input 1 */  
  10. sbit s2=P2^3;  /* L298的Input 2 */  
  11. sbit s3=P2^4;  /* L298的Input 3 */  
  12. sbit s4=P2^5;  /* L298的Input 4 */  
  13. uchar t=0;   /* 中斷計數器 */  
  14. uchar m1=0;   /* 電機1速度值 */  
  15. uchar m2=0;   /* 電機2速度值 */  
  16. uchar tmp1,tmp2; /* 電機當前速度值 */  

  17. /* 電機控制函數 index-電機號(1,2); speed-電機速度(-100—100) */  
  18. void motor(uchar index, char speed)  
  19. {  
  20. if(speed>=-100 && speed<=100)  
  21. {  
  22.   if(index==1) /* 電機1的處理 */  
  23.   {  
  24.    m1=abs(speed); /* 取速度的絕對值 */  
  25.    if(speed<0) /* 速度值為負則反轉 */  
  26.    {  
  27.     s1=0;  
  28.     s2=1;  
  29.    }  
  30.    else /* 不為負數則正轉 */  
  31.    {  
  32.     s1=1;  
  33.     s2=0;  
  34.    }  
  35.   }  
  36.   if(index==2) /* 電機2的處理 */  
  37.   {  
  38.    m2=abs(speed); /* 電機2的速度控制 */  
  39.    if(speed<0) /* 電機2的方向控制 */  
  40.    {  
  41.     s3=0;  
  42.     s4=1;  
  43.    }  
  44.    else  
  45.    {  
  46.     s3=1;  
  47.     s4=0;  
  48.    }  
  49.   }  
  50. }  
  51. }  

  52. void delay(uint j) /* 簡易延時函數 */  
  53. {  
  54. for(j;j>0;j--);  
  55. }  

  56. void main()  
  57. {  
  58. char i;  
  59. TMOD=0x02; /* 設定T0的工作模式為2 */  
  60. TH0=0x9B; /* 裝入定時器的初值 */  
  61. TL0=0x9B;  
  62. EA=1; /* 開中斷 */  
  63. ET0=1; /* 定時器0允許中斷 */  
  64. TR0=1; /* 啟動定時器0 */  
  65. while(1) /* 電機實際控制演示 */  
  66. {  
  67.   for(i=0;i<=100;i++) /* 正轉加速 */  
  68.   {  
  69.    motor(1,i);  
  70.    motor(2,i);  
  71.    delay(5000);  
  72.   }  
  73.   for(i=100;i>0;i--) /* 正轉減速 */  
  74.   {  
  75.    motor(1,i);  
  76.    motor(2,i);  
  77.    delay(5000);  
  78.   }  
  79.   for(i=0;i<=100;i++) /* 反轉加速 */  
  80.   {  
  81.    motor(1,-i);  
  82.    motor(2,-i);  
  83.    delay(5000);  
  84.   }  
  85.   for(i=100;i>0;i--) /* 反轉減速 */  
  86.   {  
  87.    motor(1,-i);  
  88.    motor(2,-i);  
  89.    delay(5000);  
  90.   }  
  91. }  
  92. }  

  93. void timer0() interrupt 1 /* T0中斷服務程序 */  
  94. {  
  95. if(t==0) /* 1個PWM周期完成后才會接受新數值 */  
  96. {  
  97.   tmp1=m1;  
  98.   tmp2=m2;  
  99. }  
  100. if(t<tmp1) en1=1; else en1=0; /* 產生電機1的PWM信號 */  
  101. if(t<tmp2) en2=1; else en2=0; /* 產生電機2的PWM信號 */  
  102. t++;  
  103. if(t>=100) t=0; /* 1個PWM信號由100次中斷產生 */  
  104. }  
復制代碼


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

使用道具 舉報

沙發
ID:161494 發表于 2017-1-12 17:34 | 只看該作者
O(∩_∩)O謝謝
回復

使用道具 舉報

板凳
ID:216338 發表于 2017-7-1 16:06 | 只看該作者
謝謝樓主提供
回復

使用道具 舉報

地板
ID:736988 發表于 2020-5-14 18:05 | 只看該作者
謝謝樓主
回復

使用道具 舉報

5#
ID:743069 發表于 2020-5-14 22:14 | 只看該作者
謝謝樓主  看了你的代碼我終于找到我的問題了 太感謝了
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 91精品国产91久久久久游泳池 | 国产一区二区在线免费 | 欧美视频二区 | 欧美精品乱码久久久久久按摩 | 久久久国产一区二区三区 | 麻豆久久久久久久 | 亚洲成人一级片 | 日韩一区二区在线视频 | 一a级片| 综合五月婷 | 日韩精品成人在线 | 青春草91| 午夜av电影| 国产精品99久久久久久宅男 | 999免费网站 | 欧美成人免费在线视频 | 色视频网站免费 | 国产精品美女久久久久久久网站 | 欧美激情国产日韩精品一区18 | 九九热免费在线观看 | 欧美日韩国产在线 | 久久久www成人免费无遮挡大片 | 亚洲天堂中文字幕 | 国产剧情一区 | 日韩精品一区二区三区在线播放 | 色综久久| 午夜小视频在线观看 | 日韩一区二区免费视频 | 91精品国产一区二区三区 | 欧美精品一区二区免费 | 精品成人av | 亚洲精品中文字幕中文字幕 | 久久久久久免费观看 | 91亚洲精品久久久电影 | 凹凸日日摸日日碰夜夜 | 大久 | 欧美日韩一区二区在线观看 | 日本免费一区二区三区四区 | 最近中文字幕在线视频1 | 国产一区二区影院 | 麻豆亚洲|