单片机电机控制与测速显示设计报告

上传人:206****923 文档编号:90717400 上传时间:2019-06-15 格式:DOC 页数:21 大小:953.50KB
返回 下载 相关 举报
单片机电机控制与测速显示设计报告_第1页
第1页 / 共21页
单片机电机控制与测速显示设计报告_第2页
第2页 / 共21页
单片机电机控制与测速显示设计报告_第3页
第3页 / 共21页
单片机电机控制与测速显示设计报告_第4页
第4页 / 共21页
单片机电机控制与测速显示设计报告_第5页
第5页 / 共21页
点击查看更多>>
资源描述

《单片机电机控制与测速显示设计报告》由会员分享,可在线阅读,更多相关《单片机电机控制与测速显示设计报告(21页珍藏版)》请在金锄头文库上搜索。

1、“星凯”杯 电子元器件组装与设计大赛 课题名称:课题名称:直流电机转速控制直流电机转速控制 参赛队员:张文虎参赛队员:张文虎 周浩涵周浩涵 王王 军军 JINGCHU UNIVERSITY OF TECHNOLOGY 1 目目 录录 目目 录录1 1 直流电机转速控制方案设计直流电机转速控制方案设计2 1.1 设计要求2 1.2 设计框图 .3 2 简简 介介4 2.1 主要器件功能 .4 2.2 硬件原理图13 3 硬件电路测试硬件电路测试6 3.1 单片机部分及接口电路测试6 3.2 键盘控制与电机控制引线6 3.3 电机部分电路及接口电路测试7 3.4 测速电路8 3.5 数码管驱动电路

2、8 4 软件程序测试软件程序测试.9 4.1 按键程序9 4.2PWM 程序 9 4.3 测速系统程序11 4.4 调速程序12 5 硬件电路原理总图硬件电路原理总图.12 6 总设计程序总设计程序.16 7 结束语结束语.19 8 附录附录.20 8.1 实物图20 8.2 参考文献20 2 1 1 直流电机转速控制设计直流电机转速控制设计方案方案 1.1 设计任务及要求设计任务及要求 一、任务 设计一个数字式直流电机转速控制系统,包括控制器、直流电机和转速检测装 置。要求采用 PWM 方式驱动直流电机。控制系统原理可按图 1 所示框图设计。 二、基本要求(50 分) (1)能以数字形式显示

3、转速和给定转速,能通过按键设置转速给定值。(25 分) (2)给定转速从 1000 转/分变化到 1500 转/分时,控制超调100 转,由给 定阶跃变化开始到转速控制在 150050 转的时间10 秒,稳态误差15 转。(25 分) 三、发挥部分(50 分) (1)进一步改善控制质量,给定转速从 1000 转/分变化到 1500 转/分时,控 制超调20 转,由给定阶跃变化开始到转速控制在 150050 转的时间5 秒,稳 态误差5 转。(20 分) (2)能通过按键设置直流电机按正反两个方向旋转。(20 分) (3)其它。 (10 分) 单 片 机 转速测量 PWM 驱 动 转速显示 按键

4、接口 供 电 电 源 直 流 电 机 图 1 转速控制器原理框图 3 1.2 设计框图设计框图 本课题中测量控制电路组成框图 2 如下所示: 图 2 设计总流程图 本次设计采用的是 ATM 公司的 STC89C52 单片机作为主要程序处理芯片。设 计主要分为三个部分: 第一:数码管显示及驱动 第二:电动机驱动与控制 第三:电机测速信号采集与处理 通过单片机的处理及外围键盘电路有效结合的实现了上面三个部分的融合, 实现电动机转速控制与测速功能,并能实时反映出转速,达到了设计题目要求。 4 2 芯片简介芯片简介 2.1 主要器件功能主要器件功能 2.1.1 L298 芯片介绍芯片介绍 L298N

5、是专用驱动集成电路,属于 H 桥集成电路,与 L293D 的差别是其 输出电流增大,功率增强。其输出电流为 2A,最高电流 4A,最高工作电压 50V, 可以驱动感性负载,如大功率直流电机,步进电机,电磁阀等,特别是其输入端可 以与单片机直接相联,从而很方便地受单片机控制。当驱动直流电机时,可以直接 控制步进电机,并可以实现电机正转与反转,实现此功能只需改变输入端的逻辑电 平。此外可能通过使能端的高低电平的变换,从而使电机通断,来控制电机的转速。 图 3 L298N 芯片引脚图 板上的EN1 与EN2 为高电平时有效,这里的电平指的是TTL 电平。ENA 为IN1 和IN2 的使能端,ENB为

