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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

基于單片機AT89C51的直流電機PWM調速控制系統

  [復制鏈接]
跳轉到指定樓層
樓主
ID:94349 發表于 2015-11-2 14:09 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
仿真整體圖如下:


這是我用洞洞板與腐蝕板制作的樣品,僅供參考





元件
數量(個)
元件
數量(個)
光電耦合器:TLP521-2
1
三極管8550
4
按鍵
5
三極管8050
5
自鎖按鍵
1
1N4007
4
At89s52
1
四位一體數碼管
1
12M晶振
1
電容104
1
Led
1
直流電機
1
電阻1K
3
電容22P
2
電阻10K
1
電解電容47P/16V
2
74LS04
1
下載口
1



以下是Keil 4 編寫的源程序


  1. /************頭文件*********/

  2. #include<reg51.h>                  

  3. #include<absacc.h>               

  4. #include <intrins.h>  

  5. /********自定義變量********/

  6. #define uint unsigned int      //自定義變量

  7. #define uchar unsigned char   

  8. char gw,sw,bw,qw;

  9. uchar j;  //定時次數,每次20ms

  10. uchar f=5; //計數的次數

  11. sbit  P10=P1^0;    //PWM輸出波形1

  12. sbit  P11=P1^1;    //PWM輸出波形2

  13. sbit  P12=P1^2;   //正反轉

  14. sbit  P13=P1^3;   //加速

  15. sbit  P14=P1^4;  //減速

  16. sbit  P15=P1^5;  //停止

  17. sbit  P16=P1^6;   //啟動

  18. uchar k;

  19. uchar t;   //脈沖加減

  20. /**************************/*

  21. /*********控制位定義********************/

  22. uchar code smg[12]={0x3f,0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f,0x73,0x71};//程序存儲區定義字型碼表

  23. char data led[4]={0x08,0x04,0x02,0x01};      //位碼

  24. uint x;     //數碼管顯示的數值

  25. display();   //數碼管顯示   

  26. delays();    //延時函數

  27. key();

  28. displays();

  29. /*****************************************/



  30. /***************主函數********************/

  31. main (void)

  32. {

  33. TMOD=0x51;   //T0方式1  定時計數T1方式1計數

  34. TH0=0xb1;   //裝入初值  20MS

  35. TL0=0xe0;

  36. TH1=0x00;    //   計數567

  37. TL1=0x00;

  38. TR0=1;       //啟動  t0

  39. TR1=1;       //啟動t1

  40. gw=sw=bw=qw=0; //數碼管初始化

  41. P0=0xc0;

  42. P2=1;

  43. while(1)        //無限循環

  44. {

  45. display(); //數碼管顯示

  46. key();

  47.    

  48. }

  49. }

  50. /*****************************************/



  51. /***************數碼管顯示****************/

  52. display()

  53. {

  54. uchar i;   

  55. gw=x%10;          //求速度個位值,送到個位顯示緩沖區

  56. sw=(x/10)%10;     //求速度十位值,送到十位顯示緩沖區

  57. bw=(x/100)%10;   //求速度百位值,送到百位顯示緩沖區

  58. qw=x/1000;        //求速度千位值,送到千位顯示緩沖區

  59. for(i=0;i<4;)

  60. {

  61. P2=led[i];

  62. if(i==0)                  //顯示個位

  63. {

  64. P0=smg[gw];

  65. delays();

  66. }

  67. else if(i==1)     //顯示十位

  68. {

  69. P0=smg[sw];

  70. delays();

  71. }

  72. else if(i==2)  //顯示百位

  73. {

  74. P0=smg[bw];

  75. delays();

  76. }

  77.    else if(i==3)   //顯示千位

  78.   {

  79. if(k==0)//正轉時顯示"三"

  80. {

  81. P0=0x49;

  82. delays();

  83. }

  84. else

  85. {

  86. P0=0x71; //反轉時顯示"F"

  87. }

  88. }

  89. i++;

  90. }

  91. }

  92. /*******************************************************/



  93. /*****************延時函數*************************/

  94. delays()

  95. {

  96. uchar i;

  97. for(i=5000;i>0;i--);

  98. }

  99. /************************************************/



  100. /*********t0定時*中斷函數*************/

  101. void t0() interrupt 1 using 2

  102. {

  103. TH0=0xb1;  //重裝t0

  104. TL0=0xe0;

  105. f--;

  106. if(k==0)

  107. {

  108.   if(f<t)

  109.   P10=1;

  110.   else  

  111.   P10=0;

  112.   P11=0;

  113. }

  114. else  

  115. {

  116. if(f<t)

  117. P11=1;

  118. else

  119. P11=0;

  120. P10=0;

  121. }

  122. if(f==0)

  123. {

  124. f=5;

  125. }  

  126. j++;

  127. if(j==50)

  128. {

  129. j=0;

  130. x=TH1*256+TL1; //t1方式1計數,讀入計數值

  131. TH1=0x00;

  132. TL1=0x00;

  133. x++;

  134. display();

  135. }

  136. }

  137. /****************按鍵掃描**************/

  138. key()

  139. {

  140. if(P12==0)        //如果按下,

  141. {

  142. while(!P12)    //去抖動

  143. display();

  144. k=~k;

  145. }  

  146. if(P16==0)     //啟動

  147. {

  148. while(P16==0);

  149. IE=0x8a;

  150. }   

  151. if(P13==0)         //加速

  152. {

  153. while (P13==0);

  154. t++;

  155. }

  156. if(t>=5)

  157. t=5;

  158. if(P14==0)  //減速

  159. {

  160. while(P14==0);

  161. t--;

  162. }

  163. if(t<1)

  164. t=1;

  165. if(P15==0)             //停止

  166. {

  167. while(P15==0);



  168. EA=0;

  169. P10=0;

  170. P11=0;

  171. }

  172. }

  173. /******************************************************/
