直流电机PI转速控制(基于STC89C52RC)
智能小车文献综述

智能小车文献综述基于单片机的智能小车文献综述1.国外实务界和学术界研究现状机器人自其诞生以来,作为新生科技的代表就不断应用到各个行业,诸如机械、电子、交通、宇航、通信、军事等领域。
尤其是近年来机器人的智能水平不断提高,并开始走进人们的生活。
在人们在不断探索、改造、认识自然的过程中,也不断的尝试着制造机器人以替代人类,比如IBM研制的蓝巨人、现在家庭生活中常用的机器人吸尘器、机器人擦窗机等等。
机器人属于自动化运转的机器,但是其具备了一些与人或生物相似的智能能力,如感知能力、规划能力、动作能力和协同能力,具有高度灵活性。
在研究和开发未知及不确定环境下作业的机器人的过程中,人们逐步认识到机器人技术的本质是感知、决策、行动和交互技术的结合。
随着人们对机器人技术智能化本质认识的加深,机器人技术开始源源不断地向人类活动的各个领域渗透。
结合这些领域的应用特点,人们发展了各式各样的具有感知、决策、行动和交互能力的特种机器人和各种智能机器,如移动机器人、微机器人、水下机器人、医疗机器人、军用机器人、空中空间机器人、娱乐机器人等,智能小车则可作为机器人的代表[1]。
智能小车,也称轮式机器人,是移动机器人中的一种。
集合了传感器技术,和自动控制技术。
智能小车就是通过传感采集信号,将采集到的信号进行整理,传输给单片机,通过单片机编程控制小车做出智能反应。
智能车辆的研究始于20世纪50年代初,美国BarrettEleetronies 公司开发出的世界上第一台自动引导车辆系统(Automated Gulded VehicleSystem,Aovs)。
1974年,瑞典的VolvoKalmar轿车装配工厂与sehiinder-Digitron公司合作研制出了可装载轿车车体的AGVS,并由多台该种AGVS组成了汽车装配线,从而取消了传统应用的拖车及叉车等运输工具。
因其采用的AGVS经济效益明显,许多纷纷效仿并逐步使AGVS成为装配作业中流行的运输手段。
基于STC89C52单片机最小系统的设计

基于STC89C52单⽚机最⼩系统的设计基于STC89C52单⽚机最⼩系统的设计1 设计内容及要求设计题⽬:基于STC89C52单⽚机最⼩系统的设计及制作。
设计要求:输⼊信号为传感器、电压、电流、开关等形式,单⽚机型号可以⾃⼰选择(51,128,430等),输出控制信号为模拟电压或者数字信号,控制对象可以是电机(直流电机,步进电机)、开关、显⽰器等。
(注:可以采⽤单⽚机、传感器电路模块以及集成电路芯⽚制作。
)使⽤器材:感光板及常⽤PCB制版器材、常⽤电⼦装配⼯具、万⽤表、⽰波器及电⼦元器件(详见附录)。
2 STC89C52单⽚机2.1 STC89C52单⽚机简介单⽚微型计算机简称单⽚机,是典型的嵌⼊式微控制器(Microcontroller Unit),常⽤英⽂字母的缩写MCU表⽰单⽚机,它最早是被⽤在⼯业控制领域。
单⽚机由芯⽚内仅有CPU的专⽤处理器发展⽽来。
最早的设计理念是通过将⼤量外围设备和CPU集成在⼀个芯⽚中,使计算机系统更⼩,更容易集成进复杂的⽽对体积要求严格的控制设备当中。
⽤专业语⾔讲,单⽚机就是在⼀块硅⽚上集成了微处理器、存储器及各种输⼊/输出接⼝的芯⽚。
2.2 单⽚机的特点(1)⾼集成度,体积⼩,⾼可靠性单⽚机将各功能部件集成在⼀块晶体芯⽚上,集成度很⾼,体积⾃然是最⼩的。
芯⽚本⾝是按⼯业测控环境要求设计的,内部布线很短,其抗⼯业噪声性能优于⼀般通⽤的CPU。
单⽚机程序指令,常数及表格等固体化在ROM中不易破坏,许多信号通道均在⼀个芯⽚内,故可靠性⾼。
(2)控制功能强为了满⾜对控制对象的要求,单⽚机的指令系统均有极丰富的条件:分⽀转移能⼒、I/O⼝的逻辑操作机位处理能⼒,⾮常适⽤于专门的控制功能。
(3)低电压,低功耗,便于⽣产携带为了便于⼴泛使⽤于便携式系统,许多单⽚机内的⼯作电压仅为 1.8V~3.6V,⼯作电流仅为数百微安。
(4)易扩展⽚内具有计算机正常运⾏所需的部件。
芯⽚外部有许多供扩展⽤的三总线及并⾏、串⾏输⼊/输出管脚,很容易构成各种规模的计算机应⽤系统。
基于STC89C52RC单片机的智能小车设计

