300 黑幣
大家好,需要在舵機(jī)角度旋轉(zhuǎn)代碼里加key0,key1控制啟動(dòng)和停止,不知道有什么簡(jiǎn)便的方法。
#include<reg52.h>
#include"lcd.h"
sbit pwm=P0^0;//輸出PWM信號(hào)
unsigned int pwm_value=1500;//初值為1.5ms
unsigned int ms[]={00,90,00,45,00,45,00,90,00};
unsigned int value[]={1500,500,1500,1000,1500,2000,1500,2300,1500};//
void InitTimer(void)
{
TMOD=0x11;//開(kāi)定時(shí)器0,1
TH0=-20000/256;//定時(shí)20MS,20MS為一個(gè)周期
TL0=-20000%256;
TH1=-1500/256;//定時(shí)1.5MS,這時(shí)舵機(jī)處于0度
TL1=-1500%256;
EA=1;//開(kāi)總斷
TR0=1;//開(kāi)定時(shí)器0
ET0=1;
TR1=1;//開(kāi)定時(shí)器1
ET1=1;
}
void timer0(void) interrupt 1//定時(shí)器0中斷函數(shù)
{
pwm=1;
TH0=-20000/256;
TL0=-20000%256;
TR1=1;
}
void timer1(void) interrupt 3//定時(shí)器1中斷函數(shù)
{
pwm=0;
TH1=-pwm_value/256;
TL1=-pwm_value%256;
TR1=0;
}
void main(void)//主函數(shù)
{
unsigned char i;
LcdInit();
InitTimer();
pwm_value=1500;
while(1)
{
for(i=0;i<9;i++)
{
pwm_value=value;//通過(guò)數(shù)組就可以改變舵機(jī)的轉(zhuǎn)角度
Delayms(1000);
LcdWriteCom(0xc0);
LcdWriteData(ms/10+'0');
LcdWriteData(ms%10+'0');
}
}
}
這個(gè)是main.c,只需要加幾句話就好了。
我來(lái)回答