步进电机转速控制_能源/化工_工程科技_专业资料。山东科技大学电工电子实验教学中心 创新性实验结题报告 实验项目名称 基于 MCS-51 单片机的步进电机速度控制程序设计 姓名 __吴裕浩__ 学号 7 手机 1876
山东科技大学电工电子实验教学中心 创新性实验结题报告 实验项目名称 基于 MCS-51 单片机的步进电机速度控制程序设计 姓名 __吴裕浩__ 学号 7 手机 Email _ 专 业 _ 自动化 班级 _ 2010-1 _ 指导教师及职称 ___张仁彦 开课学期 提交时间 2012 2013 副教授___ _ _ 学年_ 1 _学期 月 14 日 至_2013 年 1 一、实验摘要 从工业化时代到来开始,机电设便被广泛应用,而电动机作为传动中枢也有着很 重要的作用。作为电动机的一种---步进电机其重要性也是不言而喻的,从工业生产中的 自动化设到高精端科技领域,都可以看到有步进电机的存在。 本实验便是基于 MCS-51 单片机的,对其速度的控制。其功能实现为:可以通过键 盘,来实现对步进电机速度的转换(速度档位分为高、中、低三档) ,并通过显示器将实 际速度的大小显示出来。 二、实验目的 1、 通过键盘来实现对步进电机速度的转换, 使步进电机在不同模式下拥有不同的转速, 从而来满足不同的机电要求。 2、三个按键分别对应步进电机高中低档,三个档次的转速有明显的区别。 3、通过显示模块将实际转速显示出来。 三、实验场地及仪器、设和材料: 试验场地:微机原理实验室 仪器及设:PC 机一台(安装有 Keil uVision3 及 STC_ISP_V480 软件) ,单片机试验 箱 四、实验内容 1、实验原理 本实验用到的子模块电路主要有步进电机控制电路、 键盘电路以及数码管显示电路。 步进电机电路示意图如图一所示,该步进电机内部有 4 相绕组,外引 5 根控制线 所示,其中导线V 电源的“+”极,导线V 电源的“-”极。 图1 控制步进电机转速的程序中主要使用了单片机中的定时器中断系统来控制步进电机 的转动, 电机的驱动采用四相八拍的方式, 如表 1 所示。 “+” 表中 表示接电源正极, “-” 表示接电源负极。 表1 电机端子序 号 5 4 3 2 1 电机绕 组相数 A B C D 拍数顺序 4 5 + + - - 1 + - 2 + - - 3 + - 6 + 7 + 8 + - - - - - - 使用中断系统控制步进电机转动的原理是在给定时器赋初值后,定时器开始计时, 当其计时完成时会进入中断,每次进入中断程序都会使当前拍数加一使其进入下一拍, 这样循环往复就会使电机在这八拍的作用下正常旋转。其优点在于使其转速稳定,不会 受到主程序的影响,可以实现较高精度的控制。在本设计的主程序中,循环调用键盘扫 描和显示程序,键盘扫描不断地扫描是否有键按下,若有键按下,则根据键值的不同, 调至相应程序改变定时器的初值,从而使步进电机的转速改变。 1、各电路工作原理: (1)数码管动态显示原理 本设计所用的数码管显示驱动电路如图 2 所示。设计中采用四位数码管,其段码值 通过 P0 口输出,位控信号由 P2 口输出,显示时首先送出段码值再选中相应数码管要是 稳定后,P0 送出下一位段码,P2 选中下一个数码管,再次延时稳定,以此方式继续下一 位显示,直至所有信息显示完成,再次回到起始位置扫描显示,以此完成信息的显示。 图2 (2)键盘电路原理 键盘电路图如图 3。 图 3 键盘电路 本实验中我们采用扫描式键盘,共使用了 K0、K1、K2 和 K3 四个按键,分别控 制电机的低速档、中速档、高速档和暂停。其工作原理是:在键盘扫描时对 C0—C2 三 个口首先全送低电平,检测 R0 口电平信号,若 R0 口为高电平说明无键按下,若其为低 电平,则说明有键按下。当有键按下时,再分别给 C0—C2 三列端口依次送低电平,若 某列送低电平后 R0 再次检测到低电平,则说明此列有键按下,然后程序进行跳转,进入 相应的子程序,重新设定定时器初值,同时改变显示缓冲区的数据。以上便是键盘扫描 的整个工作原理。 (3)总电路图 关于定时器初值的计算如下所示: 本实验为采用定时器 T0,实验中的高档每拍的间隔时间为 1MS。 首先确定定时器初值 N:由于晶振为 12MHz,所以,一个机器周期 T=1us。所以, 计数值 M=t/T=1000/1=1000,,故计数初值 N=65536-1000=64536=FC18H。所以定时器初 值 TH0 赋 0FCH,TL0 赋 18H。 表3 档位 速度 定时时间 计数初值 高 960r/min 1ms TH0=0FCH TL0=18H 中 480r/min 2ms TH0=0F8H TL0=30H 低 96r/min 10ms TH0=0D8H TL0=0F0H 2、软件设计及流程 主程序流程图如下: 开始 状态初始化 调用显示 键盘扫描 Y 有键按下 N 判断键值 更新显示缓存 调整转速 扫描显示流程图如下: 开始 灭码 送位控信号 从显示缓冲取数 查表送段码 稳定显示 N 是否到后一位 Y 返回 本实验程序如下: ORG 0000H SJMP MAIN ORG 000BH LJMP INTT0 MAIN: MOV TMOD,#01H SETB ET0 SETB EA SETB TR0 MOV 50H,#0 MOV 51H,#0 MOV 52H,#0 MOV 54H,#10 MOV 53H,#0 MOV 55H,#0 MOV 56H,#0 MOV 57H,#0 ;状态初始化 ;定时器 T0 中断 ;50H 存放拍数,初始拍数为 0 ;51H,52H 为定时器初值,控制转速 ;53H-57H 为显示缓冲区,显示档位及速度 CLR F0 ASDF: JB F0,QWE ACALL XIANSHI QWE: ACALL SAO SJMP ASDF SAO: MOV P2,#0F0H MOV C,P2.4 JC DONE1 ACALL DELAY MOV C,P2.4 JC DONE1 MOV P2,#0FEH MOV C,P2.4 JC YU SJMP DI MOV P2,#0FDH MOV C,P2.4 JC YU1 SJMP ZHONG MOV P2,#0FBH MOV C,P2.4 JC YU2 SJMP GAO MOV P2,#0F7H MOV C,P2.4 JC DONE1 SJMP TING ;F0 为有键标志 ;调显示程序 ;调扫描程序 ;键盘扫描子程序 ;P2 键盘控制端 YU: YU1: YU2: DI: MOV 51H,#0D8H MOV 52H,#0F0H MOV 53H,#1 MOV 55H,#11 MOV 56H,#9 MOV 57H,#6 SJMP DONE0 ;低档 ZHONG: MOV 51H,#0F8H MOV 52H,#30H MOV 53H,#2 MOV 55H,#4 MOV 56H,#8 MOV 57H,#0 SJMP DONE0 GAO: MOV MOV MOV 51H,#0FCH 52H,#018H 53H,#3 ;中档 ;高档 MOV 55H,#9 MOV 56H,#6 MOV 57H,#0 SJMP DONE0 TING: MOV 51H,#0 MOV 52H,#0 MOV 53H,#0 MOV 55H,#0 MOV 56H,#0 MOV 57H,#0 DONE0: SETB F0 RET DONE1: CLR F0 RET DELAY: MOV DL: MOV DJNZ DJNZ RET R6,#14H R7,#0FFH R7,$ R6,DL ;停止 ;延时去抖 INTT0: PUSH ACC ;定时器中断程序,控制电机转动 PUSH DPH PUSH DPL MOV A,50H //50H MOV DPTR,#TAB1 MOVC A,@A+DPTR MOV P1,A INC 50H MOV A,50H CJNE A,#8,DONE MOV 50H,#0 DONE: MOV TH0,51H //一毫秒 MOV TL0,52H POP DPL POP DPH POP ACC RETI TAB1: DB 0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H XIANSHI: ;显示子程序 MOV R0,#53H ;显示缓冲首址 MOV R2,#01H ;位控初始码(先亮位) LOOPC:MOV A,#0FFH ;共阳 灭码 MOV P0,A MOV A,R2 ;送位控信号 MOV P2,A MOV A,@R0 ;从显示缓冲中取数 MOV DPTR,#TAB MOVC A,@A+DPTR ;查出字形代码 MOV P0,A ;送显示字符段代码 ACALL DELAY1 ;稳定显示信息 INC R0 ;取下一个数 MOV A,R2 JB ACC.4,EXIT ;判断是否送到位? RL A MOV R2,A ;得到下一个位控信号 SJMP LOOPC EXIT:MOV P0,#0FFH RET DELAY1: MOV R3,#0FFH MOV R7,#0FFH DJNZ R7,$ DJNZ R3,$ RET TAB:DB 0C0H,0F9H,0A4H,0B0H,99H,92H,82H,0F8H,80H,90H,0bFH,0FFH ;0,1,2,3,4,5,6,7,8,9,END 2、实验内容 根据实验原理,进行软件编写及实物连接测试,观察实验效果。与预定功能进行对比, 若有差距,则对硬件电路进行检查,对软件程序进行修改,直至与预期要求一致为止。 3、实验步骤 (1)设定各级档位转速,求得每拍之间的延迟时间,根据晶振频率计算其对应的计数 器初值,具体值见表 3。 (2)根据硬件电路编程各功能程序(其中包括键盘扫描、数码管显示以及中断程序) , 编程完成后使用 STC_ISP_V480 将分别将各程序传送至单片机进行调试,观察各功能模 块是否达到理想效果。 (3)模块调试成功后,整合各功能程序编写总程序,完成后将其传送至单片机进行总 体调试。如未达到设计要求,根据具体情况分析并修改程序,然后再次进行硬件调试, 直至达到设计要求。 (4)利用 protel 等电子设计软件,绘制总原理图。 五、实验结果与分析 1、实验现象、数据记录 (1) 当按下 K0 按键时, 电动机开始转动, 转速很低, 转动缓慢, 显示模块显示有 “1-096” 字样。 (2) 当按下 K1 按键时, 电动机开始转动, 转速增加, 转动稍慢, 显示模块显示有 “1-480” 字样。 (3)当按下 K2 按键时,电动机开始转动,转速进一步增加,转动稍快,显示模块显示 有“1-960”字样。 2、对实验现象、数据及观察结果的分析与讨论: (1) 当按下 K0 按键时, 电动机开始转动, 转速很低, 转动缓慢, 显示模块显示有 “1-096” 字样。此时表明通过 K0 键的按下,程序已转入 DI 子程序,对定时器初值进行了相应的 设定,以实现一定时间的延时,从而达到对电动机转速的控制。 观察到得转速为 1.5r/min, 经转速比转换得到其实际转速为 96r/min。 (2) 当按下 K1 按键时, 电动机开始转动, 转速增加, 转动稍慢, 显示模块显示有 “1-480” 字样。此时表明通过 K1 键的按下,程序已转入 ZHONG 子程序,对定时器初值进行了相 应的设定,以实现一定时间的延时,从而达到对电动机转速的控制。观察到得转速为 7.5r/min,经转速比转换得到其实际转速为 480r/min。 (3)当按下 K2 按键时,电动机开始转动,转速进一步增加,转动稍快,显示模块显示 有“1-960”字样。此时表明通过 K2 键的按下,程序已转入 GAO 子程序,对定时器初值 进行了相应的设定,以实现一定时间的延时,从而达到对电动机转速的控制。观察到得转 速为 15r/min,经转速比转换得到其实际转速为 960r/min。 3、主要关键和创新点: 1、对键盘的进行扫描,判断是否有键按下以及具体哪个键按下,以此来进行模式的选择, 从而控制电动机的转速。 2、对速度进行显示,显示的内容稳定清晰。 3、当进行按键操作或者对数码管进行显示的时候不能影响电动机的正常工作。 六、指导老师评语及得分: 指导教师签名: 年 月 日 七、中心意见: 中心主任: 年 月 日
以上信息由无锡惠斯通电机科技有限公司整理编辑,了解更多步进电机,两相步进电机,混合式步进电机信息请访问http://www.huistong.com