基于S T C 8 9 C 5 2 R C 单片机的智能小车设计
薛鹏 安哲 宋鹏飞 东北 大学信息科学与工程学院
综上, 选择 方案 三, 使用RP 5 底盘履带式 电动小 车。
【 摘 要1系统采用两片 S T C 8 9 C 5 2 P . C 单片 机为 核心控制器, 结合 红外收
一
系 统方 案
1 . 1功能与要求
1 . 1 . 1功 能
够完 成对本题 目 要求较简单 的控 制。 5 1 单片机 控制简单 , 下载使用方便。 其处理能 力能够满足 本题 目的 要求 , 故采用方案 器模块 的选择 比较 方案 一: 使用红外发射和接 收管制作红 外收发电路, 红外发射管发 当发出的红外线 照射 到白色的平面后反射, 若红 外接收管 能 起动 , 先后通 过起 点标志 线 , 在行车道 同向而行, 实现 两车交 替超车领 出红 外线 , 跑功能 。 跑 道如 图1 - 1 。 接收到反射 回的光线 则检测 出白线继而输出低电平, 若接收不到发射 管 1 . 1 . 2 设 计 要 求 发出的光线 则检测 出黑线 继而输出高电平。 输出的高低 电平通 过电压比 从而进行控制 。 这样 自己制作 组 ( 1 ) 甲车和 乙车分 别从起 点标 志 线开始 , 在行车 道各正 常行驶一 较器可以得到单片 机可以识别的信 号,
1 . 2 系统分模 块比
较与论证 本 系 统 主 要 由车 体、 控制器、 电机 驱动、
为使 红 外收发管 感应黑色胶 布线保证 灵敏 从而控制 小车 , 使用 方
案二 的TC RT5 O 0 O 红外收发模块 。
1 . 2 . 4 电机 驱动模块 的选择 比较 方案一 : 采用专用芯片L 2 9 8 N 作为 电机 驱动芯片。 L 2 9 8 N 是 一个具 它相 应频率 高, 一片I 2 9 8 N 可 以分别 红 外 收 发传 感 器、 无 线 有高 电压大 电流 的全桥驱动芯片, 收 发 模 块 、测 距 模 块 控制两个直流电机 , 而且还带有 控制使 能端。 用该芯片作为电机驱动 , 组成, 现做 比 较分 析 如 操作方便, 稳 定性 好, 性能优 良。 方案二 : 对于直 流电机用分立 元件构成驱动电路。 由分立 元件构成
基于光电传感器的直流电机转速测量系统设计-课设报告

