小型步进电机控制系统设计

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

目录

1.设计课题名称及要求。

2.设计思想和实施方案论述,给出硬件电路原理图并分析。

3.典型程序模块及典型编程技巧分析。

4.课程设计中遇到的问题及解决方法。

5.程序清单和程序注释,相关流程图。

6.收获与体会。

7.参考文献。

小型步进电机控制系统设计

一、设计的题目名称及要求

设计题目:小型步进电机控制系统设计。

设计要求:

(1)、分别用C语言和汇编语言编程完成硬件接口功能设计;

(2)、基于80x86微机接口硬件电路设计调试;

(3)、控制功能要求:小键盘给定分段速度,数码管显示当前步进电机启动与停止、方向、速度信息;

二、实验设备

PC机一台(装有TDPIT软件)、唐都AEDK8688ET实验箱。

三、设计的思想和实施方案

1.步进电机运行方式的控制

步进电机的转速与输入脉冲频率成正比,频率越大,转速越高,四相步进电机有双四拍,双八拍,双六拍等方式。实验平台可连接的步进电机为四项八拍电机,电压为DC12V。为了实现对各绕组按一定方式轮流加电,需要一个循环脉冲分配器,这里采用软件实现。

将相序表存放于内存区,再设置一个地址指针。当地址依次+1(或-1)时,可从表中取出通电代码,再输出到步进电机,产生一定的运行方式。

2.信号的输入与输出

8255内部包含3个8位的输入输出端口A、B和C,端口A和端口B都可以用作一个8位的输入口或8位的输出口,端口C既可以作为一个8位的输入口或8位的输出口,又可以作为两个4位的输入输出口(C口上半部分和C 口下半部分)使用,还可以配合A口和B口工作,分别用来产生A口和B口的

输出控制信号和输入A口和B口的端口状态信号。

8255A内部结构图

8255 ABC口都工作于方式0,A口低四位接键盘及数码管显示单元的X1~X4; B口接数码管的A、B、C、D、E、F、G和DP,以使数码管显示电机的转向和转速;C口低四位接键盘及数码管显示单元的Y1~Y4; C口高四位接步进电路的驱动电路,使电机转动起来。8255的A口高四位本次课程设计没有用到。

3.步进电机的速度控制:

采用软件延时的方法,每发射一个脉冲的间隔中插入数个延时单元。速度共分为9级,对应键盘的9个按键。可以对电机进行方向的改变,并停止电机运行。初始设计时采用了8254作为计数单元,但在实际操作过程中因其过于不稳定,多次出现死机状况,难以调试故改用软件延时的方法。

4.键盘及数码管显示单元:

键盘的输入左下角9格作为级数的设置,第四列第四行为停止键,4.3为设置负方向,4.2为设置负方向,初始运行时系统默认正方向。

键盘最上面一行应为没有使用所以在程序中屏蔽。

四、硬件电路原理图

如上图示:该原理图涉及到系统总线、可编程外围接口芯片8255、键盘及数码管显示单元和步进电机及其驱动电路.8255的D0~D7 依次接系统总线的XD0~XD7,A1和A0依次接系统总线的XA3和XA2;WR和RD 依次接系统总线上的XIOW和XIOR;8255的CS接系统总线的IOY0;8255的A口低四位PA0~PA4依次接小键盘的X1~X4(列);C口低四位PC0~PC3分别接小键盘的Y1~Y4(行);C口高四位PC4~PC7依次接驱动电路的A、B、C和D;B口PB0~PB7分别接数码管的A、B、C、D、E、F、G和DP;A口高四位没用到。

五、典型程序模块及典型编程技巧分析

1.主函数

主函数主要是完成键盘输入的处理以及综合调用各子函数,以完成对四项八拍步进电机转速和转向的控制,并在PC机及数码管上实时显示电机的转速和转向。

本次设计的电机转速分为19个档次。键盘右下角9格对应9档,右侧一列底部键为停止,上面两格分别为正向和负向。当选择负向时,数码管左一会显示

“-”,正则为0,左四数码管会显示级数。

2.RUNP、RUNN

此子函数用来控制不进电机的运行,设了一个大循环每次循环都会发送一个脉冲,延时设计在循环之中。对应的电平发送顺序存放在TTABLE中。RUNP中对其正向读取,RUNN中则对其负向读取,以实现方向的变换。

延时部分考虑到数码管的显示问题,数码管显示所需延时远小于不进电机调速所需延时。故以DIS作为延时函数,嵌套与每个大循环中,这样即使CPU在控制电机的运行也能保证数码管有足够的显示亮度。

SCAN

此子函数用来扫描小键盘是否有键按下。通过8255的C口高四位,使X1~X4(列)全选通,然后由8255的C口低四位判断各列所对应的行是否有键安下,无任何键按下则C口低四位读入的全是“1”,若有键按下则C口低四位读入的对应行是“0”,其余全是“1”,经取反(NOT)后扫描小键盘的子程序CCSCAN的功能变为:若小键盘无键按下则AL寄存器数据为“0”; 若小键盘有键按下则AL 寄存器数据为非“0”.

4.PUTBUF

保存小键盘输入的信息于DS:3000-3004中。

5.DIS

将CUNSHU子函数中保存下的电机转向和转速值送到数码管上显示。

6. CLEAR

将00H分别送入A口(驱动LED灯)和B口(驱动数码管)便可实验此功能

7.DALLY、DALLY1

这是两个延时时间不同的延时子函数,可供别的程序调用以实现较好的显示和操作效果。

DALLY主要用于补偿控制转数时DIS函数延时不够。

DALLY1在数码管显示中调用,避免数码管变换太快,导致显示信息的混叠。同时在电机的控制中也作为延时的一部分。

六、课程设计中遇到的问题及解决方法

1.在使用8253时容易死机

如前所诉,在实际调制的过程中,单补调试时每次运行到调用8253就会出现死机。具体原因很难说得清楚,有的是同一个程序换台机子运行就会死机,有

相关文档
最新文档