单片机控制直流电机正反转.docx

上传人:苏美尔 文档编号:10671767 上传时间:2021-05-30 格式:DOCX 页数:16 大小:436.79KB
返回 下载 相关 举报
单片机控制直流电机正反转.docx_第1页
第1页 / 共16页
单片机控制直流电机正反转.docx_第2页
第2页 / 共16页
单片机控制直流电机正反转.docx_第3页
第3页 / 共16页
单片机控制直流电机正反转.docx_第4页
第4页 / 共16页
单片机控制直流电机正反转.docx_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《单片机控制直流电机正反转.docx》由会员分享,可在线阅读,更多相关《单片机控制直流电机正反转.docx(16页珍藏版)》请在三一文库上搜索。

1、第1章总体设计方案11.1 总体设计方案11.2 软硬件功能分析1第2章硬件电路设计22.1 单片机最小系统电路设计 22.2 直流电机驱动电路设计 22.3 数码管显示电路设计42.4 独立按键电路设计52.5 系统供电电源电路设计52.5.1 直流稳压电路中整流二极管的选取: 62.5.2 直流稳压电路中滤波电容的选取: 6第3章系统软件设计73.1 软件总体设计思路73.2 主程序流程设计7附录1总体电路图10附录2实物照片11附录3 C语言源程序 12实习报告11.1 总体设计方案早期直流传动的控制系统采用模拟分离器件构成,由于模拟器件有其固有的缺 点,如存在温漂、零漂电压,构成系统的

2、器件较多,使得模拟直流传动系统的控制 精度及可靠性较低。随着计算机控制技术的发展,微处理器已经广泛使用于直流传 动系统,实现了全数字化控制。由于微处理器以数字信号工作,控制手段灵活方便, 抗干扰能力强。所以,全数字直流调速控制精度、可靠性和稳定性比模拟直流调速 系统大大提高。所以,本次实习采用了驱动芯片来驱动直流电机,并运用单片机编 程控制加以实现。系统设计采用驱动芯片来控制的,所以控制精度和可靠性有了大幅度的提高, 并且驱动芯片具有集成度高、功能完善的特点,从而极的大简化了硬件电路的设计。图1.1直流电机定时正反转方案1.2 软硬件功能分析本次实习直流电机控制系统以 STC89C52单片机为

3、控制核心,由按键输入模块、 LED显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入,单 片机在程序控制下,定时不断给 L293D直流电机驱动芯片发送PWM波形,H型驱 动电路完成电机正,反转控制;同时单片机不停的将变化的定时时间送到LED数码管完成实时显示。22.1 单片机最小系统电路设计单片机最小系统设计是单片机应用系统设计的基础。STC89C52单片机最小系统 电路如图2.1所示。图2.1单片机最小系统2.2 直流电机驱动电路设计L293D是提供双向驱动电流高达1 A ,电压是从4.5 V至36 V的;L293D提供 双向驱动电流高达600毫安,电压是从4.5 V至36 V

4、的。两个设备是专为驱动等感 性负载继电器,电磁阀,直流双极步进和马达,也可以给其他高电流/高电压提供电源负载。兼容所有的TTL输入。每个输出都是推拉式驱动电路,与达林顿三极管和 伪达林源。启用1,2 EN驱动器和3,4 EN驱动器。当使能输入为高电平时,相关联的 驱动器被启用和他们的输出处于活动状态,并在其输入端的同相。当使能输入为低, 这些驱动器被禁用其输出关闭,在高阻抗状态。PS: 1,2EN为1和2的使能端(高电平使能);3,4EN同理】用适当的数据输入端,每对驱动程序的形式一个完整的H桥可逆驱动器适用于电磁阀或电机应用。L293D外部输出为高速钳位二极管,应使用电感的瞬态抑制。VCC1

5、和VCC2分开,提供逻辑输入,以尽量减少设备功耗。 L293D的工作温度是从0至70 C图2.3 L293D外部引脚排列图表2.1真值表输入输出AENYHHHLHLXLZ在热关断模式下,输出的是高阻态,而不管输入电平图2.4逻辑图电机驱动电路组要是由L293D芯片组成,单片机P3.4,P3.6,P3.7输出的信号经过L293D芯片后直接与直流电机相连,从而控制直流电机的运行。其中 VCC1接+5V 电源,VCC2接+12V电源。2.3 数码管显示电路设计本设计利用数码管作为显示单元,采用动态显示技术,电路如图2.5所示图2.5显示电路电路的接法决定了必须采用逐位扫描显示方式。即从段选口送出某位

