
专业版
控制舵机的最小系统和程序
119
0
0
0
简介
可以控制四个舵机,外加P0扩展口
简介:可以控制四个舵机,外加P0扩展口开源协议
:GPL 3.0
(未经作者授权,禁止转载)创建时间:2024-08-29 03:29:27更新时间:2024-08-29 07:13:22
描述
项目功能
本设计是基于STC89C51/52单片机设计的控制舵机最小系统
软件代码
#include "reg52.h"
#include "intrins.h"
#include "TMER0.H"
sbit S1=P0^0;
sbit S2=P0^1;
sbit SG_PWM1=P2^0;
sbit SG_PWM2=P2^1;
sbit SG_PWM3=P2^2;
sbit SG_PWM4=P2^3;
unsigned char count=0;
unsigned char PWM1_count=0;
unsigned char PWM2_count=0;
unsigned char PWM3_count=0;
unsigned char PWM4_count=0;
void Delay1ms(unsigned int xms ) //@11.0592MHz
{
while(xms)
{
unsigned char data i, j;
i = 15;
j = 90;
do
{
while (--j);
} while (--i);
xms--;
}
}
void main()
{
Timer0_Init();
S1=1;
PWM1_count=1;
Delay1ms(100);
PWM2_count=1;
Delay1ms(100);
PWM3_count=1;
Delay1ms(100);
PWM4_count=3;
Delay1ms(100);
PWM1_count=3;
Delay1ms(100);
PWM2_count=3;
Delay1ms(100);
PWM3_count=3;
Delay1ms(100);
PWM4_count=1;
while(1)
{
if(S1==0)
{
PWM2_count=1;
PWM3_count=1;
Delay1ms(100);
PWM1_count=3;
PWM4_count=3;
}
else
{
PWM1_count=1;
PWM4_count=1;
Delay1ms(100);
PWM2_count=3;
PWM3_count=3;
}
}
}
unsigned int T0Count;
void Timer0_Routine() interrupt 1
{
TL0 = 0x33; //???????
TH0 = 0xFE; //???????
count++;
count%=40;
if(count<PWM1_count)
{
SG_PWM1=1;
}
else
{
SG_PWM1=0;
}
if(count<PWM2_count)
{
SG_PWM2=1;
}
else
{
SG_PWM2=0;
}
if(count<PWM3_count)
{
SG_PWM3=1;
}
else
{
SG_PWM3=0;
}
if(count<PWM4_count)
{
SG_PWM4=1;
}
else
{
SG_PWM4=0;
}
}
注意事项
单片机冷启动下载,使用P0串口时需要自己焊接上拉电阻
提醒
康陶公司LOGO是赛博朋克2077游戏中的公司,如有雷同纯属巧合
设计图

BOM


添加到专辑
0
0
分享
侵权投诉
评论