北京信息科技大学测控综合实践课程设计报告题目:基于光电传感器的直流电机转速测量系统设计学院:仪器科学与光电工程学院专业:测控技术与仪器学生姓名:摘要摘要基于单片机的转速测量方法较多,本次设计主要针对于光电传感器测量直流电机转速的原理进行简单介绍,并说明它是如何对电机转速进行测量的。
通过实验得到结果并进行了数据分析。
本次设计应用了STC89C52RC单片机,采用光电传感器测量电机转速的方法,其中硬件系统包括脉冲信号的产生模块、脉冲信号的处理模块和转速的显示模块三个模块,采用C语言编程,结果表明该方法具有简单、精度高、稳定性好的优点。
关键词:直流电机;单片机;PWM调节;光电传感器Abstract目录摘要 (I)第一章概述 (1)1.1 课设目标 (1)1.2 内容 (1)第二章系统设计原理 (2)2.1 STC89C52单片机介绍 (2)2.2 STC89C52定时计数器 (4)2.3 STC89C52中断控制 (6)2.4 光电传感器 (6)2.5 数码管介绍 (7)第三章硬件系统设计 (10)3.1测速信号采集及其处理 (10)3.2 单片机处理电路设计 (11)3.3 显示电路 (12)3.4 PWM驱动电路 (13)第四章软件设计 (14)4.1语言选用 (14)4.2程序设计流程图 (14)4.3原程序代码 (15)第五章数据分析 (19)总结 (20)附件 (21)参考文献 (23)第一章概述在工程实践中,经常会遇到各种需要测量转速的场合,例如在发动机、电动机、卷扬机、机床主轴等旋转设备的试验、运转和控制中,常需要分时或连续测量和显示其转速及瞬时转速。
目前国内外测量电机转速的方法有很多,按照不同的理论方法,先后产生过模拟测速法(如离心式转速表、用电机转矩或者电机电枢电动势计算所得)、同步测速法(如机械式或闪光式频闪测速仪)以及计数测速法。
计数测速法又可分为机械式定时计数法和电子式定时计数法。
基于51单片机的直流电机转速PI控制

