标题: 求单片机程序 延时函数驱动舵机 [打印本页]

作者: Thunder.    时间: 2018-3-23 15:36
标题: 求单片机程序 延时函数驱动舵机
stc12c5a60s2芯片,如何用延时函数来驱动一个舵机的转动,求详细程序。舵机动一次就行了

作者: jdb333333    时间: 2018-3-23 15:51
纳秒级的延时使用空指令来封装自己的延时函数,时间很长可以采用定时器,操控有逻辑时序的话,可以使用多个定时器协调工作
作者: 1143828514    时间: 2018-3-23 18:59
STC-ISP 软件有延时函数的功能,设置相应型号即可
作者: WANGCHONG    时间: 2018-3-24 16:20
我这里有两个舵机的程序,你可以看看作为一个参考

2.舵机.zip

429.75 KB, 下载次数: 56

duoji.zip

21.74 KB, 下载次数: 37


作者: JACKLI    时间: 2018-3-24 16:41
舵机开
作者: JACKLI    时间: 2018-3-24 16:42
舵机转动,
延时若干时间,
关闭舵机
作者: Thunder.    时间: 2018-3-25 19:59
#include "reg51.h"
#include <intrins.h>
#define uint8        unsigned char   
#define uint16        unsigned short int
#define uint32        unsigned long

sbit SERVO0=P1^0;                        //¿ØÖƶæ»úμÄPWMêä3ö¿ú

//uint16 Servo0PwmDuty=1500;        //PWMÂö3å¿í¶è



void InitTimer0(void)
{
        TMOD |= 0x01;                //éèÖö¨ê±Æ÷Ä£ê½
        TL0 = 0xff;                        //éèÖö¨ê±3õÖμ
        TH0 = 0x00;                        //éèÖö¨ê±3õÖμ
        TF0 = 0;                        //Çå3yTF0±êÖ¾
        TR0 = 1;                        //¶¨ê±Æ÷0¿aê¼¼Æê±
        ET0 = 1;                        //¿a¶¨ê±Æ÷0ÖD¶Ï
}


void delay100us(unsigned int a)                //@12.000MHz
{
        unsigned char i, j;

        _nop_;
        _nop_;
        i = 2;
        j = 38;
        do
        {
                while (--j);
        } while (--i);
}

void main( )
{

        InitTimer0();        //¶¨ê±Æ÷03õê¼»ˉ
        EA = 1;                        //¿a×üÖD¶Ï
        while(1)         
{
   SERVO0=1;
         delay100us(500);
         SERVO0=0;
          delay100us(1000);
         SERVO0=1;
         delay100us(500);
        }
}
我写的这个不行 求原程序




欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1