6、LED的字型码,然后选通该位LED,并保持一段延时时间。然后选通下一位,直到所有位扫 描完。2.4 独立按键电路设计独立式键盘的按键相互独立, 每个按键接一根I/O 口线,一根I/O 口线上的按键 工作状态不会影响其它I/O 口线的工作状态。因此,通过检测I/O 口线的电平状态, 即可判断键盘上哪个键被按下。rm第10页2.5 系统供电电源电路设计本系统需要采用+5V电源和+12V电源,所采用的电源电路是由整流电路和三端 稳压器组成的。电路输出电压和最大输出电流决定于所选三端稳压器。其电源电路 如图2.7所示。图2.7 +5V和+12V电源供电电路其中U 2为副边(2-1)电压解得由于整流桥电

7、路2 2U0(av)= 2- U2 0.9U 2冗(2-2)实现了全波整流电路,他将U2的2.5.1 直流稳压电路中整流二极管的选取:,1 - _,、Uo(av)=一 V2U 2sinotd( cot) 花负半周也利用起来,所以在变压器副边电压有效值相同的情况下,输出电压的平均 值是半波整流电路的两倍。输出电流的平均值(即负载电阻中的电流平均值),Uqav)0.9U2(2-3)Io (AV) = -RlRl在单相桥式整流电路中,因为每只二极管只在变压器副边电压的半个周期通过 电流,所以每只二极管的平均电流只有负载电阻上的电流的平均值的一半,即(2-4)(2-5),Uoav)0.45U2IO (

8、AV) = -R-Rl与半波整流电路中的平均电流相同。 二极管所能承受的最大反向电压U R max = - 2U 2考虑到电网电压的波动范围为 10%,在实际选用二极管时,应至少有 10的余 量,选择最大整流电流If和最高反向工作电压Urm分别为If .山皿=1U22 Urm 1.1 ,2U2.5.2直流稳压电路中滤波电容的选取:二 Rl(2-6)(2-7)UO(AV)Rl = Ub( aV)输出电压的平均值I L(AV)I L(AV):负载电流的平均值当C=(35) T 时,Ub(AV)- 1.2U* = C = (35)52Rl2R-由于采用电解电容,考虑到电网电压的波动范围为10%,点解

9、电容的耐压值应大于 1.1. 2U 2第3章 系统软件设计3.1 软件总体设计思路经过前几章的设计工作,系统的硬件电路设计已经完成了。然而,对于一个完 整的设计系统来说,只有硬件电路的设计完成是不够的,它必须通过软件编程来实 现系统工作的控制功能,从而才能实现电路应有的系统功能。单片机系统的软件设计主要使用汇编语言或高级语言。汇编语言与系统硬件的 关系密切,可方便地实现诸如中断管理以及模拟/数字量的输入/输出等功能,具有占 用系统资源小、执行速度快的特点,但是,对复杂的大型应用系统,其代码可读性 差,并不利于升级和维护。高级语言的代码效率和长度都不如汇编语言,但其结构 清晰、可读性好、开发周期

10、短、有极强的可移植性,在多数应用方面执行效率与汇 编语言的差距也不大,近年来得到了极为广泛的应用。而C语言既有高级语言的各种特点,又可对硬件进行操作,并可进行结构化程序设计。用C语言编写的程序较容易移植,可生成简洁、可靠的目标代码,用C语言进行单片机计算机开发已经是必然的发展趋势。本设计的整体思路为:主程序中循环的调用按键程序,通过按键从而使单片机 输出变化的定时时间和控制电机正反转,从而控制直流电机达到不同的旋转效果, 并通过数码管将变化的定时时间显示出来。本设计以单片机作为系统的核心控制单元,运用C语言进行编程工作,按照工作流程来实现设计要求的控制直流电机的运行状态。3.2 主程序流程设计

11、直接应用STC89C52的软件方法实现电机驱动和定时时间的设置与变化。其流 程图如图3.1所示。开始时打开电源开关对电路供电,完成系统初始化和显示初始化,数码管显示 0059,倒计时开始,按键循环扫描,设置键按下,倒计时停止,由加减键控制定时 时间,确定键按下,进入中断,倒计时开始,电机启动,结束时,电机停止,显示 恢复初始化。开始J系统初始化显示初始化图3.1系统主单片机总程序框图(包括:实习质量分析、待完善和改进之处和心得体会)设计中单片机STC89C52在工作时,调整定时器TO来达到合适的定时时间。 通过调整L293D电机驱动芯片的A1A2引脚的电平高低切换,实现电机的正反 转。重复使用

