找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3362|回复: 6
收起左侧

求单片机程序 延时函数驱动舵机

[复制链接]
ID:290141 发表于 2018-3-23 15:36 | 显示全部楼层 |阅读模式
20黑币
stc12c5a60s2芯片,如何用延时函数来驱动一个舵机的转动,求详细程序。舵机动一次就行了

回复

使用道具 举报

ID:295923 发表于 2018-3-23 15:51 | 显示全部楼层
纳秒级的延时使用空指令来封装自己的延时函数,时间很长可以采用定时器,操控有逻辑时序的话,可以使用多个定时器协调工作
回复

使用道具 举报

ID:296086 发表于 2018-3-23 18:59 | 显示全部楼层
STC-ISP 软件有延时函数的功能,设置相应型号即可
回复

使用道具 举报

ID:116400 发表于 2018-3-24 16:20 | 显示全部楼层
我这里有两个舵机的程序,你可以看看作为一个参考

2.舵机.zip

429.75 KB, 下载次数: 56

duoji.zip

21.74 KB, 下载次数: 37

回复

使用道具 举报

ID:223788 发表于 2018-3-24 16:41 | 显示全部楼层
舵机开
回复

使用道具 举报

ID:223788 发表于 2018-3-24 16:42 | 显示全部楼层
舵机转动,
延时若干时间,
关闭舵机
回复

使用道具 举报

ID:290141 发表于 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);
        }
}
我写的这个不行 求原程序
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表