找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 2846|回复: 3
收起左侧

stc89c52rc单片机驱动sg90舵机

  [复制链接]
ID:812531 发表于 2021-2-25 17:39 | 显示全部楼层 |阅读模式
接线方法
          红-------------------------VCC
          棕色----------------------GND
          橙色----------------------信号线
高电平t占整个周期T(20ms)的时间
舵机旋转的角度
0.5ms
0度
1ms
45度
1.5ms
90度
2ms
135度
2.5ms
180度


#include<reg52.h>
  sbit dj=P1^0;
  unsigned char count;
    unsigned char pwm=10 ; //5是右90度,10是0度,15是左90度
void Timer0Init(void)                //0毫秒@11.0592MHz
{

        TMOD &= 0xF0;                //设置定时器模式 '
        //TMOD |=0x01;
        TL0 = 0xAE;                //设置定时初值
        TH0 = 0xFB;                //设置定时初值
        TR0 = 1;                //定时器0开始计时
        ET0=1;
        EA=1;

}
void main()
{
  Timer0Init();        //函数调用
  while(1);
}
void timer0()  interrupt 1
{

           TL0 = 0xAE;                //设置定时初值
        TH0 = 0xFB;                //设置定时初值
        if(count<pwm)
        { dj=1;}
          else
         { dj=0;}
                  count++;
         if(count==200)//设置20ms
         { count=0;}
         
}






评分

参与人数 1黑币 +50 收起 理由
admin + 50 共享资料的黑币奖励!

查看全部评分

回复

使用道具 举报

ID:208271 发表于 2021-5-3 10:45 | 显示全部楼层
谢谢楼主分享,上机测试,完全可用,PWM参数稍微根据实际调整
回复

使用道具 举报

ID:230742 发表于 2021-5-3 17:49 | 显示全部楼层
感谢分享。这个必须支持一下。程序太简单了。
回复

使用道具 举报

ID:1064915 发表于 2023-6-11 09:07 | 显示全部楼层
void Timer0_Init(void)                //1200微秒@11.0592MHz
{
        AUXR &= 0x7F;                        //定时器时钟12T模式
        TMOD &= 0xF0;                        //设置定时器模式
        TMOD |= 0x01;                        //设置定时器模式
        TL0 = 0xAE;                                //设置定时初始值
        TH0 = 0xFB;                                //设置定时初始值
        TF0 = 0;                                //清除TF0标志
        TR0 = 1;                                //定时器0开始计时
}
TL0 = 0xAE;  
TH0 = 0xFB;
定时是1200微秒@11.0592MHz
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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