打印
[51单片机]

为什么用3.7引脚输出就不行了?用0.7引脚就OK

[复制链接]
1407|8
手机看帖
扫描二维码
随时随地手机跟帖
跳转到指定楼层
楼主
j1755659290|  楼主 | 2014-5-14 00:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
大家帮我看看这个程序,是一个控制舵机来回摇摆的程序,舵机能够正常运行,但是如果把P0^7改成P3^7舵机就不动了(P0^7是外接一个上拉电阻的P3^7是直接和舵机相连的,但是控制舵机应该没有上拉电阻也一样的吧),这是为啥啊?

sbit OUT = P0^7;

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)
{
         ET0=0;
         TH_H=(65536-temp)/256;
         TL_H=(65536-temp)%256;
         TH_L=(46536+temp)/256;
         TL_L=(46536+temp)%256;
         ET0=1;
}
/*------------------------------------------------
                 主程序
------------------------------------------------*/
main()
{
  unsigned int  temp=1500;
  bit flag=0;
  Init_Timer0();
  DataPro(temp);

        while(1)
        {
                DataPro(1000);
                Delay(300);
                DataPro(2000);
                Delay(300);
        }
}

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

相关帖子

沙发
ayb_ice| | 2014-5-14 06:19 | 只看该作者
上拉多大

使用特权

评论回复
板凳
ningling_21| | 2014-5-14 08:41 | 只看该作者
P3.7加上拉电阻应该也可以吧...

使用特权

评论回复
地板
Ketose| | 2014-5-14 09:25 | 只看该作者
直接用单片机驱动?不用驱动芯片?

使用特权

评论回复
5
j1755659290|  楼主 | 2014-5-15 00:32 | 只看该作者
ayb_ice 发表于 2014-5-14 06:19
上拉多大

上拉是1k的,不过舵机自己有电源的,单片机只是给了个PWM信号而已啊,应该不需要上拉啊

使用特权

评论回复
6
j1755659290|  楼主 | 2014-5-15 00:33 | 只看该作者
Ketose 发表于 2014-5-14 09:25
直接用单片机驱动?不用驱动芯片?

舵机自己有电源的,单片机只是给了个PWM信号而已啊,应该不需要很大的电流吧

使用特权

评论回复
7
j1755659290|  楼主 | 2014-5-15 00:34 | 只看该作者
ningling_21 发表于 2014-5-14 08:41
P3.7加上拉电阻应该也可以吧...

上拉是1k的,不过舵机自己有电源的,单片机只是给了个PWM信号而已啊,为什么还需要上拉啊?

使用特权

评论回复
8
ayb_ice| | 2014-5-15 06:58 | 只看该作者
上拉1K就对了,内部上拉可远不止1K,一般在几十K

使用特权

评论回复
9
ningling_21| | 2014-5-15 08:38 | 只看该作者
j1755659290 发表于 2014-5-15 00:34
上拉是1k的,不过舵机自己有电源的,单片机只是给了个PWM信号而已啊,为什么还需要上拉啊? ...

舵机有可能是电流型驱动,外部驱动能力不够时就要加上拉...

使用特权

评论回复
发新帖 我要提问
您需要登录后才可以回帖 登录 | 注册

本版积分规则

16

主题

69

帖子

0

粉丝