下载
加入VIP
  • 专属下载特权
  • 现金文档折扣购买
  • VIP免费专区
  • 千万文档免费下载

上传资料

关闭

关闭

关闭

封号提示

内容

首页 单片机控制直流电机正反转

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

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

任徐引
2017-09-18 0人阅读 举报 0 0 暂无简介

简介:本文档为《单片机控制直流电机正反转doc》,可适用于高等教育领域

单片机控制直流电机正反转目录第章总体设计方案总体设计方案软硬件功能分析第章硬件电路设计单片机最小系统电路设计直流电机驱动电路设计数码管显示电路设计独立按键电路设计系统供电电源电路设计直流稳压电路中整流二极管的选取:直流稳压电路中滤波电容的选取:第章系统软件设计软件总体设计思路主程序流程设计附录总体电路图附录实物照片附录C语言源程序第章总体设计方案总体设计方案早期直流传动的控制系统采用模拟分离器件构成由于模拟器件有其固有的缺点如存在温漂、零漂电压构成系统的器件较多使得模拟直流传动系统的控制精度及可靠性较低。随着计算机控制技术的发展微处理器已经广泛使用于直流传动系统实现了全数字化控制。由于微处理器以数字信号工作控制手段灵活方便抗干扰能力强。所以全数字直流调速控制精度、可靠性和稳定性比模拟直流调速系统大大提高。所以本次实习采用了驱动芯片来驱动直流电机并运用单片机编程控制加以实现。系统设计采用驱动芯片来控制的所以控制精度和可靠性有了大幅度的提高并且驱动芯片具有集成度高、功能完善的特点从而极的大简化了硬件电路的设计。图直流电机定时正反转方案软硬件功能分析本次实习直流电机控制系统以STCC单片机为控制核心由按键输入模块、LED显示模块及电机驱动模块组成。采用带中断的独立式键盘作为命令的输入单片机在程序控制下定时不断给LD直流电机驱动芯片发送PWM波形H型驱动电路完成电机正反转控制同时单片机不停的将变化的定时时间送到LED数码管完成实时显示。电路如图所示。直流电机驱动电路设计单片机最小系统电路设计性负载继电器电磁阀直流双极步进和马达也可以给其他高电流高电压提供电双向驱动电流高达毫安电压是从V至V的。两个设备是专为驱动等感第章硬件电路设计图单片机最小系统单片机最小系统设计是单片机应用系统设计的基础。STCC单片机最小系统图直流电机驱动电路LD是提供双向驱动电流高达A电压是从V至V的LD提供源负载。兼容所有的TTL输入。每个输出都是推拉式驱动电路与达林顿三极管和伪达林源。启用,EN驱动器和,EN驱动器。当使能输入为高电平时相关联的驱动器被启用和他们的输出处于活动状态并在其输入端的同相。当使能输入为低这些驱动器被禁用其输出关闭在高阻抗状态。【PS:,EN为和的使能端(高电平使能),EN同理】用适当的数据输入端每对驱动程序的形式一个完整的H桥可逆驱动器适用于电磁阀或电机应用。LD外部输出为高速钳位二极管应使用电感的瞬态抑制。VCC和VCC分开提供逻辑输入以尽量减少设备功耗。LD的工作温度是从C至C图LD外部引脚排列图表真值表第页图逻辑图电机驱动电路组要是由LD芯片组成单片机P,P,P输出的信号经过LD芯片后直接与直流电机相连从而控制直流电机的运行。其中VCC接V电源VCC接V电源。数码管显示电路设计本设计利用数码管作为显示单元采用动态显示技术电路如图所示。图显示电路电路的接法决定了必须采用逐位扫描显示方式。即从段选口送出某位LED的字型码然后选通该位LED并保持一段延时时间。然后选通下一位直到所有位扫描完。独立按键电路设计独立式键盘的按键相互独立每个按键接一根IO口线一根IO口线上的按键工作状态不会影响其它IO口线的工作状态。因此通过检测IO口线的电平状态即可判断键盘上哪个键被按下。图独立按键电路系统供电电源电路设计本系统需要采用V电源和V电源所采用的电源电路是由整流电路和三端稳压器组成的。电路输出电压和最大输出电流决定于所选三端稳压器。其电源电路如图所示。图V和V电源供电电路直流稳压电路中整流二极管的选取:U(AV)Usintd(t)π()电压其中U为副边解得U(AV)UUπ()实现了全波整流电路他将U的由于整流桥电路值是半波整流电路的两倍。负半周也利用起来所以在变压器副边电压有效值相同的情况下输出电压的平均输出电流的平均值(即负载电阻中的电流平均值)Io(AV)Uo(AV)URLRL()在单相桥式整流电路中因为每只二极管只在变压器副边电压的半个周期通过电流所以每只二极管的平均电流只有负载电阻上的电流的平均值的一半即Uo(AV)URLRL与半波整流电路中的平均电流相同。Io(AV)()二极管所能承受的最大反向电压URmaxU()考虑到电网电压的波动范围为在实际选用二极管时应至少有的余量选择最大整流电流IF和最高反向工作电压URM分别为Io(AV)URLURMUIF()()直流稳压电路中滤波电容的选取:RLUO(AV)IL(AV)UO(A:输出电压的平均值V)电流的平均值IL(AV):负载TTC(~当C(,)时UO(AV)U。RLRL由于采用电解电容考虑到电网电压的波动范围为点解电容的耐压值应大于U。第章系统软件设计软件总体设计思路经过前几章的设计工作系统的硬件电路设计已经完成了。然而对于一个完整的设计系统来说只有硬件电路的设计完成是不够的它必须通过软件编程来实现系统工作的控制功能从而才能实现电路应有的系统功能。单片机系统的软件设计主要使用汇编语言或高级语言。汇编语言与系统硬件的关系密切可方便地实现诸如中断管理以及模拟数字量的输入输出等功能具有占用系统资源小、执行速度快的特点但是对复杂的大型应用系统其代码可读性差并不利于升级和维护。高级语言的代码效率和长度都不如汇编语言但其结构清晰、可读性好、开发周期短、有极强的可移植性在多数应用方面执行效率与汇编语言的差距也不大近年来得到了极为广泛的应用。而C语言既有高级语言的各种特点又可对硬件进行操作并可进行结构化程序设计。用C语言编写的程序较容易移植可生成简洁、可靠的目标代码用C语言进行单片机计算机开发已经是必然的发展趋势。本设计的整体思路为:主程序中循环的调用按键程序通过按键从而使单片机输出变化的定时时间和控制电机正反转从而控制直流电机达到不同的旋转效果并通过数码管将变化的定时时间显示出来。本设计以单片机作为系统的核心控制单元运用C语言进行编程工作按照工作流程来实现设计要求的控制直流电机的运行状态。主程序流程设计直接应用STCC的软件方法实现电机驱动和定时时间的设置与变化。其流程图如图所示。开始时打开电源开关对电路供电完成系统初始化和显示初始化数码管显示倒计时开始按键循环扫描设置键按下倒计时停止由加减键控制定时时间确定键按下进入中断倒计时开始电机启动结束时电机停止显示恢复初始化。图系统主单片机总程序框图实习总结附录总体电路图附录实物照片附录C语言源程序#includeregh#defineuintunsignedint#defineucharunsignedcharsbitMOTORA=P^sbitMOTORA=P^sbitENMOTORA=P^ucharcodesegcode={xf,x,xb,xf,x,xd,xd,x,xf,xf}ucharcodesegcode={xc,xf,xa,xb,x,x,x,xf,x,x},,,,,,,,,,ucharcodedispbit={xe,xd,xb,x}ucharcodedispbit={xef,xdf,xbf,xf}数码管位选位ucharbuffer={,,,}uintmin=,sec=uintstatus=函数声明voiddelayMS(uintt)voidkeyprocess(ucharkey)voiddisplay()voidtimer()voidMotorStart()voiddelayS(uintb)main(){bitkeyreleaseucharbufucharkeyinputkeyrelease=buf=xffTMOD=xT工作在方式,位计数器TH=xFC定时器设置延时ms中断初始值TL=xTR=IE=x开定时器中断status=while()键扫描程序{keyinput=Pxfif(keyinput!=xf){delayMS()if(keyinput!=xf){buf=keyinputP=xffwhile(P!=xff)P=xffkeyprocess(buf)调用按键处理函数buf=xff}}display()}}延时程序voiddelayMS(uintt)晶振频率MHZ{uintiwhile(t)for(i=ii)}按键处理函数voidkeyprocess(unsignedcharkey)键值处理正常计时设置时分秒{switch(key){casexd:casexb:switch(status)按下减键{casex:if(min)minelsemin=breakcasex:if(sec)secelsesec=break}switch(status)按下加键种模式下加{casex:if(min)minbreakcasex:if(sec)secelsemin=casexe:status按下设置键TR=if(status=)status=breakelsesec=break}breakbreakcasex:TR=MotorStart()default:break}}数码管显示函数voiddisplay(){uchari正常计时显示{buffer=min显示分的十位buffer=min显示分的个位buffer=sec显示秒的十位buffer=sec显示秒的个位for(i=ii){P=segcodebufferiP=dispbitidelayMS()防止数码管显示的时候闪动P=xff}}}定时器中断函数voidtimer()interruptusing{staticuintcountTH=xFC定时器设置初始值ms中断初始值TL=xTR=count正常计时if(count=)定时S到以下为时钟的正常走钟逻辑{count=secif(sec==){T中断服务函数第二组工作寄存器sec=minif(min==sec==){P=xff}}}}voidMotorStart(){}voiddelayS(uintb)晶振频率MHZ{uintjwhile(b)for(j=jj)}ENMOTORA=MOTORA=MOTORA=delayS()ENMOTORA=delayS()ENMOTORA=MOTORA=MOTORA=delayS()

用户评价(0)

关闭

新课改视野下建构高中语文教学实验成果报告(32KB)

抱歉,积分不足下载失败,请稍后再试!

提示

试读已结束,如需要继续阅读或者下载,敬请购买!

文档小程序码

使用微信“扫一扫”扫码寻找文档

1

打开微信

2

扫描小程序码

3

发布寻找信息

4

等待寻找结果

我知道了
评分:

/13

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

VIP

在线
客服

免费
邮箱

爱问共享资料服务号

扫描关注领取更多福利