12、T0 口定时功能,实现正常的走钟逻辑做倒计时用。由于设计中使 用的是单片机作为核心的控制元件,附以外围电路使本本设计具有功能强、性能 可靠、电路简单、成本低的特点,加上经过优化的程序,使其有很高的智能化水 平。但是在我们设计和调试的过程中, 也发现了一些问题,譬如程序设计水平有 限,实际的电机正反转和倒计时同步很难确切控制,延时与定时冲突无法正常执行,其设计难度远超出我们的设计需求范围。在做实习设计的初期阶段,难度很大,没有头绪。通过求助于老师、理清了 思路。同时,在图书馆里、网上查阅资料,攻克了设计中的道道难题。通过本次 单片机应用实习,我学到了许多东西,知道光靠书本上的东西是不够的,需额外

13、 去查资料。无论是在硬件还是软件设计上, 我都遇到了不少的问题,在克服困难 的过程中,我学到了许多,特别是在课堂上学不到的东西如( PWM)。也锻炼了 我的Altium Designer画图能力,以前学的时候元器件都是给定的只要到库里面 找出名字就可以,只要连线就可以,而这次是根据自己的设计需要去画, 感觉不 同。本次设计我能独立完成,算是有了很大的收获。总的感受有以下几方面:1、通过本次单片机应用实习,我不但对单片机有了更为深入的了解,对一 个课题如何画流程图,编程序等有了一定的认识。2、进一步加强了我的动手能力和运用专业知识的能力,从中学习到如何去 思考和解决问题,以及如何灵活地改变方法去

14、实现设计方案。 特别是深刻体会到 了软件和硬件结合的重要性,以及两者的联系和配合作用。3、让我了解到单片机技术对当今人们生活的重要性。同时这次单片机应用 实习的经历也使我受益匪浅,让我知道做任何事情都应脚踏实地, 刻苦努力地去 做,只有这样,才能做好。1实习报告第ii页附录2实物照片实习报告3 C#include#define uint unsigned int#define uchar unsigned charsbit MOTOR_A2 = P3A6;sbit MOTOR_A1 = P3A7;sbit EN_MOTOR_A = P3A4 ;/uchar code segcode=0x3f,

15、0x06,0x5b,0x4f,0x66,0x6d,0x7d,0x07,0x7f,0x6f;uchar code segcode0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0xf8,0x80,0x90; /0,1,2,3,4,5,6,7,8,9,/uchar code dispbit0x0e,0x0d,0x0b,0x07;uchar code dispbit=0xef,0xdf,0xbf,0x7f;/数码管位选位uchar buffer=0,0,0,0;uint min=59,sec=59;uint status=0;/函数声明void delayMS(uint t);

16、void keyprocess(uchar key);void display。;void timer0();void MotorStart();void delayS(uint b);main()bit keyrelease;uchar buf;uchar keyinput;keyrelease=1;buf=0xff;TMOD=0x01;/T0工作在方式1,16位计数器TH0=0xFC;/定时器0设置延时1ms中断初始值TL0=0x18;TR0=1; IE=0x82;/开定时器0中断status=0; while(1)/键扫描程序 keyinput=P1&0x0f; if(keyinput!

17、=0x0f) delayMS(10); if(keyinput!=0x0f) buf=keyinput; P1=0xff; while(P1!=0xff) P1=0xff; keyprocess(buf);/调用按键处理函数buf=0xff; display。; /延时程序 void delayMS(uint t)晶振频率 12MHz uint i; while(t-) for(i=0;i=3) status = 0;break;case 0x0d:switch(status) /按下加1键,3种模式下加1case 0x01:if(min59) min+;else min=0;break;ca

18、se 0x02:if(sec0) min-;else min=59;break;case 0x02:if(sec0) sec-;else sec=59;break;break;case 0x07: TR0=1;MotorStart();defaultbreak;/数码管显示函数void display。uchar i;/正常计时显示buffer0=min/10; / 显示分的十位buffer1=min%10; / 显示分的个位buffer2=sec/10; / 显示秒的十位buffer3=sec%10; / 显示秒的个位for(i=0;i=1000) /定时1S至ij,以下为时钟的正常走钟逻辑 count=0;sec-;if(sec=0) sec=59;min-;if(min=0&sec=0)P2=0xff;void MotorStart()EN_MOTOR_A = 1;MOTOR_A2 = 1;MOTOR_A1 = 0;delayS(60);EN_MOTOR_A = 0;delayS(60);EN_MOTOR_A = 1;MOTOR_A2 = 0;MOTOR_A1 = 1;delayS(60);void delayS(uint b) 晶振频率 12MHzuint j;while(b-)for(j=0;j2000;j+);第15页

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 科普知识


经营许可证编号:宁ICP备18001539号-1