《基于单片机ULN2016的步进电机控制系统(汇编及C语言程序各一个)》.docVIP

《基于单片机ULN2016的步进电机控制系统(汇编及C语言程序各一个)》.doc

  1. 1、本文档共12页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
《基于单片机ULN2016的步进电机控制系统(汇编及C语言程序各一个)》.doc

图8 总体电路图 1.3.4软件设计 通过分析可以看出,实现系统功能可以采用多种方法,由于随时有可能输入加速、加速信号和方向信号,因而采用中断方式效率最高,这样总共要完成4个部分的工作才能满足课题要求,即主程序部分、定时器中断部分、外部中断0和外部中断1部分,其中主程序的主要功能是系统初始参数的设置及启动开关的检测,若启动开关合上则系统开始工作,反之系统停止工作;定时器部分控制脉冲频率,它决定了步进电机转速的快慢;两个外部中断程序要做的工作都是为了完成改变速度这一功能。下面分析主程序与定时器中断程序及外部中断程序。 (1)主程序设计 主程序中要完成的工作主要有系统初始值的设置、系统状态的显示以及各种开关状态的检测判断等。其中系统初始状态的设置内容较多,该系统中,需要初始化定时器、外部中断;对P1口送初值以决定脉冲分配方式,速度值存储区送初值决定步进电机的启动速度,对方向值存储区送初值决定步进电机旋转方向等内容。若初始化P1=11H、速度和方向初始值均设为0,就意味着步进电机按四相单四拍运行,系统上电后在没有操作的情况下,步进电机不旋转,方向值显示“0”,速度值显示“0”,主程序流程图如图9所示。 (2)定时中断设计 步进电机的转动主要是给电机各绕组按一定的时间间隔连续不断地按规律通入电流,步进电机才会旋转,时间间隔越短,速度就越快。在这个系统中,这个时间间隔是用定时器重复中断一定次数产生的,即调节时间间隔就是调节定时器的中断次数,因而在定时器中断程序中,要做的工作主要是判断电机的运行方向、发下一个脉冲,以及保存当前的各种状态。程序流程图如图10所示。 (3)外部中断设计 外部中断所要完成的工作是根据按键次数,改变速度值存储区中的数据(该数据为定时器的中断次数),这样就改变了步进电机的输出脉冲频率,也就是改变了电机的转速。速度增加按钮S2为INT0中断,其程序流程为原数据,当值等于7时,不改变原数值返回,小于7时,数据加1后返回;速度减少按钮S3,当原数据不为0,减1保存数据,原数据为0则保持不变。程序流程图如图11所示。 1.3.5源程序(汇编、C语言程序各一个) 汇编程序如下: SPEED EQU 10H ;SPEED为转速等级标志,共7级,即1~7 FX EQU 11H ;FX为方向标志 COUNT EQU 12H ;COUNT中断次数标志 ORG 0000H AJMP MAIN ORG 0003H ;外部中断0入口地址,加速子程序 AJMP UP ORG 0013H ;外部中断1入口地址,减速子程序 AJMP DOWN ORG 000BH ;定时器0中断入口地址,控制中断次数来达到控制转速 AJMP ZDT0 ORG 0030H MAIN: MOV SP,#60H MOV TMOD,#01H ;工作于定时、软件置位启动!模式1(16位计时器) MOV TH0,#0CFH MOV TL0,#2CH MOV COUNT,#01H SETB ET0 ;定时/计数器允许中断 CLR IT0 ;外部中断为电平触发方式,低电平有效 CLR IT1 SETB EX0 ;外部允许中断 SETB EX1 SETB EA ;开总中断 MOV R1,#11H ; 四相单四拍运行,共阳数码管方向显示8,速度值显示0 MOV SPEED,#00H MOV FX,#00H XIANS: MOV A,SPEED MOV DPTR,#LED MOVC A,@A+DPTR ;查表获取等级对应数码管代码 MOV P2,A ;第二个数码管显示转速等级 MOV A,FX ;准备判断转向 CJNE A,#11H,ELS MOV P0, #0F9H ;第一个数码管显示1,表示正转 AJMP QD ELS: CJNE A,#00H,ZHENG MOV P0,#0C0H ;第一个数码管显示0,表示不转 AJMP QD ZHENG: MOV P0,#0BFH ;第一个数码管显示-,表示反转 QD: JB P3.4,DD ;P3.4接启动开关K1,P3.4=1时启动 CLR TR0 ;停止定时/计数器 MOV P0,#0C0H ;第一个数码管显示0,表示不转 MOV P2,#0C0H ;第二个数码管显示0,表示转速为0 MOV SPEED,#00H ;重新赋初值 MOV FX,#00H AJMP QD DD: MOV A,SPEED JNZ GO ;A不等于0,即初始速度不为零,则转移到GO CLR TR0 ;停止定时/计数器 AJMP QD GO:

文档评论(0)

ghfa + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档