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

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 4730|回復: 3
收起左側

單片機MG90S舵機控制程序 發送信號寬度>20ms,高電平0.5ms:0度,1ms:45,1.5ms:90

[復制鏈接]
ID:500181 發表于 2019-3-28 20:51 | 顯示全部樓層 |閱讀模式
//MADE BY TANG BIN.2019
//MG90S舵機,發送信號寬度>20ms,高電平0.5ms:0度,1ms:45,1.5ms:90。。。
//備注:模擬舵機,需要不斷發送信號驅動!
#include<reg52.h>
#include <intrins.h>
#define    TIME_WAVE    20000    //20ms
#define JUMP        70    //1s跳動晶振11059200,100us計算跳動1106,1106/12=92,可實際舵機有偏差        
#define TIME        100    //100us
#define DOWN        0
#define TRUE        1
#define FALSE        0
#define uchar unsigned char
#define uint unsigned int
sbit pwm=P1^0;
sbit key0=P3^4;
sbit key45=P3^5;
sbit key90=P3^6;
sbit key180=P3^7;

void delay(uint);

void delay500(uint n);
void send(uint);
//void set_time(uint);
void wait_time(uint);

uchar finish=FALSE;
uchar count=0;

sbit led=P1^7;
//主程序
void main(){
    //中斷-------------------------
    TMOD=0x01;    //設置為T0中斷模式
    //set_time(500);//初始時間
    //50us的定時
    TH0=(65536-JUMP)/256;
    TL0=(65536-JUMP)%256;
    EA=1;        //開總中斷
    ET0=1;        //開TO中斷
    TR0=1;        //啟動T0
    pwm=0;
    led=1;

   
    //-----------------------------
    while(1)
    {
        uint i=0;
        uchar down=FALSE;
        //有鍵按下
        if(key0==DOWN)
        {
            down=TRUE;
            for(i=0;i<50;i++)//50*20ms=1,000ms=1s
            send(500);
        }
        if(key45==DOWN)
        {
            down=TRUE;
            for(i=0;i<50;i++)
            send(1000);
        }
        if(key90==DOWN)
        {
            down=TRUE;
            for(i=0;i<50;i++)
            send(2000);
        }
        if(key180==DOWN)
        {
            down=TRUE;
            for(i=0;i<50;i++)
            send(2500);
        }
        led=down?0:1;
        delay(50+down*500);
        led=1;
    }
}
//
/*
void set_time(uint n){
    TH0=(65536-n)/256;
    TL0=(65536-n)%256;
}*/
//
void send(uint us){
    pwm=1;
    wait_time(us);
    pwm=0;
    wait_time(TIME_WAVE-us);
}

void wait_time(uint us){
    //uint jump=(us/25)*23;///500;
    //TH0=(65536-jump)/256;
    //TL0=(65536-jump)%256;
    //nish=FALSE;
    //TR0=1;
    //while(finish==FALSE);
    //delay500(2);
    count=us/TIME;
    while(count>0);
    //TR0=0;
    //_nop_();
}
//
void delay(uint xms){
    uint i,j;
    for(i=xms;i>0;i--)
        for(j=110;j>0;j--);
}

void delay500(uint n){
    uint i,j;
    for(i=n;i>0;i--)
        for(j=11;j>0;j--);
}

//中斷不應占用過多CPU時間
//在這做需要穩定時間處理的操作,不受主程序影響的操作
void T0_time() interrupt 1
{
    TH0=(65536-JUMP)/256;
    TL0=(65536-JUMP)%256;
    //finish=TRUE;
    if(count>0)count--;
}

舵機.rar

1.12 KB, 下載次數: 52, 下載積分: 黑幣 -5

評分

參與人數 1黑幣 +50 收起 理由
admin + 50 共享資料的黑幣獎勵!

查看全部評分

回復

使用道具 舉報

ID:508616 發表于 2019-4-10 11:43 | 顯示全部樓層
請問mg90s舵機可以直接接單片機控制不要驅動板的嗎?
回復

使用道具 舉報

ID:567962 發表于 2019-9-8 10:50 | 顯示全部樓層
大灰狼吃小紅帽 發表于 2019-4-10 11:43
請問mg90s舵機可以直接接單片機控制不要驅動板的嗎?

可以的
回復

使用道具 舉報

ID:377872 發表于 2019-10-21 14:43 | 顯示全部樓層
為什么不轉啊?
回復

使用道具 舉報

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

本版積分規則

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

Powered by 單片機教程網

快速回復 返回頂部 返回列表