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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

51單片機如何控制舵機啊 求幫助

[復制鏈接]
跳轉到指定樓層
樓主
ID:314625 發表于 2018-4-23 17:23 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
求各位大樓幫忙  最好有編程解釋
分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:511588 發表于 2019-8-5 14:48 | 只看該作者
//采用24.5MHZ的51單片機驅動舵機轉動程序如下:(上電自動轉動 )
#include <C8051F410.H>

unsigned char count;      //0.5ms次數標識

sbit pwm =P1^0 ;          //PWM信號輸出

sbit jia =P2^4;           //角度增加按鍵檢測IO口

sbit jian =P2^5;           //角度減少按鍵檢測IO口

unsigned char jd;         //角度標識



sbit pwm1 =P0^0 ;          //PWM信號輸出給示波器,檢測PWM波用

void delay(unsigned char i)//延時
{

  unsigned char j,k;

  for(j=i;j>0;j--)

    for(k=125;k>0;k--);

}

void Time0_Init()          //定時器0初始化
{


  TH0  = 0xfc;        //定時器0裝初值 定時0.5ms進入中斷

  TL0  = 0x03;


  TMOD = 0x01;       //定時器0工作在方式1   

  IE = 0x82;              //IE=0x82=1000 0010 等價于 EA=1 開總中斷  ET0=1 開定時器0中斷

  TR0=1;             //開定時器0
       
  CKCON = 0x04;      //定時器0使用系統時鐘22.1184mhz
}

void Time0_Int() interrupt 1         //中斷程序
{

     //重裝初值

  TH0  = 0xfc;
  TL0  = 0x03;

    if(count<jd)

      {

                        pwm=1;                  //確實小于,PWM輸出高電平
                        pwm1=pwm;              //接示波器用的io口,觀測PWM波形用            }        //判斷0.5ms次數是否小于角度標識
       //pwm=1;                  //確實小于,PWM輸出高電平
                       
                }
    else

                {

                        pwm=0;                  //大于則輸出低電平

                        pwm1=pwm;             //接示波器用的io口,觀測PWM波形用        }

                        //  pwm=0;                  //大于則輸出低電平

                        count=(count+1);          //0.5ms次數加1

                        count=count%40;     //次數始終保持為40 即保持周期為20ms

                }
}


//此注銷掉部分為通過按鍵控制舵機轉動的程序,功能為通過jia按鍵控制正轉,

//通過jian按鍵控制反轉

/*void keyscan()              //按鍵掃描
{
   if(jia==0)               //角度增加按鍵是否按下
  {
    delay(10);              //按下延時,消抖
    if(jia==0)              //確實按下
     {
      jd++;                 //角度標識加1
      count=0;              //按鍵按下 則20ms周期從新開始
      if(jd==6)
        jd=5;               //已經是180度,則保持
      while(jia==0);        //等待按鍵放開
     }
  }
  if(jian==0)                //角度減小按鍵是否按下
  {
    delay(10);
    if(jian==0)
     {
      jd--;                 //角度標識減1
      count=0;
      if(jd==0)
        jd=1;               //已經是0度,則保持
      while(jan==0);
     }
  }
}*/


void Port_IO_Init()
{
    P1SKIP    = 0x0F;
    XBR0      = 0x08;
    XBR1      = 0x50;
}

void Oscillator_Init()
{
    OSCICN    = 0x87;
}
void Init_Device(void)
{
         PCA0MD    &= ~0x40;
    PCA0MD    = 0x00;
    Port_IO_Init();
    Oscillator_Init();
}



void main()

{

//上電,舵機自動正反轉   

//應注意每次步進是延時函數delay參數的設置,此處延時函數參數設置的并不理想   
  Init_Device();
       
while(1)

{

  for(jd=1;jd<6;jd++)
                 
                {
                 
                        count=0;
                       
                        Time0_Init();
                 
                        delay(50000000);
                 
                }

                delay(50000000);

        for(jd=6;jd>0;jd--)
         
                {
                 
                        count=0;
                         
                        Time0_Init();
                         
                        delay(50000000);
                 
                }
        }
}
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 精品日韩一区二区 | 亚洲精品一区二区在线 | 久久另类 | 久久手机视频 | av永久| 精品欧美色视频网站在线观看 | 欧美国产一区二区 | 久久鲁视频 | 91久久久久 | 国产成人精品久久二区二区91 | 超碰免费在线观看 | 成人免费网站www网站高清 | 中文字幕精品一区二区三区在线 | 亚洲区中文字幕 | av中文在线 | 国产精品国产精品国产专区不卡 | 亚洲区一区二 | 一区二区中文字幕 | 91精品国产欧美一区二区 | 免费观看黄色片视频 | 日韩三级免费观看 | 成人h动漫精品一区二区器材 | 免费视频一区二区 | 日韩午夜场 | 欧美黄在线观看 | 欧美精品一区二区三区在线 | 狠狠涩| 午夜影院视频在线观看 | 亚洲一区二区av | 国产黄色一级片 | 国产激情视频在线观看 | 人人叉 | 国产一级视频在线播放 | 国产一区中文字幕 | 国产精品一区二区在线 | 97超级碰碰 | 国色天香成人网 | 欧美精品片| 99re6在线视频精品免费 | 久久久精品网站 | 久久成人精品视频 |