復制代碼




評分

參與人數 5黑幣 +25 收起 理由
1191562740 + 5 很給力!
鳳凰123 + 5 贊一個!
zhangxuewen123 + 5 共享資料的黑幣獎勵!
心瘋揚 + 5 很給力!
lq3698 + 5 共享資料的黑幣獎勵!,我自己做了一個單獨.

查看全部評分

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

使用道具 舉報

沙發
ID:74784 發表于 2015-11-2 20:35 | 只看該作者
好似H橋有點~~~~~~~~~
回復

使用道具 舉報

板凳
ID:117923 發表于 2016-5-2 12:14 | 只看該作者
謝謝分享
回復

使用道具 舉報

地板
ID:117923 發表于 2016-5-3 11:09 | 只看該作者
請問大神,H橋左邊的那一部分是什么
回復

使用道具 舉報

5#
ID:128675 發表于 2016-6-30 11:21 | 只看該作者
有沒有 仿真程序啊  我需要
回復

使用道具 舉報

6#
ID:128560 發表于 2016-7-1 13:37 | 只看該作者
請問STC89C52RC可用直接代用嗎?
回復

使用道具 舉報

7#
ID:136608 發表于 2016-8-16 16:56 | 只看該作者
樓主的頭文件有嗎?新手借鑒,非常感謝
回復

使用道具 舉報

8#
ID:145745 發表于 2016-11-2 19:20 | 只看該作者
有沒有排列好的程序圖
回復

使用道具 舉報

9#
ID:157765 發表于 2016-12-26 15:39 | 只看該作者
有個仿真圖就好了
回復

使用道具 舉報

10#
ID:154108 發表于 2016-12-28 13:44 | 只看該作者
電路感覺有點問題
回復

使用道具 舉報

11#
ID:161244 發表于 2017-1-11 04:33 | 只看該作者
頂一下  謝謝分享
回復

使用道具 舉報

12#
ID:104838 發表于 2017-2-14 14:21 | 只看該作者
c43和141有錯誤編譯不了
回復

使用道具 舉報

13#
ID:182843 發表于 2017-3-24 10:48 | 只看該作者
非常給力
回復

使用道具 舉報

14#
ID:195184 發表于 2017-5-4 17:56 | 只看該作者
厲害,大神
回復

使用道具 舉報

15#
ID:151831 發表于 2017-5-8 20:19 | 只看該作者
謝謝樓主,非常有用
回復

使用道具 舉報

16#
ID:161497 發表于 2017-5-12 14:16 | 只看該作者
不知道怎么下載下來
回復

使用道具 舉報

17#
ID:213941 發表于 2017-6-23 10:13 | 只看該作者
沒有仿真文件么
回復

使用道具 舉報

18#
ID:171036 發表于 2017-9-20 11:25 | 只看該作者
程序錯那么多,還敢放出來,真是丟人啊。
回復

使用道具 舉報

19#
ID:171036 發表于 2017-9-20 11:28 | 只看該作者
程序錯那么多,還敢放出來,哎,還是高級工程師,還不如業余的。
回復

使用道具 舉報

20#
ID:235109 發表于 2017-9-23 15:44 | 只看該作者
可以啊
回復

使用道具 舉報

21#
ID:249545 發表于 2017-11-26 21:46 | 只看該作者
這個H橋驅動與MCU供電是分開的,還用上了光耦隔離,比較靠普!
回復

使用道具 舉報

22#
ID:249545 發表于 2017-11-26 21:49 | 只看該作者
正反轉轉,啟動,停止,加速,減速.功能算是比較完善啦,還可以在H橋下端接一個電流取樣電阻,產生壓降電壓給到MCU,輸出過流保護功能.
回復

使用道具 舉報

23#
ID:302025 發表于 2018-4-12 11:22 | 只看該作者
很好 謝謝
回復

使用道具 舉報

24#
ID:334513 發表于 2018-5-20 22:39 | 只看該作者
頂一下  謝謝分享
回復

使用道具 舉報

25#
ID:429974 發表于 2018-11-30 19:57 | 只看該作者
弱弱問一句P2=0;是什么意思?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产剧情一区二区三区 | 一区精品视频在线观看 | 精品福利一区二区三区 | 日本欧美大片 | 在线观看亚洲精品 | 欧美色图另类 | 国产一区二区三区久久久久久久久 | 黄色网址在线免费播放 | 成人在线一区二区 | 在线观看免费av网站 | 亚洲精品一区二区三区中文字幕 | 欧美精品日韩 | 日韩在线大片 | 一区在线观看视频 | 精品天堂| 男人天堂av网 | 伊人操| 久久久免费在线观看 | 日韩av一区二区在线 | 亚洲精品91| 日韩一区二区在线视频 | 一区二区三区视频在线 | 色.com | 午夜精品一区二区三区在线观看 | 国产精品一区三区 | 亚洲一区二区三区免费在线 | 久久成| 国产精品中文 | 婷婷色在线 | 亚洲精品一级 | 一级毛片视频在线 | 午夜精品一区二区三区在线播放 | 国产黄色大片 | 久久国产精品色av免费观看 | 日韩免费看片 | 激情五月婷婷 | 色婷婷一区二区三区四区 | 欧美一级二级三级 | 欧美男人的天堂 | 欧美精品一区二区三区在线播放 | 亚洲国产高清免费 |