標(biāo)題: 51單片機舵機控制系統(tǒng) 驅(qū)動設(shè)計完整版 帶仿真和程序 [打印本頁]

作者: gsdgsd    時間: 2017-5-23 22:51
標(biāo)題: 51單片機舵機控制系統(tǒng) 驅(qū)動設(shè)計完整版 帶仿真和程序
分享點我自己的51單片機控制舵機的資料give大家,帶原理圖程序proteus仿真

仿真原理圖如下(proteus仿真工程文件可到本帖附件中下載)


舵機程序設(shè)計的流程圖(附件中可下載清晰版):


單片機驅(qū)動舵機源程序如下:
  1. /*******************************************************
  2. *****************************************************
  3. StC80C51 控制舵機驅(qū)動程序
  4. ******************************************************/


  5. #include <REG52.h> //STC80C51 單片機頭文件

  6. sbit LED_0=P2^0; //0度指示燈
  7. sbit LED_45=P2^1; //45度指示燈
  8. sbit LED_90=P2^2; //90度指示燈
  9. sbit LED_135=P2^3; //135度指示燈
  10. sbit LED_180=P2^4; //180度指示燈

  11. sbit PWM_JIA=P3^6; //角度加按鍵
  12. sbit PWM_JIAN=P3^7; //角度減按鍵

  13. sbit MOTOR_IN=P1^7; //舵機信號輸入角

  14. unsigned char count; //定時器中斷次數(shù)
  15. unsigned char jiaodu;//角度參數(shù)


  16. /************************************
  17. *********毫秒延時函數(shù)************
  18. ************************************/
  19. void Delay(unsigned char xms)
  20. {
  21.         unsigned char i,j;
  22.         for(i=xms;i>0;i--)
  23.                 for(j=125;j>0;j--);
  24. }

  25. /************************************
  26. *********定時器0初始化函數(shù)***********
  27. ************************************/
  28. void Time0_init()
  29. {
  30.   TMOD=0X01; //定時器工作在方式1
  31.   IE=0X82;
  32.   TH0=0XFE;
  33.   TL0=0X33; //定時0.5毫秒中斷一次
  34.   TR0=1;  //打開定時器
  35. }

  36. /************************************
  37. *********按鍵掃描函數(shù)***********
  38. ************************************/
  39. void KeyScan()
  40. {
  41.   if(PWM_JIA==0)  //角度增加按鍵是否按下
  42.   {
  43.       Delay(10);  //延時10毫秒消抖

  44.           if(PWM_JIA==0) //確定按鍵按下
  45.           {
  46.               jiaodu++;
  47.                   count=0;
  48.                   if(jiaodu ==6) //如果角度參數(shù)為6

  49.                    jiaodu =5; //如果角度參數(shù)復(fù)位為5

  50.          while(PWM_JIA==0); //等待按鍵松開
  51.           }
  52.    
  53.   }

  54.     if(PWM_JIAN==0)//角度減少按鍵是否按下
  55.           {
  56.       Delay(10); //延時10毫秒消抖

  57.           if(PWM_JIAN==0)//確定按鍵按下
  58.           {
  59.               jiaodu--;
  60.                   count=0;
  61.                   if(jiaodu ==0)//如果角度參數(shù)為0

  62.                    jiaodu =1;//如果角度參數(shù)復(fù)位為1

  63.          while(PWM_JIAN==0);//等待按鍵松開
  64.           }
  65.    
  66.   }
  67. }
  68. /************************************
  69. *********LED顯示函數(shù)***********
  70. ************************************/
  71. void Display()
  72. {
  73. switch(jiaodu)
  74. {
  75.     case 1:            //如果角度參數(shù)為1,LED1亮
  76.          P2=0XFF;
  77.                  LED_0=0;
  78.                  break;

  79.     case 2:           //如果角度參數(shù)為2,LED2亮
  80.          P2=0XFF;
  81.                  LED_45=0;
  82.                  break;

  83.     case 3:           //如果角度參數(shù)為3,LED3亮
  84.          P2=0XFF;
  85.                  LED_90=0;
  86.                  break;

  87.         case 4:           //如果角度參數(shù)為4,LED4亮
  88.          P2=0XFF;
  89.                  LED_135=0;
  90.                  break;

  91.         case 5:           //如果角度參數(shù)為5,LED5亮
  92.          P2=0XFF;
  93.                  LED_180=0;
  94.                  break;

  95. }
  96. }
  97. /************************************
  98. *********主函數(shù)***********
  99. ************************************/
  100. void main()
  101. {
  102. jiaodu=1;  //初始化角度參數(shù)為1
  103. count=0; //初始化定時器中斷次數(shù)為0
  104. Time0_init(); //調(diào)用定時器0初始化函數(shù)
  105. while(1)
  106. {
  107.             KeyScan(); //調(diào)用按鍵掃描函數(shù)
  108.           Display(); //調(diào)用LED顯示函數(shù)
  109. }
  110. }
  111. /************************************
  112. *********定時器0中斷服務(wù)函數(shù)***********
  113. ************************************/
  114. ……………………

  115. …………限于本文篇幅 余下代碼請從51黑下載附件…………