… …
图 xx 电路原理图
上图中 LED 数码管显示中的 74LS164 芯片的引脚及功能如下所述:
芯片引脚功能对照表
符号 SA、SB Q0~Q7 CP(CLK) VCC GND /MR(/CLR)
功能 串行数据输入端 并行数据输出端 时钟输入端(上升沿有效) 电源正(5V) 接地 清零端(低电平有效)
直流电机 PI 转速控制—基于 51 单片机
1.项目系统组成
本项目由 STC89C52RC 单片机最小系统,12MHZ 晶振。直流电机驱动电路、直流电机(5V)、光电测 速电路以及数码管显示电路组成。详细器件见下文电路图。
2.直流电机转速控制电路原理
直流调速的方法有多种,本文是基于 PWM(脉冲宽度调制)技术,改变直流电机等效电枢电压,以此 在一定范围实现直流电机的调速。
void timer1() interrupt 3 {
TR1=0; TH1=pwmh; TL1=pwml; PWM1=0;
//T1 中断响应函数
//关闭定时器 T1 //T1 重置初值 //T1 重置初值,改变 PWM 占空比 //输出低电平
}
void PID_pwm()
{
unsigned int speed=0,pwm=0,pwmhh=0,pwmll=0; speed=10*pulse; //脉冲数换算为转速(转/分)speed=60*pulse*1000/(12*50*10)
综上所述,要想电机正转,则需要 PWM1=1,同时 PWM2=0;要想电机反转,则需要 PWM2=1,同时 PWM1=0;要想电机停止,则需要 PWM1=1,同时 PWM2=1,或者 PWM1=0,同时 PWM2=0。
STC89C52RC步进电机控制程序

while(x--);
}
void main()
{
unsigned int i;
while(1)
{
if(k1==0)
{
delay_ms(100);
if(k1==0)//按下不动,正转
{
for(i=0;i<8;i++)
{
set_IO(ZZ[i]);
delay_ms(200);
}
}
}
if(k2==0)
{
unsigned char code FZ[]= {0x06, 0x07, 0x03, 0x0B, 0x09, 0x0D, 0x0C, 0x0E};//反转
//定义步进电机四相接口
sbit D1=P1^0;
sbit D2=P1^1;
sbit D3=P1^2;
sbit D4=P1^3;
//定义按键
sbit k1=P3^2;
sbit k2=P3^3;
//将步进电机四个口设置为一组I/O,只占用四个I/O口
void set_IO(unsigned char n)
{
D1 = n & 1;
D2 = n >> 1 & 1;
D3 = n >> 2 & 1;
D4 = n >> 3 & 1;
}
void delay_ms(unsigned int x)//延时毫秒级
stc89c52rc步进电机控制程序plc控制步进电机程序步进电机的控制程序pwm控制步进电机程序步进电机控制器单片机控制步进电机步进电机控制步进电机驱动程序plc控制步进电机步进电机的控制方法
四相五线步进电机控制程序。
一种无刷直流电机驱动器的设计与实现

功
直流输入
率
电
路
稳压电路
控
制
电
按键控制
路
三相逆变电路 驱动电路
保护电路
BLDC
位置 信号
单片机
LCD1602显示
串口通信接口
图 1 无刷直流电机驱动器拓扑结构 Fig.1 Brushless DC motor driver topology
2 无刷直流电机闭环控制策略
无刷直流电机功率电路高频开关过程会产生 高频干扰,微分环节会加剧对系统影响,因此采用 PI 调节器实现对无刷电机的速度闭环控制,其控制 结构框图如图 2 所示。
结束
图 6 定时器控制 PI 中断流程 Fig.6 Timer controlling PI interrupt flow chart
4.3 串口中断程序 驱动器支持串口指令控制方式,串口接口用来
刷直 流 电 机 控 制 系 统 的 功 率 逆 变 电 路 、驱 动 电 路 及 控 制 电 路 进 行 了 设 计 ;还 对HALL转 速
获 取 程 序 、定 时 器PI中 断 程 序 及 串 口 中 断 程 序 工 作 流 程 进 行 了 介 绍 ;最 后 ,通 过 绘 制 原 理 图
和制作印制电路板,搭建了无刷直流电机驱动器样机,通过试验测试,该驱动器能够实现
+24 V
+12 V
D1
R19
10 Ω R27
U2
P2.5
SWM1 SD
1 2 3 4
VCC IN SD COM
VB HO VS LO
8 7 6 5
+ C4 1 μF
R31
10 k
IR2104
10 Ω R35 10 k
STC89C52单片机控制直流电机设计

本人呈交的毕业论文,是在导师的指导下,独立进行研究工作所取得的成果,所有数据、图片资料真实可靠。尽我所知,除文中已经注明引用的内容外,本毕业论文的研究成果不包含他人享有著作权的内容。对本论文所涉及的研究工作做出贡献的其他个人和集体,均已在文中以明确的方式标明。本毕业论文的知识产权归属于培养单位。
3主控制模块的设计
3.1 89C52
89C52是一种带8K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。89C2051是一种带2K字节闪烁可编程可擦除只读存储器的单片机。单片机的可擦除只读存储器可以反复擦除100次。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的89C52是一种高效微控制器,89C2051是它的一种精简版本。89C单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。
图2.1 7805管脚图
2.2
整个电源供电模块由一片7805和4个电容构成。这是一个输出正5V直流电压的稳压电源电路。IC采用集成稳压器7805,C1、C2为输入端滤波电容,C3、C4为输出端滤波电容。如图2.2所示,7805的1脚接正9V的输入,2脚接地,3脚为输出。在1脚和2脚间接两个滤波电容。3脚和2脚间也接两个滤波电容。
针对直流电机运行环境恶劣、干扰严重的特点,从系统的硬件设计、软件设计等多方面进行抗干扰的综合考虑,并利用多种软件和硬件技术来提高和改善系统的抗干扰能力,有效地提高了系统的可靠性和实用性。运行结果表明,系统实现了电机的高精度多速度控制,达到了性能指标要求。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
{
SBUF=weima[na[i]];//静态显示,依次发送
while(TI==0);//未发送完,即等待
TI=0;//标记位置0
}
}
void timer0() interrupt 1//T0中断响应函数
{
TR0=0;//关闭定时器T0
PWM1=1;//高电平
TH0=0x15;//T0初值,60ms
unsigned int err=0,err_l=0;//全局变量,定义err表示err[k],err_1表示err[k-1]
unsigned int pwmh=0xd8;//全局变量,TH1初值
unsigned int pwml=0xf0;//全局变量,TL1初值
unsigned char weima[10]={0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6};//LED数
na[1]=(pul%100000)/10000;//LED数码管第5位
na[2]=(pul%10000)/1000;//LED数码管第4位
na[3]= (pul%1000)/100;//LED数码管第3位
na[4]=(pul%100)/10;//LED数码管第2位
na[5]= pul%10;//LED数码管第1位
3.2流程图
图xx程序流程图
STC89C52RC(PDIP-40)单片机没有PWM输出口,所以需要用IO口模拟产生PWM信号,而且要求PWM信号的占空比可调,因此需要对单片机内部的T0、T1定时相关寄存器进行设置,PWM频率(1000/60HZ)由T0设置,改变PWM占空比由改变T1设置实现,即T1定时器的初值TH1和TL1两个寄存器的初值设定。电机的转速由光电传感器来采集,选用单片机的外部中断INT1口统计光电码盘的脉冲个数(pulse),因此需要对单片机的INT1相关寄存器进行设置。转速显示采用LED数码管,利用单片机的串口方式0进行静态显示,故需要对串口的相关寄存器进行设置。基于控制框图和以上说明,流程图绘制如下。图中PWM1表示单片机P1^6口,PWM1表示单片机P1^7口(可参考上文电路原理图部分)。
3.3程序
#include<reg51.h>//调用库文件
#define Kp 20//设置比例系数20
#define Ki 10//设置积分系数10
#define tarint pulse=0;//全局变量,统计光电码盘个数
unsigned char count=0;//全局变量,统计T0中断次数
2.1直流电机转速控制电路原理图
3.流程图及程序
流程图可以将编程思路更清晰的表达出来,下面将先将整个项目的控制框图绘制出来,然后根据框图将流程图绘制出来,最后在根据流程图将单片机C程序编辑出来。
3.1直流电机转速控制框图
直流电机转速控制框图如下图所示,其中目标值为想要设定的电机的转速(如本项目设定的1500转/分),测量值表示由光电传感器测量的电机转速(单位:转/分)。本框图是基于增量型的PI控制方法。图中err[k]=测量值-目标值,表示第k个时刻(本项目时间间隔60ms)测量值与目标值的差值,err[k-1]表示第k个测速时刻的前一时刻的差值。Kp表示比例放大系数,Ki表示积分系数。更新PWM是指更新PWM的占空比,PWM的频率(本项目16.7Hz)保持不变。更新公式为:
//码管位码,共阴极逆序
unsigned char na[6];//6个数码管显示数组
void initimer();//T0、T1、INT1初始化
void inituart();//串口方式0初始化
void display(unsigned int pul);//显示函数
void PID_pwm();//PI控制函数
TL0=0xa0;//T0初值,60ms
count=count+1;//统计T0中断次数
PID_pwm();//调用PID的函数
pulse=0;//脉冲数清0
TR0=1;//开启定时器T0
TR1=1;//开启定时器T1
}
void int1() interrupt 2//INT1中断响应函数
sbit PWM1=P1^6;//PWM1口
sbit PWM2=P1^7;//PWM2口
void main()
{
initimer();//T0、T1、INT1初始化
inituart();//串口方式0初始化
PWM1=1;//PWM1口
PWM2=0;//PWM2口
TR0=1;//T0开启
TR1=1;//T1开启
ET0=1;//开T0中断
ET1=1;//开T1中断
IT1=1;//INT1中断边沿触发
}
void inituart()
{
SCON=0x00;//方式0
ES=0;//关串口中断
}
void display(unsigned int pul)
{
unsigned char i;
na[0]=pul/100000;//LED数码管第6位
while(1)
{
;//等待中断
}
}
void initimer()
{
TMOD=0x11;//T0、T1定时方式1
TH1=pwmh;//T1初值
TL1=pwml;//T1初值,10ms
TH0=0x15;//T0初值
TL0=0xa0;//T0初值,60ms
EA=1;//开总中断
EX1=1;//开INT1中断
直流电机PI转速控制—基于51单片机
1.项目系统组成
本项目由STC89C52RC单片机最小系统,12MHZ晶振。直流电机驱动电路、直流电机(5V)、光电测速电路以及数码管显示电路组成。详细器件见下文电路图。
2.直流电机转速控制电路原理
直流调速的方法有多种,本文是基于PWM(脉冲宽度调制)技术,改变直流电机等效电枢电压,以此在一定范围实现直流电机的调速。
PWM[k]=PWM[k-1]+ ΔPWM,k=1,2,3…。
式中,PWM[k]表示第k个时刻的PWM占空比,PWM[k-1]表示第k个时刻的前一时刻PWM占空比,且选定PWM[0]=10%,本项目时间间隔60ms。ΔPWM=Kp(err[k]-err[k-1])+Ki*err[k]。
图xx直流电机转速控制框图