精品步进电机转速控制.docx
《精品步进电机转速控制.docx》由会员分享,可在线阅读,更多相关《精品步进电机转速控制.docx(13页珍藏版)》请在冰豆网上搜索。
精品步进电机转速控制
山东科技大学电工电子实验教学中心
创新性实验结题报告
实验项目名称基于MCS-51单片机的步进电机速度控制程序设计
姓名__吴裕浩__学号1627
手机Email490222547@_
专业_自动化班级_2010-1_
指导教师及职称___张仁彦副教授_____
开课学期2012至_2013学年_1_学期
提交时间2013年1月14日
一、实验摘要
从工业化时代到来开始,机电设备便被广泛应用,而电动机作为传动中枢也有着很重要的作用。
作为电动机的一种---步进电机其重要性也是不言而喻的,从工业生产中的自动化设备到高精端科技领域,都可以看到有步进电机的存在。
本实验便是基于MCS-51单片机的,对其速度的控制。
其功能实现为:
可以通过键盘,来实现对步进电机速度的转换(速度档位分为高、中、低三档),并通过显示器将实际速度的大小显示出来。
二、实验目的
1、通过键盘来实现对步进电机速度的转换,使步进电机在不同模式下拥有不同的转速,从而来满足不同的机电要求。
2、三个按键分别对应步进电机高中低档,三个档次的转速有明显的区别。
3、通过显示模块将实际转速显示出来。
三、实验场地及仪器、设备和材料:
试验场地:
微机原理实验室
仪器及设备:
PC机一台(安装有KeiluVision3及STC_ISP_V480软件),单片机试验箱
四、实验内容
1、实验原理
本实验用到的子模块电路主要有步进电机控制电路、键盘电路以及数码管显示电路。
步进电机电路示意图如图一所示,该步进电机内部有4相绕组,外引5根控制线,如图1所示,其中导线5接5V电源的“+”极,导线1、2、3、4按照控制时序接5V电源的“-”极。
图1
控制步进电机转速的程序中主要使用了单片机中的定时器中断系统来控制步进电机的转动,电机的驱动采用四相八拍的方式,如表1所示。
表中“+”表示接电源正极,“-”表示接电源负极。
表1
电机端子序号
电机绕组相数
拍数顺序
1
2
3
4
5
6
7
8
5
+
+
+
+
+
+
+
+
4
A
-
-
-
3
B
-
-
-
2
C
-
-
-
1
D
-
-
-
使用中断系统控制步进电机转动的原理是在给定时器赋初值后,定时器开始计时,当其计时完成时会进入中断,每次进入中断程序都会使当前拍数加一使其进入下一拍,这样循环往复就会使电机在这八拍的作用下正常旋转。
其优点在于使其转速稳定,不会受到主程序的影响,可以实现较高精度的控制。
在本设计的主程序中,循环调用键盘扫描和显示程序,键盘扫描不断地扫描是否有键按下,若有键按下,则根据键值的不同,调至相应程序改变定时器的初值,从而使步进电机的转速改变。
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
480r/min
96r/min
定时时间
1ms
2ms
10ms
计数初值
TH0=0FCHTL0=18H
TH0=0F8H
TL0=30H
TH0=0D8H
TL0=0F0H
2、软件设计及流程
主程序流程图如下:
扫描显示流程图如下:
本实验程序如下:
ORG0000H
SJMPMAIN
ORG000BH;定时器T0中断
LJMPINTT0
MAIN:
MOVTMOD,#01H;状态初始化
SETBET0
SETBEA
SETBTR0
MOV50H,#0;50H存放拍数,初始拍数为0
MOV51H,#0;51H,52H为定时器初值,控制转速
MOV52H,#0
MOV54H,#10;53H-57H为显示缓冲区,显示档位及速度
MOV53H,#0
MOV55H,#0
MOV56H,#0
MOV57H,#0
CLRF0;F0为有键标志
ASDF:
JBF0,QWE
ACALLXIANSHI;调显示程序
QWE:
ACALLSAO;调扫描程序
SJMPASDF
SAO:
;键盘扫描子程序
MOVP2,#0F0H;P2键盘控制端
MOVC,P2.4
JCDONE1
ACALLDELAY
MOVC,P2.4
JCDONE1
MOVP2,#0FEH
MOVC,P2.4
JCYU
SJMPDI
YU:
MOVP2,#0FDH
MOVC,P2.4
JCYU1
SJMPZHONG
YU1:
MOVP2,#0FBH
MOVC,P2.4
JCYU2
SJMPGAO
YU2:
MOVP2,#0F7H
MOVC,P2.4
JCDONE1
SJMPTING
DI:
MOV51H,#0D8H;低档
MOV52H,#0F0H
MOV53H,#1
MOV55H,#11
MOV56H,#9
MOV57H,#6
SJMPDONE0
ZHONG:
MOV51H,#0F8H;中档
MOV52H,#30H
MOV53H,#2
MOV55H,#4
MOV56H,#8
MOV57H,#0
SJMPDONE0
GAO:
MOV51H,#0FCH;高档
MOV52H,#018H
MOV53H,#3
MOV55H,#9
MOV56H,#6
MOV57H,#0
SJMPDONE0
TING:
MOV51H,#0;停止
MOV52H,#0
MOV53H,#0
MOV55H,#0
MOV56H,#0
MOV57H,#0
DONE0:
SETBF0
RET
DONE1:
CLRF0
RET
DELAY:
MOVR6,#14H;延时去抖
DL:
MOVR7,#0FFH
DJNZR7,$
DJNZR6,DL
RET
INTT0:
PUSHACC;定时器中断程序,控制电机转动
PUSHDPH
PUSHDPL
MOVA,50H//50H
MOVDPTR,#TAB1
MOVCA,@A+DPTR
MOVP1,A
INC50H
MOVA,50H
CJNEA,#8,DONE
MOV50H,#0
DONE:
MOVTH0,51H//一毫秒
MOVTL0,52H
POPDPL
POPDPH
POPACC
RETI
TAB1:
DB0F1H,0F3H,0F2H,0F6H,0F4H,0FCH,0F8H,0F9H
XIANSHI:
;显示子程序
MOVR0,#53H;显示缓冲首址
MOVR2,#01H;位控初始码(先亮最低位)
LOOPC:
MOVA,#0FFH;共阳灭码
MOVP0,A
MOVA,R2;送位控信号
MOVP2,A
MOVA,@R0;从显示缓冲中取数
MOVDPTR,#TAB
MOVCA,@A+DPTR;查出字形代码
MOVP0,A;送显示字符段代码
ACALLDELAY1;稳定显示信息
INCR0;取下一个数
MOVA,R2
JBACC.4,EXIT;判断是否送到最高位?
RLA
MOVR2,A;得到下一个位控信号
SJMPLOOPC
EXIT:
MOVP0,#0FFH
RET
DELAY1:
MOVR3,#0FFH
MOVR7,#0FFH
DJNZR7,$
DJNZR3,$
RET
TAB:
DB0C0H,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、当进行按键操作或者对数码管进行显示的时候不能影响电动机的正常工作。
六、指导老师评语及得分:
指导教师签名:
年月日
七、中心意见:
中心主任:
年月日