微机课程设计报告 小型步进电机控制系统设计(附程序清单)教学内容.doc
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《微机课程设计报告 小型步进电机控制系统设计(附程序清单)教学内容.doc》由会员分享,可在线阅读,更多相关《微机课程设计报告 小型步进电机控制系统设计(附程序清单)教学内容.doc(40页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、Good is good, but better carries it.精益求精,善益求善。微机课程设计报告 小型步进电机控制系统设计(附程序清单)-微机应用系统设计与综合实验设计报告设计题目小型步进电机控制系统设计指导老师设计者专业班级学号设计日期目录摘要.3一. 课程设计目的.4二. 设计题目名称及要求.4三. 实验设备.4四. 设计的思想和实施方案.5五. 硬件原理图.11六. 典型程序模块及典型编程技巧.13七. 课程设计中遇到的问题及解决方法.16八. 程序流程图.19九. 汇编程序清单及程序注释.23十. C语言程序清单及注释.30十一. 收获体会.37参考文献.38摘要在现代电子
2、产品中,步进电机广泛应用于ATM机、喷绘机、刻字机、写真机、喷涂设备、医疗仪器及设备、计算机外设及海量存储设备、精密仪器、工业控制系统、办公自动化、机器人等领域。所以步进电机的控制是一门很实用的技术。本实验主要是基于唐都PIT试验箱的步进电机控制的设计。主要使用到了并行接口电路8255、LED七段数码管电路、8086cpu、步进电机等元件。主要是通过按键的不同来设置直流电机的转速、运行状态和方向。软件部分采用了汇编语言编写程序代码和C语言编写的步进电机控制程序,通过判断、跳转、循环、延时等基本技术实现。此系统可以通过键盘输入相关数据,并根据需要,实时对步进电机工作方式进行设置,具有实时性和交互
3、性的特点。该设计可应用于步进电机控制的大多数场合关键词:步进电动机调速方向控制并行接口七段数码管-小型步进电机控制系统一、 课程设计目的课程设计是本科教学全过程中的重要环节。微机应用系统设计与综合实验(实践)课程设计主要培养我们自动化专业学生,运用所学知识解决计算机应用领域内实际问题能力,进一步提高学生运用计算机编程语言综合编程能力、程序调试技能和微机系统接口综合应用及电路设计能力。1、学习在PC系统中扩展简单的IO接口的方法。2、熟练掌握和运用汇编和C语言编写程序控制8255各口的输入输出,并正确带动数码管及步进电机;能熟练运用汇编和C语言实现8254的定时功能,以确保8255输出的脉冲频率
4、稳定。3、熟练掌握ISA总线配置方式下硬件实验的调试,并能独立的排除故障,以确保实验的顺利进行。4、.巩固和加深课堂所学知识;5、学习掌握一般的软硬件的设计方法和查阅、运用资料的能力;6、通过步进电机控制系统设计与制作,深入了解与掌握步进电机的运行方式、方向、速度、启/停的控制。二、 设计的题目名称及要求设计题目:小型步进电机控制系统设计。设计要求:(1)分别用C语言和汇编语言编程完成硬件接口功能设计;(2)基于80x86微机接口硬件电路设计调试;(3)控制功能要求:小键盘给定分段速度,数码管显示当前步进电机启动与停止、方向、速度信息;(4)具有本地与远程(串行方式下)功能。三、实验设备PC机
5、一台(装有TDPIT软件)、唐都AEDK8688ET实验箱。使用硬件:8086PC,8255芯片,键盘数码管,步进电机驱动电路,步进电机。系统设计:键盘采用实验板提供的4*4键盘,使用4个数码管实时显示系统当前状态。四、设计的思想和实施方案4.1.2步进电机的工作原理步进电机是将电脉冲信号转变为角位移或线位移的开环控制元件。在非超载的情况下,电机的转速、停止的位置只取决于脉冲信号的频率和脉冲数,而不受负载变化的影响,即给电机加一个脉冲信号,电机则转过一个步距角。这一线性关系的存在,加上步进电机只有周期性的误差而无累积误差等特点。使得在速度、位置等控制领域用步进电机来控制变的非常的简单。步进电机
6、动态指标及术语:1、步距角精度:步进电机每转过一个步距角的实际值与理论值的误差。用百分比表示:误差/步距角*100%。不同运行拍数其值不同,四拍运行时应在5%之内,八拍运行时应在15%以内。2、失步:电机运转时运转的步数,不等于理论上的步数。称之为失步。3、失调角:转子齿轴线偏移定子齿轴线的角度,电机运转必存在失调角,由失调角产生的误差,采用细分驱动是不能解决的。4、电机正反转控制:当电机绕组通电时序为AB-BC-CD-DA或()时为正转,通电时序为DA-CA-BC-AB或()时为反转。驱动控制系统组成:使用、控制步进电机必须由环形脉冲,功率放大等组成的控制系统,其方框图如下:脉冲信号的产生:
7、脉冲信号一般由单片机或CPU产生,一般脉冲信号的占空比为0.3-0.4左右,电机转速越高,占空比则越大。下图步进电机为一四相步进电机,采用单极性直流电源供电。只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。图1是该四相反应式步进电机工作原理示意图。图1四相步进电机步进示意图开始时,开关sb接通电源,sa、sc、sd断开,b相磁极和转子0、3号齿对齐,同时,转子的1、4号齿就和c、d相绕组磁极产生错齿,2、5号齿就和d、a相绕组磁极产生错齿。当开关sc接通电源,sb、sa、sd断开时,由于c相绕组的磁力线和1、4号齿之间磁力线的作用,使转子转动,1、4号齿和c相绕组的磁极对齐。
8、而0、3号齿和a、b相绕组产生错齿,2、5号齿就和a、d相绕组磁极产生错齿。依次类推,a、b、c、d四相绕组轮流供电,则转子会沿着a、b、c、d方向转动。四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。单四拍与双四拍的步距角相等,但单四拍的转动力矩小。八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:a.单四拍b.双四拍c八拍图2.步进电机工作时序波形图4.1.28255A的功能简介Intel8086/8088系列的可编程外设接口电路(Pr
9、ogrammablePeripheralInterface)简称PPI,型号为8255(改进型为8255A及8255A-5),具有24条输入/输出引脚、可编程的通用并行输入/输出接口电路。它是一片使用单一+5V电源的40脚双列直插式大规模集成电路。8255A的通用性强,使用灵活,通过它CPU可直接与外设相连接。8255A在使用前要写入一个方式控制字,选择A、B、C三个端口各自的工作方式,共有三种;方式0:基本的输入输出方式,即无须联络就可以直接进行的I/O方式。其中A、B、C口的高四位或低四位可分别设置成输入或输出。方式1:选通I/O,此时接口和外围设备需联络信号进行协调,只有A口和B口可以工
10、作在方式1,此时C口的某些线被规定为A口或B口与外围设备的联络信号,余下的线只有基本的I/O功能,即只工作在方式0.方式2:双向I/O方式,只有A口可以工作在这种方式,该I/O线即可输入又可输出,此时C口有5条线被规定为A口和外围设备的双向联络线,C口剩下的三条线可作为B口方式1的联络线,也可以和B口一起方式0的I/O线。4.1.3设计思想和实施方案初步设计的模块图如下:步进电机8086CPULED数码显示模块小键盘输入模块8255模块进一步的设计图:电机状态显示模块CPU8255LED显示模块步进电机模块键盘扫描模块本次设计,对8255的使用是这样的:8255工作于方式0,A口低四位接键盘及
11、数码管显示单元的X1X4;C口低四位接键盘及数码管显示单元的Y1Y4;C口高四位接步进电路的驱动电路,使电机转动起来;B口接数码管的A、B、C、D、E、F、G和DP,以使数码管显示电机的转向和转速。8255的A口高四位本次课程设计没有用到。此外,本次设计还用到了实验箱中的键盘及数码管显示单元:方向键:控制步进电机运行方向,无论电机处于运行或停止状态,每按下一次,电机转动方向反向;运行/暂停键:控制电机运行与否。电机转动时按下,电机暂停,当前电机运行参数不变,再次按下时,电机继续按暂停前参数运行;停止键:无论电机处于任何状态,按下此键,电机停止转动,电机各运行参数复位,默认参数为:“顺时针,停止
12、状态,1档”;档位键:无论电机处于任何状态,均可设定电机档位。数码管显示信息:左起第一个数码管显示当前电机的运行状态:S(Stop)表示当前电机为停止状态;E(Enable)表示当前电机为运行状态;P(Pause)表示当前电机为暂停状态。第二个数码管未使用,只有小数点点亮。第三个数码管显示电机运行方向:C(Clockwise)表示电机运行方向为顺时针;A(Anti-clockwise)表示电机运行方向为逆时针。第四个数码管显示电机的档位:1、2、3、4分别表示1、2、3、4档。键盘数码管内部连线如下图:五、硬件电路原理图图步进电机控制系统硬件电路原理如上图示:该原理图涉及到系统总线、可编程外围
13、接口芯片8255、键盘及数码管显示单元和步进电机及其驱动电路8255的D0D7依次接系统总线的XD0XD7,A1和A0依次接系统总线的XA3和XA2;WR和RD依次接系统总线上的XIOW和XIOR;8255的CS接系统总线的IOY0,8255的A口低四位PA0PA4依次接小键盘的X1X4(列);C口低四位PC0PC3分别接小键盘的Y1Y4(行);C口高四位PC4PC7依次接驱动电路的A、B、C和D;B口PB0PB7分别接数码管的A、B、C、D、E、F、G和DP;A口高四位没用到。图步进电机模块此模块的主要功能是通过接收8255的C口输入信号来控制步进电机的转动,A,B,C,D分别代表不同的四个
14、相位,分别接入到PC0,PC1,PC2和PC3,实现转动控制。图LED模块六、典型程序模块及典型编程技巧分析1.主函数模块主函数MAIN主要是综合调用各子函数,以完成对四项八拍步进电机转速和转向的控制,并在数码管上实时显示电机的运行状态、转向和转速档位。本次设计的电机转速分为四个档,分为一二三四档,在数码管的档位部分显示,分别显示1,2,3,4。当程序开始运行时,数码管上显示初始状态:S(停止),小数点(该位不用)C(顺时针)1(速度为1档)小键盘“0”控制电机转向:程序默认初始态为C(顺时针);按下该键,电机可以切换转向,C(Clockwise)表示电机运行方向为顺时针;A(Anti-clo
15、ckwise)表示电机运行方向为逆时针。无论电机处于运行或停止状态,每按下一次,电机转动方向反向。小键盘“1”控制电机开始和暂停两个状态之间的切换:电机转动时按下,电机暂停,当前电机运行参数不变,再次按下时,电机继续按暂停前参数运行。E(Enable)表示当前电机为运行状态;P(Pause)表示当前电机为暂停状态。小键盘“2”控制电机的停止复位(S:Stop):按下该键,电机停止转动,并且恢复到初始参数状态。小键盘“4”“5”“6”“7”控制电机的四个转速档位:当按下这四个键时,分别是电机运行在1,2,3,4,转速档位。即实现了电机的调速,并且可以实现任意档速的切换。2.键盘扫描与显示子程序模
16、块此子函数是用来扫描小键盘哪行哪列有键按下,当确定某行某列有键按下时,再把相应的键值保存起来。小键盘有四行四列共16个按键,第一行从左到右依次是03;第二行从左到右依次是47;第三行从左到右依次是8B;第二行从左到右依次是CF。为了实现判断功能,在C语言中设置三个标志位:1.运行状态标志MODE:0=停止(Stop);1=运行(Enable);2=暂停(Pause)。2.方向标志DIR(Direction):0=逆时针(Anti-clockwise);1=顺时针(Clockwise)。3.档位标志GRD(Grade):1=1档;2=2档;3=3档;4=4档。数组a中存放数码管的编码,一次为:“
17、S”、“E”、“P”、“A”、“C”、“1”、“2”、“3”、“4”、“.”。数组b中分别存放四个数码管应显示的编码在数组a中对应的位置,例如:b的初值为:0,9,4,5,则数码管会对应显示:“S.C1”。在汇编程序中,用DTABLE1中存放数码管的编码。SISI+2SI+4SI+6中分别存放四个数码管应显示的编码在DTABLE1中对应的位置。与C程序中不同,汇编程序中取消了dir、mode、grd三个独立的变量,而是直接用SISI+4SI+6来代表,即:SI=0时,表示停止状态;SI=1时,表示运行状态;SI=2时,表示暂停状态;SI+4=3时,表示方向为逆时针;SI+4=4时,表示方向为顺
18、时针;SI+6=5时,表示档位为1档;SI+6=6时,表示档位为2档;SI+6=7时,表示档位为3档;SI+6=8时,表示档位为4档。首先保证使计数值i在0-7之间变化,若正转,则递增;反转则递减。判断是否运行,如运行,则跳出循环,给步进电机发驱动脉冲。3.保存键值子程序此函数完成在按下小键盘按键后,将其相应的电机运行状态、转向和转速数值保存起来,以备其它子程序使用。4.扫描是否有按键闭合子程序此子函数用来扫描小键盘是否有键按下。通过8255的C口高四位,使X1X4(列)全选通,然后由8255的C口低四位判断各列所对应的行是否有键安下,无任何键按下则C口低四位读入的全是“1”,若有键按下则C口
19、低四位读入的对应行是“0”,其余全是“1”,经取反(NOT)后扫描小键盘的子程序CCSCAN的功能变为:若小键盘无键按下则AL寄存器数据为“0”;若小键盘有键按下则AL寄存器数据为非“0”。为减少引线,键盘采用矩阵式。键盘的识别采用行扫描法,程序使某行为低电平,则说明行列交叉点处的键被按下,然后,再具体确定按下的是哪个键。为此先使所在行输出为0,再检查列线是否有0。如果有零的话,此时由于不能确定闭合键所在的行,于是再用行扫描法来具体定位。如果读得数据全部为1,则说明无键闭合。硬件上将8255端口C的上、下半部分分别用作键盘的行线和列线。用电平逻辑开关输出高低电平来代替键盘按键。5.显示键值子程
20、序将保存示值子函数中保存下的电机运行状态、转向和转速值送到数码管上显示。数码管的段位顺序如右图所示:一般来说在一个字节中按照abcdefgdp的顺序放置字型码,比如在一个“共阴极”数码管上要显示“1”,则b、c段需被点亮,因此在段选线中写入60H。对应规则:a-D7b-D6c-D5d-D4e-D3f-D2g-D1图3-2数码管显示dp-D0LED显示器的显示方法有两种静态显示法和动态扫描显示法。静态显示就是每一个显示器各笔画段都要独占具有所存功能的输出口线,CPU把要显示的字符代码送到输出口上,就可以是显示器显示所需的数字后符号。但由于它站用的I/O口线较多,硬件成本高。所以我们选用了动态扫描
21、显示法。6.清除数码管显示子程序将段位置0即可清除数码管显示,即将00H分别送入A口(驱动LED灯和B口(驱动数码管)便可实验此功能7.软件延时子程序延时子函数,可供别的程序调用以实现较好的显示和操作效果。读取键盘时要有一定的延时,来跳过键盘在刚按下时产生的抖动。判断档位,进行相应的延时,注意延时的时候也应每隔一定时间调用keyscan()键盘扫描及显示程序,已保证及时响应键盘输入,和刷新数码管,使数码管常亮。应注意调用子程序前要将CX与AX寄存器的内容入栈进行保护。七、课程设计中遇到的问题及解决方法在本次课程设计过程中,我遇到了一下问题:首先,在显示模块中,在做数码管显示时,每次可以输出四位
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 微机课程设计报告 小型步进电机控制系统设计附程序清单教学内容 微机 课程设计 报告 小型 步进 电机 控制系统 设计 程序 清单 教学内容
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内