标题:
51单片机控制s90舵机,舵机一直动不了 求大神
[打印本页]
作者:
吴雪波
时间:
2019-12-2 17:33
标题:
51单片机控制s90舵机,舵机一直动不了 求大神
#include "reg52.h"
typedef unsigned int u16;
typedef unsigned char u8;
sbit ControlPort=P3^5;
#define led P2
u8 ServePwmValue=1500;//pwm初始值1500??
//定时器函数
void Timer0_Int0()
{
TMOD=0x01; //???????1???????/??????T0
TH0=0;
TL0=0;
TF0=0;
ET0=1; //打开中断允许位
}
//定时pwm时间?
void TimerValue(u16 pwm)
{
u16 Value;
TR0=0;
Value=pwm;
TL0=Value; //??16λ????????8λ???????16λ???8λ???8λ
TH0=Value>>8;
TR0=1;
}
//延时ms函数
void DelayMs(u16 ms)
{
u16 i,j;
for(i=0;i<85;i++) //89???????85,12??е??????800
for(j=0;j<ms;j++);
}
void main()
{
Timer0_Int0();
ControlPort=0;
EA=1;
while(1)
{
ServePwmValue=500;
DelayMs(1000);
ServePwmValue=1000;
DelayMs(1000);
ServePwmValue=1500;
DelayMs(1000);
ServePwmValue=2000;
DelayMs(1000);
ServePwmValue=2500;
DelayMs(1000);
}
}
void Timer0() interrupt 1
{
static u16 i=1;
switch(i)
{
//高电平的时间
case(1):
ControlPort=1;
TimerValue(ServePwmValue);
break;
//低电平的时间
case(2):
ControlPort=0;
TimerValue(20000-ServePwmValue);
break;
i=0;
}
i++;
}
作者:
man1234567
时间:
2019-12-4 23:05
case(1):这样写也能通过么 ?
作者:
YLY12381
时间:
2019-12-8 11:44
#include <reg52.h>
unsigned int HighRH=0;
unsigned int HighRL=0;
unsigned int LowRH=0;
unsigned int LowRL=0;
void ConfigPWM(unsigned int,unsigned char);
void ClosePWM();
void delay(unsigned int xms)
{
unsigned int j;
unsigned int k;
for(j=xms;j>0;j--)
for(k=110;k>0;k--);
}
void main()
{
while(1)
{
ConfigPWM(50,3);
delay(500);
ConfigPWM(50,6);
delay(500);
ConfigPWM(50,9);
delay(500);
ConfigPWM(50,12);
delay(500);
ConfigPWM(50,15);
delay(500);
}
}
void ConfigPWM(unsigned int fr,unsigned char dc)
{
unsigned int high,low;
unsigned long tmp;
tmp=(11059200/12)/fr;
high=(tmp*dc)/100;
low=tmp-high;
high=65536-high+12;
low=65536-low+12;
HighRH=(unsigned char)(high>>8);
HighRL=(unsigned char)high;
LowRH=(unsigned char)(low>>8);
LowRL=(unsigned char)low;
TMOD&=0xfd;
TMOD|=0x01;
TH0=HighRH;
TL0=LowRH;
ET0=1;
TR0=1;
P2=0xff;
EA=1;
}
void Timer0(void) interrupt 1
{
if(P2==0xff)
{
TH0=LowRH;
TL0=LowRL;
P2=0x00;
}
else
{
TH0=HighRH;
TL0=HighRL;
P2=0xff;
}
}
欢迎光临 (http://www.51hei.com/bbs/)
Powered by Discuz! X3.1