东北大学接口技术微机原理课程设计大作业.doc

上传人:b****0 文档编号:4591 上传时间:2022-09-30 格式:DOC 页数:20 大小:4.48MB
下载 相关 举报
东北大学接口技术微机原理课程设计大作业.doc_第1页
第1页 / 共20页
东北大学接口技术微机原理课程设计大作业.doc_第2页
第2页 / 共20页
东北大学接口技术微机原理课程设计大作业.doc_第3页
第3页 / 共20页
东北大学接口技术微机原理课程设计大作业.doc_第4页
第4页 / 共20页
东北大学接口技术微机原理课程设计大作业.doc_第5页
第5页 / 共20页
点击查看更多>>
下载资源
资源描述

东北大学接口技术微机原理课程设计大作业.doc

《东北大学接口技术微机原理课程设计大作业.doc》由会员分享,可在线阅读,更多相关《东北大学接口技术微机原理课程设计大作业.doc(20页珍藏版)》请在冰豆网上搜索。

东北大学接口技术微机原理课程设计大作业.doc

.专业整理.

东北大学

接口技术报告

步进电机控制系统

学院XXXXXXXXXXXXXXXXX

班级XXXXXXXXXXXXXXXXXXX

姓名XXXXX

学号XXXXXXXXXX

日期XXXXXXXXXXXX

【实验目的】

1、利用PC机和实验箱,设计并实现给定步进电机的控制。

2、进一步掌握对芯片的硬件和软件综合设计方法。

3、了解微机的工作原理,微型计算机的基本结构,接口技术及汇编语言程序设计。

【实验内容】

1、控制步进电机转动,要求转速1步/秒。

2、基于实验箱,设计并实现接口和驱动电路。

3、用汇编语言编制程序。

4、改善步进电机的控制性能,控制步进电机转/停;正转/反转;改变转速(至少3档);单步。

【实验设备】

1)MUT-III型实验箱

2)计算机

【总体设计】

1、8253定时控制步进速度。

2、8255输出控制脉冲,再经75452驱动电机。

3、系统运行时,通过按键的不同来控制电机转/停;正转/反转;改变转速(至少3档);单步。

【硬件设计】

因采用了PC机和PC总线接口应用平台,硬件电路相对简单,除利用了PC机本身资源外(如中断资源),还利用了平台上的8253计数/定时器、8255并行接口单元,再加上外围驱动电路,便构成可步进电机控制电路,硬件原理图如图1:

图中75452元件是正与非驱动器,OC门输出,所以加上拉电阻;8253的作用是输出定时信号向CPU申请中断要求输出电机走步的控制信号。

图1

【芯片介绍】

(1)8253定时器/计数器电路

该电路由1片8253组成,8253的片选输入端插孔CS8253,数据口、地址、读、写线均已接好,T0、T1、T2时钟输入分别为8253CLK0、8253CLK1、8253CLK2。

定时器输出、GATE控制孔对应如下:

OUT0、GATE0、OUT1、GATE1、OUT2、GATE2、CLK2。

原理图如下:

注:

GATE信号无输入时为高电平 

(2)8255

8255可编程并口电路:

该电路由1片8255组成,8255的数据口,地址,读写线,复位控制线均已接好,片选输入端插孔为8255CS,A,B,C三端口的插孔分别为:

PA0~PA7,PB0~PB7,PC0~PC7.电路原理如图:

8255A是比较常用的一种并行接口芯片,其特点在许多教科书中均有介绍。

8255A有三个8位的输入输出端口,通常将A端口作为输入用,B端口作为输出用,C端口作为辅助控制用,本实验也是如此。

实验中,8255A工作于基本输入输出方式(方式0)。

另外,从原理图中看到,8255芯片的端口选择信号A0、A1,分别与地址总线A1、A2相连,因此,8255的四个端口地址应是:

04A0H、04A2H、04A4H、04A6H。

用8255A的PA0~3分别控制步进电机的A、B、C、D四相,“1”则该相绕组通电,“0”则不通电。

步进电机的驱动原理是使各相绕组依次通电来使其作步进式旋转,通过通电顺序和切换频率来调节其转速和转向。

步进电机可以四相四拍或四相八拍方式工作,即通电顺序为:

A→B→C→D→A;A→AB→B→BC→C→CD→D→DA→A。

按相反的顺序即可改变电机的旋转方向。

本实验系统采用的是:

AB→BC→CD→DA→AB。

B

8255A

PA1

7407

PA0

+12V

PA3

PA2

A

C

D

【软件设计】

本设计通过软件编程使8253输出定时信号申请中断,CPU发出命令由8255的下C口输出脉宽信号来控制步进电机的走步。

电机的转动和停止则是通过8255的A0端子输出高低电平来继续或暂停8253的计数从而控制中断申请来实现的。

8253的定时时间决定了电机转动的快慢。

相对简单的硬件电路,使软件设计成为本实验的中心内容。

控制系统分五个功能模块,分别是转速设置、转向设置、固定步数转动、连续转动、退出系统,在前四个功能块中都设置了ESC键来取消或暂停执行当前操作。

(1)转速设置

根据赋给计数器的计数初值,我们可以计算出步进电机各相脉宽信号的频率和电机转速,也可以反过来根据对电机转速要求,计算并调整计算初值。

