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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

C51單片機 9G舵機 0-180自動轉動的程序

  [復制鏈接]
跳轉到指定樓層
樓主
單片機:stc12c5a60s2
晶振:12M
功能:舵機自動從0至180度來回擺動
  1. /*********************************************************************************************
  2. 單片機:stc12c5a60s2
  3. 晶振:12M
  4. 功能:舵機自動從0至180度來回擺動

  5. /*********************************************************************************************/

  6. /*********************************************************************************************
  7. 說明:
  8. 高電平值0.5到2.5mS 對應 舵機的 -90度到+90度。
  9. 一個高、低電平的總長是20mS

  10. /*********************************************************************************************/


  11. #include <STC12C5A60S2.H> //STC12Cx052或STC12Cx052AD系列單片機頭文件
  12. sbit R_Key = P3 ^ 4;//右轉鍵
  13. sbit L_Key = P3 ^ 5;//左轉鍵
  14. sbit PWM_OUT = P3 ^ 6;//PWM輸出接口
  15. bit OUT;//高低電平切換標志位
  16. unsigned char SG1;//舵機角度設置

  17. /*********************************************************************************************
  18. 函數名:毫秒級CPU延時函數
  19. 調  用:DELAY_MS (?);
  20. 參  數:1~65535(參數不可為0)
  21. 返回值:無
  22. 結  果:占用CPU方式延時與參數數值相同的毫秒時間
  23. 備  注:應用于1T單片機時i<600,應用于12T單片機時i<125
  24. /*********************************************************************************************/
  25. void DELAY_MS (unsigned int a){
  26.         unsigned int i;
  27.         while( a-- != 0){
  28.                 for(i = 0; i < 600; i++);
  29.         }
  30. }
  31. /*********************************************************************************************/

  32. /*********************************************************************************************
  33. 函數名:定時/計數器初始化函數
  34. 調  用:T_C_init();
  35. 參  數:無
  36. 返回值:無
  37. 結  果:設置SFR中T/C1和(或)T/C0相關參數
  38. 備  注:本函數控制T/C1和T/C0,不需要使用的部分可用//屏蔽
  39. /**********************************************************************************************/
  40. void T_C_init (void){
  41.         TMOD = 0x11; //高4位控制T/C1 [ GATE,C/T,M1,M0,GATE,C/T,M1,M0 ]
  42.         EA = 1;        //中斷總開關

  43.         TH0 = 0xFF; //16位計數寄存器T0高8位
  44.         TL0 = 0xF5; //16位計數寄存器T0低8位
  45.         ET0 = 1; //T/C0中斷開關
  46.         //TR0 = 1; //T/C0啟動開關
  47. }
  48. /**********************************************************************************************/

  49. /*********************************************************************************************
  50. 函數名:定時/計數器0中斷處理函數
  51. 調  用:[T/C0溢出后中斷處理]
  52. 參  數:無
  53. 返回值:無
  54. 結  果:重新寫入16位計數寄存器初始值,處理用戶程序
  55. 備  注:必須允許中斷并啟動T/C本函數方可有效,重新寫入初值需和T_C_init函數一致
  56. /**********************************************************************************************/
  57. void T_C0 (void) interrupt 1  using 1{ //切換寄存器組到1
  58.         unsigned int a;
  59.         if(OUT==0){//判斷高低脈沖標志//
  60.                 a= 0x0A*SG1+0x01F3;//0x0A是1度的時間長,0x01F3是0.5mS時間長。
  61.                 a= 0xFFFF - a;//算出定時開始值
  62.                 TH0 = a/0xFF; //16位計數寄存器T0高8位
  63.                 TL0 = a%0xFF; //16位計數寄存器T0低8位
  64.                 OUT = 1;//標志切換
  65.                 PWM_OUT=1;//PWM輸出高電平
  66.         }else{
  67.                 a= 0x4E1F - (0x0A*SG1+0x01F3);//0x4E1F是20mS的時間長
  68.                 a= 0xFFFF - a;//算出定時開始值
  69.                 TH0 = a/0xFF;
  70.                 TL0 = a%0xFF;
  71.                 OUT = 0;
  72.                 PWM_OUT=0;//PWM輸出低電平
  73.         }
  74. }
  75. /**********************************************************************************************/

  76. /*********************************************************************************************
  77. 函數名:主函數
  78. 調  用:無
  79. 參  數:無
  80. 返回值:無
  81. 結  果:程序開始處,無限循環
  82. 備  注:
  83. /**********************************************************************************************/
  84. void main (void){
  85.         P3M0 = 0x60;        //
  86.         P3M1 = 0x00;        //設置推挽輸出
  87.         DELAY_MS (500);
  88.         

  89. …………余下代碼請下載附件…………
復制代碼



下載:
自動0~180度回來擺動.rar (1.38 KB, 下載次數: 202)

評分

參與人數 4黑幣 +61 收起 理由
xiou + 1 贊一個!
奇點zy + 5 贊一個!
左手陽光右手沙 + 5 很給力!
admin + 50 共享資料的黑幣獎勵!

查看全部評分

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

使用道具 舉報

沙發
ID:1 發表于 2017-3-14 22:17 | 只看該作者
好資料,51黑有你更精彩

回復

使用道具 舉報

板凳
ID:164988 發表于 2017-3-14 23:34 | 只看該作者
已買了兩個9G舵機 ,正好用上,感謝樓主分享,謝謝!
回復

使用道具 舉報

地板
ID:267919 發表于 2017-12-27 19:02 | 只看該作者
在做舵機SG90的課設
回復

使用道具 舉報

5#
ID:315120 發表于 2018-5-21 17:37 | 只看該作者
樓主好人,剛好需要
回復

使用道具 舉報

6#
ID:404498 發表于 2018-9-30 20:26 | 只看該作者
89c52rc能用嗎
回復

使用道具 舉報

7#
ID:404498 發表于 2018-9-30 23:25 | 只看該作者
        共享資料的黑幣獎勵!
回復

使用道具 舉報

8#
ID:405273 發表于 2018-10-19 09:30 | 只看該作者
能精確控制舵機轉角嗎?比如按鍵一下 5度
回復

使用道具 舉報

9#
ID:58240 發表于 2018-10-21 22:22 | 只看該作者
感謝分享     
回復

使用道具 舉報

10#
ID:374198 發表于 2018-12-27 08:20 | 只看該作者
想問一下,9g舵機回中原理是什么???
回復

使用道具 舉報

11#
ID:973173 發表于 2021-10-18 23:41 | 只看該作者
不知道一開始通電的時候會不會自動轉?
回復

使用道具 舉報

12#
ID:969161 發表于 2021-11-10 23:20 | 只看該作者
謝謝樓主,這個不錯,正需要看舵機的。
回復

使用道具 舉報

13#
ID:969161 發表于 2021-11-10 23:28 | 只看該作者
我以前抄了一個程序,但舵機就是不能正常轉動起來,到現在都不知道是什么原因。
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 亚洲精久久久 | 日韩欧美国产精品一区二区三区 | 久久青青 | 中文字幕人成乱码在线观看 | 亚洲欧美在线观看 | 中文字幕的av | 精品国产乱码久久久久久老虎 | 国产第1页 | 国产999精品久久久久久 | 精品一区二区三区在线视频 | 女朋友的闺蜜3韩国三级 | 欧美黄色片 | av网站在线播放 | 91一区二区 | 精品国产乱码久久久久久丨区2区 | 国产精品日韩 | 久久亚洲精品国产精品紫薇 | 成人av资源在线 | 妹子干综合 | 日韩电影免费在线观看中文字幕 | 天堂中文av | av中文字幕在线 | 色网在线观看 | 91精品国产色综合久久不卡蜜臀 | 国产精品一二区 | 不卡的av一区 | 欧美日韩专区 | 日韩在线视频网址 | 欧美一区二区三区视频 | 麻豆久久精品 | 99re视频在线 | 99精品国自产在线 | 精品人伦一区二区三区蜜桃网站 | 精品国产精品三级精品av网址 | 91成人在线 | 久久成人免费视频 | 日本一二三区电影 | 三级成人在线 | 欧美国产精品一区二区三区 | 亚洲天堂免费 | 一级片免费视频 |