51单片机电机pid控制系统程序
本程序来源网上,小编进行了简单修改,还未验证。
/*************************
应用背景:直流电机的额定功率12V,额定转速3000rpm,光码盘12孔,
晶振为12MHz,定时/计数器T0检测转速,用定时器T1进行定时,
P1.0控制直流电机的正反转,用P1.1控制电机的转速.
************************/
#include#include#define uchar unsigned char
uchar timcount,PWMH,SpeedSet,SpeedDet;
uchar KP,KI,KD;
int e1,e2,e3,uk,duk;
sbit Dir = P1^0;
sbit PWM = P1^1;
//延时函数
void delay(uchar i)
{
uchar j;
for(;i>0;i--)
{
for(j=29;j;j--)
_nop_();
_nop_();
}
}
//延时函数,产生PWM波
void PWMout(uchar q)
{
PWM = 1;
delay(q);
PWM = 0;
delay(100-q);
}
void timer1() interrupt 3
{
TH1 = 0x3c; //(65536-50000)=15536= ox3c oxb0 即定时50ms
TL1 = 0xb0; //(65536-50000)=15536= ox3c oxb0 即定时50ms
if(--timcount==0)
{
timcount = 4;
TR0 = 0;
SpeedDet = TL0;
TL0 = 0;
TR0 = 1;
e1 = SpeedSet-SpeedDet;
duk = (KP*(e1-e2)+KI*e1+KD*(e1-2*e2+e3))/10; //误差的微分:(e1-2*e2+e3)=((e1-e2)-(e2-e3))/1
uk = uk+duk;
if(uk>100)
uk=100;
else if(uk<-100)
uk = -100;
if(uk<0)
{
PWMH = -uk;
Dir = 0;
}
else
{
PWMH =uk;
Dir = 1;
}
e3 = e2;
e2 = e1;
}
}
void main(void)
{
TMOD = 0x16; //T1工作于定时模式的方式一16位定时器;T0工作于计数模式的方式2八位自动重装模式。
TH0 = 0;//装载计数初始值为0
TL0 = 0;//装载计数初始值为0
TH1 = 0x3c;//(65536-50000)=15536= ox3c oxb0 即定时50ms
TL1 = 0xb0;//(65536-50000)=15536= ox3c oxb0 即定时50ms
timcount = 4; //
PWMH = 0; //PWM高电平时间初始为0
SpeedSet = 80;//设定期望值速度80
SpeedDet = 0; //速度偏移量
e1 = 0;//当前误差
e2 = 0;//上一次误差
e3 = 0;//上上次误差
KP =10; //比例系数
KI = 1;//积分系数
KD = 2;//微分系数
TR0 = 1; //打开定时器T0
TR1 = 1;//打开计数器T1
ET1 = 1;//允许中断T1
ET0 = 1;//允许中断T0
EA = 1;//打开总中断
while(1)
{
PWMout(PWMH); //电机运行速度
}
}
关键字:51单片机 电机
引用地址:
51单片机电机pid控制系统程序
推荐阅读最新更新时间:2024-11-17 17:07
专用芯片的步进电机步距角i11分控制
摘要 自动控制系统的综合性能在很大程度上取决于步进电机的精确度,细分技术可以显著改善步进电机的距角精度。利用细分算法控制AT89C51单片机输出具有一定时序的方波控制信号,经过TA8435芯片处理后输出相应的阶梯波来实现对步进电机的细分控制。本文重点就TA8435芯片的使用与控制进行详细介绍。 关键词 步进电机 TA8435 AT89C51 步距角细分 步进电机 引 言 步进电机是控制执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统和精密机械等领域。步进电机将电脉冲信号转换成相应角位移或线性位移的驱动装置,其转动速度和脉冲频率能严格同步,具有较高的重复定位精度,且没有累积误差。步进电机的驱动是由驱动电路实现
[工业控制]
AT89S51单片机发光二极管多功能闪烁的设计
1.实验任务 如图4.9.1所示,开关SP1接在P3.7/RD管脚上,在AT89S51单片机的P1端口接有四个发光二极管,上电的时候,L1接在P1.0管脚上的发光二极管在闪烁,当每一次按下开关SP1的时候,L2接在P1.1管脚上的发光二极管在闪烁,再按下开关SP1的时候,L3接在P1.2管脚上的发光二极管在闪烁,再按下开关SP1的时候,L4接在P1.3管脚上的发光二极管在闪烁,再按下开关SP1的时候,又轮到L1在闪烁了,如此轮流下去。 2.电路原理图 图4.9.1 3.系统板上硬件连线 (1).把“单片机系统”区域中的P3.7/RD端口连接到“独立式键盘”区域中的SP1端口上; (2).把“单片机系统”区域中的P1.0-P
[单片机]
基于51单片机之触控调光台灯实验
****************************** Copyright(C) CaKe ************************************ =================================== ==============**版权信息 : CaKen工作室 ============== ==============**文件名 : main.c ============== ==============**作者 : CaKen ============== =
[单片机]
80C51单片机对压力测量控制系统的设计
1 引言 目前我国发展煤炭生产机械化发展迅速。综采设备的应用,是提高效率、改善安全状况的措施。 影响开机率的一个主要因素是支架对工作面的顶板控制的好坏,因此,对综采工作面进行矿压监测与控制是很有必要的。要做到这一点,首先需要对井下工作面的液压支架的实际工作状况进行监测,通过对检测数据处理、分析,评定其效果,并采取相应措施,以提高开机率、提高产量。本文以监测综采液压支架的压力为研究内容,开发了一套基于单片机的压力测量控制系统。 2 压力测量控制系统功能设计 压力测量控制系统用于监测支架压力, 每台测量控制系统配有四只传感器, 可分别通过高压油管连接支架的立柱、平衡千斤顶, 前探梁千斤顶的油压腔。压力测量控制系统接收到通讯测量
[单片机]
51单片机延时计算方法
keil里面选取delay为断点 记录程序运行到此处所用的时间t_start 运行delay(1) 记录程序运行完后的时间t_end t_end-t_start即为运行1次的时间。
[单片机]
基于MC56F8323芯片的直流无刷电机设计
随着电力电子技术,新的永磁材料以及具有快速运算能力的DSP(数字信号处理器)的发展,直流无刷电机应用日益普及。直流无刷电机具有和直流电机相似的优良调速性能,又克服了直流电机采用机械式换向装置所引起的换向火花、可靠性低等缺点,且具有体积小、重量轻、效率高、电机的形状和尺寸灵活等优点,因此广泛应用在伺服系统、数控机床、电动车辆和家用电器各领域,成为现代伺服技术的主方向。 本文的主要内容是基于DSP芯片MC56F8323的直流无刷电机控制器的硬件设计。主要包括电流环、速度位置环和IPM(智能功率模块)驱动电路的硬件设计。
2 控制器系统设计
2.1 系统硬件框架设计
MC56F8323是FREESCALE(
[嵌入式]
钕铁硼在永磁电机行业中的应用
钕铁硼强力磁铁因其高矫顽力、高剩磁、高磁能积的优势,钕铁硼一半的产品都是被广泛应用于电机领域,下面内容主要介绍永磁电动机相关知识,希望对您有所帮助。 一、什么是永磁电动机? 永磁电动机使用永磁体来产生电动机的磁场,而无需励磁线圈或励磁电流。它效率高,结构简单。这是一种很好的节能电动机。随着高性能永磁材料的出现和控制技术的飞速发展,永磁电动机的应用将越来越广泛。 钕铁硼磁铁广泛用于永磁电动机中。 二、永磁电动机类型: 常见的永磁电动机有:永磁直流电动机,永磁交流电动机 永磁直流电动机包括:有刷直流电动机,无刷电动机,步进电动机等。 永磁交流电动机包括:同步永磁电动机,永磁伺服电动机等。 三、稀土永磁材料有什么优点? 由于稀土
[嵌入式]
基于MCS-8051单片机的片外数据存储器扩展设计研究
0 引言 随着单片机运算速度和处理能力的不断提高,其在各个领域得到更广泛的应用。然而。随着其应用领域的不断扩大及集成化的不断提高,其内部资源已不能满足实际需求,往往需要对其内部资源进行扩展。 经典的扩展方法主要是通过地址总线、数据总线即P0、P2口,以及控制线ALE等来进行数据或程序存储器的扩展,最大寻址空间可达64KB,但这种方法占用端口较多,在有些情况下不能满足需求。这里以MCS-8051系列单片机为例,介绍一种新的片外数据存储器扩展方法,仅用单片机的P0口、P1.6及P1.7共10个端口便可实现256 KB数据存储器的扩展。 1 总体设计思路 MCS-8051单片机片内部存储空间为256
[单片机]