搜索
bottom↓
回复: 1

舵机驱动控制的问题

[复制链接]

出0入0汤圆

发表于 2013-7-18 18:37:40 | 显示全部楼层 |阅读模式




很奇怪,无法驱动,求大家帮忙看看程序哪有问题

舵机型号:辉盛sg90
接线情况:
信号线---P00
5V--外部稳压电源
GND--外部稳压电源

  


谢谢大家了。程序挺简单的。在线等
/*-----------------------------------------------
  名称:舵机控制       
  内容:舵机进行循环左右摇臂动作 20ms周期,高电平时间从0.5ms~2.5ms,最大范围,根据不同舵机调整
------------------------------------------------*/
#include<reg52.h>
#include "delay.h"

sbit OUT = P0^0;//接信号线

unsigned char TH_H,TL_H,TH_L,TL_L;//

/*------------------------------------------------
                    定时器初始化子程序
------------------------------------------------*/
void Init_Timer0(void)
{
TMOD |= 0x01;          //使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响        TOMD = TOMD | 0X01             
TH0=0x00;              //给定初值,这里使用定时器最大值从0开始计数一直到65535溢出
TL0=0x00;
EA=1;            //总中断打开
ET0=1;           //定时器中断打开
TR0=1;           //定时器开关打开
}
/*------------------------------------------------
                 数据处理
------------------------------------------------*/
void DataPro(unsigned int temp)
{
         TH_H=(65536-temp)/256;
     TL_H=(65536-temp)%256;
         TH_L=(46536+temp)/256;
         TL_L=(46536+temp)%256;
}
/*------------------------------------------------
                 主程序
------------------------------------------------*/
main()
{
  unsigned int  temp=1500;
  bit flag=0;
  Init_Timer0();
  DataPro(temp);

  while(1)
     {
     while(!flag){
         if(temp<2300)
        temp+=10;
     else
          flag=1;
         DelayMs(3);
         DataPro(temp);
                  }
         while(flag)
           {
     if(temp>700)
        temp-=10;
     else
        flag=0;
         DelayMs(3);
         DataPro(temp);
                }
     
         }
}

/*------------------------------------------------
                 定时器中断子程序
------------------------------------------------*/
void Timer0_isr(void) interrupt 1
{
if(OUT)
{
TH0=TH_L;                  //重新赋值
TL0=TL_L;
}
else
{
  TH0=TH_H;                  //重新赋值
  TL0=TL_H;
  }
OUT=!OUT;
}


阿莫论坛20周年了!感谢大家的支持与爱护!!

知道什么是神吗?其实神本来也是人,只不过神做了人做不到的事情 所以才成了神。 (头文字D, 杜汶泽)

出0入0汤圆

 楼主| 发表于 2013-7-18 19:05:47 | 显示全部楼层
解决了~~~    供电不足,换1A外部电源就好了
回帖提示: 反政府言论将被立即封锁ID 在按“提交”前,请自问一下:我这样表达会给举报吗,会给自己惹麻烦吗? 另外:尽量不要使用Mark、顶等没有意义的回复。不得大量使用大字体和彩色字。【本论坛不允许直接上传手机拍摄图片,浪费大家下载带宽和论坛服务器空间,请压缩后(图片小于1兆)才上传。压缩方法可以在微信里面发给自己(不要勾选“原图),然后下载,就能得到压缩后的图片。注意:要连续压缩2次才能满足要求!!】。另外,手机版只能上传图片,要上传附件需要切换到电脑版(不需要使用电脑,手机上切换到电脑版就行,页面底部)。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

手机版|Archiver|amobbs.com 阿莫电子技术论坛 ( 粤ICP备2022115958号, 版权所有:东莞阿莫电子贸易商行 创办于2004年 (公安交互式论坛备案:44190002001997 ) )

GMT+8, 2024-7-23 16:11

© Since 2004 www.amobbs.com, 原www.ourdev.cn, 原www.ouravr.com

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