这里采用的是8253的0号计数器和方波产生方式,输入时钟为f=46875hz,设计数初值为n,要求转速为0.25转/秒,对四相步进电机而言即为5步/秒,则有:

f/n=5n=f/5=46875/5=9375

反过来,当计数器初值确定时,决定了电机的转速,如计数初值为0时,有电机转速为1步每秒(本设计中最慢速度);当计数初值为125时,电机转速为375步每秒(本设计中最快速度)。

具体设置初值及转速见表2。

步速

转速

按键

计数初值

1

0.05

F1

46875

3

0.15

F2

15625

5

0.25

F3

9375

15

0.75

F4

3125

25

1.25

F5

1875

75

3.75

F6

625

125

6.25

F7

375

375

18.75

F8

125

(2)转向设置

在内存单元中设置一方向标志FLAG1,假设FLAG1为0时为顺时针转向,则当设置FLAG1不为0时即可使电机转逆时针转动。

判断操作在中断子程序中进行。

(3)连续转动设置

在此功能模块中,通过让8255的A0口输出高电平到8253的GATE0使其0号计数器继续工作(平常时A0口为低电平使8253的0号计数器暂停计数),并开放中断进入循环等待中断状态,在等待状态中若有键盘的‘ESC’键按下,则认为暂停要求而关闭中断和暂停8253计数回到主菜单。

需要继续原转向原速度运行,再选择此功能模块即可。

(4)固定步数转动设置

通过键盘输入0到999的十进制值来设定转动步数。

判断已转步数即中断次数是这样实现的,设置一内存单元FLAG0,中断时在中断子程序中求反,而在循环等待中断的程序中判断其有无变化,无变化继续循环,有变化则使计数寄存器CX减1后继续循环,当CX=0时退出等待中断状态,并关中断和暂停8253计数。

在这个等待程序中也判断键盘有无ESC键按下,若有则认为暂停要求而退出。

(6)中断子程序

在中断子程序中,将值为11001100B的内存单元循环左移或右移一位,通过8255的下C口输出低四位,控制步进电机的相序变化,从而使电机连续转动。

左移或右移将使电机顺时针或逆时针转动,它由标志FLAG1来决定。

【程序流程图】

(1)主程序框图如图2

图2主程序框图

(2)中断服务子程序框图如图3

图3中断服务子程序框图

(3)速度设置自程序和方向设置单元程序的流程比较简单,如图4,5。

(4)固定步数转动单元子程序框图如图6

图6固定步数转动单元子程序框图

(5)连续转动单元子程序框图如图7

图7连续转动单元子程序框图

(6)8253和8255初始化子程序、菜单显示子程序请参考程序清单。

【实验程序】

DATASEGMENT

IRQEQU0DH

IMR1EQU0DFH

IMR2EQU20H

PA55EQU280H

PC55EQU282H

CTL55EQU283H

P0_53EQU290H

CTL53EQU293H

INTA0EQU20H

INTA1EQU21H

MES0DB0DH,0AH,'*****STEPPINGMOTORCONTROLSYSTEM!

*****',0DH,0AH,0DH,0AH

DB'PRESS1TOSPEEDSET!

',0DH,0AH

DB'PRESS2TODIRECTIONSET!

',0DH,0AH

DB'PRESS3TOTURNREQUIREDSTEPS!

',0DH,0AH

DB'PRESS4TOSTARTRUNNING!

',0DH,0AH

DB'PRESS5TOEXIT!

',0DH,0AH,'$'

MES1DB0DH,0AH,'*****SPEEDSET*****',0DH,0AH,0DH,0AH

DB'PRESSAFOR0.05R/S!

',0DH,0AH

DB'PRESSBFOR0.15R/S!

',0DH,0AH

DB'PRESSCFOR0.25R/S!

',0DH,0AH

DB'PRESSDFOR0.75R/S!

',0DH,0AH

DB'PRESSEFOR1.25R/S!

',0DH,0AH

DB'PRESSFFOR3.75R/S!

',0DH,0AH

DB'PRESSGFOR6.25R/S!

',0DH,0AH

DB'PRESSHFOR18.75R/S!

',0DH,0AH

DB'PRESSESCTOCANCEL!

',0DH,0AH,'$'

MES2DB0DH,0AH,'*****DIRECTIONSET*****',0DH,0AH,0DH,0AH

DB'PRESS1TORIGHT!

',0DH,0AH

DB'PRESS0TOLEFT!

',0DH,0AH,'$'

MES3DB0DH,0AH,'*****STEPS(<1000)SET*****',0DH,0AH,0DH,0AH

DB'PRESSESCTOCANCEL!

',0DH,0AH

DB'PLEASEINPUTSTEPS:

','$'

MES4DB0DH,0AH,'RUNNING.....',0DH,0AH

DB'PRESSESCTOSTOP!

',0DH,0AH,'$'

INTSEGDW?

INTOFFDW?

INTIMRDB?

FLAG1DB0

FLAG0DB0

NUMDB11001100B

CNTFFDW0B71BH,3D09H,249FH,0C35H,753H,271

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 党团工作 > 思想汇报心得体会

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1