欧美极品高清xxxxhd,国产日产欧美最新,无码AV国产东京热AV无码,国产精品人与动性XXX,国产传媒亚洲综合一区二区,四库影院永久国产精品,毛片免费免费高清视频,福利所导航夜趣136

標題: 新人第一次共享模擬舵機控制代碼 改變angle即可控制轉向 [打印本頁]

作者: GPPyeye    時間: 2016-4-23 16:45
標題: 新人第一次共享模擬舵機控制代碼 改變angle即可控制轉向
新人第一次共享模擬舵機控制代碼,自己測試沒問題,只要改變angle即可控制轉向

源程序:

  1. #include <reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. //變量與引腳定義
  5. sbit dj=P1^7;        //與舵機信號線接的IO
  6. uchar pwm;                //pwm計數變量
  7. uchar angle=4;        //舵機擺臂默認轉到45度,這是一個控制擺臂角度的變量,改變這個量就可以改變舵機擺臂的轉角位置,范圍是2~10,對應0~180度


  8. //***********************************************************************************//
  9. //軟件延時,約為z毫秒
  10. void delay(uint z)
  11. {
  12.         uint x,y;
  13.         for(x=z;x>0;x--)
  14.                 for(y=110;y>0;y--);
  15. }


  16. //定時器初始化,用以模擬驅動舵機的PWM波
  17. void Timer_Init(void)
  18. {
  19.         TMOD=0x02;
  20.         TH0=6;        //設為0.25ms觸發一次定時器中斷
  21.         TL0=6;
  22.         ET0=1;
  23.         EA=1;
  24.         TR0=1;
  25. }
  26. //***********************************************************************************//       
  27. //主函數
  28. void main()
  29. {
  30.         Timer_Init();        //定時器初始化
  31.         angle=6;
  32. }
  33. //***********************************************************************************//
  34. //定時器中斷服務程序
  35. void Time0_Isr() interrupt 1  
  36. {
  37.         pwm++;        //判斷值自加一
  38.         if(pwm==angle)        //與角度變量比較
  39.         {
  40.                 dj=0;        //接舵機的IO置0
  41.         }
  42.         if(pwm==80)        //0.25*80=20ms的周期
  43.         {
  44.                 pwm=0;        //周期到,清零
  45.                 dj=1;        //接舵機的IO置1
  46.         }
  47. }
復制代碼


舵機參考程序.zip

806 Bytes, 下載次數: 24, 下載積分: 黑幣 -5

可以控制舵機轉向需要的拿去






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