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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

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

求控制舵機的程序

[復制鏈接]
樓主
ID:1 發(fā)表于 2015-10-26 07:11 來自手機 | 只看該作者
舵機控制程序http://www.zg4o1577.cn/bbs/dpj-37116-1.html
回復

使用道具 舉報

沙發(fā)
ID:227369 發(fā)表于 2017-10-13 20:10 | 只看該作者
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int
//sbit KEY1 = P3^2;        //定義調速的按鍵
sbit DC1 = P0^0;                //定義舵機的控制端口
sbit DC2 = P0^1;
sbit DC3 = P0^2;
sbit DC4 = P0^3;
sbit DC5 = P0^4;
sbit DC6 = P0^5;
uchar CYCLE;                  //定義周期
uchar PWM1,PWM2,PWM3,PWM4,PWM5,PWM6;                    //定義低電平時間
/*********************************
函數(shù):Delay_1ms()
參數(shù):t
返回:無
功能:延時子程序,延時時間為 1ms * del。
          使用晶振是11.0592M。                  g
**********************************/
void Delay_1ms(uint t)
{
        uint i,j;
        for(i=0;i<t;i++)
                for(j=0;j<=100;j++);
               
}
/*********************************
函數(shù):Time0Init()
參數(shù):無
返回:無
功能:設置定時器0的工作方式2定時時長為100微秒,
      并打開中斷和啟動定時器。
          該例中使用的單片機晶振為11.0592M。
**********************************/
void Time0Init(void)
{
        TMOD = 0x02;        //設定定時器0工作在方式0模式
        TH0  = 0xA4;    //定時時長為100微秒的初值自動重載
        TL0  = 0xA4;    //定時時長為100微秒的初值
        ET0 = 1;        //打開定時器0中斷
        EA = 1;                    //打開總中斷
        TR0 = 1;            //啟動定時器
}
/*********************************
函數(shù):Time0Int()
參數(shù):無
返回:無
說明:定時器0中斷函數(shù)。用于處理PWM的信號。
**********************************/
void Time0Int() interrupt 1
{
        static        uchar Count;
        Count++;
        if(Count >= PWM1)
               
        {
                DC1= 1;                
               
        } else  DC1 = 0;
        if(Count >= PWM2)   
        {
                DC2 = 1;                
               
        }  else  DC2 = 0;
        if(Count >= PWM3)   
        {
                DC3 = 1;                
               
        }  else  DC3 = 0;
        if(Count >= PWM4)   
        {
                DC4 = 1;                
               
        } else  DC4 = 0;
                if(Count >= PWM5)   
        {
                DC5 = 1;                
               
        } else  DC6 = 0;
                        if(Count >= PWM6)   
        {
                DC6 = 1;                
               
        } else  DC6 = 0;
        Count++;
       
        if(Count == CYCLE)  
        {
               
                Count=0;
               
        }

       
}


//void PWMInit()
//{
//          PWM1=146;
//        Delay_1ms(5);
//        PWM2=186;
//             Delay_1ms(5);       
//        PWM3=189;
//         Delay_1ms(5);
//        PWM4=170;
//         Delay_1ms(5);
//        PWM5=146;
//         Delay_1ms(5);
//        PWM6=148;
//         Delay_1ms(5);
//}

// void PWMna()
// {
//          PWM1=158; Delay_1ms(5);
//         PWM2=158; Delay_1ms(5);
//         PWM3=182; Delay_1ms(5);
//         PWM4=189; Delay_1ms(5);
//         PWM5=174; Delay_1ms(5);
//         PWM6=185; Delay_1ms(5);
// }

//void PWMfang()
//{
//        PWM1=174; Delay_1ms(5);
//        PWM2=174; Delay_1ms(5);
//        PWM3=154; Delay_1ms(5);
//        PWM4=189; Delay_1ms(5);
//        PWM5=146; Delay_1ms(5);
//        PWM6=169; Delay_1ms(5);
//}

void main()
{
        Time0Init();    //定時器0初始化
        CYCLE = 200;        //定義PWM周期為20毫秒
/*傳統(tǒng)舵機 必須連續(xù)發(fā)信號,,數(shù)字舵機去掉while(1)就ok了*/
        while(1)
        {
//                PWMInit();       
//                Delay_1ms(1000);
//                PWMna();
//                Delay_1ms(1000);
//                PWMfang();
//                Delay_1ms(1000);
                //Delay_1ms(500);
                PWM1=176; Delay_1ms(250);
  //        PWM2=174; Delay_1ms(500);
            PWM3=176; Delay_1ms(500);
          // PWM4=189; Delay_1ms(50);
  //        PWM5=179; Delay_1ms(50);
          //PWM6=169; Delay_1ms(5)
                        Delay_1ms(1000);
                        PWM1=190; Delay_1ms(250);
                //        PWM2=186; Delay_1ms(500);
                         PWM3=192; Delay_1ms(500);
                        Delay_1ms(1000);
               
        }
               
       
}


       
       
                                                          



       
       
回復

使用道具 舉報

板凳
ID:227369 發(fā)表于 2017-10-13 20:11 | 只看該作者
admin 發(fā)表于 2015-10-26 07:11
舵機控制程序http://www.zg4o1577.cn/bbs/dpj-37116-1.html