復(fù)制代碼

所有資料51hei提供下載:
舵機驅(qū)動設(shè)計完整版.rar (323.58 KB, 下載次數(shù): 1090)




作者: admin    時間: 2017-5-24 01:36
好資料,51黑有你更精彩!!!
作者: hao05020    時間: 2018-1-11 00:24

謝謝你,剛好是我想要的,51黑有你更精彩!!!
作者: 15379996356    時間: 2018-1-18 23:05
大佬,51只能控制舵機以這幾個角度轉(zhuǎn)嗎?能不能調(diào)成自己想要的任意角
作者: 15379996356    時間: 2018-1-18 23:07
51能不能控制舵機以任意角度轉(zhuǎn),還是只能轉(zhuǎn)這幾個角度
作者: sky日耀    時間: 2018-1-31 19:08
15379996356 發(fā)表于 2018-1-18 23:07
51能不能控制舵機以任意角度轉(zhuǎn),還是只能轉(zhuǎn)這幾個角度

可以任意
作者: guo1373766226    時間: 2018-2-11 01:05
學(xué)習(xí)學(xué)習(xí)學(xué)習(xí)
作者: wjq19890407    時間: 2018-2-24 20:44
只能轉(zhuǎn)這幾個角度
作者: wuxishun    時間: 2018-3-30 20:43
非常好的資料,謝謝
作者: qwertyuio111    時間: 2018-4-13 17:30
為什么仿真不了呢,2個錯誤,電源怎么加呢

作者: SaveMyLife    時間: 2018-4-16 09:22
謝謝~

作者: ValarMorgulis    時間: 2018-4-17 18:00
不錯,頂
作者: taczer    時間: 2018-5-2 11:40
感謝樓主的分享學(xué)習(xí)一下
作者: wowotou    時間: 2018-5-3 13:44
好資料,燒進去程序試試
作者: 你大爺?shù)拇鬆?nbsp;   時間: 2018-5-5 10:17
感謝樓主
作者: 你大爺?shù)拇鬆?nbsp;   時間: 2018-5-8 16:05
多謝樓主,多多學(xué)習(xí)
作者: 萬人無往    時間: 2018-5-10 20:43
仿真提示5V電源錯誤,需要改為VCC才可以運行,
但是不知道為什么舵機不管怎么樣都動不了
作者: bcdy    時間: 2018-5-11 17:29
為什么你的舵機不轉(zhuǎn)
作者: a782127162    時間: 2018-5-21 11:40
感謝大佬,非常棒
作者: NepuNepu_desu    時間: 2018-5-21 21:25
步進電機連線好像錯了,我把電機1腳接vcc;2腳接P1.7;3腳接GND勉強會轉(zhuǎn)了,而且轉(zhuǎn)的角度有問題
作者: ironTonySTK    時間: 2018-5-22 18:26
電路圖有問題哦   舵機的中間才是接信號線的吧
作者: l630034911    時間: 2018-6-1 16:49
多謝樓主,多多學(xué)習(xí)
作者: 2016250    時間: 2018-6-2 11:07
剛好需要這個舵機的控制程序,很及時
作者: 亂瓜子    時間: 2018-6-7 11:55
哎喲,不錯啊!
作者: Somiy    時間: 2018-6-8 15:28
老哥,如果只控制舵機自動轉(zhuǎn)到一定角度然后回來這樣的重復(fù)運動改怎么搞
作者: 亂瓜子    時間: 2018-6-11 19:33
下載試試看,愁死了,這個舵機
作者: 亂瓜子    時間: 2018-6-11 19:36
發(fā)現(xiàn)和郭天祥的例程差不多一樣啊,我暈哦
作者: fw3fw15_    時間: 2018-6-14 21:00
贊一個!
作者: 20090909    時間: 2018-7-17 16:40
為什么燒錄之后沒反應(yīng)
作者: 小璽    時間: 2018-7-25 22:18
有一個地方?jīng)]看懂,sbit MOTOR_IN=P1^7; //舵機信號輸入角,整個程序里光定義了,也沒用到啊
作者: aaaa_7777    時間: 2018-7-31 23:29
學(xué)習(xí)學(xué)習(xí)學(xué)習(xí)
作者: 小璽    時間: 2018-8-3 10:39
小璽 發(fā)表于 2018-7-25 22:18
有一個地方?jīng)]看懂,sbit MOTOR_IN=P1^7; //舵機信號輸入角,整個程序里光定義了,也沒用到啊

