微机课程设计步进电机控制.docx
- 文档编号:7350943
- 上传时间:2023-01-23
- 格式:DOCX
- 页数:18
- 大小:451.69KB
微机课程设计步进电机控制.docx
《微机课程设计步进电机控制.docx》由会员分享,可在线阅读,更多相关《微机课程设计步进电机控制.docx(18页珍藏版)》请在冰豆网上搜索。
微机课程设计步进电机控制
信息与电气工程学院
微机课程设计报告
设计题目:
步进电机控制系统
专业:
通信工程
班级:
姓名:
学号:
指导老师:
目录
1.设计任务与要求……,.…………………………………………………………3
1.1引言………………………………………………………………………3
1.2设计目的…………………………………………………………………3
1.3设计内容…………………………………………………………………3
1.4设备器材与芯片…………………………………………………………4
2.总体设计方案与说明…………………………………………………………..4
2.1设计思想…………………………………………………………………4
2.2实验原理说明……………………………………………………………4
3.问题分析与解决方案…………………………………………………………..5
3.1实验设计前后面临的问题分析…………………………………………...5
3.1.1芯片的选择问题…………………………………………………..5
3.1.2芯片的连接与使用问题…………………………………………..5
3.1.3程序的编写的问题………………………………………………..6
3.2问题的解决方案…………………………………………………………6
3.2.18279A和8255A芯片的选择与使用…………………………….6
3.2.1汇编语言的选择与编程…………………………………………..6
4.硬件框图与说明………………………………………………………………..6
4.18279可编程键盘/显示接口芯片介绍…………………………………..6
4.28255可编程并行接口芯片介绍………………………………………...9
4.3步进电机介绍…………………………………………………………...11
5.电路模块与说明……………………………………………………………….12
5.18279按键扫描模块……………………………………………………..12
5.28255控制模块…………………………………………………………..13
5.3进电机转动模块………………………………………………………...13
6.软件设计思想与流程图……………………………………………………….14
6.1软件设计思想…………………………………………………………...14
6.2软件流程图……………………………………………………………...14
7.实验的体会…………………………………………………………………….14
8.实验的总原理图与源程序清单……………………………………………….15
8.1电路原理图与PCB……………………………………………………...15
8.2源程序清单……………………………………………………………....16
9.参考文献……………………………………………………………………….18
1.设计任务与要求
1.1引言
步进电机广泛运用在需要高定位精度、高分解性能、高响应性、信赖性等灵活控制性高的机械系统中。
在生产过程中要求自动化、省人力、效率高的机械中,
我们很容易发现步进电机的踪迹,尤其以重视速度、位置控制、需要精确操作各项指令动作的灵活控制性场合的步进电机最多。
步进电机作为执行元件,是机电一体化的关键产品之一,广泛应用在各种自动化控制系统中。
随着微电子和计算机技术的发展,步进电机的需求量与日俱增,在各个经济领域都有应用。
步进电机是将电脉冲信号变换成角位移或直线位移的执行部件。
步进电机可以用数字信号驱动,使用非常方便。
步进电动机的角位移量和输入脉冲的个数严格成正比,在时间上与输入脉冲同步,因此只要控制输入脉冲的数量、频率及电动机绕组通电的相序,便可获得所需的转角、转速及转动方向。
在没有脉冲输入时,在绕组电源的激励下气隙磁场能使转子保持原有位置处于定位状态。
因此非常适合于单片机控制。
步进电机还具有快速启动、精确步进和定位等特点,因而在数控机床,绘图仪,打印机以及光学仪器中得到广泛的应用。
传统电动机作为机电能量转换装置,在人类的生产和生活进入电气化过程中起着关键的作用。
步进电机可以作为一种控制用的特种电机,利用其没有积累误差(精度为100%)的特点,广泛应用于各种开环控制。
1.2设计目的
通过课程设计使我们更进一步掌握微机原理与应用课程的有关知识,提高用汇编语言编程的能力,加深对汇编语言的理解。
通过查阅资料,阅读程序,提高设计程序的能力及动手能力,使编程水平有一定的提高,同时也会提高我们通过动手进行硬件设计及程序设计从而提高解决实际问题的能力。
通过实验的深入,进一步加强对微机接口与原理的实验箱的了解,充分了解其内部结构,尤其加深对8279、8255芯片的原理与连线的了解。
1.3设计内容
在本实验中我们将用到可编程外围接口芯片8255A、可编程键盘显示器接口芯片8279A和ULN2003达林顿。
通过8279A芯片不断进行按键的扫描,将检测按键的情况通过数据总线传送到8255A芯片,然后8255A芯片通过端口PC0—PC3输出相对应的脉冲信号给74LS14和ULN2003控制步进电动机的转速和方向。
1.4设备器材与芯片
(1)PC微机一台
用于对程序的编译测试等,同时还需要对实验设备进行控制,提供整个程序的运行平台,并且收集和释放硬件信号,实现程序功能。
(2)微机原理实验箱一台
此设备能提供8086、8255、8279和数码管、键盘、步进电机等必要芯片和模块。
并且能与PC机进行通信。
(3)导线若干条
用于电路和芯片之间的连接。
2.总体方案与说明
2.1设计思想
8255A器件:
8255用作辅助装置。
8255器件的C端口低四位PC0、PC1、PC5、PC3依次轮番输出脉冲。
8279器件:
作为控制部件,通过读取按键值,在六位LED上显示相关信息,同时步进机按键值相对应的转速转动,正转或者反转。
通过8279A芯片不断进行按键的扫描,将检测按键的情况通过数据总线传送到8255A芯片,然后8255A芯片通过端口PC0—PC3输出相对应的脉冲信号给74LS14和ULN2003控制步进电动机的转速和方向。
8279A模块
图一课程逻辑框图
2.2实验原理说明
利用8255A的PC口PC0-PC3轮流输出脉冲序列,实验机上键盘控制步进电机的转速和转动方向。
本实验使用的步进电机用直流+12V电压,电机线圈由A、B、C、D四相组成。
驱动方式为四相单四拍方式,各线圈通电顺序如下表。
表中首先向A相线圈输入驱动电流,接着向B、C、D线圈通电,最后又返回到A相线圈驱动,按这种顺序轮流切换,电机轴按顺时针方向旋转。
若通电顺序相反,则电机轴按逆时针方向旋转。
在运行过程中,可按动小键盘的“0—9”数码键,控制步进电机的转速,按“B”或者“C”键控制步进电机的方向,按“F”键退出。
其脉冲输入情况如下表可得:
顺序/相
A
B
C
D
0
0
1
1
1
1
1
0
1
1
2
1
1
0
1
3
1
1
1
0
图二步进电动机的输入脉冲表
3.问题分析及解决方案
3.1实验设计前后面临的问题分析
3.1.1芯片的选择问题
实验板上有多个应用于这个课题的芯片,8259A可编程中断控制器、8255A可编程并行接口芯片、8253中断控制器、D/A转换器、A/D转换器,8251A可编程异步通信接口芯片(这个在7.8版本中就没有)可见拿这个完全取代实验箱还有一定的距离。
当然这次的课程设计我可以完全使用它,因为没有使用到8251A芯片。
还有就是有很多辅助性芯片自己在以前根本就没有关注过,直到这次课程设计,我才认认真真的查找了74系列芯片资料比如74LS273、74LS138。
如何用最适当的芯片去实现实验的效果。
3.1.2芯片的连接与使用问题
我在这次系统的硬件设计部分遇到了困难,因为之前的(包括上学期的组成原理和这学期的接口技术,用到的实验箱都是人家事先连好并预留出的,在实验时有都是按照实验手册上的电路图去连线的,几乎从来不去思考为什么要这样连接,这些芯片的内部结构是怎样的,除了这个型号的芯片,其他型号的芯片是否也能实现相应的功能,它们两者之间又有何异同和优缺点,等等这一系列的问题在硬件的设计时出现了。
并且这个实验箱的内部走线不知道如何连接的,以至于难于用芯片去实现连接。
3.13程序的编写问题
由于不熟悉编写语言的语法和内容,以及不知道选择那个语言来编写程序会更简单一点,实现效果好一点。
因而完成这个课题的难度也大大的增加了。
3.2问题的解决方案
3.2.18279A和8255A芯片的选择与使用
8255A:
8255是可编程并行I/O接口芯片,有3个8位并行I/O口。
具有3个通道3种工作方式的可编程并行接口芯片。
其各口功能可由软件选择,使用灵活,通用性强。
8279A:
8279是可编程的键盘、显示接口芯片。
它既具有按键处理功能,又具有自动显示功能。
在实验板上有8253中断芯片,但是由于其只有8个中断口不能满足按键的使用并且该课题没有引用硬件的延时功能。
故而使用8279A的按键处理功能与8255A的可编程性去实现硬件的连接。
3.2.2汇编语言的选择与使用
我们上的是微机原理与接口技术这门课程,懂得简单的使用汇编语言。
对于其他的高级语言,例如C语言,不是直接作用于硬件的使用。
而汇编语言更能接近硬件,运行的时间更断,对于我们了解芯片的使用能有帮助。
因而我选择用汇编语言来编写程序。
4.硬件框图与说明
4.18279可编程键盘/显示接口芯片介绍
8279是Intel公司生产的通用可编程键盘和显示器I/O接口器件。
由于它本身可提供扫描信号,因而可代替微处理器完成键盘和显示器的控制,单个芯片就能完成键盘输入和LED显示控制两种功能8279芯片的主要特征为:
1·可兼容MCS-85,MCS-48,MCS-51等微处理器。
2·能同时执行键盘与显示器操作。
3·扫描式键盘工作方式
4·有8个键盘FIFO(先入先出)存储器
5·带触点去抖动的二键锁定或N键巡回功能。
6·两个8位或16位的数字显示器。
7·可左/右输入的16字节显示用RAM。
8·由键盘输入产生中断信号。
9·扫描式传感器工作方式。
10·用选通方式送入输入信号。
11·单个16字符显示器。
12·工作方式可由CPU编程。
13·可编程扫描定时。
图三8279的逻辑框图
8279A的引脚图及各引脚作用如下:
图四8279A引脚图
DB0-7:
是双向外部数据总线,用于传送8279与CPU之间的命令、数据和状态。
可直接与MCS-51系列芯片连接。
CS:
为选片信号。
当CS为低电平时CPU才选中8279芯片,并对其进行操作。
A0:
区分信息的特性位。
当A0为1时,CPU写入8279的信息为命令,CPU从8279读出的信息为8279的状态。
当A0为0时,I/O信息都为数据。
RD/WR:
是读、写选通信号,低电平有效;
IRQ:
为中断请求输出线。
高电平有效。
在键盘工作方式下。
当FIFO/传感器RAM中有数据时,此中断线变高电平。
在FIFO/传感器RAM每次读出时,中断线就下降为低电平,若在RAM中还有信息,则此线又重新变为高电平。
在传感器工作方式中,每当传感器信号变化时,中断线就变为高电平。
RL0~RL7:
为反馈输入线,作为键输入线,由内部拉高电阻拉成高电平,也可由键盘上按键拉成低电平,
SL0-3:
为扫描输出线,用于对键盘显示器扫描。
OUTB0-3/OUTA0-3:
为显示段数据输出线,可分别作为两个半字节输出,也可作为8位段数据输出口,此时OUTBO为最低位,OUTA3为最高位。
BD:
为消隐输出线,低电平有效,当显示器切换时或使用显示消隐命令时,将显示消隐。
RESET:
为复位输入线,高电平有效。
当RESET输入端出现高电平时,8279被复位,复位后8279被置于下列方式:
16个8位字符显示为左端输入。
编码的扫描键为两键连锁。
程序时钟前置分频器被置为31。
SHIFT、CNTL/STB:
为控制键输入线;由内部拉高电阻拉成高电平,也可由外部控制按键拉成低电平,SHIFT为换档,CNTL为控制,STB为选通。
CLK:
为外时钟输入端,CLK信号由外部振荡器提供。
需说明的一点是:
CLK是系统来的外时钟,8279靠设置定时器将外部时钟变为内时钟。
其内部基频=外时钟/定时器值,内部时钟的高低控制着扫描时间和键盘去抖动时间的长短,若8279内部时钟为100kHz。
则扫描时间为5.1ms。
去抖动时间为10.3ms。
8279的命令格式和命令字(A0=1),8279有8条命令字,占用同一个端口,由命令字的高3位来区分。
五8279的工作方式设定
4.28255可编程并行接口芯片介绍
8255A内部有3个8位I/O端口:
A口、B口、C口;也可以分为各有12位的两组:
A和B组,A组包含A口8位和C口的高4位,B组包含B口8位和C口的低4位;8255A中的读写控制逻辑用于控制芯片内寄存器的数据和控制字经数据总线缓冲器送入各组接口寄存器中。
由于8255A数据总线缓冲器是双向三态8位驱动器,因此可以直接和CPU系统总线相连。
其引脚图如下:
REST:
复位信号,高电平有效。
当该输入端处于高电平时,所有内部寄存器均被清除,所有的I/O空(A、B、C)均被置成输入方式。
D7—D0:
数据线,和数据总线相连。
CS:
芯片选择信号,低电平有效。
当该引脚处于低电平时,允许8255A与CPU进行通信。
一般接端口地址译码器输出端。
A0和A1:
口选线0和口选线1,用来选择3个数据口和控制字寄存器。
RD:
读允许信号,低电平有效。
WR:
写允许信号,低电平有效。
图六8255内部逻辑框图
8255A芯片有三种工作方式:
方式0、方式1、方式2。
它通过对控制寄存器写入不同的控制字来决定其三种不同的工作方式。
方式0:
基本输入/输出。
方式1:
选通输入/输出。
方式2:
双向输入/输出。
其控制字如下图所示:
图七8255A控制字选择方式
4.3步进电机介绍
步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。
在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。
使得在速度、位置等控制领域用步进电机来控制变的非常的简单。
步进电机的工作就是步进转动,其功用是将脉冲电信号变换为相应的角位移或是直线位移,就是给一个脉冲信号,电动机转动一个角度或是前进一步。
步进电机的角位移量与脉冲数成正比,它的转速与脉冲频率(f)成正比,在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。
单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2-2所示:
图八步进电机工作时序波形图
图九步进电机结构图
5.电路模块与说明
5.18279按键扫描模块
此模块由按键与8279A芯片组成,8279A每5.3ms扫描按键一次,将扫描到的信号通过数据总线传给8086。
图十8279按键扫描模块
5.28255控制模块
地址译码电路选通8255A,设置8255A的工作方式0,使PC0—PC3端口为输出口。
图十一8255A控制模块
5.3进电机转动模块
由8255A的PC0—PC3轮流输出的脉冲信号给74ls14的四个输入口去控制步进电机的转动。
图一十二步进电机模块
6.软件设计思想与流程图
6.1软件设计思想
本程序由主程序和控制芯片输出程序组成。
主程序负责系统的初始化,系统初始化包括8253的初始化、8255的初始化和8279的初始化。
6.2软件流程图
图一十三软件流程图
7.实验的体会
先从整体上来说,我原本打算整个课程设计只需要3-4天即可完成,而实际的情况是用了将近12天还未完全实现设计要求,比如说,步进电机的加速与减速功能,用4位7段数码管来显示步进电机的转速,这些功能都在代码实现时遇到了困难,而这也恰恰反应了汇编语言学习的不足——练习太少,而见过的汇编源码也同样很少。
举个例子,有其他小组做的抢答器设计,有十几行的一段程序是通过ROR循环右移指令和LOOPNZ指令来达到依次测试每个抢答开关是否摁下,就是这样一段简单的代码,就看足足1个小时,原因有两点,它的代码中写成了LOONZ指令,还有就是ROR,因为它可以将移出的位都进入CF以保存该位,以供后续的程序测试。
这些指令很是不熟悉,从这方面很是能够反应出一些问题。
比如说我在网上查找他人的设计方案时,基本上都是用51单片机来控制步进电机的,当然都是通过Proteus软件仿真验证的,很少有基于8086芯片的,很偶然的搜索一份后,我发现我需要把整个系统硬件连线理解透彻,很是花了一番功夫。
概括来说,芯片了解太少,汇编编程很不熟练,验证方法有缺陷,方案的整体设计把控很不足。
8.实验的总原理图与源程序清单
8.1电路原理图与PCB
图一十四电路原理图
图一十五PCB板
8.2源程序清单
;FOREAT598
D0832EQU218H
C8279EQU239H
D8279EQU238H
CODESEGMENT
ASSUMECS:
CODE,DS:
CODE
START:
PUSHCS
POPDS
INI:
MOVDX,D0832
MOVAL,00H
OUTDX,AL
MOVDX,C8279
MOVAL,00H
OUTDX,AL
MOVAL,90H
OUTDX,AL
MOVAL,34H
OUTDX,AL
MOVAL,0D2H
OUTDX,AL
JMPSHORT$+2
WAIT1:
INAL,DX
MOVAH,AL
ANDAL,80H
CMPAL,80H
JEWAIT1
MOVAL,AH
ANDAL,0FH
CMPAL,00H
JEWAIT1
RUN:
CALLCHKKEY
CALLDISPLAY
MOVDX,D0832
OUTDX,AL
JMPRUN
CHKKEYPROCNEAR
RDKEY:
MOVDX,C8279
INAL,DX
MOVAH,AL
ANDAL,80H
CMPAL,80H
JERDKEY
MOVAL,AH
ANDAL,0FH
CMPAL,00H
JERDKEY
MOVAL,40H
OUTDX,AL
MOVDX,D8279
INAL,DX
CHK:
CMPAL,0FH
JEQUIT
CMPAL,0AH
JNCRDKEY
MOVSPDNUM,AL
LEABX,SPD
XLAT
MOVAH,AL
RTN:
MOVDX,C8279
MOVAL,0C2H
OUTDX,AL
MOVAL,AH
RET
CHKKEYENDP
DISPLAYPROCNEAR
MOVAH,AL
MOVDX,D8279
LEABX,LED
MOVAL,SPDNUM
XLAT
OUTDX,AL
LEASI,DSP
MOVCX,0007H
LOOP1:
MOVAL,[SI]
OUTDX,AL
INCSI
LOOPLOOP1
MOVAL,AH
RET
DISPLAYENDP
QUIT:
MOVDX,D0832
MOVAL,00H
OUTDX,AL
MOVDX,C8279
MOVAL,0D2H
OUTDX,AL
HLT
LEDDB3FH,06H,5BH,4FH,66H
DB6DH,7DH,07H,7FH,6FH
SPDDB60H,70H,80H,90H,0A0H
DB0B0H,0C0H,0D0H,0E0H,0FFH
DSPDB00H,5EH,79H,79H,73H,6DH,0DEH
SPDNUMDB0
CODEENDS
ENDSTART
9.参考文献
[1]朱晓华主编《微机原理与接口技术》(第二版)电子工业出版社
[2]李恩林陈斌生主编《微机接口技术300例》北京:
机械工业出版社2003
[3]步进电机控制方面的资料(包括原理,控制方法等)——源自网络
[4]ULN2000系列芯片手册(包括ULN2003A)——源自网络
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机 课程设计 步进 电机 控制