发作品签到
专业版

控制舵机的最小系统和程序

工程标签

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

暂无BOM

附件

序号文件名称下载次数
1
舵机控制程序.txt
14
克隆工程
添加到专辑
0
0
分享
侵权投诉

评论

全部评论(1)
按时间排序|按热度排序
粉丝0|获赞0
相关工程
暂无相关工程

底部导航