寫了一個控制舵機的程序,用P10口輸出,下載后舵機不會轉動,信號端上的電壓為0,用P00口輸出(P0口接有外部上拉電阻),下載后舵機會轉動但不受控制,不會停止,有時候平穩的轉一個角度,然后接著會抖動,方向也不確定,改變定時器的初值或者改變脈沖寬度都不起作用,測量舵機信號端上的電壓為2.7伏,是不是電壓太低了啊?為什么兩個端口輸出的電壓大小會不一樣啊?該怎樣解決啊?用的舵機是九克的,程序為:#include <reg51.h>
#define uchar unsigned char
sbit a=P1^0;
uchar time=0;
uchar p=200;
uchar h=10;
void timer0() interrupt 1 using 1
{
TH0=(65536-100)/256;
TL0=(65536-100)%256;
if (++time==h)
a=0;
else if(time==p)
{
time=0;
a=1;
}
}
void main ()
{
TMOD=0x01;
TH0=(65536-100)/256;
TL0=(65536-100)%256;
EA=1;
ET0=1;
TR0=1;
a=1;
while (1);
} 還有,按照程序計數一次應該是0.1ms,可使用Keil進行仿真計數一次大概是0.055ms,為什么啊?
|