单片机步进电机课程设计Word文档下载推荐.docx
- 文档编号:22081400
- 上传时间:2023-02-02
- 格式:DOCX
- 页数:17
- 大小:470.80KB
单片机步进电机课程设计Word文档下载推荐.docx
《单片机步进电机课程设计Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《单片机步进电机课程设计Word文档下载推荐.docx(17页珍藏版)》请在冰豆网上搜索。
参
数
1、独立完成设计任务。
2、编程,上机调试。
3、连接硬件实验电路,实现所要求的功能。
4、完成设计,提交课程设计报告。
要
求
1、用8255扩展端口控制步进电机,编写程序输出脉冲序列到8255的PA口,控制步进电机正转、反转、加速、减速。
2、了解步进电机控制的原理。
3、掌握控制步进电机转动的编程方法。
工
作
量
软件编程与硬件调试相结合,绘制设计流程图,并编程进行硬件实现。
考
资
料
1)《微型计算机控制系统》赖寿宏,机械工业出版社(教材)
2)《过程控制系统及仪表》邵裕森巴筱云编(教材)
3)《单片机及应用》李大友,高等教育出版社(教材)
4)《机械量测量》机械工业出版社(教材)
5)自选其他有关资料
周次
应
完
成
内
容
熟悉伟福单片机编程环境
绘制流程图
进行软件编程和软模拟
进行硬件调试
撰写课程设计报告
指导教师签字
基层教学单位主任签字
说明:
1、此表一式四份,系、指导教师、学生各一份,报送院教务科一份。
2、学生那份任务书要求装订到课程设计报告前面。
电气工程学院教务科
设计任务书..........................................................1
第1章步进电机概述................................................5
1.1步进电机的组成:
............................................5
1.2步进电机旋转原理:
.............................................5
1.3步进电机的技术参数与控制........................................6
第2章8255A工作原理...................................................8
2.18255A内部结构............................................8
2.28255A的控制字..................................................9
2.38255A端口的工作方式............................................10
第3章硬件电路的设计..............................................11
3.1总体原理..............................................11
3.2系统复位电路............................................11
3.3时钟电路...................................12
3.4键盘接口电路...................................13
3.5电机与8255A的接口电路..................................13
第4章程序设计....................................................16
4.1程序框图..................................................16
4.2汇编程序....................................................17
第五章心得体会...................................................20
参考文献...........................................................21
摘要
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
步进电机的调速一般是改变输入步进电机的脉冲的频率来实现步进电机的调速,因为步进电机每给一个脉冲就转动一个固定的角度,这样就可以通过控制步进电机的一个脉冲到下一个脉冲的时间间隔来改变脉冲的频率,延时的长短来具体控制步进角来改变电机的转速,从而实现步进电机的调速。
在本设计方案中采用软件延时来控制转速,通过送控制字的顺序来改变电机转,实现电机调速与正反转的功能。
关键词:
单片机步进电机8255A转速控制
第1章步进电机概述
1.1步进电机的组成:
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步进角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点,使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;
同时可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。
以三相步进电机为例,电机转子均匀分布着很多小齿,定子齿有三个励磁绕阻,其几何轴线依次分别与转子齿轴线错开。
0、1/3て、2/3て,(相邻两转子齿轴线间的距离为齿距以て表示),即A与齿1相对齐,B与齿2向右错开1/3て,C与齿3向右错开2/3て。
其内部结构如图1所示。
如A相通电,B,C相不通电时,由于磁场作用,齿1与A对齐,(转子不受任何力以下均同)。
如B相通电,A,C相不通电时,齿2应与B对齐,此时转子向右移过1/3て,此时齿3与C偏移为1/3て,齿4与A偏移(て-1/3て)=2/3て。
如C相通电,A,B相不通电,齿3应与C对齐,此时转子又向右移过1/3て,此时齿4与A偏移为1/3て对齐。
如A相通电,B,C相不通电,齿4与A对齐,转子又向右移过1/3て
这样经过A、B、C、A分别通电状态,齿4(即齿1前一齿)移到A相,电机转子向右转过一个齿距,如果不断地按A,B,C,A……通电,电机就每步(每脉冲)1/3て,向右旋转。
如按A,C,B,A……通电,电机就反转。
由此可见:
电机的位置和速度由导电次数(脉冲数)和频率成一一对应关系,而方向由导电顺序决定。
不过,出于对力矩、平稳、噪音及减少角度等方面考虑。
往往采用A-AB-B-BC-C-CA-A这种导电状态,这样将原来每步1/3て改变为1/6て。
甚至于通过二相电流不同的组合,使其1/3て变为1/12て,1/24て,这就是电机细分驱动的基本理论依据。
不难推出:
电机定子上有m相励磁绕阻,其轴线分别与转子齿轴线偏移て/m,2て/m……(m-1)て/m,て。
并且导电按一定的相序电机就能正反转被控制这是步进电机旋转的物理条件。
只要符合这一条件我们理论上可以制造任何相的步进电机。
1.3步进电机的技术参数与控制
步进电机的三个重要参数是相数、拍数和步距角。
相数:
产生不同对极N、S磁场的激磁线圈对数。
常用m表示。
拍数:
完成一个磁场周期性变化所需脉冲数或导电状态,或指电机转过一个齿距角所需脉冲数,用n表示。
以三相电机为例,有三相三拍运行方式即AB-BC-CA-AB,三相六拍运行方式即A-AB-B-BC-C-CA-A。
电机正反转控制:
当电机绕组通电时序为AB-BC-CA或A-AB-B-BC-C-CA-A为时正转,通电时序为CA-BC-AB或A-CA-C-BC-B-AB-A时为反转。
步距角:
对应一个脉冲信号,电机转子转过的角位移用θ表示。
θ=360度/(转子齿数*运行拍数),以常规二、四相,转子齿为50齿电机为例。
四拍运行时步距角为θ=360度/(50*4)=1.8度(俗称整步),八拍运行时步距角为θ=360度/(50*8)=0.9度(俗称半步)。
步进电机的方向控制
以下以三相六拍的步进电机,具体说明如下:
三相六拍拍控制模型:
控制绕组的通电方式为AB-BC-CA-AB或AB-CA-BC-AB,每拍同时有两相绕组通电,三拍为一个循环,当A、B两相控制绕组同时通电时,转子齿的位置应同时考虑到两对定子极的作用,只有A相极和B相极对转子齿所产生的磁拉力相平衡才是转子的平衡位置。
双三拍运行时的步距角是30°
但双三拍运行时每一拍总有一相绕组持续通电,例如由A、B两相通电变为B、C两相通电时,B相保持持续通电状态,C相磁拉力使转子逆时针方向转动,而B相磁拉力却起有阻止转子继续向前转动的作用。
步进电动机的速度控制
步进电机速度的控制是通过控制单片机发出的步进脉冲的频率来实现。
对于软件脉冲分配方式采用调整两个控制字之间的时间间隔来实现调速;
对于硬件脉冲分配方式则采用定时中断方式来调整脉冲频率从而实现调速。
根据以上所述,控制步进电机速度的方法有两种。
(1)软件延时法:
通过调用标准的延时子程序,改变两控制字之间延时时间来实现。
采用软件延时方法实现速度调节的优点是程序简单,思路清晰,不占用硬件资源,缺点是CPU的等待时间过长,占用大量机时,因此没有实用价值。
(2)定时器中断法。
以805l单片机为例,在中断服务子程序中进行脉冲输出操作,调整定时器的定时常数就可实现脉冲频率的调整,从而实现调速。
这种方法占用CPU时间较少,容易实现,是一种比较实用的调速方法。
第2章8255A工作原理
2.18255A内部结构
8255A是一并行异步通信接口芯片,可实现CPU与外部设备之间的数据通信,其内部结构由四部分组成:
数据端口A、B、C;
A组控制和B组控制;
读/写控制逻辑电路;
数据总线缓冲器,8255A内部结构图如图4所示。
端口A:
包括一个8位的数据输出锁存/缓冲器和一个8位的数据输入锁存器,可作为数据输入或输出端口,并工作于三种方式中的任何一种;
端口B同A,只是不能工作于方式2;
端口C8位的数据可在方式字控制下分为两个4位的端口(C端口上和下),A组控制逻辑控制端口A及端口C的上半部;
B组控制逻辑控制端口B及端口C的下半部,每个4位端口都有4位的锁存器,用来配合端口A与端口B锁存输出控制信号和输入状态信号,不能工作于方式1或2。
和外设相连的端口:
PA7~PA0:
A组数据信号;
PB7~PB0:
B组数据信号;
PC7~PC0:
C组数据信号。
和CPU相连的端口:
RESET:
复位信号,低电平有效。
当RESET信号来到时,所有内部寄存器都被清除,同时3个数据端口被自动设为输入端口;
D7~D0:
8255A的数据线,与系统总线相连;
CS:
芯片选择信号,低电平有效;
RD:
芯片读出信号,低电平有效,当RD有效时,CPU可以从8255A读取输入数据;
WR:
芯片写入信号,低电平有效,CPU可以往8255中写入控制字或数据;
A1、A0:
端口选择信号,8255A内部有3个数据端口和1个控制端口,共4个端口,规定当A1A0的组合为00时,选中A端口;
为01时,选中B端口;
为10时,选中C端口;
为11时,选中控制端口。
2.28255A的控制字
在8086系统中,采用16位数据总线,在进行数据传输时,CPU总是将低8位数据送往偶地址端口,而将高8位数据送往奇地址端口;
反过来,从偶地址端口取得的数据总是通过低8位数据线传送给CPU。
8255A可以通过指令在控制端口中设备控制字来设定它的工作。
控制信号和传输动作的对应关系如图5所示。
控制字分为两类:
一类是芯片各端口的方式选择控制字,它可以使8255A的3个数据端口工作在不同的工作方式。
方式选择控制字总是将3个数据端口分为两组来设定工作方式,即端口A和端口C的高4位作为一组,端口B和端口C的低4位作为一组。
另一类是C端口按位置1置0控制字,它可以使C端口中的任何一位进行置位和复位。
需要特别指出的是,C端口置1置0控制字尽管是对端口C进行操作,但此控制字必须写。
2.38255A端口的工作方式
8255A端口的工作方式分为工作方式0、工作方式1、工作方式2三种。
工作方式0是一种基本输入或输出方式,它适用于无需握手信号的简单输入输出应用场合,端口A、B、C都可作为输入或输出数据使用,输出有锁存而输入无锁存。
其基本特点为:
任何一个端口可作为输入口,也可作为输出口,各端口之间没有规定必然的关系。
各个端口的输入或输出,可以有16种不同的组合,所以可以适用于多种场合。
工作方式1,也称选通的输入/输出方式,在这种方式下,无论是输入还是输出都通过应答关系实现,这时端口A或B用作数据口,端口C的一部分引脚用作握手信号线与中断请求线。
⑴端口A和端口B可分别作为两个数据口工作在方式1,并且任何一个端口可作为输入口或输出口。
⑵如果端口A和端口B只有一个端口工作于方式1,那么端口C中就有3位被规定为配合方式1工作的信号,此时另一个端口可以工作在方式0,端口C中的其他数据位也可以工作在方式0。
⑶端口A和端口B都工作在方式1,那么端口C中就有6位被规定为配合方式1工作的号,剩下的2位,仍可作为输入或输出。
工作方式2,也称选通的双向I/O方式,仅适用于端口A,这时A口的PA7~PA0作为双向的数据总线,端口C有5条引脚用作端口A的握手信号线和中断请求线,而B口和C口余下的3位仍可工作于方式0或1。
第3章硬件电路的设计
3.1总体原理
因为步进电机工作时的驱动电流比单片机端口所能提供的要大得多.单片机要控制电机的运动就不能直接将端口与电机各相相连,必须使用一定的接口电路和驱动电路。
接口电路一般为锁存器,也有使用可编程接口芯片,如8255A。
驱动器多选用大功率复合管。
当然,考虑到实际使用中的干扰和电压安全,一般都要在单片机与驱动器之间使用必要的光电隔离器。
如下图所示
3.2系统复位电路
复位是单片机的初始化操作,只要给RESET引脚加上2个机器周期以上的高电平信号,即可使单片机复位。
除了进入系统的正常初始化之外,当程序运行出错或是操作错误使系统处于死锁状态时,为了摆脱死锁状态,也需要按复位键重新复位。
在系统中,为了实现上述的两项功能,采用常用的按键电平复位电路,如图所示。
从图中可以看出,当系统得到工作电压的时候,复位电路工作在上电自动复位状态,通过外部复位电路的电容充电来实现,只要Vcc的上升时间不超过1ms就可以实现自动上电复位功能。
在本系统中,采用10uF的电容和10kΩ的电阻来实现复位电路。
当系统出错时,直接按开关实现模拟系统上电复位的功能,从而实现系统重新复位启动。
3.3时钟电路
时钟电路是用于产生单片机工作时所必需的时钟信号。
时钟是单片机的心脏,单片机各功能部件的运行都是以时钟频率为基准的,有条不紊地一拍一拍地工作。
时钟频率直接影响单片机的速度,时钟电路的质量也直接影响单片机系统的稳定性。
在本系统中采用内部时钟方式的电路,如图所示。
电路中的电容C1、C2典型值为30±
10pF。
外接代内容的值虽然没有严格的要求,但是电容的大小会影响振荡器的稳定性和起振的快速性。
同时,在系统中采用11.0592MHz的晶体振荡器来产生时钟脉冲。
一方面,可以满足系统在设计时的机器周期的需要;
另一方面,在进行串行口通讯的时候能够提供精准的通讯波特率。
3.4键盘接口电路
一个5X1的单独键盘接于单片机的P1口。
若有键按下,单片机识别按键步骤下:
单片机向P1.0-P1.4送高电平,当没有按键按下时,因为上拉电阻的作用,读P1.0-P1.4数据应为高电平,当有按键按下时,应为产生外部低电平,就会进入外部中断,只要不停扫描P1.0-P1.4口的引脚电平,只要读到是低电平,就进入按键服务程序。
3.5电机与8255A的接口电路
电机驱动电路
步进电机的驱动一般有两种方法,一种是通过CPU直接来驱动,这种方法一般不宜采用,因为CPU的输出电流脉冲是特别小的它不能足以让步进电机的转动;
别一种是通过CPU来间接驱动,就是把从CPU输出的信号进行放大,然后直接驱动或是再通过光电隔离间接来驱动步进电机,这种方法比较安全可靠。
固本次设计应采用CPU间接驱动步进电机。
本驱动电路的主要功能是把8255A输入IN端的5V电压转换成10V电压,以满足步进电机的电压需求。
步进电机驱动电路原理图,如图下所示。
此电路利用三极管的开关特性来构成放大电路,基极电阻较小从以保证三极管处于饱和状态,根据IN输入脉冲信号的不同而在OUT端获得高低电平来带动电机运转。
接线与脉冲分配方式
如上图,8255A的PA.0,PA.2,PA.1,PA.3端口,通过驱动电路分别接步进电机的A,C,B,D,公共端COM接12V电压。
如上图可知,步进电机为4相,工作方式可有
(一)八拍A-AB-B-BC-C-CD-D-DA
(二)四拍A-B-C-D(三)四拍AB-BC-CD-DA三种工作方式,不过实际上考虑到平稳、噪声等因素推荐采用八拍的工作方式。
八拍工作即采用A-AB-B-BC-C-CD-D-DA-A的循坏方式送数据,单字母表示四相里只有一相导通,双字母表示有两相导通。
结合图3可知,要想步进电机转过一个齿距,需连续送完以下八个数据:
0001、0011、0010、0110、0100、1100、1000、1001。
若想步进电机连续转动,则要循坏送这八个数据。
逆序送可让电机反转,控制送脉冲的频率可控制部电机的转速。
想要让步进电机精准的转一圈送多少个数据取决于所使用的步进电机的转子齿数。
假设现有步进电机转子齿数为50齿,则像这样连续送八个数的操作要做50次才可让电机完整的转精准的一圈。
若想四拍A-B-C-D工作方式将以上程序中的含有两个“1”(上面数据中的第1、3、5、7个)的数据去掉即可。
同样四拍AB-BC-CD-DA工作方式将以上程序中的含有一个“1”(上面数据中的第0、2、4、6个)的数据去掉即可。
第四章系统软件程序设计
程序流程图
汇编源程序
modeequ082h
contrlequ08003h
ctlequ08000h
Astepequ01h
Bstepequ02h
Cstepequ04h
Dstepequ08h
dly_cequ60h
org0h
step:
mova,#mode
movdptr,#contrl
movx@dptr,a
movdptr,#8002h
mova,#0
movx@dptr,a
movdly_c,#10h
jmploop1
;
单/双八拍工作方式
loop:
movdptr,#ctl
mova,#Astep
movx@dptr,a
calldelay
mova,#Astep+Bstep
mova,#Bstep
mova,#Bstep+Cstep
movx@dptr,a
mova,#Cstep
mova,#Cstep+Dstep
mova,#Dstep
mova,#Dstep+Astep
mova,dly_c
deca;
提高转速
cjnea,#1,nn1;
最快速度
inca
nn1:
movdly_c,a
ljmpLoop
;
双四拍工作方式
loop1:
movdptr,#ctl
mova,#Astep+Bstep
mova,#Bstep+Cstep
mova,#Cstep+Dstep
mova,#Dstep+Astep
deca
cjnea,#2,nn2
nn2:
jmploop1
loop2:
;
单四拍工作方式
mova,#Dstep
deca
cjnea,#3,nn3
nn3:
jmploop2
delay:
延时
movr6,dly_c
dd1:
movr7,#0
djnzr7,$
djnzr6,dd1
ret
end
第五章心得体会
通过这次的计算机控制技术的课程设计,我对步进电动机有了深入的了解,平时我们接触的电动机主要是直流电动机和交流电动机,很少见到步进电动机,所以对于步进电动机比较陌生。
通过老师指导,然后自己在课后翻阅书籍和上网,搜集到了不少有关步进电动机的知识。
通过钻研这些知识,我总算对步进电机有了认识,但是这离课程设计需要掌握的知识相差甚远,为了缩短这种差距,我只能不断的向老师和同学请教,然后仔细的揣摩。
在这次课程设计中,通过用单片机控制步进
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 单片机 步进 电机 课程设计