OpenEdv-开源电子网

 找回密码
 立即注册
正点原子全套STM32/Linux/FPGA开发资料,上千讲STM32视频教程免费下载...
查看: 2678|回复: 1

串口控制舵机的问题(51区太冷了只好到这里来求助。。希望能得到解决。。)

[复制链接]

0

主题

0

帖子

0

精华

新手入门

积分
2
金钱
2
注册时间
2017-12-25
在线时间
5 小时
发表于 2016-12-12 08:33:50 | 显示全部楼层 |阅读模式
10金钱
首先是本人用键盘控制舵机的程序(51还没学多久,看这里比较热闹才来32区发帖。。见谅希望得到指点。。)
#include<reg52.h>
sbit jia=P3^3;
sbit jian=P3^4;
#define uchar unsigned char

sbit pwm=P1^7;
uchar count,jd;

void delay(unsigned int z)
{
        unsigned int x,y;
        for(x=z;x>0;x--)
                for(y=125;y>0;y--);
}
void timer0_init()
{
                TMOD=0x01;
                IE=0x82;
                TH0=0xfe;
                TL0=0x33;
                TR0=1;
}
void timer0() interrupt 1
{
                TH0=0xfe;
                TL0=0x33;
                if(count<jd)
                 pwm=1;
                else
                        pwm=0;
                        count=(count+1);
                //        if(count==40)
                         // TR0=0;
                        count=count%40;
}
void keyscan()
{
        if(jia==0)
        {
         delay(10);
         if(jia==0)
         {
          jd++;
          count=0;

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

                  if(jd==0)
                jd=1;
               
                while(jian==0);
                delay(10);
                while(jian==0);
         }
        }
}
void main()
{

jd=1;
count=0;
timer0_init();
        while(1)
        {
         keyscan();

        }



}

舵机正常转动,通过按键加减45度。

接下来我用串口发送数据来代替按键,程序如下
#include <stc12c5a60s2.h>

#define uchar unsigned char

sbit pwm=P1^7;
uchar count,jd,flag,a;

void timer0_init()
{
                TMOD=0x01;
                IE=0x82;
                TH0=0xfe;
                TL0=0x33;
                TR0=1;
}

void lanya()
{
                TMOD=0x20;
        TR1=1;
        TH1=0xfd;
        TL1=0xfd;
        REN=1;
        SM0=0;
        SM1=1;
        EA=1;
        ES=1;
               
}


void timer0() interrupt 1
{
                TH0=0xfe;
                TL0=0x33;
                if(count<jd)
                 pwm=1;
                else
                        pwm=0;
                        count=(count+1);
                //        if(count==40)
                         // TR0=0;
                        count=count%40;
}


void exter() interrupt 4
{
RI=0;
a=SBUF;
flag=1;
}

void main()
{

jd=1;
count=0;
timer0_init();
lanya();
       
                while(1)
                {
                                if(flag==1)
                          {
                                  EA=0;
                           ES=0;
                           flag=0;
                           SBUF=a;
                           while(!TI);
                           TI=0;
                           ES=1;
                           }
                           EA=1;

                           switch(SBUF)
                           {
                                           case '0':
                                        jd++;
                                        count=0;
                                        if(jd==6)
                                        jd=5;
                                        break;

                                        case '1':
                                        jd--;
                                        count=0;
                                        if(jd==0)
                                        jd=1;
                                        break;
                           }
                }



}

却没有任何反应了。这次之前我将串口部分屏蔽,将按键控制舵机写进去,发现舵机是又能正常工作了,想请教大神是哪里出问题了。如果有已经调试成功的程序希望可以分享下些谢谢!

正点原子逻辑分析仪DL16劲爆上市
回复

使用道具 举报

530

主题

11万

帖子

34

精华

管理员

Rank: 12Rank: 12Rank: 12

积分
165524
金钱
165524
注册时间
2010-12-1
在线时间
2116 小时
发表于 2016-12-12 20:31:12 | 显示全部楼层
可能是你的串口有问题。先搞通串口再说。
回复

使用道具 举报

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

本版积分规则



关闭

原子哥极力推荐上一条 /2 下一条

正点原子公众号

QQ|手机版|OpenEdv-开源电子网 ( 粤ICP备12000418号-1 )

GMT+8, 2025-5-26 03:29

Powered by OpenEdv-开源电子网

© 2001-2030 OpenEdv-开源电子网

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