寫了一個控制舵機(jī)的程序,用P10口輸出,下載后舵機(jī)不會轉(zhuǎn)動,信號端上的電壓為0,用P00口輸出(P0口接有外部上拉電阻),下載后舵機(jī)會轉(zhuǎn)動但不受控制,不會停止,有時候平穩(wěn)的轉(zhuǎn)一個角度,然后接著會抖動,方向也不確定,改變定時器的初值或者改變脈沖寬度都不起作用,測量舵機(jī)信號端上的電壓為2.7伏,是不是電壓太低了?為什么兩個端口輸出的電壓大小會不一樣。吭撛鯓咏鉀Q?用的舵機(jī)是九克的,程序?yàn)椋?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);
} 還有,按照程序計(jì)數(shù)一次應(yīng)該是0.1ms,可使用Keil進(jìn)行仿真計(jì)數(shù)一次大概是0.055ms,為什么啊?
|