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

標題: 舵機的控制程序 51單片機寫的 [打印本頁]

作者: 李寶軍的弟弟    時間: 2016-5-6 19:23
標題: 舵機的控制程序 51單片機寫的
//請根據自己馬達的控制 來改變程序
#include<reg52.h>
#include<math.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
uchar Buffer =0;      //從串口接收的數據
uint URTAReceivedCount=0,n=1;
uchar data Tempdatatable[5],CommandDatatable[5];//數據包

uchar serVal[2];
//uint pwm[]={1120,1190,1382,1382,1382,1382,1382,1382}; //初始90度,(實際是1382.4,取整得1382)
//uchar pwm_flag=0;
uint code ms0_5Con=461; //0.5ms計數 (實際是460.8,取整得461)
uint code ms2_5Con=2304; //2.5ms計數

bit key_stime_ok;


void Delay_1ms(uint i)//1ms延時
{
uchar x,j;
for(j=0;j
for(x=0;x<=148;x++);
}





void Send_Data(uchar type,uchar cmd,uchar dat)
{
   uchar data Buffer[5];//構建數據包
   uchar *p;
   uint Send_Count=0;
   p = Buffer;
   Buffer[0]=0XFF;
   Buffer[1]=type;
   Buffer[2]=cmd;
   Buffer[3]=dat;
   Buffer[4]=0XFF;     
  while(1)
     {
      if(*p==0XFF)
        {
         Send_Count++;  //0XFF標志統計位
        }
      SBUF = *p;  //發送
      while(!TI)  //如果發送完畢,硬件會置位TI,等待發送完畢
           {
             _nop_();
           }
      p++;
      TI = 0;
      if(Send_Count == 2)  //當統計到兩次出現0XFF,則認為一個數據包發送完畢,跳出循環
        {
         TI = 0;
         break;
        }  
     }
}




void Com_Int(void) interrupt 4
{
uchar temp;
ES=0; //關串口中斷
RI=0; //軟件清除接收中斷
temp=SBUF;
  if(temp==0XFF && URTAReceivedCount<3)
     {
       Tempdatatable[0]==0XFF;  //包頭
       URTAReceivedCount++;
     }
  else
     {
       Tempdatatable[n]=temp;
       n++;
       if(URTAReceivedCount==0&&n==2)
       n=1;
     }

  if(URTAReceivedCount==2)//包尾
    {
       Tempdatatable[0]=0XFF;
       Tempdatatable[4]=0XFF;
       n=1;
       URTAReceivedCount=0;  //組包完畢
       temp=" ";
      // Send_Data(Tempdatatable[1],Tempdatatable[2],Tempdatatable[3]);  //發送組成的數據包回去
    }

  CommandDatatable[0]=Tempdatatable[0];
  CommandDatatable[1]=Tempdatatable[1];
  CommandDatatable[2]=Tempdatatable[2];
  CommandDatatable[3]=Tempdatatable[3];
  CommandDatatable[4]=Tempdatatable[4];

  ES=1;//開串口中斷


}

void Com_Init(void)
{
     TMOD = 0x21;
     PCON = 0x00;
     SCON = 0x50;   
     TH1 = 0xFd;    //設置波特率 9600
     TL1 = 0xFd;
     TR1 = 1;  //啟動定時器1
     ES = 1;  //開串口中斷
     EA = 1;  //開總中斷
     IT0=0;
     EX0=1;
}






void main()
{   

   
    Delay_1ms(200);
    Com_Init();//串口初始化
    Timer0Init();//舵機PWM中斷初始化   
  while(1)
  {

   if(CommandDatatable[0]==0XFF && CommandDatatable[4]==0XFF)
      {
           switch (CommandDatatable[1])      //根據鍵值不同,執行不同的內容
             {
              case 0X00:  //類型位0X00,表明是控制數據包,進入控制數據case
                  switch(CommandDatatable[2])  //根據數據位的值來進行選擇執行不同的動作
                           {
                             case 0X00:Moto_Stop();break;
                             case 0X01:Moto_Forward();break;
                             case 0X02:Moto_Backward();break;
                             case 0X03:Moto_TurnLeft();break;
                             case 0X04:Moto_TurnRight();break;
                             case 0X05:Moto_ForLeft();break;
                             case 0X06:Moto_ForRight();break;
                             case 0X07:Moto_BackLeft();break;
                             case 0X08:Moto_BackRight();break;
                             default :  break;
                           }
                         break;
                         default :  break;
            }
       }
  }
}






作者: 龍柏俊    時間: 2020-4-20 12:12
挺好,借鑒了




歡迎光臨 (http://www.zg4o1577.cn/bbs/) Powered by Discuz! X3.1
主站蜘蛛池模板: 99伊人 | 日韩精品一区二区三区免费观看 | 超碰在线国产 | 国产精品一区三区 | 中文字幕二区三区 | 毛片网站在线观看 | 亚洲免费网| 91在线视频精品 | av中文字幕在线播放 | 亚洲欧美中文日韩在线v日本 | 欧美久久一区 | 在线欧美视频 | 99久久精品国产毛片 | 中国美女撒尿txxxxx视频 | 成人黄色av网址 | 国产精品久久久久久久久久久久 | 国产99视频精品免费视频7 | 91中文字幕在线观看 | 国产欧美精品一区二区三区 | 欧美高清性xxxxhd | 欧美日一区二区 | 国产精品久久久久久久久免费桃花 | 欧美日本在线观看 | 国产精品久久久久久久久久久新郎 | 欧美一区二| 日韩精品 电影一区 亚洲 | 欧美99 | 一区二区三区在线播放视频 | 中文字幕在线观看一区 | 精品欧美一区二区在线观看欧美熟 | 久草网站| 国产第一区二区 | 成人性视频在线播放 | 波多野结衣一区二区三区在线观看 | 91免费在线| 一区二区三区高清不卡 | av三级| 在线观看国产视频 | 天天射天天干 | 国产色99精品9i | 中文字幕第九页 |