51单片机的资源都差不多,这里采用STC89C52作为控制芯片,上位机的输出控制信号,利用串口接收控制舵机。理论上,只用一个定时器就可以产生无限多路PWM波输出,但事实上,PWM输出越多,定时器中断里面操作的语句就越多,很繁杂,单片机的运行速度会变得很慢,以致于输出PWM波周期大于一般舵机的控制周期20ms,或者频率产生误差,导致舵机的颤抖。所以,只利用一个定时器输出PWM有一定限制,路数不能太多,如果需要控制的舵机数量太多,建议更换带有PWM输出的单片机。下面是单片机控制三路舵机的程序。
#include
sbit duoji1=P3^2;//PWM输出口1
sbit duoji2=P2^4;//PWM输出口2
sbit duoji3=P2^5;//PWM输出口3
intt,xinhao[3],flag;//xinhao[3]是上位机传来的三个控制信号
void main()
{
EA=1;
flag=0;
for(t=0;t<3;t++)
xinhao[t]=15;//初始化控制信号
t=0;
TMOD=0x21;//设置定时器1的工作方式为3,用于产生波特率, //接收串口的数据,设置定时器0的工作方式为1, //用于控制舵机的PWM波输出
TH1=0xfd;//设置串口波特率为9600
TL1=0xfd;
TR1=1;
ES=1;
REN=1;
SM0=0;
SM1=1;
PCON=0x00;
TH0=(65536-40)/256;//定时器0每40微妙产生一次中断,注意: //中断产生的频率越高,单片机运行速度也 //会越慢,但控制信号宽度会变宽,控制也 //越精准,需要各位自己权衡
TL0=(65536-40)%256;
ET0=1;
TR0=1;
while(1);
}
void timer0() interrupt 1//PWM波输出控制
{
TH0=(65536-40)/256;
TL0=(65536-40)%256;
t++;
if(t==xinhao[0])
duoji1=0;
if(t==xinhao[1])
duoji2=0;
if(t==xinhao[2])
duoji3=0;
if(t==500)//
{
t=0;
duoji1=1;
duoji2=1;
duoji3=1;
}
}
void serial() interrupt 4//接收上位机的控制数据
{
if(flag==0)
{
xinhao[0]=SBUF;
flag=1;
RI=0;
}
else if(flag==1)
{
xinhao[1]=SBUF;
flag=2;
RI=0;
}
else if(flag==2)
{
xinhao[2]=SBUF;
flag=0;
RI=0;
}
}
关键字:单片机控制 舵机
引用地址:
单片机控制 舵机 参考程序
推荐阅读最新更新时间:2024-03-16 15:09
51单片机控制步进电机驱动器工作原理
步进电机在控制系统中具有广泛的应用。它可以把脉冲信号转换成角位移,并且可用作电磁制动轮、电磁差分器、或角位移发生器等。有时从一些旧设备上拆下的步进电机(这种电机一般没有损坏)要改作它用,一般需自己设计驱动器。本文介绍的就是为从一日本产旧式打印机上拆下的步进电机而设计的驱动器。 本文先介绍该步进电机的工作原理,然后介绍了其驱动器的软、硬件设计。 1. 步进电机的工作原理 该步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。 图1 四相步进电机步进示意图 开始时,开关SB接通电源,SA、SC、SD断开,
[单片机]
基于51单片机控制的多路呼叫系统设计
随着信息技术的发展与医疗卫生事业的深化改革,国家金卫工程的实施使医院管理信息化的进程大大加快,医院的信息化建设取得了很大进展。医疗行业面对激烈竞争的市场,需要为病患者提供更人性化,更合理的服务,医疗资源的共享和信息化流程的简化,医疗部门办公网络化、自动化,实现全面信息共享已是大势所驱。越来约多的医院认识到,只有通过信息化建设,逐步建立信息化医院和医疗企业,才能支持医院的可持续发展,从而大力提高医院综合效益和运行效益。因此,设计一个支持医院病床呼叫,具有一条线缆传输多路呼叫信息的功能的系统,是非常必要的。 1 多路呼叫系统整体设计方案 该系统利用单片机的双机通信功能,设计出的具有呼叫、显示、应答等功能的多路呼叫系统,就是为满足中
[单片机]
基于单片机控制的程控有源滤波器电路
有源滤波器广泛应用于数字信号处理、通信、自动控制领域,但设计可变宽频带有源滤波器则比较困难。利用单片机控制参数可编程的双二阶通用开关电容有源滤波器,精确设置有源滤波器的中心频率f0,品质因数Q及有源滤波器的工作方式。 2 开关电容有源滤波器工作原理 开关电容有源滤波器的基本原理是在电路两节点之间接具有高速开关的电容器,等效于两节点之间连接一只电阻。图1(a)是一个有源RC积分器,图1(b)是采用一只接地电容C1和CMOS开关T1、T2替代输入电阻R1。图1(c)是不重叠的两相时钟脉冲,用于驱动T1、T2。时钟频率fCLK高于信号频率。当φ1为高电平时,T1导通(视短路)而T2截止(视开路),此时C1与输人信号V1相连并充电(如
[单片机]
基于单片机控制数字移相器的系统硬件电路设计
简 述 移相电路常用于同步检测器的数据处理中。目前资料上有很多移相电路,其实现方法多种多样,大致可分为模拟式和数字式移相器两类。模拟式移相器的电路较为复杂、线性差、测试精度低;数字式移相器大多以标准逻辑器件按传统数字系统设计方法设计而成,其缺点为功耗大、可靠性低。本文介绍的基于单片机控制的数字移相器,采用环形队列实现信号波形的任意相位移相,并且保持波形的幅度、频率不变。其测试精度高,失真度小。系统原理方框图如图1所示。 1系统硬件电路设计 本系统的硬件电路主要由输入信号倍频电路、AT89C51单片机、A/D转换器、D/A转换器、6116存储器及键盘/显示等电路构成。 1.1输入信号倍频电路 倍频电路由锁相环CC4046及双
[单片机]
机器人应用中舵机工作原理
舵机也叫伺服,最早用于船舶上实现其转向功能,由于可以通过程序连续控制其转角,因而被广泛应用的各类关节运动,以及用在智能小车上以实现转向,如图1 、图2 所示。
图1 舵机用于机器人
图2 舵机用于智能小车中
舵机是小车转向的控制机构,具有体积小、力矩大、外部机械设计简单、稳定性高等特点,无论是在硬件设计还是软件设计,舵机设计是小车控制部分重要的组成部分,图3为舵机的外形图。
图3 舵机外形图
舵机的组成
一般来讲,舵机主要由以下几个部分组成,舵盘、减速齿轮组、位置反馈电位计、直流电机、控制电路等,如图4、图5所示。
图4 舵机的组
[机器人]
PCB设计之单片机控制板设计原则
设计电路板最基本的过程可以分为三大步骤:电路原理图的设计,产生网络表,印制电路板的设计。不管是板上的器件布局还是走线等等都有着具体的要求。 例如,输入输出走线应尽量避免平行,以免产生干扰。两信号线平行走线必要是应加地线隔离,两相邻层布线要尽量互相垂直,平行容易产生寄生耦合。电源与地线应尽量分在两层互相垂直。线宽方面,对数字电路PCB可用宽的地线做一回路,即构成一地网(模拟电路不能这样使用),用大面积铺铜。 下面这篇文章就单片机控制板设计需要注意的原则和一些细节问题进行了说明。 1.元器件布局 在元器件的布局方面,应该把相互有关的元件尽量放得靠近一些,例如,时钟发生器、晶振、CPU的时钟输入端都易产生噪声,在放置的时候应把它
[电源管理]
基于单片机控制的LED水族照明装置设计
1 引言 生态水族的主角是鱼、水草,视觉欣赏是其主要功能。光照是其首要解决的三大技术问题之一。 常用的水族照明光源主要有荧光灯、水银灯、卤钨灯等,但其发射光谱与水生物选择性吸收光谱不匹配,用于水生动植物补光,针对性差、光效低、耗能大、大量发热影响水温。发光二极管( LED)以其高效、多色、窄带、直流、显色性好、节能、环保等优点,被认为是未来主要的、较为理想的人工水生动植物补光光源。但目前市场上的LED 水族光源,存在光谱和强度被预制固化、不可调、显色性差、静态等问题,不能满足水生动植物对光谱的动态需求,因此,智能LED 水族光源成为科学工作者竞相研究的重点。 2 设计原理 2. 1 观赏性水草的生长发育
[电源管理]
基于单片机控制的正弦波逆变电源设计
引言 逆变电源是一种采用电力电子技术进行电能变换的装置。随着电力电子技术的发展,逆变电源的应用越来越广泛,但应用系统对逆变电源的输出电压波形特性也随之提出了越来越高的要求,因为电源的输出波形质量直接关系到整个系统的安全和可靠性指标。 随着数字信号处理技术的发展,以SPWM控制方式设计的逆变电源越来越受到青睐。本文介绍的SPWM逆变电源就是采用PIC单片机来实现SPWM控制和正弦波方式输出,而且电路简单,性能安全可靠,灵活性强,同时可以降低谐波,提高效率。 1 SPWM逆变器结构 逆变电源的拓扑结构有多种形式,图l所示是SPWM逆变电源的基本结构,它主要由变压器中心抽头推挽式升压电路、逆变电路、滤波电路、驱
[单片机]