1、摘要:随着时代的发展,数字电子技术已经普及到我们生活,工作,科研,各个领域,此文将介绍一种直流电机,详细阐述了用单片机输出口所给占空比的不同实现电机的调速的设计方法;着重讨论L298用于电机驱动时特有的优势。直流电机调速具有相当的实际意义。依据其调速的基本理论,本电路由模拟电源、控制电路、显示电路、驱动电路四部分组成。准确说就是模拟电源提供各个芯片电源、数码管、驱动L298所需电压;显示电路用于显示电动机转动时的速度大小及正反转所表示的代码。与传统的电动机调速相比具有操作方便,以及其输出速度大小采用数码显示的特点。文章中介绍了Protel99发展及特点。直流电动机的工作原理、基本组成环节,电路
2、分析、特殊元器件简介,设计方案的提出,更进一步说明了这类电机的好处。着重利用软件Protel绘制出电路原理图。讨论了目前研究工作中存在的问题,并对其发展的方向进行了展望,给出了一些个人的观点。 关键词:单片机AT89C51 ;驱动L298;555定时器;直流电机;DC motor control circuitsAbstract:Along with the development of the ages, the numerical electronics technique has already make widely available to our life, work, resea
3、rch, each realm, this text will introduce a kind of DC motor control circuits。 Elaborated with a microcontroller outputs are different to the duty cycle of the motor speed control circuit design; Focus on L298 for motor drive at the unique advantage,and DC Motor Speed Control has considerable practi
4、cal significance. According to its governors basic theory, the power supply circuit from analog control circuits, display circuit, the driving circuit four components. Is that accurate simulation of power supply for each chip, digital control, drives L298 required voltage; Show circuit for the motor
5、 rotation speed and size reversion expressed by the code. With the traditional motor speed compared with convenient operation and the size of the output speed digital display features. DC motor principle, the basic components, circuit analysis, special briefings components, design program, is furthe
6、r illustrated by the benefits of these motors. Protel software focused on the use of mapping circuit schematics. Discussion of the current research work is the problem and the direction of its development of the prospect, give some personal views.Keyword:SCM AT89C51 L298 555 motor control目录一、 系统设计、1
7、1.1 方案论证与选择、21.2单元电路设计、2二、实际电路设计、22.1原理图、22.2工作原理与过程、32.3理论计算与主要芯片的说明与运用、42.4软件设计与测试、6三电路测试3.1测试原理、103.2测试仪器、113.3结果与误差分析、12四、结论、12五、参考文献、12六、仪器仪表、12七附录、12 元器件清单一、 系统的设计1.1 方案论证与选择方案一:通过电压的大小来控制电机的转动速度;根据电动机在其额定电压时,电动机有一定的额定转速。根据其输入电压的减小,其转动速度也相应的减小。从而在传统的改变电动机的转速问题中,就是利用所给电动机的电压的不同,而达到人们所需要的大约速度。方案
8、二:以单片机AT89C51为中心通过D/A转换器,将单片机数字量转换为模拟量,从而起到控制电动机的转速问题。其中在单片机控制部分通过按键直接从程序中调出所需要速度的值,同时输到数码显示部分和D/A转换部分以实现电动机的调速。该电路最大的缺点是不能及时的从电动机那里得到相应的转动速度,而是直接从程序哪儿调用相应的数值给数码显示。所以,此处的电路在速度的显示上失去了其真实性。键盘AT89C51数码显示D/A0832转换电动机图1 电路组成框图方案三:采用AT89C51单片机进行控制。本设计需要使用的软件资源比较简单,只需要完成红外线采样部分、键盘控制部分以及显示输出功能。采用AT89C51进行控制
9、比较简单、易控制、可靠性高、抗干扰能力强、精度高且体积大大减小。输出速度的调节是通过k5键操作,显示速度在最高速度、最低速度的中间即800转每分钟。显示速度一步到位,没有传统的粗调与细调之累赘,并且使用方便等优点。AT89C51是一种带4K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8位微处理器.具有4K字节可编程闪烁存储器,可擦除的的只读存储器(PEROM), ATMEL的AT89C51是一种高效微控制器. AT89C51单片机为很多嵌入式控制系统提供了一种灵活性高且价廉的方案. 三级程序存储器锁定、128*8位内部RAM、32可编程I/O线、两个16位定时器/计数器、5个中断源、
10、可编程串行通道、低功耗的闲置和 电模式、片内振荡器和时钟电路:电路框图2如下 单片机89c51驱动L298电动机红外线测速数码显示图 2鉴于上面分析,方案一只能自以为减小所给电压值而能使电动机的转速有相应的减小。方案二只是把理想的速度送到数码显示以表示当时电动机的转速,缺乏真实性。所以,设计采用方案三。1.2:单元电路设计(1)电压源设计与选择方案一:采用电压源直接滤波法.缺点:此稳压电源产生纹波较大.方案二:采用稳压芯片进行稳压.优点:此稳压电源较稳定,产生的纹波较小,有利于电路功能的实现系统采用方案二 (2)显示电路的设计与选择方案一:采用字符型LCD显示.方案二:采用LED数码管显示.系
11、统采用方案二(3)模拟电压源的放大电路设计与选择方案一:采用集成运放TL084进行放大. 缺点:难以调节.方案二:采用集成运放TL082进行放大. 优点:易调节,且不过于浪费.系统采用方案二(4)输出电路设计与选择 方案一:采用直接输出法.缺点:不能有效地保护电压源和用电器. 方案二:采用再次驱动稳压器和保护电路的输出法.优点:在用电器发生短路时,能够有效地保护用电器和电压源. (5)电路的控制方式电路设计与选择 方案一:采用直接控制法.方案二:采用步进和复位法.系统采用方案二二.实际电路设计 2.1原理图根据方案2,得到如下实际原理图:2.2工作原理与过程通电复位,电路进入初始状态:LED数
12、码管显示0000,待电路正常工作时,开始显示电动机的速度和正反转。按S3电动机速度向上增加,按S2电动机速度向下递减,按S1使电动机朝刚才相反的方向转动同时显示相应字样。由于在实际使用中经常用到的速度有1.5v、3v、4.5v,5v,6v,8v,12v等速度值,所以本电路还设置了几个按键,如按下S4,电机的速度直接跳转到速度为*,按下S5, 电机的速度直接跳转到速度为*,电机的速度直接跳转到速度为*,等。L298是具有15个引脚的单列直插式2位同时驱动芯片。其引脚功能分别为:1、8、15脚为GND引脚,2、3脚为输出引脚, 9脚为VSS引脚,4脚为VS引脚,5、7脚为输入引脚,6脚为选通1通道
13、引脚。其余引脚为通道2所需要引脚,在此没有用到通道2,故其余引脚全部悬空。当6脚数据输入量为1时,1通道正常工作,当5、7脚输入为1、0时,2、3脚输出的电平使电动机正转,并且可以按照单片机所复给6脚的置1、置0的占空比的不同而使电动机的转速得以改变。当5、7脚输入为0、1时,2、3脚输出的电平使电动机反转,并且同理可以按照单片机所复给6脚的置1、置0的占空比的不同而使电动机的转速得以改变。保护电路由二极管组成,由于电动机是呈电感性很强的,所以在开机或着关机时,会产生很大的感应电压而烧坏芯片,在此,为了保护驱动芯片,接了几个二极管,从而大大的减小了由于感应电压带给驱动芯片的危害。2.3理论计算
14、与主要芯片的说明与应用2.3.1 主要芯片说明(1)单片机AT89C51 a:AT89C51的内部结构原理图见图5I/O存储器EPROM/ROM定时/计数器运算器控制器中断CPU片内振荡器RAM/SFP并行口存储器扩展控制器串行口XTAL图5图5主要特性:与AT89C2051 兼容 4K字节可编程闪烁存储器 寿命:1000写/擦循环数据保留时间:10年全静态工作:0Hz-24Hz三级程序存储器锁定128*8位内部RAM32可编程I/O线两个16位定时器/计数器5个中断源 可编程串行通道片内振荡器和时钟电路 管脚说明:VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,
15、每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当
16、P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由
17、于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,如下表所示:口管脚 备选功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 /INT0(外部中断0)P3.3 /INT1(外部中断1)P3.4 T0(记时器0外部输入)P3.5 T1(记时器1外部输入)P3.6 /WR(外部数据存储器写选通)P3.7 /RD(外部数据存储器读选通)P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。/PSRN:外部程序存储器的选通号。 /
18、EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。(2) LED显示部分原理图及说明:基本的半导体数码管是由七个条状发光二极管芯片按图2排列面成的, 可实现09的显示。LED显示器结构(见图2)LED显示部分原理图及说明见1.2.1.3用单片机驱动LED数码管有很多方法,按显示方式分有静态显示和动态(扫描)显示。动态显示需要CPU时刻对显示器件进行数据刷新,显示数据有闪烁感,占用的CPU时间多。静态显示就是显示驱动电路具有输出锁存功能,单片机将所要显示的数据送出后就不再管,直到下一次显示数据需要更新时再传送一次新数据,显示数据稳定
19、,占用很少的CPU时间。这两种显示方式各有利弊;静态显示虽然数据稳定,占用很少的CPU时间,但每个显示单元都需要单独的显示驱动电路,使用的硬件较多;动态显示虽然有闪烁感,占用的CPU时间多,但使用的硬件少,能节省线路板空间。因为考虑到成本及外围电路,所以此处采用的是按动态(扫描)显示。关于LED数码管的外围电路一般需要一个限流电阻和加大驱动电流的晶体管。常用的连接方式有如下四种:LED数码管是由发光二级管显示字段组成的显示器,有8段和“米”字段之分,这种显示器有共阴级和共阳级两种。共阴方式是笔画显示器各段发光管的阴极(即N区)是公共的,而阳极是互相隔离的;共阳方式是指笔画显示器各段发光管的阳极
20、(即P区)是公共的,而阴极互相隔离。此处采用的是共阴极LED,原理图如图7图7LED驱动原理图如图8所示图8 LED驱动原理图1910P00.P07P10.p17p30p31agagagP10P31P30P17555定时器又称为集成定时器或555 电路,是一种数字、模拟混合型的中规模集成电路,应用十分广泛。外加电阻、电容等元件可以构成多谐振荡器,单稳电路,施密特触发器等。它是一种产生时间延迟和多种脉冲信号的电路,由于内部电压标准使用了三个5K 电阻,故取名555 电路。其电路类型有双极型和CMOS型两大类,二者的结构与工作原理类似。几乎所有的双极型产品型号最后的三位数码都是555 或5567
21、所有的CMOS 产品型号最后四位数码都是7555 或7556,二者的逻辑功能和引脚排列完全相同,易于互换。555 和7555 是单定时器。556 和7556 是双定时器。双极型的电源电压DD U +5V+15V,输出的最大电流可达200mA,CMOS 型的电源电压为十3V+18V,能直接驱动小型电机、继电器和低阻抗扬声器。(3)555 定时器的工作原理555 定时器原理图及引线排列如图1 所示。其功能见表1。定时器内部由比较器、分压电路、RS 触发器及放电三极管等组成。分压电路由三个5K 的电阻构成,分别给1 A 和2 A 提供参考电平2/3 DD U 和1/3 DD U 。1 A 和2 A
22、的输出端控制RS触发器状态和放电管开关状态。当输入信号自6 脚输入大于2/3 DD U 时,触发器复位,3 脚输出为低电平,放电管T 导通;当输入信号自2 脚输入并低于1/3 DD U时,触发器置位,3 脚输出高电平,放电管截止。4 脚是复位端,当4 脚接入低电平时,则o U =0;正常工作时4 接为高电平。5 脚为控制端,平时输入2/3 DD U作为比较器的参考电平,当5 脚外接一个输入电压,即改变了比较器的参考电平,从而实现对输出的另一种控制。如果不在5 脚外加电压通常接0.01F 电容到地,起滤波作用,以消除外来的干扰,确保参考电平的稳定。表1 555 定时器的功能表在这里,我们用555
23、定时器构成单稳态触发器用电路如图2 所示,接通电源电容C 充电(至2/3 DD U )RS 触发器置0 o U =0,T 导通,C 放电,此时电路处于稳定状态。当2 加入i V 1/3 DD U 时,RS 触发器置1,输出o U =1,使T 截止。电容C 开始充电,按指数规律上升,当电容C 充电到2/3 DD U 时, 1 C 翻转,使输出o U =0。此时T 又重新导通,C 很快放电,暂稳态结束,恢复稳态,为下一个触发脉冲的到来作好准备。其中输出o U 脉冲的持续时间W t =1.1RC,一般取R=1k-10M,C1000PF。2.3.2 关键电路单元的工程计算:a:上拉电阻的计算:选择上拉
24、电阻阻值时要考虑多方面因素。一方面,如果负载具有电容性,的值愈小,电容的充电时间常数也就愈小,因此开关速度愈快,但功耗也愈大。另一方面,多个OD门的输出端直接连在一起,当只有一个门导通,输出为低电平,其他门截止,输出为高电平时,负载电流将全部流向导通的OD门,这是一种最不利的情况,此时的上拉电阻有限流的作用,其取值不能太小,应保证不超过额定值。上拉电阻计算公式:其中:=5V,=5V,=1.5V,=,=经查找相关的资料也可以找到。将数据代入公式,可求得:=0.8k,=1.3k,综合考虑到本次设计的技术要求,以及自己手头上的元件的限制,所以最终选择上拉电阻为1千欧2.4软件设计与测试(1)程序流程
25、图 关闭定时期器1中断次数记数加1调用PWM控制程子程序序调用速度显示控制子程序重装定时器1初值开定时器1中断返回开始初始化调用键盘处理程序调用显示子程序调用PWM 控制子程序调用速度显示值获得程序 主流程图 中断处理子程序 拉高p1口电平读p1口值是否有键按下是否键1按下?是是是是否否否键2按下?否键2按下?键2按下?否键2按下?是否键2按下?是否键2按下?是否键2按下?顺时针转动返回逆时针转动转动速度加(细)转动速度减(细)转动速度加(粗)转动速度减(粗)回到中间速度停止转动等待按键放下 按键处理程序选通个位?是否选通个位?是否选通个位?是否选通个位?是否显示个位显示十位显示百位显示千位返
26、回延时延时延时分解速度值到显示缓冲区延时显示完毕?否是显示子程序判断中断次数是否等于脉宽控制字A?否是判断中断次数是否到一个pwm周期?否是输出低电平输出高电平中断记数清0返回Pwm控制子程序判断是否到一秒?是否停止记数读计数器值求出此时电机速度值重装记数初值开始记数返回速度显示值获得程序(2)源程序/*/直流电机的pwm控制程序/功能:直流电机的速度控制,速度测试,速度显示。/*#include/包含头文件#include#define gw DBYTE0X40/定义显示缓冲区 个位#define sw DBYTE0X41/十位#define bw DBYTE0X42/百位#define q
27、w DBYTE0X43/千位#define unint unsigned int/自定义变量#define uchar unsigned charsbit in1=P30;/控制位定义sbit in2=P31;sbit ena=P37;uchar code zm12=0X3F,0X06,0X5B,0X4F,0X66,0X6D,0X7D,0X07,0X7F,0X6F,0x73,0x71;/在程序存储区定义字型码表uchar code wm4=0xfe,0xfd,0xfb,0xf7;/在程序存储区定义字位控制码表uchar a=8;/占空比控制字uchar n=1;/速度增减量一uchar m=2
28、;/速度增减量二unint speedbuf=0;/速度值uchar zc=0;unint ys=0;key();/子函数声明display();control();delays();speedcan();/*/主函数/*main()gw=sw=bw=qw=0;/显示初始化P0=0xc0;P2=0;in1=0;/电机控制的初始化in2=0;ena=1;TMOD=0X15;/定时器1为定时模式,使用方式2;定时器0为计数模式,使用方式2TH1=0Xfa;/装定时器初值TL1=0X24;TH0=0;/装计数器初值TL0=0;EA=1;/开总中断ET0=1;/允许定时器0中断ET1=1;/允许定时器
29、1中断TR0=1;/开计数器TR1=1;/开定时器while(1)/无限循环key();/调用按键扫描程序control();/调用电机控制程序display();/调用显示程序speedcan();/调用速度处理程序/*/中断处理程序,实现输出方波占空比控制/*timer_1() interrupt 3 using 1/定时器1中断,使用寄存器组1TR1=0;/停止定时zc+;/中断次数加1ys+;control();speedcan();TH1=0Xfa;/重装定时初值TL1=0X24;TR1=1;/*/脉宽控制程序,实现PWM的输出/*control()if(zc=a)ena=0;if(
30、zc=15)zc=0;ena=1;/*/显示子函数,显示当前电机的速度/*display()uchar i;gw=speedbuf%10;/求速度个位值送各位显示缓冲sw=(speedbuf/10)%10;/求速度十位值送十位显示缓冲bw=(speedbuf/100)%10;/求速度百位值送百位显示缓冲qw=speedbuf/1000;/求速度千位值送千位显示缓冲for(i=0;i0;i-);/*/键盘扫描子函数,实现电机的方向 速度的控制/*key()uchar i;P1=0xff;/拉高P1口的电平i=P1;/读P1口 if(i=0xfe)/第一个键按下delays();/延时去抖动if(
31、i=0xfe)/再判断按键是否按下in1=0;/电机顺时针转动in2=1;if(i=0xfd)/第二个键是否按下delays();/延时去抖动if(i=0xfd)/再判断按键是否按下in1=1; /电机逆时针转动in2=0;if(i=0xfb)/第三个键是否按下delays();if(i=0xfb)a=a+n;/速度加(慢速)if(a=15) a=15;if(i=0xf7)delays();if(i=0xf7)if(a3)/速度减(慢速)a=a-n;else a=3;if(i=0xef)delays();if(i=0xef)a=a+m;/速度加,(快速)if(a=15)a=15;if(i=0x
32、df)delays();if(i=0xdf)if(a3)/速度减,(快速)a=a-m;elsea=3;if(i=0xbf)delays();if(i=0xbf)in1=0;/停止转动in2=0;if(i=0x7f)delays();if(i=0x7f)a=5;/回到中间速度while(P1!=0xff);/等待按键放下 (3)软件测试测试利用了Keil uVision2和单片机仿真器。实现方式:把程序输入到Keil uVision2仿真软件中,然后通过单片机仿真器输入电路中,进行调试。本程序能够实现步进显示与输出电压一致的目标。所需设备:1计算机一台 2双综示波器 3单片机仿真器实验系统 4U
33、NI-T 系列万用表UT30D 5单片机仿真器 三电路的测试3.1 测试原理单片机89c51驱动L298电动机红外线测速数码显示3.2测试仪器 1双综示波器 江苏绿扬电子仪器集团有限公司 2UNI-T 系列万用表UT30D 优利德科技(东莞)有限公司(3)测试结果根据显示与输按键K1K2K3K4K5K6K7K8作用正转反转加速减速快速加速快速减速直接到中间速度停止显示速度(r/min)绿灯亮红灯亮80003.3结果误差分析电源部分仅用1000uF的电解电容滤波,产生的纹波较大。电路中的电阻全为碳膜电阻,而碳膜电阻有阻值误差大等缺点,如改成金属膜电阻,效果更好。 万用板所用的引线过细,使流过的电流过小,对本电路的影响较大,如改为PCB板,效果会好很多。 UNI-T万用表的电压档精确度为(0.5%+2),精确度不够高。四 结论通过本设计的理论分析,实际与测试分析表明: 1显示速度与实际速度基本一至。2电路具有过流保护功能