danpian_12345 2017-05-03 14:33 采纳率: 0%
浏览 6835

用51单片机控制SG90舵机工作

下面是我用keil写的程序,怎么烧录到STC89C52单片机中实现不了预期功能呢?
本来是按下jia键,舵机就转180度,按下jian键就转0度。可是我的舵机却反应得不那么
灵敏。我用的是SG90舵机,接在开发板5v,该舵机正常工作电压是4.6-6v,是这个舵机
驱动不起来吗?还是我的程序有问题?求大神指点指点
#include
#define uchar unsigned char
#define uint unsigned int

sbit jia=P3^4;
sbit jian=P3^5;
sbit pwm=P3^7;

uchar jd,count;

void delay (uint xms)
{
uint i,j;
for(i=xms;i>0;i--)
for(j=118;j>0;j--);
}

void display()
{
if(jia==0)
{
delay (10);
if(jia==0)
{
jd=0;
count=0;
while(jia==0);
}
}
if(jian==0)
{
delay (10);
if(jian==0)
{
jd=5;
count=0;
while(jian==0);
}
}
}

void main()
{
TMOD=0x01;
TH1=(65536-655036)/256;
TL1=(65536-655036)%256;
EA=1;
ET1=1;
TR1=1;
jd=1;
count=0;
while(1)
{
display();
}
}

void T0_time() interrupt 3
{
TH1=(65536-655036)/256;
TL1=(65536-655036)%256;

if(count<jd)
pwm=1;
else
pwm=0;
count=(count+1);
count=count%40;
}

  • 写回答

5条回答 默认 最新

  • qq_38323802 2017-06-16 13:21
    关注

    你的代码里TH1=(65536-655036)/256是复制错了?怎么会是655036

    评论

报告相同问题?

悬赏问题

  • ¥20 sub地址DHCP问题
  • ¥15 delta降尺度计算的一些细节,有偿
  • ¥15 Arduino红外遥控代码有问题
  • ¥15 数值计算离散正交多项式
  • ¥30 数值计算均差系数编程
  • ¥15 redis-full-check比较 两个集群的数据出错
  • ¥15 Matlab编程问题
  • ¥15 训练的多模态特征融合模型准确度很低怎么办
  • ¥15 kylin启动报错log4j类冲突
  • ¥15 超声波模块测距控制点灯,灯的闪烁很不稳定,经过调试发现测的距离偏大