专业文档数控步进电机docWord格式文档下载.docx
- 文档编号:21956986
- 上传时间:2023-02-01
- 格式:DOCX
- 页数:23
- 大小:215.30KB
专业文档数控步进电机docWord格式文档下载.docx
《专业文档数控步进电机docWord格式文档下载.docx》由会员分享,可在线阅读,更多相关《专业文档数控步进电机docWord格式文档下载.docx(23页珍藏版)》请在冰豆网上搜索。
(4)根据事先设定,分别以4拍、8拍模式运行;
(5)通过按SW1键暂停步进电机运行(此时数码显示暂停),松手步进电机继续运行。
其键盘输入数字排列如图2所示:
1
2
3
4
5
6
7
8
9
A
B
C
D
E
F
00
01
02
03
04
05
06
07
08
09
0A
0B
0C
0D
0E
0F
键盘内码
键盘
图2键盘输入数字排列图
各个按键与其功能对应关系如表1所示:
0~9
SW1
SW2
数字键
正逆转启动键
点动执行键
返转设定键
1速度设定键
2速度设定键
8拍模式设定键
暂停键
复位键
表1键盘功能对照表
现在说明如下:
“0~9”键:
为数字键,用来预先设定步进电机转动的圈数。
“A”键:
A键为执行键,按A,则步进电机根据先前设定,执行运转。
“B”键:
点动直行键。
按“B”键则电机点动运行,松开则停止转动。
“C”键:
设定正反转键。
按“C”键则P3.0LED亮,表示反转,再按P3.0熄为正转,再按P3.0亮为反转。
“D”键:
速度1设定键,按D,则速度显示数码管显示1。
“E”键:
速度2设定键,按E,则速度显示数码管显示2。
系统默认速度0,此时速度显示数码管显示0。
“F”键:
设定8拍模式设定键。
按F则设定8拍运行模式。
P3.4绿灯亮,表示8拍模式,再按绿灯熄,表4拍模式。
如此循环。
“SW1”键:
暂停键,按INT1,步进电动机暂停,圈数显示数码管在当前显示的圈数下停下,松手则步进电机继续运行。
“SW2”键:
复位键。
用来急停步进电机
数控步进电机驱动系统软件总体框图如图3所示:
图3数控步进电机软件系统框图
传统的步进电机驱动控制系统一般采用模拟电路控制,其电路复杂、功能较为单一,控制也不够灵活。
而采用单片机控制的步进电机驱动控制系统具有线路简单、控制灵活、成本较低等诸多优点。
以AT89C51为控制核心的步进电机及驱动系统框图如图4所示:
图4数控步进电机总体框图
第二章数控步进电机硬件系统设计
2-1数控步进电机硬件系统设计应考虑的问题
硬件设计需考虑下列几点:
(1)尽可能选择典型电路
(2)系统的扩充与外围装置,应充分满足应用系统的要求,并留一些扩充槽,以便进行二次开发。
(3)硬件结构应结合应用软件一并考虑。
软件有执行的功能尽可能由软件来执行,以简化硬件结构。
但必须注意,由软件执行硬件的功能,其响应时间比直接使用硬件要长,且占用CPU时间。
(4)整个系统器件尽可能做到性能匹配。
(5)可靠性及抗干扰设计是硬件设计极其重要的部分,包括器件选择、电路板布线、通道隔离等。
(6)单片机微处理器外接电路较多时,必须考虑其驱动能力,驱动能力不足时,系统工作不可靠。
解决办法是增加驱动能力,或减少IC功耗,降低总线负载。
2-2系统各部分硬件电路介绍
本数控步进电机驱动系统硬件电路由本系统的硬件设计包括:
最小单片机系统、键盘输入电路、数字驱动与显示电路、步进电机及其驱动电路等,下面一一进行阐明。
2-2-1单片机AT89C51最小系统
AT89C51特点:
(1)本数控步进电机驱动系统以AT89C51为控制核心,这样一来,大大地简化;
了电路。
在单片机的选择上,我们采用了AT89C51单片机。
AT89C51单片机是一种低功耗/低电压、高性能的8位单片机。
片内带有一个4KB的Flash可编程、可擦除只读存储器。
它采用了CMOS工艺和ATMEL公司的高密度非易失性存储器技术,而且其输出引脚和指令系统都与MCS—51兼容。
片内的Flash存储器允许在系统内改编程或用常规的非易失性存储器来编程。
其主要性能有以下几个方面:
在开发过程中,采用内部Flash存储器,可以十分容易进行程序的灌制,这样以来就大大缩短了系统的开发时间。
提高了系统的效率,具我们了解目前AT89C51已成为51系列单片机设计采用的主流产品。
(2)静态时钟方式:
AT89C51单片机采用了静态时钟方式,可以节省电能
(3)AT98C51和8051插座兼容:
AT89C51的引脚同8051的引脚一样的,所以我们在取代8051时,可以直接进行代换,这样以来,大大方便了使用者,原有8051的资源我们可以直接加以利用。
(4)可进行反复系统试验:
用AT89C51单片机设计步进电系统时,我们可利用其反复电擦除功能,这样一来,大大节省了我们开发系统的时间和经费。
这样可以保证我们的系统设计达到最优。
其管脚图如图5所示:
图589C51的管脚图
其各个引脚功能如下:
(1)电源引用:
Vcc(40脚):
供电源+5V。
Vcc(20脚):
接地线。
(2)时钟电路引脚:
XTAL2(18脚)和XTAL(19脚)。
利用内部时钟电路时,于XTAL1与XTAL2之间接晶体振荡器,XTAL1为放大电路输入端,XTAL2为输出端。
在采用外部时钟时,XTAL1端接地,XTAL2端接外部输入时钟脉冲。
(3)控制信号引脚:
RST/VPD(9脚):
接复位电路可实现复位;
接+5V备用电源,当断电时,RAM中数据不丢失。
ALE/PROG(30脚):
访问片外存储器时,ALE输出作低位地址锁存允许控制;
在对89C51片内EPROM编程(固化)时,此脚用于输入编程脉冲(PROG)。
PSEN(29脚):
访问片外程序存储器时,此脚输出负脉冲作为读选通信号。
EA(31脚):
该脚具有双功能。
EA控制CPU执行程序,当EA端接高电平时,程序地址小于4KB访问片内程序存储区;
若超出4KB地址,则自动执行片外程序存储器程序。
当EA端接低电平时,EPU直接访问片外存储器。
(4)输入/输出口引脚:
89C51共4个8位I/O口,占32个引脚。
PO口(PO.0~PO.7)为39~32脚。
P1口(P1.1-P1.7)为1~8脚。
P2口(P2.0~P2.7)为21~28脚。
P3口(P3.0~P3.7)为10~17脚。
AT89C51内部总体框图如图6所示:
图689C51内部功能图
2-2-2振荡电路:
本单片机系统的振荡电路如图7所示:
图7振荡电路
XTAL1为振荡电路的输入端,而XTAL2为振荡电路的输出端,单片机系统时钟是利用其内部的振荡电路在XTAL1T和XTAL2引脚上外接石英晶体振荡器(简称晶振),使内部振荡器产生自激振荡而产生的,晶振频率可以在1.2~12MHz之间任选,电容可以在5~30pF之间选择。
在本系统中,振荡电路晶振振荡频率为12M,经过2分频后,作为系统的时钟信号,在二分频的基础上再6分频产生机器周期信号,这样本系统一个周期为1微秒。
2-2-3中断系统:
中断系统是为使处理机具有对外界异步事件的处理能力而设置的。
当中央处理机CPU正在处理某件事的时候外界发生了紧急事件请求,要求CPU暂停当前的工作,转而去处理这个紧急事件。
处理完以后,再回到原来被中断的地方,继续原来的工作,这样的过程称为中断。
实现这种功能的部件称为中断系统,请示CPU中断的请求源称为中断源。
当几个中断源同时向CPU请求中断,要求为它服务时,这就存在CPU优先响应那一个中断源请求的问题。
优先处理最紧急事件的中断请求源,即规定一个中断源有一个优先级别。
CPU总是先响应级别最高的中断请求。
AT89C51单片机提供了5个中断源,其中两个为外部中断源,由INT0、INT1(P3.2、P3.3)输入;
两个为片内定时器/计数器溢出进产生的中断请求(用TF0、TF1做标志);
另一个为片内串行口产生的中断请求(TI或RT)。
这此中断请求源分别由MCS-51的特殊功能寄存器TCON和SCON的相应位锁存。
中断的允许和禁止由中断允许寄存器(IE)控制。
中断允许寄存器的字节地址为0A8H,可位导址,其格式如下:
D7D6D5D4D3D2D1D0
EA
ES
ET1
EX1
ET0
EX0
IE
本系统用到的中断为外部中断1
外部中断电路:
图8外部中断电路
本系统的外部中断电路的作用是实现步进电机的暂停。
通过按按按键SW1步进电机暂停,数码显示管显示数字也暂停,再按按键SW1,步进电机继续运行。
外中断程序及说明如下:
外中断初始化:
org0036h
ajmpi1;
暂停外中断
SETBea;
允许中断请求
SETBex1;
外部中断1请求
SETBPX1;
令外中断1为高优先
CLRIT1;
触发方式为电平触发
暂停外中断:
i1:
pusha;
保护现场
pushdph;
数据指针高8位
pushdpl;
数据指针低8位
mova,r3;
把R3内的数据存入A后压入栈
pusha
mova,r0;
把R0内的数据存入A后压入栈
pusha
mova,30h;
把所转圈数的个位存入A后压入栈
mova,31h;
把所转圈数的十位存入A后压入栈
mova,32h;
把最终显示转数数值存入A后压入栈
MOVP2,#0FFH;
使电机停止
de02s:
MOV33H,#02H;
延时
de1:
mov34H,#200
de2:
mov35H,#126
de3:
djnz35H,de3
djnz34H,de2
djnz33H,de1
popa;
恢复现场
mov32h,a
popa
mov31h,a
mov30h,a
movr0,a
movr3,a
popdpl
popdph
reti;
返回主程序
2-2-4复位电路:
MCS-51单片机的复位条件是在RST端出现正脉冲,并能保持10ms以上的高电平,其复位电路一般采用上电复位和开关复位两种形式,本系统复位如图9所示:
图9系统复位电路
在本系统中C选用22μF、R选用1KΩ、R1选用200Ω。
复位便有效。
系统复位后,各专用寄存器的初始状态如表2所示:
寄存器
内容
PC
0000H
TMOD
00H
TCON
TH0
PSW
TL0
SP
07H
TH1
DPTR
TL1
P0~P3
0FFH
SCON
IP
(xxx00000B)
SBUF
不定
(0xx00000B)
PCON
(0xxxxxxxB)
表2MCS-51单片机复位后各内部寄存器的状态
2-2-5键盘输入电路:
电路说明:
矩阵式键盘适用于按键数量较多的场合,它由行线和列线组成,按键位于行、列的交叉点上,如图10所示,为一个4×
4的行、列结构可以构成一个有16个按键的键盘。
很明显,在按键数量较多的场合,矩阵键盘与独立式按键键盘相比,要节少很多的I/O口。
图10键盘输入电路图
机械按键的抖动消除
按键按下过程,列线的状态如图11所示:
图11键盘抖动示意图
有关键盘的扫描与键值表将在后面软件部分介绍。
2-2-6数字显示与驱动电路:
数码管:
LED数码管的外观如图12(a)所示,引脚及笔段排列如图(b)所示,其中a~g段用于显示数字、字符的笔画,dp显示小数点,而3、8引脚连通,作为公共端。
每一笔段是1个LED发光二极管。
当二极管负极接地时,若在它的正极接上高电平,就可使它发光。
1英寸以下的LED数码管内,每个LED发光二极管导通压降为1.2V~2.5V;
而1英寸及以上LED数码管的每一笔段由多个LED发光二极管以串、并联方式连接而成,笔段导通电压与笔段内包含的LED发光二极管的数目和连接方式有关。
在串联方式中,确定电源电压Vcc时,每个LED工作电压通常以2V计算。
图12数码管示意图
根据LED数码管内各笔段LED发光二极管的连接方式,可以将LED数码管分为共阴极和共阳极两大类。
我们使用的是共阳极LED数码管,所有笔段的LED发光二极管的正极连在一起,如图(c)所示。
7447:
在本系统中,我们使用了BCD七段字形译码器74LS47,现在介绍如下:
“二一十进制”的BCD码要在数码管上显示出十进制,就必须先把BCD码变换成七段字形数码所要求的笔划代码。
我们把能够将BCD码变换成七段字形代码;
并使数码管显示出十进制的集成电路叫做七段字形译码器。
图13就是74LS47型BCD七段译码器的外引线排列。
表3是七段字形译码器功能的真值表。
DCBA为译码器的输入端,a~g为笔划代码输出端,接向共阴极七段数码管的对应阳极端。
图1374LS47型BCD七段译码器的外引线排列
数字
输入
输出
b
c
d
e
f
g
表3七段字形译码器功能的真值表
转动圈数字显示电路如图14所示:
图14数码驱动与显示电路图
数字显示程序如下:
mova,20h;
取码值暂存入20H
xcha,30h;
现按键值存入30H
xcha,31h;
旧30H地址的值存入31H
mova,31h;
将30H,31H合并为两位数
swapa;
31H为十位数
orla,30h;
加30H个位数
mov32h,a;
存入32H地址
把A里面的高四位和低四位交换
movp0,a;
输出至P0显示
jmpl1;
返回到键盘扫描
注:
转动圈数所显示的值为数字键所键入值。
2-2-7步进电机驱动电路
一般电动机都是连续旋转,而步进电动却是一步一步转动的,故叫步进电动机。
每输入一个冲信号,该电动机就转过一定的角度(有的步进电动机可以直接输出线位移,称为直线电动机)。
因此步进电动机是一种把脉冲变为角度位移(或直线位移)的执行元件。
步进电机必须加上驱支电路才能转动,驱动电路的信号输入端必须输入脉冲信号,若无脉冲输入时,转子保持一定的位置,维持静止状态;
反之,若加入适当的脉冲信号,转子则会以一定的角度(称为步角)转动。
所以如果加入边疆脉冲时,则转子旋转的角度与脉冲频率成正比。
本系统步进电机的步距角为15度,即一周为360度,需要24步进数才能完成1转。
改变线圈励磁的顺序,可以比较容易地改变电机的转动方向。
本电路是以AT98C51的P2低四位来推动7404,以控制励磁信号的ON/OFF。
若电动机所接负载较大,可改以达灵顿管对电流放大。
步进电动机驱动电路如图15所指示,说明如下:
(1)89C51输出端口每一位所能提供的电流太小,故需加驱动器才足以驱动步进电动机。
由于没有外加负载,所以仅
用一个7404来放大。
7404:
六反相器各门电路之间在逻辑上是完全独立的,仅电源供电线路公用。
=A如图15所示:
图15六反相器7404
(2)由于线圈的特性是反抗着电流的变化。
当Q1ON时,电感L产生一反电势阻止电流增加,步进电动机造成高速特性不良;
当Q1OFF时,电流不会马上消失,此时反电势E=L
,将产生一极高的感应电压,若直接加于Q1的集电极将使Q1崩溃而烧毁。
(3)接上二极管D以消除反电势保护Q1。
当Q1ON时,D为逆向偏压,呈高阴抗,对线路无影响;
当Q1OFF时,只要L的感应电压超过0.7V,D就ON,提供L一个放电回路。
图16为步进电机驱动电路图:
图16步进电动机驱动电路图
第三章数控步进电机软件设计
3-1步进电机软件设计概述
在系统软件设计时,应根据系统软件功能要求,将系统软件分成若干个相对独立的部分,并根据它们的联系和时间上的关系,设计出合理的软件总体结构。
通常在编制程序前先根据系统输入和输出变量建立起正确的数学模型,然后画出程序流程框图,要求流程框图结构清晰、简捷、合理,画流程框图时还要对系统资源作具体的分配和说明。
编制程序时一般采用自顶向下的程序设计技术,先设计监控程序再设计各应用程序模块。
各功能程序应模块化、子程序化,这样不仅便于调试、链接,还便于个性和移植。
在进行应用系统的总体设计时,软件设计和硬件设计应统一考虑,相结合进行。
当系统的电路设计定型后,软件的任务也就明确了。
下图为步进电机软件系统设计流程图及系统框图:
图17步进电机软件系统设计流程图
图18数控步进电机软件系统框图
3-2延时程序设计
延时程序在单片机汇编语言程序中使用非常广泛。
设计程序的关键是计算延时时间。
延时程序一般采用循环程序段两个因素来确定延时时间。
对于循环程序段来讲必须知道每一条指令的执行时间,这里涉及到几个非常重要的概念——时钟周期、机器周期和指令周期。
时钟周期T时钟是计算机基本时间单位,同单片机使用的晶振频率有关。
我们在设计中所用的晶振频率为12MHz,则f=12MHz,那么T时钟=1/f=1/12M=83.33ns。
机器周期T机器是指CPU完成一个基本操作所需要的时间,机器周期的计算方法:
T机器=12T时钟=83.33ns×
12=1μs。
以下是1s的延时设计:
Time:
MOVR0,#100H;
延时1s
Time2:
MOVR1,#20H;
延时10ms
Time1:
MOVR2,#7Dh;
延时0.5ms
Time0:
NOP
NOP
DJNZR2,Time0
DJNZR1,Time1
DJNZR0,Time2
在这也可用DJNZRn,$代替NOP做空操作,在本系统的软件系统中,消除键盘抖动中,我们采用了延时程序。
3-3键盘消除抖动
如果按键较多,硬件消抖将无法胜任,因此常采用软件的方法进行消抖在第一次检测到有键按下时,等待一段延时20ms的子程序后再确认该键是否仍然保持闭合状态,如果保持闭合状态则确认为真正有键按下,从而消除了抖动的影响。
根据机械键盘的特性,抖动的时间在20—30毫秒之间。
所以,一般在判断到有可能是按键按下之后,再延时20—30毫秒,再判断,这时已经是键盘按下的稳定时期。
——没有抖动了!
!
keyin:
movr2,#4H;
消除抖动(20ms的延时)
d3:
movr7,#100H;
(5ms的延时)
d2:
movr6,#246H
djnzr6,$
djnzr7,d2
djnzr2,d3
d4:
mova,p1;
读入键值
xrla,r4;
比较刚才键盘值是否相同,相同表未放开
jzd4
3-4键盘动态扫描:
行扫描法的过程是:
先使输出口P1=0f7h,从行开始扫,此时P1.0、P1.1、P1.2、P1.3=1110,接着移一位P1.0、P1.1、P1.2、P1.3=1101,如此一位位的扫,扫完一行后转到下一列。
扫描完四列后则返回到第一列从新扫描,当有键按下时则P1.4、P1.5、P1.6、P1.7必有一位为0,如按下“0”键时,则读到的P1.4、P1.5、P1.6、P1.7=1110。
然后再通过键盘编码读入按键值
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 专业 文档 数控 步进 电机 doc