51单片机c语言舵机,51单片机控制舵机转动的程序,不求控制角度,只要正反转180°就行,麻烦了...

满意答案

5a069941ca5d5df619752be8f090ae3b.png

贝尔梅尔娜美

2017.12.17

5a069941ca5d5df619752be8f090ae3b.png

采纳率:60%    等级:39

已帮助:94965人

#include#define OUT P0 #define CON P2#define ms0_5Con  461#define ms2_5Con  2304typedef unsigned char unit8;typedef unsigned short unit_16;sbit servo0=OUT^0;sbit servo1=OUT^1;sbit servo2=OUT^2;sbit servo3=OUT^3;sbit servo4=OUT^4;sbit servo5=OUT^5;sbit servo6=OUT^6;sbit servo7=OUT^7; sbit KEY1=CON^0;sbit KEY2=CON^1;unit_16 pwm[8]={1382,1382,1382,1382,1382,1382,1382,1382}; //??90?,(???1382.4,???1382)  void Inter_Form(){TMOD|=0x01;TH0  =0xf7;TL0  =0x00;TR0  =1;ET0  =1;EA   =1;}void delay(unit8 x){unit8 i=0;while(x--){for(i=0;i<125;i++);}}/*------------------------?????--------------------------*//*unit_16 Transform(uchar val){//0?=0.5ms, 45?=1ms, 90?=1.5ms, 135?=2ms, 180?=2.5ms//2.5 ms??? F700, (12n/11059200=2.5/1000, n=2304, X=65536-2304=63232 > F700)//return (unit_16)(((float)(2/180)*X+0.5)/1000*11059200/12);unit_16 a = (val+46)*10;if(ams2_5Con)a=ms2_5Con;return a;}  *//*-------------------------???---------------------------*/  void Steering_UP(unit8 val){ if(pwm[val]>ms2_5Con) pwm[val]=ms2_5Con; pwm[val]=pwm[val]+10;}void Steering_Down(unit8 val){ if(pwm[val]>8; TL0=-pwm[0]; break;case 2: servo0=0; TH0=-(ms2_5Con-pwm[0])>>8; TL0=-(ms2_5Con-pwm[0]); break;case 3: servo1=1; TH0=-pwm[1]>>8; TL0=-pwm[1]; break;case 4: servo1=0; TH0=-(ms2_5Con-pwm[1])>>8; TL0=-(ms2_5Con-pwm[1]); break; case 5: servo2=1; TH0=-pwm[2]>>8; TL0=-pwm[2]; break;case 6: servo2=0; TH0=-(ms2_5Con-pwm[2])>>8; TL0=-(ms2_5Con-pwm[2]); break;case 7: servo3=1; TH0=-pwm[3]>>8; TL0=-pwm[3]; break;case 8: servo3=0; TH0=-(ms2_5Con-pwm[3])>>8; TL0=-(ms2_5Con-pwm[3]); break;case 9: servo4=1; TH0=-pwm[4]>>8; TL0=-pwm[4]; break;case 10: servo4=0; TH0=-(ms2_5Con-pwm[4])>>8; TL0=-(ms2_5Con-pwm[4]); break;case 11: servo5=1; TH0=-pwm[5]>>8; TL0=-pwm[5]; break;case 12: servo5=0; TH0=-(ms2_5Con-pwm[5])>>8; TL0=-(ms2_5Con-pwm[5]); break;case 13: servo6=1; TH0=-pwm[6]>>8; TL0=-pwm[6]; break;case 14: servo6=0; TH0=-(ms2_5Con-pwm[6])>>8; TL0=-(ms2_5Con-pwm[6]); break;case 15: servo7=1; TH0=-pwm[7]>>8; TL0=-pwm[7]; break;case 16: servo7=0; TH0=-(ms2_5Con-pwm[7])>>8; TL0=-(ms2_5Con-pwm[7]); break;default:TH0=0xff; TL0=0x80; pwm_flag=0;}pwm_flag++;}

02分享举报

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值