对于有些场景,需要定时开关,使用单片机能节约很大的人力资源,且保证准确性。本项目为开发一直定时开关装置,实现长时间重复动作的控制,用于生产现场实验。具体有要求为:
1、实现开关动作;
2、要求打开10秒,然后关闭50秒。
实现方法为单片机控制数字式舵机,利用舵机的精确控制,实现90度的正反转,实现开关。
此处使用的是51单片机,晶振频率11.0592MHz。
舵机控制使用PWM波形控制。舵机的控制一般需要一个20ms左右的时基脉冲,该脉冲的高电平部分一般为0.5ms-2.5ms范围内的角度控制脉冲部分,总间隔为2ms。
0.5ms--------------0度;
1.0ms------------45度;
1.5ms------------90度;
2.0ms-----------135度;
程序实现方法:
1、使用单片机定时器0,确定0.5ms的定时
2、使用单片机定时器1,确定50ms的定时
3、在while(1)中实现正反转。
具体程序如下:
#include<reg52.h>
#include<intrins.h>
#define uchar unsigned char
#define uint unsigned int
sbit PWM = P2^7;
uchar count,jd,i,j,ms;