6、IN3 和IN4 的使能端。POWER 接直流电源,注意正负, 电源正端为VCC,电源地为GND。本次设计因只需要控制一台电机,故只需要使 5 用一个使能端和一组输出就行了。 2.1.2 74HC573 芯片介绍芯片介绍 74HC573 为驱动数码管的芯片,其原理说明:74HC573 的八个锁存器都是透 明的 D 型锁存器,当使能(G)为高时,Q 输出将随数据(D)输入而变。当使 能为低时,输出将锁存在已建立的数据电平上。输出控制不影响锁存器的内部工作, 即老数据可以保持,甚至当输出被关闭时,新的数据也可以置入。这种电路可以驱 动大电容或低阻抗负载,可以直接与系统总线接口并驱动总线,而不需要外

7、接口。 特别适用于缓冲寄存器,I/O 通道,双向总线驱动器和工作寄存器。其引脚图如 下: D0 2 D1 3 D2 4 D3 5 D4 6 D5 7 D6 8 D7 9 Q0 19 Q1 18 Q2 17 Q3 16 Q4 15 Q5 14 Q6 13 Q7 12 LE 11 OE 1 U1 74HC573 图 4 74HC573 芯片引脚图 6 3 3 硬件电路测试硬件电路测试 3.1 单片机最小系统及复位电路测试单片机最小系统及复位电路测试 图 5 单片机最小系统与复位电路 3.2 键盘控制电路与电机控制引线键盘控制电路与电机控制引线 图 6 按键控制接口电路 7 3.3 电机驱动部分电路

8、及电路测试电机驱动部分电路及电路测试 图 7 电机驱动电路 本次使用的是常见的驱动芯片 L298N。电机控制测试时,L298N 的 IN3,IN4 的 输出控制电机的正反转。当 IN3,IN4 为 0,1,时是一种转向,当 IN3,IN4 为 1,0 时,就反 向转动。而电机的转速控制是通过 L298N 的 ENB(或 ENA)来控制,由于 ENB 的 状态直接确定电机的通断,所以,测试时,通过单片机 IO 端口直接调节 ENB 占空比的 输出来实现电机的转速控制. 电机的测速是通过光电传感器(H42B6)来获取的。电机的叶片上有空隙,当光 线被遮住时,光电传感器产生脉冲,然后经过放大器处理后

9、输出的脉冲数被单片机 8 中断口记录。通过单片机内部计时,当一定的时间到时,通过计算程序得出在 1 分 钟的实时转速,然后通过 4 位数码管上显示出来. 3.4 信号采集电路与处理电路信号采集电路与处理电路 Q1 2N3708 Vcc R1 300 R2 10k R3 10k R4 1k +88.8 Volts A B C D Demodulator IRL1 IRLINK 图 8 信号采集电路调试图 3.5 数码管驱动电路数码管驱动电路 图 9 数码管段选接口电路 9 4 4 软件程序测试软件程序测试 4.1 按键功能设置程序按键功能设置程序 当按键按下的时候产生一个低电平,连接单片机上 I

10、O 端口,产生外部中断,使得 单片机执行程序内容,具体的程序如下: 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; 10 if(fz=0)/电机反转 p1.5 delay(5); if(fz=0) M1=0; M2=1; /while(!zf

11、); 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-; 11 else dj=0; 4.2 PWM 程序程序 因为电机调速是本次设计的最主要任务之一,所以 PWM 程序也是程序中最重要 的一环。 PWM 的调速原理是通过调节一个斩波周期中的脉冲占空比来调节电机功率而达 到调速目的。本设计中,PWM 的斩波周期为 500us,那也就是说斩波频率为 2kHz, 在理论上能达到 0.05%线性可调,也就是能以 0.05%

12、的调节精度来调节 PWM 占空比。 PWM 调速子程序是放在定时器 0 中断中进行的,中断设置如下: void T0zd() interrupt 1 / 1 为 定时器 0 的中断号 0 TF0=0; TH0 = 0xfe; / TL0 = 0x0c; timer1+; timer2+; if(timer1100) timer1=0;/总周期 T if(timer10) dj-; else dj=0; 5 硬件电路原理图硬件电路原理图 14 图 10 总设计电路图 6 总程序总程序 #include #include #define TIME_CYLC 100 #define uchar un

13、signed 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; void shuma(uchar qian,uchar bai,uchar shi,uchar ge); voi

14、d 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 biaozhi=0;/计算转速 void keyscan(); 15 void main()

15、 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 using 0 EX0=0; x+; /中断计数 EX0=1; /*键盘控制程序*/ void keyscan()/键盘扫描控制 if(zt=0) /暂停 delay(5); if(zt=0) EA=EA; M1=0; M2=0; 18 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)/电机正转

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 中学教育 > 其它中学文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号