1、内蒙古工业大学课程设计直流电机速度控制器设计摘要设计直流电机驱动电路和编写相应的驱动程序,通过键盘的数字键来控制电流电机的速度,0 停止,1 1/10转速,2 2/10转速9 最高速(D/A输出满量程),键号每加1,D/A输出增加0.5V。基于AT89C52单片机的直流电机速度控制系统的设计特点,介绍了在Proteus仿真软件中,对直流电机进行速度控制的相关算法及软、硬件实现。软件设计采用C语言编程,硬件设计DAC方式驱动电动机。另外还可以通过键盘输入改变直流电机速度值。关键词:直流电机;控制速度;AT89C52;DAC;AbstractDesign of DC motor drive cir
2、cuit and the preparation of the corresponding driver, through the keyboard keys to control the current to the motor speed, 0 stops, 1 1/10 speed, 2 speed 2/10 . . 9 of the most high speed ( D/A output full-scale ), each with 1 keys, D/A output increased by 0.5V. Based on SCM AT89C52 DC motor speed c
3、ontrol system design, introduced in the Proteus simulation software, the speed of the DC motor control algorithms and soft, hardware implementation. Software design using C language programming, hardware design of DAC driving motor. Also can be input through the keyboard to change the DC motor speed
4、 value.Key words: DC motor; speed control; AT89C52; DAC;目录目录1.1 设计目的和意义11.2 设计任务与要求12 系统设计12.1 总体方案设计12.2 芯片选型与具体电路设计22.2.1 单片机的选型22.2.2 振荡电路的设计32.2.3 电源和复位电路的设计32.2.5按键电路的设计72.3 系统总体电路82.4 系统所用元器件93. 软件系统设计93.1 软件系统总体设计方案93.2 软件系统流程图104 系统调试135. 总结135.1 本系统存在的问题及改进措施13附录:直流电机速度控制器的源程序清单14插图16参考文献20
5、1 设计任务1.1 设计目的和意义 直流电机具有良好的起动、制动性能,宜于在大范围内平滑调速,在许多需要调速或快速正反向的电力拖动系统中得到了广泛的应用。近年来,交流调速系统发展很快,然而直流拖动系统无论是在理论上还是在实践上都比较成熟,并且从反馈闭环控制的角度来看,它又是交流拖动控制系统的基础,所以直流调速系统在生活中有着举足轻重的作用。虽然随着电力技术的发展,特别是在大功率电力电子器件问世以后,直流电机拖动将有逐步被交流电机拖动所取代的趋势,但在中、小功率场合,常采用永磁直流电动机。早期的直流电动机的控制均以模拟电路为基础,采用运算放大器、非线性集成电路以及少量的数字电路组成,控制的硬件部
6、分非常复杂,功能单一,而且系统非常不灵活,调试困难。随着单片机技术的不断进步,数字量代替模拟量使得许多控制功能及算法可以采用软件技术来完成,为直流电动机的速度控制提供了更大的灵活性,并使系统能够达到更高的稳定性能,同时还具有软特性好,过载能力强,调速稳定等优势。因此,本课题的研究具有很好的实际意义。1.2 设计任务与要求本次课程设计利用D/A转换器和按键设计一个直流电动机转速控制器。按键定义如下:0 键表示停止,1 键表示1/10转速, 2键表示2/10转速9键表示最高速(D/A输出满量程),键号每加1,D/A输出增加0.5V。2 系统设计2.1 总体方案设计根据系统的要求,确定系统的总体方案
7、如图1所示。其中单片机作为整个系统的核心,读取按键的状态量,经过数据处理后,输出数字量至DAC转换模块,从而控制直流电机的电压。 按键单片机DAC直流电机 图1 系统总体设计方案2.2 芯片选型与具体电路设计2.2.1 单片机的选型本设计采用的单片机是AT89C52,其部分原理图如图2所示。 图2 AT89C52芯片外形结构和引脚分布AT89C52提供以下功能特性:1、兼容MCS51指令系统 2、8k可反复擦写(大于1000次)Flash ROM; 3、32个双向I/O口; 4、256x8bit内部RAM; 5、3个16位可编程定时/计数器中断; 6、时钟频率0-24MHz; 7、2个串行中断
8、,可编程UART串行通道; 8、2个外部中断源,共8个中断源; 9、2个读写中断口线,3级加密位; 10、低功耗空闲和掉电模式,软件设置睡眠和唤醒功能; 11、有PDIP、PQFP、TQFP及PLCC等几种封装形式,以适应不同产品的需求。2.2.2 振荡电路的设计 该电路主要有电容C2、C3和12MHz晶振X1组成。其组成原理图如图3所示,图中XTAL1为芯片内部振荡电路的输入端,XTAL2为芯片内部振荡电路的输出端。 图3 振荡电路 2.2.3 电源和复位电路的设计 单片机通常采用的复位方式有上电复位和按钮复位两种。本次设计用到的复位方式是按钮电平复位。其原理图如图4所示。当按下按钮SW时,
9、电容对R4迅速放电,RESET端变为高电平,RESET松开后,电容通过电阻R4进行充电,RESET端恢复低电平。 图4 复位电路 2.2.4 ADC的选型与单片机接口电路的设计 本设计中采用的数模转换器为DAC0832。DAC0832 是由美国国家半导体公司研制的 8 位双缓冲器D/A转换器。芯片内带有资料锁存器,可与数据总线直接相连。电路有极好的温度跟随性,使用了COMS电流开关和控制逻辑而获得低功耗、低输出的泄漏电流误差。芯片采用R-2RT型电阻网络,对参考电流进行分流完成D/A转换。转换结果以一组差动电流IOUT1和IOUT2输出。 2.2.4.1 DAC0832 主要性能参数:分辨率8
10、位;转换时间1s;参考电压10V;单电源+5V+15v;功耗 20mW。2.2.4.2 DAC0832 的结构 DAC0832 的内部结构如图5所示。DAC0832 中有两级锁存器,第一级锁存器称为输入寄存器,它的锁存信号为ILE;第二级锁存器称为DAC寄存器,它的锁存信号为传输控制信号 XFER 。因为有两级锁存器,DAC0832可以工作在双缓冲器方式,即在输出模拟信号的同时采集下一个数字量,这样能有效地提高转换速度。此外,两级锁存器还可以在多个D/A转换器同时工作时,利用第二级锁存信号来实现多个转换器同步输出。图5中ILE为高电平、CS和WR1为低电平时,ILE为高电平,输入寄存器的输出跟
11、随输入而变化;此后,当WR1由低变高时,ILE为低电平,资料被锁存到输入寄存器中,这时的输入寄存器的输出端不再跟随输入资料的变化而变化。对第二级锁存器来说,XFER和WR2同时为低电平时,ILE为高电平,DAC寄存器的输出跟随其输入而变化;此后,当WR2由低变高时,ILE变为低电平,将输入寄存器的资料锁存到DAC寄存器中。 图5 DAC0832的逻辑框图和引脚排列 2.2.4.3 DAC0832的引脚特性 DAC0832是20引脚的双列直插式芯片。各引脚的特性如下: CS : 片选信号,和允许锁存信号ILE组合来决定WR1是否起作用。ILE: 允许锁存信号。 WR1: 写信号1,作为第一级锁存
12、信号,将输入资料锁存到输入寄存器(此时,WR1必须和 CS 、ILE同时有效)。 WR2: 写信号2,将锁存在输入寄存器中的资料送到DAC寄存器中进行锁存此时,传输控制信号XFER必须有效)。 XFER: 传输控制信号,用来控制WR2。 DI7DI0:8 位数据输入端。 IOUT1: 模拟电流输出端1。当DAC寄存器中全为1时,输出电流最大,当DAC寄存器中全为0时,输出电流为0。 IOUT2: 模拟电流输出端2。IOUT1 +IOUT2 =常数。 RFB: 反馈电阻引出端。DAC0832内部已经有反馈电阻,所以,RFB端可以直接接到外部运算放大器的输出端。相当于将反馈电阻接在运算放大器的输入
13、端和输出端之间。 VREF: 参考电压输入端,可接电压范围为10V。外部标准电压通过VREF与T型电阻网络相连。 VCC: 芯片供电电压端。范围为+5V+15V,最佳工作状态是+15V。 AGND: 模拟地,即模拟电路接地端。 DGND: 数字地,即数字电路接地端。 2.2.4.4 DAC0832 的工作方式 DAC0832有3种工作方式: 单缓冲方式:单缓冲方式是控制输入寄存器和 DAC寄存器同时接收资料,或者只用输入寄存器而把DAC寄存器接成直通方式。此方式适用只有一路模拟量输出或几路模拟量异步输出的情形。 双缓冲方式:双缓冲方式是先使输入寄存器接收资料,再控制输入寄存器的输出资料到DAC
14、寄存器,即分两次锁存输入资料。此方式适用于多个D/A转换同步输出的情节。 直通方式: 直通方式是资料不经两级锁存器锁存,即WR1,WR2,XFER,CS 均接地,ILE接高电平。此方式适用于连续反馈控制线路,不过在使用时,必须通过另加I/O接口与CPU连接,以匹配CPU与D/A转换。 DAC0832及其外部电路如图6所示。本设计中选用的是单缓冲型方式,即将P2.6与CS连接。当P2.6=0时,输入寄存器工作,其端口地址为0BFFFH。 图6 DAC0832及其外部电路图2.2.5 按键电路的设计 原理图如图7所示。 图7 按键电路原理图2.2.6 直流电机部分 原理图如图8所示。 图8 直流电
15、机及其驱动电路2.3 系统总体电路系统总体电路图如图9所示。 图9 系统总体电路图 2.4 系统所用元器件 本系统所用的元器件清单如表1所示。表1 本系统所用的元器件元器件名称数量电阻1k1电阻7.5k1电阻10k1电阻15k2电容10uF1电容10pF2单片机AT89C521数模转换器DAC08321运算放大器2直流电机1按键开关11晶振12MHz1电源VCC导线若干3. 软件系统设计3.1 软件系统总体设计方案 根据系统要求,软件系统总体设计方案图如图10所示。系统初始化系统主程序键盘扫描程序DAC数字输出程序 图10 软件系统总体设计方案图3.2 软件系统流程图 根据系统要求,软件系统流
16、程图如图11所示。 图11 软件系统流程图直流电机速度控制是本次设计的最主要任务,在这次设计中需要DAC0832输出10个不同的模拟电压值,即DAC0832输入的数字量是10个不同值。这些值通个开关来控制,即每一个开关确定P0口输出的一个值。具体程序如下:while(1)if(K0=0) DAC0832=0;/对应输出的电压为0if(K1=0) DAC0832=25;if(K2=0) DAC0832=51;if(K3=0) DAC0832=77;if(K4=0) DAC0832=102;if(K5=0) DAC0832=128;if(K6=0) DAC0832=154;if(K7=0) DAC
17、0832=179;if(K8=0) DAC0832=205;if(K9=0) DAC0832=255; /对应输出电压为5Delayms(20);4 系统调试当按下K0K9键后,得到的不同电压输出值如表2所示。表2 电压输出值按键序号理想电压值实际电压值K00.00V0.00VK10.50V0.50VK21.00V 1.00VK31.50V1.51VK42.00V2.02VK52.50V2.49VK63.00V2.99VK73.50V3.50VK84.00V3.97VK95.00V4.95V由表2可知,本设计已经基本上达到了本次课程设计的要求,即每一个按键对应一个电压输出值。5. 总结5.1
18、本系统存在的问题及改进措施在直流电机速度控制器的设计当中,主要涉及到2个问题:1、DA转换器输出的电压完全达不到所给的要求,这是因为所选用的DA转换芯片DAC0832精度有限所致。DAC0832是一个8位的转换器,根据输出模拟量与被转换的数字量D的关系可知,肯定会存在误差。如要减少误差,只有提高DA转换精度。 2、一开始本设计采用的DA转换器输出方式为双极性输出,没有键按下的时候,相当于输出的数字量为0,根据输出模拟量与被转换的数字量D的关系可知,此时直流电机两端的输出电压为-5V。后来在老师的提醒下改为单极性输出,在没有键按下的时候直流电机两端的输出电压变为0V,从而解决了这个问题。附录:直
19、流电机速度控制器的源程序清单#include #include #define DAC0832 XBYTE0xbfff /定义DAC0832端口地址 #define uchar unsigned char#define uint unsigned intsbit K0=P30;sbit K1=P31;sbit K2=P32;sbit K3=P33;sbit K4=P34;sbit K5=P35;sbit K6=P37;sbit K7=P17;sbit K8=P16;sbit K9=P15;void Delayms(uint ms) /延时uchar t;while(ms-)for(t=0;t1
20、20;t+);void main()while(1)if(K0=0) DAC0832=0;/对应输出的电压为0if(K1=0) DAC0832=25;if(K2=0) DAC0832=51;if(K3=0) DAC0832=77;if(K4=0) DAC0832=102;if(K5=0) DAC0832=128;if(K6=0) DAC0832=154;if(K7=0) DAC0832=179;if(K8=0) DAC0832=205;if(K9=0) DAC0832=255; /对应输出电压为5Delayms(20);插图系统总体设计方案图 按键单片机DAC直流电机单片机是AT89C52,其部分原理图如图2振荡电路复位电路DAC0382逻辑图和引脚排列DAC0382及其外部电路图按键电路原理图直流电机及其驱动电路系统总体电路图软件系统总体设计方案图系统初始化系统主程序键盘扫描程序DAC数字输出程序参考文献作者:蔡美琴、张为民、何金儿、毛敏、陶正苏、毛义梅书名:MCS-51系列单片机系统及其应用第二版出版地:高等教育出版社出版年:2011年12月作者:杨国林、玉柱书名:C语言程序设计出版地:内蒙古工业大学出版社出版年:2009年8月作者:王化祥、张淑英书名:传感器原理及应用出版地:天津大学出版社出版年:2007年2月百度文库20