步进电机控制设计C程序设计语言.doc_第1页
步进电机控制设计C程序设计语言.doc_第2页
步进电机控制设计C程序设计语言.doc_第3页
步进电机控制设计C程序设计语言.doc_第4页
步进电机控制设计C程序设计语言.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

接口课程设计任务书学生姓名 专业班级 指导老师 工作单位 计算机学院 题目:步进电机控制设计(C程序设计语言) 一、 内容:在MIFID微机实验台上以双八拍的方式控制步进电机运行,用按钮控制启动和停止。接口硬件电路图见说明书。二、 要求:1、 控制步进电机运行的相序表存储在文件中。2、 按下SW1按钮,从文件中取出一个相序数据,从并行接口8255A的PA口输出,使步进电机运行。相序数据在CRT上显示。按下SW2按钮,步进电机运行停止。3、 SW1按钮的数字量由PC1输入,SW2按钮的数字量由PC0输入,4、 设计程序运行时的界面友好。三、 进度安排:序号内容所用时间1接口电路设计2天2编写程序1天3调试程序1天4撰写课程设计报告1天合计5天指导教师签名: 年 月 日 系主任(责任教师)签名: 年 月 日 一设计目的和内容目的:通过步进电机控制实验,学习并行接口电路及其控制程序的设计原理与方法。内容:在MIFID微机实验台上以双八拍的方式控制步进电机运行,用按钮控制启动和停止。接口硬件电路图见说明书。要求:1、 控制步进电机运行的相序表存储在文件中。2、 按下SW1按钮,从文件中取出一个相序数据,从并行接口8255A的PA口输出,使步进电机运行。相序数据在CRT上显示。按下SW2按钮,步进电机运行停止。3、 SW1按钮的数字量由PC1输入,SW2按钮的数字量由PC0输入,4、 设计程序运行时的界面友好。二、实验预备知识可编程并行接口8255是一个具有两个8位(A端口和B端口)和两个4位(C端口)并行I/O端口的芯片。在与外设进行数据传输时,把A、B、C3个端口分为两组。A组由A端口和C端口的高4位组成。B组由B端口和C端口的低4位组成。为了满足多种数据传输的要求,可以通过对8255的编程用方式控制字设置3种工作方式来实现。这3种工作方式为:方式0(基本I/O工作方式);方式1(选通I/O工作方式);方式2(双向传送方式)。8255的控制字有工作方式控制字和C端口的位置位/复位控制字。工作方式控制字是必须要预先设定的,C端口的位置位/复位控制字可视需要而定。一般来说,在方式0中,C端口除在特殊场合用作联络信号外,如:双机通信,基本上都作为数据端口参与I/O操作。但在方式1或方式2下,C端口的相应位可用来作为I/O操作的控制和同步信号,也可用作对CPU的中断请求信号。为了更好地完成本次实验,要求实验者掌握8255控制寄存器,8255方式0、方式1的工作原理及工作过程;熟悉方式1(输入和输出)下A端口的方式字、C端口的位置位/复位控制字以及状态字的设置方法。三实验原理1步进电机驱动模块板电路原理如图1.1.2所示。模块板上包括接口的对象永磁式四相步进电机和驱动电路达林顿管TIP,保护电路74LS373,相序指示灯以及开关SW1和SW2等。2步进电机接口设计原理与方法的详细阐述。步进电机是一种将电脉冲转化为角位移的执行机构。通俗一点讲:当步进驱动器接收到一个脉冲信号,它就驱动步进电机按设定的方向转动一个固定的角度(及步进角)。您可以通过控制脉冲个数来控制角位移量,从而达到准确定位的目的;同时您可以通过控制脉冲频率来控制电机转动的速度和加速度,从而达到调速的目的。步进电机控制原理:步进电机是数字控制电机,它将脉冲信号转变成角位移,即给一个脉冲信号,步进电机就转动一个角度,因此非常适合于单片机控制。步进电机可分为反应式步进电机(简称VR)、永磁式步进电机(简称PM)和混合式步进电机(简称HB)。步进电机区别于其他控制电机的最大特点是,它是通过输入脉冲信号来进行控制的,即电机的总转动角度由输入脉冲数决定,而电机的转速由脉冲信号频率决定。步进电机的驱动电路根据控制信号工作,控制信号由单片机产生。其基本原理作用如下:(1)控制换相顺序通电换相这一过程称为脉冲分配。例如:三相步进电机的三拍工作方式,其各相通电顺序为A-B-CD,通电控制脉冲必须严格按照这一顺序分别控制A,B,C,D相的通断。(2)控制步进电机的转向如果给定工作方式正序换相通电,步进电机正转,如果按反序通电换相,则电机就反转。(3)控制步进电机的速度如果给步进电机发一个控制脉冲,它就转一步,再发一个脉冲,它会再转一步。两个脉冲的间隔越短,步进电机就转得越快。调整单片机发出的脉冲频率,就可以对步进电机进行调速。图1.1.2 步进电机驱动模块电路原理框图四、实验配置1电源:机内供电,将平台的电源开关拔到“内”的位置上,并将模块电源JP2接通2电缆线:采用单线/20芯扁平线,将J3与J4连接3开关:O区的SW1、SW2和SW3可以配置为用来控制步进电机的运行方向、速度和启动/停止4本实验所涉及的模块:I(8255模块),P(步进电机),O(按键开关),模块电源 四个模块5I/O端口地址:8255的4个端口地址为300H303H。其中A口=300H,B口=301H,C口=302H,命令口=303H6软件资源:MF2KI集成开发环境软件提供了丰富的汇编语言和C/C+语言程序开发工具五、实验调试与运行硬件连接跳线设置:模块电源L区 JP8跳接。P区连接线F区单线连法如右图 PA0 PA2 PA4 PA6PC4PC0PC1 A相 B相 C相 D相OE#74LS373开关按键开关T区SW1SW2J3J4排线接法如右图:20芯并行口插座20芯并行口插座连接线8255初始化关74LS373查SW1按下?相序表指针SI循环次数CX查SW2按下?相序代码PA开74LS373延时相序表指针SI+1JJWSIWDSSSSISISSISSsiSISI+1循环次数CX-1关74LS373已到8次?NNYYNY开始结束 流程图 如图所示。图1.1.3 步进电机程序流程图程序#include #include #include /delay,outportb,inportb#include void main()int xu8=0x05,0x15,0x14,0x54,0x50,0x51,0x41,0x45;/相序表unsigned int i=0;unsigned char recv;printf(nPress sw2 to start!n);printf(If you want to quit,press sw1!n);outportb(0x303,0x81);/初始化outportb(0x303,0x09);/置PC4=1关闭74LS373dorecv = inportb(0x302);while(0x02&recv)!=0);/查SW2按下 outportb(0x303,0x08);/置PC4=0,打开74LS373do outportb(0x300,xui);/送相序代码到PA口 i+; if(i=8) i=0; delay(100);/延时while(0x01&inportb(0x302)!=0);/查SW1按下outportb(0x303,0x09);/置PC4=1,关闭74LS373实验现象:启动程序后在DOS对话框中提示按下SW2启动电机,按下SW1关闭电机。按下SW2后电机会按顺时针方向转动,电极左上方的四个LED会体现电机转动的相序以及快慢。调试记录和现象分析1 运行程序后,点击发出嗡嗡声,且不停的振动,但却始终不能匀速顺利的转动,只会时儿抖动。最终发现是延迟的问题,重新设定后问题解决; 分析:不仅电机是在一定顺序的电脉冲控制下转动的,当送入第一个脉冲时,电机会转动一个相应的角度,此时若适时的送入第二个脉冲,电机会继续按原方向转动一个相应的角度,如此般不停地打入合适的脉冲,电机就会运转,但由于电机的一些物理特性,在送入的两个脉冲之间若时间过短,电机在第一个脉冲的驱动下的运转还没有结束,第二个脉冲已到达,此时电机的运转就会别破坏,只是不停的抖动,而不会转动,设置延迟是一个必要条件。2 在设计电机调速部分时,点击并未按设想中的情况变速,即增大脉冲打入的延迟时间,电机加速,而事实情况却恰恰相反。分析:发现这种现象大家都是被疑团包围着,在检查了程序有接线没错的基础下,我们找到了问题所在,延迟时间的设定应取在一个适当的范围内(和每台实验仪器相关),过小的话,电机会出现小小的抖动,使电机不能顺利运转,再者是转盘松动了。六课程设计心得通过本次接口课程设计,使我掌握了许多软硬结合的编程方法,深化了对接口技术

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论