#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint  unsigned int
//sbit KEY1 = P3^2;        //定義調速的按鍵
sbit DC1 = P0^0;                //定義舵機的控制端口
sbit DC2 = P0^1;
sbit DC3 = P0^2;
sbit DC4 = P0^3;
sbit DC5 = P0^4;
sbit DC6 = P0^5;
uchar CYCLE;                  //定義周期
uchar PWM1,PWM2,PWM3,PWM4,PWM5,PWM6;                    //定義低電平時間
/*********************************
函數(shù):Delay_1ms()
參數(shù):t
返回:無
功能:延時子程序,延時時間為 1ms * del。
          使用晶振是11.0592M。                  g
**********************************/
void Delay_1ms(uint t)
{
        uint i,j;
        for(i=0;i<t;i++)
                for(j=0;j<=100;j++);
               
}
/*********************************
函數(shù):Time0Init()
參數(shù):無
返回:無
功能:設置定時器0的工作方式2定時時長為100微秒,
      并打開中斷和啟動定時器。
          該例中使用的單片機晶振為11.0592M。
**********************************/
void Time0Init(void)
{
        TMOD = 0x02;        //設定定時器0工作在方式0模式
        TH0  = 0xA4;    //定時時長為100微秒的初值自動重載
        TL0  = 0xA4;    //定時時長為100微秒的初值
        ET0 = 1;        //打開定時器0中斷
        EA = 1;                    //打開總中斷
        TR0 = 1;            //啟動定時器
}
/*********************************
函數(shù):Time0Int()
參數(shù):無
返回:無
說明:定時器0中斷函數(shù)。用于處理PWM的信號。
**********************************/
void Time0Int() interrupt 1
{
        static        uchar Count;
        Count++;
        if(Count >= PWM1)
               
        {
                DC1= 1;                
               
        } else  DC1 = 0;
        if(Count >= PWM2)   
        {
                DC2 = 1;                
               
        }  else  DC2 = 0;
        if(Count >= PWM3)   
        {
                DC3 = 1;                
               
        }  else  DC3 = 0;
        if(Count >= PWM4)   
        {
                DC4 = 1;                
               
        } else  DC4 = 0;
                if(Count >= PWM5)   
        {
                DC5 = 1;                
               
        } else  DC6 = 0;
                        if(Count >= PWM6)   
        {
                DC6 = 1;                
               
        } else  DC6 = 0;
        Count++;
       
        if(Count == CYCLE)  
        {
               
                Count=0;
               
        }

       
}


//void PWMInit()
//{
//          PWM1=146;
//        Delay_1ms(5);
//        PWM2=186;
//             Delay_1ms(5);       
//        PWM3=189;
//         Delay_1ms(5);
//        PWM4=170;
//         Delay_1ms(5);
//        PWM5=146;
//         Delay_1ms(5);
//        PWM6=148;
//         Delay_1ms(5);
//}

// void PWMna()
// {
//          PWM1=158; Delay_1ms(5);
//         PWM2=158; Delay_1ms(5);
//         PWM3=182; Delay_1ms(5);
//         PWM4=189; Delay_1ms(5);
//         PWM5=174; Delay_1ms(5);
//         PWM6=185; Delay_1ms(5);
// }

//void PWMfang()
//{
//        PWM1=174; Delay_1ms(5);
//        PWM2=174; Delay_1ms(5);
//        PWM3=154; Delay_1ms(5);
//        PWM4=189; Delay_1ms(5);
//        PWM5=146; Delay_1ms(5);
//        PWM6=169; Delay_1ms(5);
//}

void main()
{
        Time0Init();    //定時器0初始化
        CYCLE = 200;        //定義PWM周期為20毫秒
/*傳統(tǒng)舵機 必須連續(xù)發(fā)信號,,數(shù)字舵機去掉while(1)就ok了*/
        while(1)
        {
//                PWMInit();       
//                Delay_1ms(1000);
//                PWMna();
//                Delay_1ms(1000);
//                PWMfang();
//                Delay_1ms(1000);
                //Delay_1ms(500);
                PWM1=176; Delay_1ms(250);
  //        PWM2=174; Delay_1ms(500);
            PWM3=176; Delay_1ms(500);
          // PWM4=189; Delay_1ms(50);
  //        PWM5=179; Delay_1ms(50);
          //PWM6=169; Delay_1ms(5)
                        Delay_1ms(1000);
                        PWM1=190; Delay_1ms(250);
                //        PWM2=186; Delay_1ms(500);
                         PWM3=192; Delay_1ms(500);
                        Delay_1ms(1000);
               
        }
               
       
}


       
       
                                                          



       
       
回復

使用道具 舉報

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

本版積分規(guī)則

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

Powered by 單片機教程網(wǎng)

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 国产视频第一页 | 337p日本欧洲亚洲大胆精蜜臀 | 狠狠干五月天 | 日韩欧美不卡 | 天堂久久久久久久 | 美女久久久久久久 | 成人影院在线观看 | 欧美高清性xxxxhd | 日韩欧美一区二区三区免费看 | 成人影院网站ww555久久精品 | 性高朝久久久久久久3小时 av一区二区三区四区 | 99re在线免费视频 | 福利成人| 在线成人www免费观看视频 | 亚洲高清在线观看 | 99色视频| 中文字幕一区二区三区不卡 | 人人玩人人添人人澡欧美 | 日韩欧美在线视频 | 亚洲男女视频在线观看 | 成人二区 | www在线视频 | 欧洲亚洲一区二区三区 | 日韩免费高清视频 | 国产精品久久久久久久久久东京 | 午夜精品在线 | av高清毛片| 欧美aⅴ | 91电影院 | 欧美理论| 久久99精品久久久久久 | 在线一区| 日韩精品在线看 | 久久国产精品久久久久久久久久 | 午夜在线视频一区二区三区 | 成人动漫一区二区 | 久久99久久99精品免视看婷婷 | 欧美视频三区 | 91麻豆精品国产91久久久久久 | 国产成人叼嘿视频在线观看 | 国产午夜在线观看 |