简易直流电动机控制器设计.doc
《简易直流电动机控制器设计.doc》由会员分享,可在线阅读,更多相关《简易直流电动机控制器设计.doc(19页珍藏版)》请在沃文网上搜索。
1、一 设计目的 本设计是要利用89C52单片机PWM调速电路实现小功率直流电机的转速调节。本系统必须符合以下几点要求:(1) 在(1000-5500)转/分内对直流电机进行任意调速,最小调速级差为1转/分。(2) 电机能再所设速度下稳定运转,运转速度与设定速度之差小于20转/分。(3) 电机启动和加减80%额定负载时,其转速能迅速回到设定值,转速超调5%内。 下面,本文将从硬件和软件两方面按系统功能要求进行设计。二 方案设计2.1单片机部分器件接口电路 图1 单片机接口电路本设计采用的是STC的89C52单片机,选用STC的单片机是因为它是宽电压供电,工作电压范围为5.5V-3.4V,比起一般5
2、1系列单片机的5.5V-4.5V更能有效的避免电源抖动所带来的问题。晶振选用石英晶振,频率为20MHz,比起传统的12MHz能更快的处理速度。在第九脚RST,复位脚为,加了一个复位按键和违法电路,复位原理为:第一次上到是,+5V通过给电容充电,于是此时电容相当于短路,+5V直接加到RST上,单片机自动复位。过了极短的时间,电容充电完毕,此时电容则相当于开路,于是RST脚被电阻R113拉为低,单片机开始正常工作。当RESET键按下时,+5V通过按键加到RST脚,单片机复位,RESET键弹起之后,RST脚重新被R113拉为低,单片机开始正常工作。单片机供电方面,采用的是12V直流通过7805三端稳
3、压器稳压到5V,给单片机和显示部分供电。2.2 按键输入电路 图2 按键输入电路本设计中,按键输入比较简单,就是在按键信号输入I/O口与地线间串接一按键。在按键没有按下的情况下,I/O口悬空,所以为高;当按键按下后,地线的把I/O口的店铺拉低,单片机便可识别有键按下。2.3 PWM驱动电路 图3 PWM驱动电路首先简单介绍一下PWM工作原理:如图所示,R21为P1.1口的上拉电阻,R20为限流电阻。当P1.1口为低时,8050基极电压被拉低,此时8050截止,所以9012基极为高,9012截止,电机两端没有电压。当P1.1口为高时,8050基极电压也为高,于是8050导通,8050集电极电压为
4、低,此时9012基极也为低,9012导通,+12V加到电机两端,电机开始转动。所以,当P1.1口为高时,电机两端电压也为高;P1.1口为低时,电机两端电压也为低。于是当P1.1口产生PWM信号输出时,电机两端会产生同样的PWM波形,从而达到调节电机转速的目的。关于上拉电阻的喧嚣,上拉电阻的选取取决于两方面,一方面是否能保护单片机I/O口过流,第二方面就是能否提供给负载所需大小电流。首先分析保护I/O口方面,P1-P3口能承受的灌电流(输入电流)最大能达到6mA,所以上拉电阻的阻值必须大于5V/6mA=0.8K,故选用10K电阻,远大于0.8K,所以能有效的保护单片机I/O口;再来看看10K电阻
5、的上拉电阻能否提供所需要的电流呢?假设电机工作电流为100mA(事实上远小于),9012的放大倍数按60倍计算的话,那么9012的基极,也就是8050的集电极最少得提供1.6mA的电流才能使9012达到饱和。如果按8050能放大100倍的话,也就是说8050的基极至少得提供16uA的电流才能使8050饱和,事实上,10K的上拉电阻,加上I/O口的限流电阻,能提供(5-0.7)V/13.3K=350uA,远大于所需要的16uA,所以完全能提供足够的电流。再看看串接在9012的基极和8050的集电极间的电阻R19。它的作用是限流,假如不加这个电阻,那么当单片机口为高时,8050,,912均饱和,此
6、时可以认为12V之间对地短路(虽然有9012的BE结,会产生零点几伏的压降,但是它们没有限流的作用,还是可以认为电源之间对地短路),所以加上次电阻很有必要。图中D3二级管的作用:在这个PWM电路中,此二极管为续流二极管,作用是续流和消除反电动势。电机内部的转子是由线圈绕成的,所以可以看成是一个电感元件,在突然断电时,反电动势很大,将近12V的两倍以上,如果不加续流二极管的话,9012很可能被击穿,由于负的反电压的产生,使电机两端的直流平均电压接近0V,电机不会转动,只会不停的颤动并发出呜呜的声音,器本身也会有危险。而加了续流二极管后,反向电势通过二极管和电机重新形成回路,消除了反电动势,且能是
7、电机上电流不中断,维持正常运转。2.4 测速电路先介绍光电开关,如图,光电开关分为两个部分,一部分用来发送,另一部分负责接收。发生部分V2是一个发光二级管,而接收部分V1是一个光敏NPN三极管。当光路通畅是,V1的基极能接收到V2发出的光,于是V1的BE上就会有电流的产生,V1导通,集电极输出为低,当光路被阻隔时,V1截止,所以集电极输出为高。从图中可以看出,为配合软件编程的需要,本系统加了一个起反向作用的三极管,也就是说,V1集电极输出为高时,V3导通,于是V3的集电极输出为低;反正,V1集电极输出为低,V3集电极输出为高。这里要注意的就是几个大字阻值的选取:R25:一般发光二极管的正向压降
8、2V,驱动电流5mA左右,而电流最大不能超过20mA,所以选取510的电阻作为其限流电阻,一来保证不会过流烧坏发光管,二来也不会因电流太小而使光电开关不能正常工作。R22:此电阻串接在电源与三极管V1的集电极,它的选取之间影响到三极管是否能达到饱和状态,我们知道,因光照所产生的光电电流很小,大概只有几微安的样子,所以集电极电流不能太大,否则管子不能达到饱和。假设发光二极管正常工作需要的电流为5uA,那么三极管的放大倍数为100倍的话,集电极电流就不能超过0.5mA,所以R22大小选取为10K,此时若基极有光照时,集电极能正常拉低到地。R24:为V3的集电极电阻,调速也为单片机INT1口的上拉电
9、阻。作用为保证V3和单片机I/O口不会过流,所以选用10K就能达到要求。 图4 测速电路三 软件设计3.1 编程环境由于汇编语言程序可读性和可移植性都较差,采用汇编语言编写单片机应用程序不但周期长,而且调试和排错也比较困难。为了提高编制单片机应用程序的效率,改善程序的可读性、可移植性,采用高级语言无疑是移植更好的选择。C语言是一种同样的计算机程序设计语言,既具有一般高级语言的特点,又能直接对计算机的硬件进行操作,表达和运算能力也比较强,许多以往只能采用汇编语言来解决的问题现在都可以改用C语言解决。所以,本设计采用的是C语言编程,利用KEIL uvision4进行编译和仿真,使用专用下载板将HE
10、X文件烧录到89C52单片机中。3.2 系统基本参数及流程本设计采用的是20M晶振,12分频,所以每个指令周期为T=0.6us,中断方面,本程序一共用了3个中断源:定时器0,定时器2及外部中断1,它们的优先级为:定时器0、外部中断1为高优先级,定时器2为低优先级。另外还用了计数器1,用作计算脉冲宽度,与外部中断1一起构成测速系统。3.3 按键程序按键程序方面,主要是一个消抖动程序。消抖动程序是非常必要的,因为在平时没有按下键的时候,有可能会从电源或者其他地方突然产生一个尖峰电压,打在单片机检测按键的I/O口上,令单片机误以为有键按下了;或者是当人按下按键时候,如果手抖动,就会引起按键的接触不良
11、,从而可能在很短时间内通断多次,而导致单片机的处理错误。消抖动程序就是针对这方面来设计的,具体是:当单片机检测到某一个按键按下了,就延时100ms,在这100ms里不停的检测,如果中间检测到按键弹起了,则判为干扰,不进行处理,如果100ms之后还是按下的话,那么就可以确定此键确实是被按下了,然后就进行相应的处理。一般人按一下按键都有个200ms,所以延时100ms已经足够了。程序流程图如下: PI调节程序PI()控制斩波宽度tiame0_set库宏定义,sbit定义变量设置,函数声明系统初始化设置:中断设置,堆栈设置设置速度speed_set 是否大于6000,是否小于1500Speed_se
12、t=1500判断speed_set和speed的差值是否大于最低精度20固定速度Time0_set是否大于970或是否小于150Time0_set=970Time_set0=150测试外部中断子程序(外部中断1)PWM调速中断子程序(定时器0中断)显示中断子程序(定时器2中断)显示设定转速和实际转速3.4PWM程序因为电机调速是本次设计的最主要的任务,所以PWM程序也是程序中最重要的一环。PWM的调速原理是通过调节一个斩波周期中的脉冲占空比来调节电机功率而达到调速目的。本设计中,PWM的斩波周期为1ms,那也就是说斩波频率为1KHz,在理论上能达到1%。线性可调,也就是能以0.1%的调节精度来
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
20 积分
下载 | 加入VIP,下载更划算! |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 简易 直流电动机 控制器 设计