求解釋

作者: 小璽    時間: 2018-8-3 10:40
20090909 發(fā)表于 2018-7-17 16:40
為什么燒錄之后沒反應(yīng)

有一個地方?jīng)]看懂,sbit MOTOR_IN=P1^7; //舵機信號輸入角,整個程序里光定義了,也沒用到啊
作者: wanfn    時間: 2018-8-26 17:16
很給力
作者: zhanglei456    時間: 2018-9-12 18:08
不錯。。。。。
作者: 喵唧唧    時間: 2018-9-27 20:08
厲害
。。。
作者: 智成科技    時間: 2018-10-7 23:19
支持支持
作者: hjh51hdzlt    時間: 2018-10-24 14:44
謝謝分享
作者: hjh51hdzlt    時間: 2018-10-24 14:44
謝謝分享
作者: xielun水瓶    時間: 2018-11-12 10:42
太棒了!
作者: hedianzi    時間: 2018-11-12 17:36
感謝樓主
作者: ▓逍〓遙◆    時間: 2018-11-12 23:36
51黑有你更精彩!!!
作者: 810121037    時間: 2018-11-16 15:25
非常好,謝謝分享

作者: Sunny丶    時間: 2018-12-16 10:42
太棒啦  真的有用!
作者: fengzhuang    時間: 2018-12-16 12:33
很詳細,學(xué)習(xí)了
作者: 820590074    時間: 2018-12-19 14:37
下來看看。
作者: 無聊王者    時間: 2018-12-25 19:10

好資料,51黑有你更精彩!!!  想要下載
作者: epigone    時間: 2018-12-27 14:10
51黑有你更精彩!!!
作者: 自在隨心    時間: 2018-12-28 10:18
贊一個
作者: 123要坐正    時間: 2018-12-31 01:51
贊一個
作者: mumu123123    時間: 2019-1-3 09:29
贊一個
作者: 大眼看世界    時間: 2019-1-3 15:12
謝謝樓主
作者: 2科技路過    時間: 2019-1-6 17:01
好資料,燒進去程序試試
作者: 259    時間: 2019-1-13 16:14
正好用

作者: flytohign    時間: 2019-2-13 13:23
太棒了,這個舵機程序,很到位
作者: 2592532754    時間: 2019-4-18 20:49
很給力
作者: Rainson    時間: 2019-4-20 18:29
樓主 請問我下載了為什么打不開呢?
作者: 438716645    時間: 2019-6-18 19:35
謝謝你,剛好是我想要的,51黑有你更精彩!!!
作者: 609038039    時間: 2019-6-20 18:25
感謝分享

作者: 絕的黎波里    時間: 2019-8-9 11:33
很有用
作者: readinged    時間: 2019-8-9 17:13
運行不了,舵機不會動,就燈會閃
作者: luckylion    時間: 2019-8-12 14:12
感謝分享
作者: 阿斯頓發(fā)生    時間: 2019-12-6 21:32
        很給力!
作者: mentougou    時間: 2019-12-17 11:52
剛學(xué)51,很想下載這個資料,謝謝樓主謝謝51黑
作者: mentougou    時間: 2019-12-18 13:08
下載了,在仿真里無法運行,請高手指點一下問題在哪里?
作者: mentougou    時間: 2019-12-19 08:44
請高手指點一下這個哪里出錯了,仿真里無法運行。
作者: 小毛孩子    時間: 2020-3-15 18:32
接了實驗板上之后管用,還不錯
作者: 小毛孩子    時間: 2020-3-16 20:08
mentougou 發(fā)表于 2019-12-19 08:44
請高手指點一下這個哪里出錯了,仿真里無法運行。

線接錯了,信號線應(yīng)該接到中間那個引腳

作者: mentougou    時間: 2020-3-17 15:05
小毛孩子 發(fā)表于 2020-3-16 20:08
線接錯了,信號線應(yīng)該接到中間那個引腳

謝謝

作者: ztzp    時間: 2020-3-17 15:07
已下載,謝謝。
目錄重復(fù),“c51程序”與“舵機仿真原理圖2”這兩個目錄是多余的,因為在“舵機驅(qū)動完整版”這個目錄中就包含它們了。
作者: jstzxhlzx    時間: 2020-3-21 11:01
很給力。。!
作者: 2604084525    時間: 2020-3-25 23:28
qwertyuio111 發(fā)表于 2018-4-13 17:30
為什么仿真不了呢,2個錯誤,電源怎么加呢

把電源上的5v都去掉
作者: dilongking    時間: 2020-10-10 09:25
想問下能否以按住按鍵的長短來控制角度的變化




歡迎光臨 (http://www.torrancerestoration.com/bbs/) Powered by Discuz! X3.1