基于单片机的直流电机控制系统设计毕业设计论文.docx
《基于单片机的直流电机控制系统设计毕业设计论文.docx》由会员分享,可在线阅读,更多相关《基于单片机的直流电机控制系统设计毕业设计论文.docx(53页珍藏版)》请在冰点文库上搜索。
基于单片机的直流电机控制系统设计毕业设计论文
毕业设计(论文)说明书
课题名称:
基于单片机的直流电机控制系统设计
2012年5月20日
摘要
电动机作为最主要的机电能量转换装置,其应用范围已遍及国民经济的各个领域和人们的日常生活。
无论是在工农业生产、国防、医疗卫生、交通运输和办公设备中,还是在日常生活的家用电器和消费电子产品中,都大量使用着各种各样的电动机。
电动机的调速控制一般采用模拟法,对电动机的简单控制应用比较多。
本设计实现了对电动机的简单控制,也就是指对电动机进行启动、制动和正反转控制。
本设计采用了单片机STC89C52与PC串行实现通信,由于单片机输入、输出电平是TTL电平,而PC机配置的是RS232标准串行接口,两者的电气规范不一致,因此要完成单片机与PC机的数据通信,必须对单片机输出的TTL电平进行电平转换。
采用的转换电平芯片为MAX232。
设计中采用STC89C52微处理器及其RS232通信接口、键盘、12864液晶显示器等外围电路,构成一台直流电机开环在线控制系统。
设计中采用PWM调制技术,实现对直流电机速度的调制,并通过串口实现上位机的在线控制。
系统实现了在线调速、正转、反转、加速、减速、停止等多种功能,并能实时显示、键盘设置等,具有一定的实际应用价值。
关键词:
单片机电平转换直流电机在线控制PWM调制
Abstract
Motorasthemainelectromechanicalenergyconversiondevice,itsapplicationhasbeenthroughoutallareasofthenationaleconomyandpeople'sdailylife.Bothinindustrialandagriculturalproduction,nationaldefense,medicalandhealth,transportationandofficeequipment,orinthedailylifeofhouseholdappliancesandconsumerelectronicsproducts,extensiveuseofvariousmotor.Motorspeedcontrolusingsimulationmethod,themotorcontrolapplicationmoresimple.Thedesignandimplementationofsimplecontrollingmotor,alsoreferstothemotorstarting,brakingandreversecontrol.
ThedesignintroducedAT89C51single-chipserialcommunicationwiththePCmethod,asthesingle-chipinputandoutputlevelisTTLlevel,andPC-standardconfigurationisaRS232serialinterface,boththeelectricalspecificationsareinconsistent,ThereforetocompletePC-SCManddatacommunications,theneedforsingle-chipoutputTTLleveltoleveltranslators.Usedinchip-levelconversionfortheMAX232.AppliedtothedesignofSTC89C52microprocessorandRS232communicationinterface,keyboard,12864LCDperipheralcircuit,constituteadcmotorcontrolsystemonline.
AppliedtothedesignofPWMtechnologytorealizethedcmotorspeedregulation,andthroughaserialportrealizePConlinecontrol.Theonlinespeedregulationsystem,areturning,inversion,accelerate,slowingdown,stopandotherfunctions,andcanreal-timedisplay,keyboardSettings,ithascertainpracticalapplicationvalue.
Keywords:
single-chipserialcommunicationLevelTranslatorsDcmotorOnlinecontrolPWMtechnology
1绪论
1.1直流电机概述
在现代工业中,电动机作为电能转换的传动装置被广泛应用于机械、冶金、石油化学、国防等工业部门中,随着对生产工艺、产品质量的要求不断提高和产量的增长,越来越多的生产机械要求能实现自动调速。
长期以来,自动调速电动机一直占据着调速控制的统治地位。
由于它具有良好的线性调速特性,简单的控制性能,高效率,优异的动态特性,现在仍是大多数调速控制电动机的最优选择
以前电动机大多使用由模拟电路组成的控制柜进行控制,现在单片机已经开始取代模拟电路作为电机控制器。
当前电机控制器的发展方向越来越趋于多样化和复杂化,现有的专用集成电路未必能满足苛刻的新产品开发要求,为此可考虑开发电机的新型单片机控制器,因此研究直流电机的速度控制,有着非常重要的意义。
由于变频技术的出现,交流调速一直冲击直流调速,但综观全局,尤其是我国在此领域的现状,再加上全数字直流调速系统的出现,更提高了直流调速系统的精度及可靠性,直流调速系统仍将处于十分重要地位。
对于直流调速系统转速控制的要求有稳速、调速、加速或减速三个方面,而在工业生产中对于后两个要求已能很好地实现,但工程应用中稳速指标却往往不能达到预期的效果,稳速要求即以一定的精度在所需要的转速稳定运行,在各种干扰不允许有过大的转速波动。
1.2单片机概述
随着单片机功能的飞速发展,单片机的应用领域已经渗透到了国民经济的各个领域,并影响着现代人的生活。
单片机技术的出现给现代工业测控领域带来了一次技术革命。
目前,单片机仍以其高可靠性、高性价比,在工业控制系统、智能化仪器仪表、数据采集系统和智能家电等诸多领域得到了广泛应用。
当今时代是一个新技术层出不穷的时代,在电子领域尤其是自动化智能控制领域,传统的分立元件或数字逻辑电路构成的控制系统,正以飞快的速度被单片机智能控制系统所取代。
单片机的优点包括体积小、功能强、成本低,并且应用面广,可以说智能控制与自动控制的核心就是单片机。
单片机又称单片微控制器,它不是完成某一个逻辑功能的芯片,而是把一个计算机系统集成到一个芯片上。
概括来讲:
一块芯片就是一台计算机。
它具有体积小、质量轻、价格便宜等优点,为学习、应用和开发提供了诸多便利。
同时,学习使用单片机是了解计算机原理与结构的最佳选择。
现在,单片机的应用领域非常广泛,比如实时工控、导航系统、智能仪表、家用电器、通讯设备等。
单片机一旦运用在各种产品上面,就可以说是使产品进行了升级换代,也可以把产品美其名曰:
“智能型”,如智能型洗衣机等等。
1.3脉宽调制(PWM)技术
脉冲宽度调制(PWM)是英文“PulseWidthModulation”的缩写,简称脉宽调制。
它是利用微处理器的数字输出来对模拟电路进行控制的一种非常有效的技术,广泛应用于测量,通信,功率控制与变换等许多领域。
一种模拟控制方式,根据相应载荷的变化来调制晶体管栅极或基极的偏置,来实现开关稳压电源输出晶体管或晶体管导通时间的改变,这种方式能使电源的输出电压在工作条件变化时保持恒定。
脉冲宽度调制(PWM)是一种对模拟信号电平进行数字编码的方法。
通过高分辨率计数器的使用,方波的占空比被调制用来对一个具体模拟信号的电平进行编码。
PWM信号仍然是数字的,因为在给定的任何时刻,满幅值的直流供电要么完全有(ON),要么完全无(OFF)。
电压或电流源是以一种通(ON)或断(OFF)的重复脉冲序列被加到模拟负载上去的。
通的时候即是直流供电被加到负载上的时候,断的时候即是供电被断开的时候。
只要带宽足够,任何模拟值都可以使用PWM进行编码。
多数负载(无论是电感性负载还是电容性负载)需要的调制频率高于10Hz,通常调制频率为1kHz到200kHz之间。
许多微控制器内部都包含有PWM控制器。
例如,Microchip公司的PIC16C67内含两个PWM控制器,每一个都可以选择接通时间和周期。
占空比是接通时间与周期之比;调制频率为周期的倒数。
执行PWM操作之前,这种微处理器要求在软件中完成以下工作:
1、设置提供调制方波的片上定时器/计数器的周期
2、在PWM控制寄存器中设置接通时间
3、设置PWM输出的方向,这个输出是一个通用I/O管脚
4、启动定时器
5、使能PWM控制器
目前几乎所有市售的单片机都有PWM模块功能,若没有(如早期的8051),也可以利用定时器及GPIO口来实现。
更为一般的PWM模块控制流程为(笔者使用过TI的2000系列,AVR的Mega系列,TI的LM系列):
1、使能相关的模块(PWM模块以及对应管教的GPIO模块)。
2、配置PWM模块的功能,具体有:
①:
设置PWM定时器周期,该参数决定PWM波形的频率。
②:
设置PWM定时器比较值,该参数决定PWM波形的占空比。
③:
设置死区(deadband),为避免桥臂的直通需要设置死区,一般较高档的单片机都有该功能。
④:
设置故障处理情况,一般为故障是封锁输出,防止过流损坏功率管,故障一般有比较器或ADC或GPIO检测。
⑤:
设定同步功能,该功能在多桥臂,即多PWM模块协调工作时尤为重要。
3、设置相应的中断,编写ISR,一般用于电压电流采样,计算下一个周期的占空比,更改占空比,这部分也会有PI控制的功能。
4、使能PWM波形发生。
1.4课题任务及工作内容
本题目要求设计一个单片机应用系统可以通过串行线在上位机中进行控制操作。
可以通过上位机对单片机进行控制直流电机正转、反转、停止、加速、减速等功能。
另外,为增加其实用性还增加了显示、键盘控制、按键蜂鸣等功能。
本课题要完成以下研究工作:
1、研究直流电机控制系统并仔细推敲各方面的细节,比如速度的控制等等。
2、进行系统软硬件的设计。
3、制作硬件,并对硬件进行调试以及优化。
2单片机直流电机控制系统总体设计方案
2.1设计思路
本题要求设计一个上位机直流电机控制系统。
利用键盘作为输入设备,输入电机控制信号;液晶显示器件作为显示,与用户进行人机交互;利用串行通信接口与上位机进行通信,接收上位机发送过来的控制命令。
从PC机发来的控制命令经单片机系统接收后,产生电机控制信号,并提供给电机驱动电路控制直流电机正常运转并正常显示转速。
2.2方案论证与比较
(1)主控制器的选择与比较
采用台湾宏晶科技有限公司生产的STC89C52系列的8位单片机作为本系统的主控制芯片,该处理器芯片内置有8K的Flash存储器,内置的UART全双工异步通信接口,减少外围接口电路。
具有可在线编程、使用方便、价格低廉等优点。
运算速度内满足系统的要求,性价比高。
(2)显示电路选择与比较
方案一:
采用数码管显示电路,该硬件电路简单,编程也比较简单。
视角范围大,亮度高,显示是效果好,但是只能显示简单数字字母等有限的字符,不能满足本设计要求。
故,不采用数码管显示电路。
方案二:
采用1602液晶显示,硬件电路简单,编程容易。
可以显示字母和数字,以及一下简单的图像。
能满足本设计要求,显示清晰度可以通过调节偏压端电压来改变对比度,从而实现清晰度调整。
显示效果较好,还可以滚动显示等,显示灵活。
方案三:
采用12864液晶显示,硬件电路简单,编程容易。
可以显示复杂的图案、字符、标点、英文、汉字等。
能满足本设计要求,显示清晰度可以通过调节偏压端电压来改变对比度,从而实现清晰度调整。
显示效果较好,还可以滚动显示等,显示灵活。
综上所述,数码管显示电路不能满足本设计的要求;1602显示只能显示字母和数字,要显示汉字和图像编程复杂,效果不好;12864液晶显示可以显示数字、英文、汉字、图片等能满足本设计要求。
故,采用12864液晶显示电路作为本设计的显示电路模块。
(3)键盘电路选择与比较
方案一:
独立式键盘,独立式键盘硬件电路极为简单,程序也非常简单。
容易开发,开发周期短,使用方便简单。
方案二:
矩阵式键盘,矩阵式键盘硬件电路也比较简单,编程较为复杂。
不容易开发,在按键较多的时候,与独立式键盘相比较经济,占用IO端口较少,但编程较独立式键盘难的多,由于本设计要求的键盘按键数量较少,采用独立式键盘较方便,开发难度大大降低,开发周期缩短,也比较经济。
故在本设计中采用独立式键盘。
经上述比较后采用独立式键盘作为本设计的键盘电路模块。
2.3系统组成
经过方案论证,最终确定系统的组成框图如图2.1所示。
系统由STC89C52微处理器核心模块、电源模块、独立式键盘模块、12864液晶显示模块、蜂鸣器电路模块、RS232串口通信模块、电源指示电路模块等组成。
其中,独立式键盘由微动开关连接到IO口与地线之间组成。
注意,由于P0口内部没有上拉电阻,在作为输入时,需要外接上拉电阻。
串口通信电路由MAX232电平转换芯片与9DB串口插座等构成,用于下载程序和实现与上位机通信。
蜂鸣器电路主要由蜂鸣器和三级管组成,用于实现按键声音等。
液晶显示电路主要由12864液晶显示模块及少量外围电阻等构成,主要用于实现人机界面的交互功能。
图1.1系统组成框图
3单片机直流电机控制系统硬件设计
3.1系统硬件结构
本设计硬件结构由单片机最小系统、键盘模块、12864液晶显示模块、蜂鸣器驱动模块、电源指示模块、串口通信模块、电机驱动模块等组成。
3.2系统单元电路设计
3.2.1单片机最小系统电路
单片机最小系统电路由STC89C52主控芯片、时钟振荡电路和复位电路等构成。
其中,时钟振荡电路主要由外接11.0592MHz晶振、两个30pF的起振电容和内部反相器构成。
复位电路采用简单的容阻式复位电路。
单片机最小系统电路原理图如图2.1所示。
图2.1单片机最小系统电路
3.2.2独立式键盘电路
键盘电路采用比较简单的独立式键盘便能满足设计要求,成本低廉,编程相对简单。
4个独立按键,分别与单片机P0.0-P0.3相连,由于P1口上各位内部均接有上拉电阻,故,外接按键的时候,我们不再接上拉电阻。
键盘电路如图2.2所示
图2.2独立式键盘电路
3.2.3液晶显示模块
(1)12864液晶模块概述
12864液晶显示电路主要由基于ST7920控制器的12864液晶和外部电位器等组成。
12864具有128列64行共128*64个像素点,可以显示中文、日文、数字、英文、特殊字符、图片等。
内置国标GB2312码简体中文字库(16*16),128个字符(8*16)及64*256点阵显示RAM(GDRAM)。
可以与CPU直接接口,提供两种界面来连接微处理器:
8-位并行及串行两种连接方式。
具有多种功能:
光标显示、画面移位、睡眠模式等。
(2)12864液晶显示电路原理图
液晶显示电路主要由12864液晶显示模块和外围电位器等组成。
可以通过调节电位器R2,调节12864偏压端电压,改变显示对比度,提高显示效果,改变显示清晰度。
控制口线RS、RW、EN分别连接到单片机的P0.4、P0.5、P0.6,8位数据总线与P2口相连,实现8位数据,并行传输。
12864液晶显示电路图如图2.3所示
图2.312864液晶电路原理图
3.2.4蜂鸣器电路
蜂鸣器电路主要是利用S9012(PNP)三极管驱动蜂鸣器,实现按键发声。
S9012三级管属于PNP管,发射极串接蜂鸣器线圈接至+5V,集电极直接接地,基极通过一个4.7k限流电阻接至单片机P3.3口。
当S9012基极为低电平时,三极管导通,蜂鸣器得电蜂鸣,当S9012三极管基极为高电平时,三极管截止,蜂鸣器停止蜂鸣。
其详细原理图如图2.4所示
图2.4蜂鸣器驱动电路原理图
3.2.5电源电路
电源电路包括开关电路和指示电路。
指示电路采用发光二极管进行指示,放光二极管串联上一个1K的限流电阻,正常工作时,取发光二极管上电压为3V,流过发光二极管上的电流为10mA,故R=(5-3)/10=2K。
当选择的电阻过大时,发光二极管不够亮,指示不明显;当限流电阻选择过小,发光二极管亮度过大,缩短放光二极管使用寿命。
因此,应适当选取该限流电阻。
当单片机正常供电时,电源指示灯正常发亮。
当没有供电或出电源线短路时,电源指示熄灭,从而可以监测系统是否正常供电。
电源电路原理图如图2.5所示
图2.5电源电路原理图
3.2.6串口通信电路
串口通信电路主要由美信公司生产的MAX232芯片和相应的通信指示电路构成,主要是用于程序的烧写和实现与上位机的通信。
Max232用于实现TTL电平与RS232电平的转换,只要在它的外部在接上几个简单的电容就构成了通信点路,为了方便检查、排除故障可在通信线上接上两个通信指示灯,方便检查与维修。
具体电路图如图2.6所示。
图2.6串口通信电路
3.2.7电机驱动电路
电机驱动电路主要有电机驱动芯片L298N、少量电阻电容和二极管构成。
电机驱动电路增加光耦合器件以实现电机驱动信号与控制信号的隔离,提高控制系统的抗干扰能力,但由于光耦合芯片TLP521-4昂贵,并且设计的控制要求简单,因此驱动电路中去掉了光耦合部分。
电机驱动电路原理图如图2.7所示。
图2.7电机驱动电路原理图
4单片机直流电机控制系统软件设计
4.1软件总体结构
系统软件主要由系统初始化程序模块、键盘扫描及处理模块、液晶显示程序模块、串口通信程序模块、电机调速程序模块和蜂鸣器驱动程序模块等组成。
系统初始化模块:
主要是配置系统工作环境。
主要负责的工作有初始化定时器、初始化液晶、初始化串口、初始化I/O等
键盘扫描及处理模块:
实现按键识别、消抖及处理,用于设置电机转动状态。
液晶显示模块:
实现对电机状态的实时显示以及状态设置,实现人机交互。
串口通信模块:
主要是实现与上位机进行通信,接收上位机发送过来的电机控制命令。
蜂鸣器模块:
主要用实现按键蜂鸣。
系统软件总体框图如图3.1所示
图3.1系统软件总体框图
在没有操作系统的时候,我们采用结构化程序设计思想,自顶向下,逐步求精;其系统主程序流程图如图3.2所示
图3.2系统主程序流程图
4.2系统模块程序设计
4.2.1初始化模块程序
系统初始化软件包括三大部分:
串口初始化、LCD12864液晶初始化、I/O口初始化。
主要完成的工作是设置定时器,并初始化串口。
初始化12864液晶模块、关闭蜂鸣器等。
串口初始化程序:
设置定时器1为工作方式2,配置串口波特率为9600bps,选择波特率不倍增,串行工作方式1,启动定时器1,开串行口中断,开CPU总中断。
串口初始化程序流程图如图3.3所示。
12864液晶初始化程序:
首先初始化LCD控制口,选择12864液晶输入输出为8位位流,清屏,设定输入数据后光标右移模式,开显示无光标闪烁,无反白。
最后显示正常模式下的界面。
12864液晶初始化程序流程图如图3.4所示
图3.3串口初始程序流程图图3.412864液晶初始化程序流程图
4.2.2键盘扫描模块程序
键盘扫描及处理程序,主要由按键key1、按键key2、按键key3、按键key4组成。
1、Key1为循环选择键,用于选择要设置的电机状态项目。
2、Key2为加1按键,用于设定电机的正反转、加减速和电机速度值。
3、Key3为减1按键,用于设定电机的正反转、加减速和电机速度值。
4、Key4为确定键,用于确定当前的电机状态为设定值。
键盘扫描程序模块流程图如图3.5所示。
图3.5键盘扫描程序模块流程图
4.2.3液晶显示模块程序
液晶显示程序模块包括12864液晶驱动程序模块和12864液晶显示刷新程序模块。
12864液晶驱动程序模块主要包括12864液晶的写数据、写命令程序模块。
通过控制12864液晶的控制口线就可以实现对12864液晶的基本数据操作。
液晶写数据和写命令程序流程图分别如图3.6和图3.7所示。
12864液晶显示程序模块,主要实现对输入的要发送的数据和接收到的数据的显示,以及进入设置模式时的各种界面的的刷新显示等。
图3.612864液晶写数据程序流程图图3.712864液晶写命令程序流程图
4.2.4串口通信模块程序
串口通信程序模块主要包括串口初始化程序模块、串口接收程序模块。
其中串口初始化程序模块主要是配置特定的串口通信环境及通信方式等。
选择串口为通信方式1,定时器1方式2等。
其程序流程图如前面图3.3所示。
串口接收程序模块主要由串口中断程序与串口接收子程序构成。
当产生接收中断时,首先判断是发送中断还是接收中断,若是发送中断则清除发送中断标志位,若是接收中断则先清除接收中断标志位,然后调用串口接收函数,将接收到的数据存于接收缓冲区中,并共单片机使用。
其串口接收程序流程图如图3.8所示,其中标志位已在程序中标出。
图3.8串口接收程序流程图
4.2.5电机调速模块程序
电机调速程序模块采用脉宽调制法实现速度控制。
利用定时器0固定调速信号周期,根据正反转标志,设定电机控制端口电平。
当计数值达到设定的脉宽值时则关闭电机运行,在第二个周期的调速信号到来时,又重新开启电机运转,依次的电机通断切换,从而实现电机的速度控制。
其调速程序流程图如图3.9所示。
NO
图3.9调速程序流程图
5系统测试
5.1测试准备
5.1.1硬件环境
(1)PC机、USB转串口通信线。
用于单片机C51语言的编程、编译、加载及发送电机控制命令。
(2)+5V和+12V电源、电机控制系统板、若干根杜邦线、1块12864液晶模块。
(3)DT9208A数字万用表1个、螺丝刀、镊子、斜口钳、吸焊器。
5.1.2软件环境
(1)KeiluVision4,用于C51源程序的编写、编译、链接和调试。
(2)上位机串口调试软件(串口大师)、本系统程序、相关的库和头文件。
5.1.3测试项目
(1)12864液晶是否正常显示。
(2)系统电源指示、通信指示、按键蜂鸣、按键复位等功能是否正常。
(3)上位机通过串口调试软件能否正确控制电机的正转、反转、加速、减速。
(4)实验板上的键盘能否正确控制电机的正转、反转、加速、减速。
5.2测试过程
1、利用万用表检查各线路是否存在断路、短路并修正。
2、检查单片机等各口线是否正确连接,上电之前检测一下正负电源线是否短路,确保不短路才上电。
3、利用KeiluVision2软件进行程序的编辑、编译、链接和调试。
4、利用STC-ISP软件将在keil中编译链接生成的各个xx.Hex文件下载到系统单片机的