1、一、 设计目标和性能指标设计任务完成一个基于单片机的直流电机转速控制系统设计,要求设计的转速控制系统完成以下功能:1)按键设定并显示转速,实时显示实际转速;2)按键控制电机起停、正反转;3)PWM转速闭环控制;4)PID算法控制。性能指标1.转速调节范围:1500转/分-3000转/分2.测速误差10%二、 设计方案本设计以STC12C5A16S2单片机为核心,完成转速控制的设计。硬件系统包括单片机控制模块、按键模块、传感器模块、驱动模块、显示模块;软件部分由主函数控制模块、定时中断和外部中断模块、键盘部分、PID控制转速模块、LCD初始化模块、LED指示模块等组成,软件编写由Keil C51
2、完成。设计原理是根据LCD显示原理、按键描显示原理、单片机的定时中断原理、外部中断将霍尔传感器所检测的脉冲进行计数原理。设计了一个可以控制电机的启动和停止,显示当前转速显示,设定转速,通过PID算法计算控制得道相应的PWM,然后改变PWM的值实现对电机的控制。三个独立按键中Mode键进行模式切换,UP、DN键可以对速度、PID参数进行修改。此外,为方便显示还加了数码管和LED灯做指示。在“实时速度显示”模块中,利用外部中断0对霍尔元件脉冲记数,输出送到单片机,在定时器0下对信号进行周期刷新,调用计算公式算出转速,在LCD上显示实时速度;在转速控制中通过PID算法计算控制得道相应的PWM,然后改
3、变PWM的值实现对电机的控制。其系统组成结构图如1.1所示:三、 系统硬件设计单片机的最小系统单片机是一个复杂的同步时序电路。主要包含两部分:时钟电路和复位电路。时钟电路用于产生单片机工作所需要的时钟信号。复位电路是使CPU和系统中的其他功能部件都恢复到一个确定的初始状态。单片机最小系统为转速控制的控制中心,包括一块STC12C5A16S2芯片、复位部分、晶振时间频率控制部分和电源部分。复位部分采用外部复位电路,接在单片机的REST引脚,晶振采用频率为11.0592MHZ和15pF电容,接18、19引脚。电路如图2.1所示:按键电路设计本系统采用独立键盘,实现模块切换和一些参数设置。其中MOD
4、E键进行模式选择,UP和DN键对参数进行加或者减,它们分别接P20P22。电路如图2.2所示:LED指示灯电路设计设计中利用了四个发光二极管分别接接P34、P35、P36、P37。当有低电平0来时,相应的发光二极管亮,指示相应的模式。当D1指示灯亮时,表示电机正转;当指示灯熄灭时,表示电机反转。D2、D3、D4指示灯对应于LCD的使用。电路如图2.3所示:LCD显示屏电路设计JM12864M-2汉字图形点阵液晶显示模块,可显示汉字及图形,内置8192个中文汉字(16X16点阵)、128个字符(8X16点阵)及64X256点阵显示RAM(GDRAM)。在设计中,采用的是串行数据传送。串行连接时序
5、图如图2.4所示。串行数据传送共分三个字节完成:第一字节:串口控制格式 11111ABC。A为数据传送方向控制:H表示数据从LCD到MCU,L表示数据从MCU到LCD;B为数据类型选择:H表示数据是显示数据,L表示数据是控制指令;C固定为0第二字节:(并行)8位数据的高4位格式 DDDD0000第三字节:(并行)8位数据的低4位格式 0000DDDD数码管显示电路设计数码管主要是用于数字的显示。数码管有共阴和共阳的区分。四位数码管循环电路是由1K的电阻、IN4148二极管和数码管组成,电源+5V通过560的电阻直接给数码管的7个段位供电,P0.0-P0.7对应了两个接数码管的A,B,C,D,E
6、,F,G和小数点位,P2.4,P2.5,P2.6,P2.7接位选码。数码管电路图见图3.2。电机驱动模块设计电机驱动采用三极管构成的“桥式电机驱动”,将单片机端口输出的信号放大,用于驱动电机转动。当控制端1、2同为高电平或低电平时,电机两段电平一致,电机停止转动。当控制端1为高,2为低时,电机正转,反之电机反转。电机驱动电路图如图所示。转速检测及控制模块设计转速检测通过检测在电机转盘上的磁钢对霍尔传感器产生得脉冲计数,从而算出电机的转速。霍尔传感器的原理是当磁钢靠近霍尔传感器时引起磁场变换,利用磁场对垂直加载的电流产生的偏向作用(电磁感应),使正交方向的极板产生电势差,通过放大等处理得到开关量
7、的信号变化。霍尔传感器测转速的电路图如图所示。四、 系统软件设计为了增强程序的可读性,设计时选用得分模块编程。根据系统功能的描述,主要分为以下几个模块:主函数模块,系统参数初始化模块,LCD初始化、显示模块,按键识键和数据处理模块,中断模块和PWM控制模块。主程序设计主程序的设计主要是完成各种模块初始化以及函数的调用。如系统的初始化、LCD初始化和定时器的初始化,然后根据按键判断,没有按键按下的时候,LCD显示初始设置值,当有按键按下的时候,则执行按键所对应的功能,然后进一步在LCD上显示出来,通过LED指示灯和数码管指示相应的模式。LCD显示模块设计为了节省I/O口的使用,选用串行数据传送的
8、方式。在LCD显示字程序中,要先对其初始化,进行命令、数据发送和汉字、字母显示的设置,然后根据按键的输入,在LCD上输出相应内容。LCD显示流程图如图所示。返回根据按键显示汉字或字母汉字、字母显示设置发送命令、数据LCD初始化入口口LED灯和数码管指示程序中用了一个Led灯的亮灭指示电机的正转/反转。利用一位数码管的显示指示模式的切换,这样可以直观的观察工作状态。由于该程序简单,因此直接将该段程序嵌入按键程序中。按键程序模块接通电源,判断是否有按键,在Mode键下进行模式选择,模式1为“电机正反转设置”、模式2为“转速的设置”、模式3、4、5为“手动控制转速”、模式4为“PID自动控制转速”;
9、UP和DN进行参数修改。按键扫描的流程图如3.6所示:PID计算程序微机化控制系统当中控制算法的占有十分重要部分,整个控制系统的主要功能是由控制算法来实现的。目前世界上所应用控制算法有很多种。根据偏差的比例、微积分进行的系统控制,被称作PID控制。经过无数实践证明和理论分析都表明,PID控制能够满足绝大多数的工业对象的控制要求,目前PID控制仍是应用最广泛的控制算法之一。如下图4.3所示,该图是PID系统经典原理图,是一种典型的闭环控制。在需要对系统进行调节控制时,PID控制是调节器最常用的控制方式,PID控制系统原理图如下图所示,图中可看出该控制为典型的闭环控制,系统由PID调节器、执行器和
10、控制对象组成,通过调节器的PID控制可以使被控对象达到相应控制要求。图4.3 PID控制系统原理框图外部中断外部中断主要是对霍尔传感器检测到的脉冲输入进行计数,然后送到定时器中断中进行进一步处理。它与定时器中断的工作原理都为当中断发出请求的时候,正在执行主程序的单片机CPU响应中断,中断完成后重新返回主程序中。外部中断流程图如3.5所示:返回count0计数加1入口图3.5外部中断0流程图定时器中断定时器T0为每隔一秒对采集到的脉冲处理,最后计算成每分钟的速度;同时定时器0还对PWM控制进行计算,实现PWM占空比的调节。通过定时器计算实时速度的流程图如3.3所示,通过定时器完成PWM控制调节流
11、程图如3.4所示:YN返回计数值清0,采集脉冲清0采集脉冲,计算速度是否到1s?计数值加1定时器赋初值入口入口N返回YNPWM=1计数值清0计数值100?PWM=0计数值PWM设置值?计数值加1定时器赋初值 Y图3.3定时器T0程序流程图 图3.4 PWM控制流程图五、 调试及性能分析调试步骤根据所设计的硬件电路图,焊接好电路。软件调试时采用keil51编程软件,程序的调试是分模块调试,一个一个模块调试无误后组合起来,按照以下五个步骤进行调试:(1)编译程序,并进行设置令其生成HEX文件(2)启动STC-ISP,打开程序编译生成的HEX文件(3)程序下载到单片机(4)下载成功(5)按照要求对所
12、有功能一一演示如果发现有与程序设计预想不一样的,仔细的检查程序。按照程序的流程在脑袋里模拟程序运行的情况。如果发现不了问题,就一个版块一个版块的运行,暂时屏蔽其他版块。本次调节过程中PID控制转速模块花的时间比较多。主要是初次接触PID算法,虽然在张老师指导下少走了不少弯路,但是把这个思想应用到程序却花了我们不少时间。液晶显示模块,我们放弃了前几次试验中的代码,对其进行了优化,使得代码更简单,显示也更为稳定。性能分析设计结果的显示界面有两个:一个是启动时的欢迎界面,显示设计名称及个人相关信息;另一个是工作界面,显示内容包括实时速度、设置速度、占空比、PID控制参量。这里可以通按键的选择修改各个
13、参量。其主要功能如下:1) 通过MODE键修改模式,模式1为电机正反转控制;模式2为转速设定;模式3、4、5分别为PID的设定;模式的改变通过数码管的显示来指示模式的切换2) 模式1的时候,通过UP和DN键设置电机的正反转,并由Led灯的亮灭指示灯电机转动情况3) 模式2的时候,通过UP和DN键设置电机的转动速度,修改范围为1500-30004) 模式3的时候,通过UP和DN键修改参数P,修改范围为0-95) 模式4的时候,通过UP和DN键修改参数I,修改范围为0-96) 模式5的时候,通过UP和DN键修改参数D,修改范围为0-9六、 心得体会为期两周的智能仪器仪表设计与调试实训结束了,时间虽
14、然不长,我们却受益匪浅。我们小组的任务是基于单片机的转速控制系统设计主要涉及PID算法调节、PWM控制、实现按键两种对电机转动转速的实时监测和控制。通过对电机驱动模块、键盘模块、霍尔传感器和数字PID算法等进行深入的研究,完成了硬件电路及软件的系统设计,并且利用Protel99se软件绘制出电路图纸(见附录1)。通过设定优先级的方式避免在控制过程中的交错使程序执行出错。充分利用主控芯片资源,缩减外围电路,使系统集成度高,性能更加稳定。本次设计我们从硬件原理图的绘制到元器件的焊接,从软件算法控制到程序代码的编写都是我们小组成员讨论后完成的,大家在一起相互取长补短,集思广益。对硬件的设计以及程序算法的优化都改进了不少。在设计过程中,张小云老师为我们解答了许多疑惑,比如霍尔传感器测速、PID控制算法思想等等。在前期准备过程中,为我们搜集了相关资料。假如没有张老师的悉心指导,我们设计也不会完成得如此顺利。参考文献1 程德福智能义器机械工业出版社,200992 万文略单片机原理及应用重庆:重庆大学出版社,20043 3 胡文金单片机系统实训教程重庆:重庆大学出版社,20054 林金阳基于MC51单片机的直流电机PWM调速系统长春工程学院学报(自然科学版)2009年第10卷第3期5 张洪润单片机应用技术教程北京:清华大学出版社,20043附录 1 系统硬件电路图附录 2 程序清单