找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 6159|回复: 1
收起左侧

舵机 左右90度转动 亲测可用

[复制链接]
ID:183197 发表于 2017-4-8 13:19 | 显示全部楼层 |阅读模式
#include<reg52.h>
typedef unsigned int uint;
typedef unsigned char uchar;
sbit pwm=P0^3;//输出PWM信号
uint pwm_value=1500;//初值为1.5ms
uint value[]={1500,650,1500,2500,1500};//
void delay_ms(uint x)
{
uint i;
while(x--)for(i=0;i<125;i++);
}
void InitTimer(void)
{
TMOD=0x11;//开定时器0,1
TH0=-20000/256;//定时20MS,20MS为一个周期
TL0=-20000%256;
TH1=-1500/256;//定时1.5MS,这时舵机处于0度
TL1=-1500%256;
EA=1;//开总断
TR0=1;//开定时器0
ET0=1;
TR1=1;//开定时器1
ET1=1;
}
void timer0(void) interrupt 1//定时器0中断函数
{
pwm=1;
TH0=-20000/256;
TL0=-20000%256;
TR1=1;
}
void timer1(void) interrupt 3//定时器1中断函数
{
pwm=0;
TH1=-pwm_value/256;
TL1=-pwm_value%256;
TR1=0;
}
void main(void)//主函数
{
uchar i;
InitTimer();
pwm_value=1500;
while(1)
{
for(i=0;i<5;i++)
{
pwm_value=value[i];//通过数组就可以改变舵机的转角度
delay_ms(1000);
}
}
}

评分

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

查看全部评分

回复

使用道具 举报

ID:801816 发表于 2021-1-27 09:37 来自手机 | 显示全部楼层
有仿真吗
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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