|
新人第一次共享模拟舵机控制代码,自己测试没问题,只要改变angle即可控制转向
源程序:
- #include <reg52.h>
- #define uint unsigned int
- #define uchar unsigned char
- //变量与引脚定义
- sbit dj=P1^7; //与舵机信号线接的IO
- uchar pwm; //pwm计数变量
- uchar angle=4; //舵机摆臂默认转到45度,这是一个控制摆臂角度的变量,改变这个量就可以改变舵机摆臂的转角位置,范围是2~10,对应0~180度
- //***********************************************************************************//
- //软件延时,约为z毫秒
- void delay(uint z)
- {
- uint x,y;
- for(x=z;x>0;x--)
- for(y=110;y>0;y--);
- }
- //定时器初始化,用以模拟驱动舵机的PWM波
- void Timer_Init(void)
- {
- TMOD=0x02;
- TH0=6; //设为0.25ms触发一次定时器中断
- TL0=6;
- ET0=1;
- EA=1;
- TR0=1;
- }
- //***********************************************************************************//
- //主函数
- void main()
- {
- Timer_Init(); //定时器初始化
- angle=6;
- }
- //***********************************************************************************//
- //定时器中断服务程序
- void Time0_Isr() interrupt 1
- {
- pwm++; //判断值自加一
- if(pwm==angle) //与角度变量比较
- {
- dj=0; //接舵机的IO置0
- }
- if(pwm==80) //0.25*80=20ms的周期
- {
- pwm=0; //周期到,清零
- dj=1; //接舵机的IO置1
- }
- }
复制代码
|
-
-
舵机参考程序.zip
806 Bytes, 下载次数: 24, 下载积分: 黑币 -5
可以控制舵机转向需要的拿去
评分
-
查看全部评分
|