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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 7969|回復: 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 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 在线中文字幕日韩 | 日韩在线成人 | 日日天天 | 精品无码久久久久久久动漫 | 色久在线 | 久久lu| 久久精品成人热国产成 | 日韩免费看视频 | 一区二区三区av | 久久综合一区二区 | 日本久久久一区二区三区 | 色综合天天综合网国产成人网 | 亚洲一区二区av在线 | 狠狠干天天干 | 国产一区二区三区久久久久久久久 | 日本三级网站在线观看 | 亚洲欧美日韩在线一区二区 | 成人动漫视频网站 | 国内毛片毛片毛片毛片 | 国产一区二区精品在线观看 | 欧美日韩国产一区二区三区 | 午夜视频免费在线观看 | 免费黄色大片 | 亚洲国产成人在线视频 | 91视频亚洲 | 一区二区三区国产精品 | 99在线免费视频 | 日韩一区在线观看视频 | a中文在线视频 | 国产一区二区在线免费观看 | 一色桃子av一区二区 | 国产精品99久久久久久www | 欧美精品久久久 | 精品欧美乱码久久久久久1区2区 | 国产日韩电影 | 国产91久久久久久久免费 | 国产乱码精品一区二区三区中文 | 午夜私人影院在线观看 | 免费一看一级毛片 | 国产一区二区电影 | 91天堂|