《电子元器件组装与设计大赛单片机电机控制与测速显示设计报告.doc》由会员分享,可在线阅读,更多相关《电子元器件组装与设计大赛单片机电机控制与测速显示设计报告.doc(21页珍藏版)》请在三一办公上搜索。
1、JINGCHU UNIVERSITY OF TECHNOLOGY“星凯”杯电子元器件组装与设计大赛课题名称:直流电机转速控制参赛队员: 目 录目 录11 直流电机转速控制方案设计21.1 设计要求21.2 设计框图32 简 介42.1 主要器件功能42.2硬件原理图133 硬件电路测试63.1单片机部分及接口电路测试63.2键盘控制与电机控制引线63.3电机部分电路及接口电路测试73.4测速电路83.5数码管驱动电路84软件程序测试94.1按键程序94.2PWM程序94.3测速系统程序114.4调速程序125硬件电路原理总图126总设计程序167结束语198附录208.1实物图208.2参考文
2、献201 直流电机转速控制设计方案1.1 设计任务及要求 一、任务单片机转速测量PWM驱动转速显示按键接口供电电源直流电机图1 转速控制器原理框图设计一个数字式直流电机转速控制系统,包括控制器、直流电机和转速检测装置。要求采用PWM方式驱动直流电机。控制系统原理可按图1所示框图设计。二、基本要求(50分)(1)能以数字形式显示转速和给定转速,能通过按键设置转速给定值。(25分)(2)给定转速从1000转/分变化到1500转/分时,控制超调100转,由给定阶跃变化开始到转速控制在150050转的时间10秒,稳态误差15转。(25分)三、发挥部分(50分)(1)进一步改善控制质量,给定转速从100
3、0转/分变化到1500转/分时,控制超调20转,由给定阶跃变化开始到转速控制在150050转的时间5秒,稳态误差5转。(20分)(2)能通过按键设置直流电机按正反两个方向旋转。(20分)(3)其它。(10分)1.2 设计框图本课题中测量控制电路组成框图2如下所示:图2 设计总流程图 本次设计采用的是ATM公司的STC89C52单片机作为主要程序处理芯片。设计主要分为三个部分: 第一:数码管显示及驱动 第二:电动机驱动与控制 第三:电机测速信号采集与处理 通过单片机的处理及外围键盘电路有效结合的实现了上面三个部分的融合,实现电动机转速控制与测速功能,并能实时反映出转速,达到了设计题目要求。2 芯
4、片简介2.1 主要器件功能2.1.1 L298芯片介绍 L298N 是专用驱动集成电路,属于H 桥集成电路,与L293D 的差别是其输出电流增大,功率增强。其输出电流为2A,最高电流4A,最高工作电压50V,可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电平。此外可能通过使能端的高低电平的变换,从而使电机通断,来控制电机的转速。 图3 L298N芯片引脚图板上的EN1 与EN2 为高电平时有效,这里的电平指的是TTL 电平。EN
5、A 为IN1 和IN2 的使能端,ENB为IN3 和IN4 的使能端。POWER 接直流电源,注意正负,电源正端为VCC,电源地为GND。本次设计因只需要控制一台电机,故只需要使用一个使能端和一组输出就行了。2.1.2 74HC573芯片介绍74HC573为驱动数码管的芯片,其原理说明:74HC573的八个锁存器都是透明的D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作,即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不
6、需要外接口。特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。其引脚图如下:图4 74HC573芯片引脚图3 硬件电路测试 3.1单片机最小系统及复位电路测试图5 单片机最小系统与复位电路3.2键盘控制电路与电机控制引线图6 按键控制接口电路3.3电机驱动部分电路及电路测试图7 电机驱动电路本次使用的是常见的驱动芯片L298N。电机控制测试时,L298N的IN3,IN4的输出控制电机的正反转。当IN3,IN4为0,1,时是一种转向,当IN3,IN4为1,0时,就反向转动。而电机的转速控制是通过L298N的ENB(或ENA)来控制,由于ENB的状态直接确定电机的通断,所以,测试时,
7、通过单片机IO端口直接调节ENB占空比的输出来实现电机的转速控制.电机的测速是通过光电传感器(H42B6)来获取的。电机的叶片上有空隙,当光线被遮住时,光电传感器产生脉冲,然后经过放大器处理后输出的脉冲数被单片机中断口记录。通过单片机内部计时,当一定的时间到时,通过计算程序得出在1分钟的实时转速,然后通过4位数码管上显示出来.3.4信号采集电路与处理电路 图8 信号采集电路调试图3.5数码管驱动电路图9 数码管段选接口电路4 软件程序测试4.1按键功能设置程序当按键按下的时候产生一个低电平,连接单片机上IO端口,产生外部中断,使得单片机执行程序内容,具体的程序如下:void keyscan()
8、/键盘扫描控制 if(zt=0) /暂停 delay(5); if(zt=0) EA=EA; M1=0; M2=0; if(jia=0) /设定值增加 delay(10); if(jia=0) +num; if(num=3000) num=0; if(jian=0)/设定值减小 delay(10); if(jian=0) num-; if(num=-1) num=3000; if(fz=0)/电机反转p1.5 delay(5); if(fz=0) M1=0; M2=1; /while(!zf); if(zf=0)/电机正转p1.6 delay(5); if(zf=0) M1=1; M2=0;
9、/while(!zf); if(jas=0)/电机加速p3.7 delay(5); if(jas=0) if(dj0) dj-; else dj=0; 4.2 PWM程序因为电机调速是本次设计的最主要任务之一,所以PWM程序也是程序中最重要的一环。PWM的调速原理是通过调节一个斩波周期中的脉冲占空比来调节电机功率而达到调速目的。本设计中,PWM的斩波周期为500us,那也就是说斩波频率为2kHz,在理论上能达到0.05%线性可调,也就是能以0.05%的调节精度来调节PWM占空比。PWM调速子程序是放在定时器0中断中进行的,中断设置如下:void T0zd() interrupt 1 / 1为
10、定时器0的中断号 0 TF0=0;TH0 = 0xfe; /TL0 = 0x0c; timer1+; timer2+; if(timer1100) timer1=0;/总周期T if(timer1dj) PWM=1;/获得高电平时间 else PWM=0; 4.3测速系统程序测速是本设计的另外一个重点。本设计中测速系统的工作原理为:利用电机叶片上,引起光电传感器产生脉冲,单片机就采集此脉冲数,加以计算,得出其实时速度,通过4为数码管显示出来。测速程序是使用外部中断,通过单片机中断口,进行计数后得到:初始化程序如下: TMOD=0x01; ET0=1; EA=1; /开总中断 EX0=1; IT
11、0=1; /下降沿触发 TR0= 1; x=0;函数中,TH1_1,TL1_1就是存放计数器1的计数值的缓冲区,当它们从TH1和TL1中取得数值之后,TH1和TL1随即被清零,为下一次计数做好准备。void int0(void) interrupt 0 using 0 EX0=0; x+; /中断计数 EX0=1;4.4键盘调速程序本程序中我们直接利用键盘改变设置变量改变单片机输出PWM从而改变电机的转速,其相应键盘控制的程序如下:if(jas=0)/电机加速p3.7 delay(5); if(jas=0) if(dj0) dj-; else dj=0; 5 硬件电路原理图图 10 总设计电路
12、图6总程序#include#include #define TIME_CYLC 100#define uchar unsigned char#define uint unsigned int#define ulong unsigned long uchar qian,bai,shi,ge, mqian, mbai, mshi, mge,dj=10,timer2=0; ulong num2=0,num=0,num1=0,timer1=0; uint x ; uchar code table= 0x3f,0x06,0x5b,0x4f, 0x66,0x6d,0x7d,0x07, 0x7f,0x6f;
13、void shuma(uchar qian,uchar bai,uchar shi,uchar ge);void shuma1(uchar mqian,uchar mbai,uchar mshi,uchar mge);void delay(uchar);sbit PWM=P10;sbit zt=P17;/暂停sbit jia=P13;/加设置sbit jian=P14;/减设置sbit M1=P11;/正极设置sbit M2=P12;/负极设置sbit fz=P16;/反转按键sbit zf=P15;/正转按键sbit jas=P37;/加速按键sbit js=P36;/减速按键 bit bi
14、aozhi=0;/计算转速void keyscan();void main() M1=1; M2=0; TMOD=0x01; ET0=1; EA=1; /开总中断 EX0=1; IT0=1; /下降沿触发 TR0= 1; x=0; while(1) keyscan(); shuma(qian,bai,shi,ge); shuma1(mqian,mbai,mshi,mge); if(timer1100) timer1=0;/总周期T if(timer1TIME_CYLC) /500um*100 biaozhi=1; /timer2=0; void int0(void) interrupt 0 u
15、sing 0 EX0=0; x+; /中断计数 EX0=1;/*键盘控制程序*/void keyscan()/键盘扫描控制 if(zt=0) /暂停 delay(5); if(zt=0) EA=EA; M1=0; M2=0; if(jia=0) /设定值增加 delay(10); if(jia=0) +num; if(num=3000) num=0; if(jian=0)/设定值减小 delay(10); if(jian=0) num-; if(num=-1) num=3000; if(fz=0)/电机反转p1.5 delay(5); if(fz=0) M1=0; M2=1; /while(!
16、zf); if(zf=0)/电机正转p1.6 delay(5); if(zf=0) M1=1; M2=0; /while(!zf); if(jas=0)/电机加速p3.7 delay(5); if(jas=0) if(dj0) dj-; else dj=0; void delay(uchar a)/延时函数 uchar i,j; for(i=a;i0;i-) for(j=110;j0;j-);7结束语本次设计按照题目要求,采用模块化的硬件和软件设计方法,以及较合适的控制算法,较成功的实现了电机的转向、转速控制,整个系统有序紧凑,基本上完成了题目基本部分和发挥部分的全部要求。当然,由于时间较紧,
17、本系统还存在许多不足之处,比如方案考虑不够全面,在元件的选择也存在一些问题等,这有待进一步改进和完善。在此次的设计中也遇到了没有想到的问题,但经过和队员的一起探讨都一一解决,体会到了一个团队在完成一件事情上团结一致的重要性。当然,也很感谢给我们提出帮助的老师和同学,在此请允许我代表我们的团队对你们说声谢谢! 8 附录 8.1 实物图 图 11 实物连接图8.2参考文献【1】程德福,林君。智能仪器出版社:机械工业出版社。【2】张毅刚,彭喜元,董继成。单片机原理及应用出版社:高等教育出版社。【3】宋丽蓉。自动控制原理出版社:机械工业出版社。【4】于海生,丁军航,潘松峰,吴贺荣。微型计算机控制技术出版社:清华大学。【5】王兆安 李进军主编电力电子计术 第五版 出版社:机械工业出版社【6】顾绳谷 主编电机及拖动基础 第四版下 出版社:机械工业出版社