东北大学接口技术微机原理课程设计大作业Word文档格式.docx

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

东北大学接口技术微机原理课程设计大作业Word文档格式.docx

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

东北大学接口技术微机原理课程设计大作业Word文档格式.docx

该电路由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。

【软件设计】

本设计通过软件编程使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

18.75

F8

(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)中断服务子程序框图如图3

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

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

(5)连续转动单元子程序框图如图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

PRESS2TODIRECTIONSET!

0DH,0AH

PRESS3TOTURNREQUIREDSTEPS!

PRESS4TOSTARTRUNNING!

PRESS5TOEXIT!

0DH,0AH,'

$'

MES1DB0DH,0AH,'

*****SPEEDSET*****'

PRESSAFOR0.05R/S!

PRESSBFOR0.15R/S!

PRESSCFOR0.25R/S!

PRESSDFOR0.75R/S!

PRESSEFOR1.25R/S!

PRESSFFOR3.75R/S!

PRESSGFOR6.25R/S!

PRESSHFOR18.75R/S!

PRESSESCTOCANCEL!

MES2DB0DH,0AH,'

*****DIRECTIONSET*****'

PRESS1TORIGHT!

0DH,0AH

PRESS0TOLEFT!

MES3DB0DH,0AH,'

*****STEPS(<

1000)SET*****'

PLEASEINPUTSTEPS:

'

MES4DB0DH,0AH,'

RUNNING.....'

PRESSESCTOSTOP!

INTSEGDW?

INTOFFDW?

INTIMRDB?

FLAG1DB0

FLAG0DB0

NUMDB11001100B

CNTFFDW0B71BH,3D09H,249FH,0C35H,753H,271H,177H,7DH

DATAENDS

STACKSEGMENTPARASTACK'

STACK'

DB256DUP(?

STACKENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA,SS:

STACK

START:

MOVAX,DATA

MOVDS,AX

MOVDX,CTL53

MOVAL,00110110B

OUTDX,AL

MOVDX,P0_53

MOVAL,1BH

MOVAL,0B7H

MOVDX,CTL55

MOVAL,10000000B

MOVDX,PA55

MOVAL,0

MOVAL,11001100B

MOVDX,PC55

CLI

MOVAH,35H

MOVAL,IRQ

INT21H

MOVAX,ES

MOVINTSEG,AX

MOVINTOFF,BX

PUSHDS

MOVAX,SEGINTPROC

LEADX,INTPROC

MOVAH,25H

MOVDX,INTA1

INAL,DX

MOVINTIMR,AL

ANDAL,IMR1

POPDS

STI

MAIN:

LEADX,MES0

MOVAH,09H

LP0:

MOVAH,8

INT21H

CMPAL,'

1'

JELP1

2'

JELP2

3'

JELP3

4'

JELP4

5'

JEEXIT

JMPLP0

LP1:

CALLAA

JMPMAIN

LP2:

CALLBB

LP3:

CALLCC

LP4:

CALLDD1

EXIT:

MOVAL,INTIMR

MOVDX,INTOFF

MOVAX,INTSEG

MOVAH,4CH

INTPROCPROC

PUSHAX

PUSHDX

PUSHCX

CMPFLAG1,0

JEKK

RORNUM,1

JMPYY

KK:

ROLNUM,1

YY:

MOVAL,NUM

ANDAL,00001111B

NOTFLAG0

;

INCFLAG0

MOVDX,INTA0

MOVAL,20H

POPCX

POPDX

POPAX

IRET

INTPROCENDP

AAPROC

PUSHBX

PUSHDI

MOVAH,9

LEADX,MES1

CMPAL,1BH

JZKK0

SUBAL,'

A'

MOVAH,0

ADDAX,AX

MOVDI,AX

MOVBX,OFFSETCNTFF

MOVAX,WORDPTR[BX+DI]

XCHGAH,AL

KK0:

POPDI

POPBX

RET

AAENDP

BBPROC

LEADX,MES2

JZXX

0'

MOVFLAG1,AL

XX:

BBENDP

CCPROC

PUSHCX

MOVDX,OFFSETMES3

MOVBX,0

GETCHAR:

MOVAH,1

SUBAL,30H

JLXX0

CMPAL,09H

JGXX0

XCHGAX,BX

MOVCX,0AH

MULCX

ADDBX,AX

JMPGETCHAR

XX0:

LEADX,MES4

MOVCX,BX

MOVCX,10

MOVAL,1

MOVBL,FLAG0

XX1:

CLI

MOVAH,6

MOVDL,0FFH

JEXX2

STI

HLT

CMPBL,FLAG0

JEXX1

MOVBL,FLAG0

LOOPXX1

XX2:

CCENDP

DD1PROC

LOP:

JNZLOP

DD1ENDP

CODEENDS

ENDSTART

【心得体会】

《接口技术》是一门应用性很强的课程,其中包括软硬件的结合,接口技术,中断的处理。

由于平时对硬件的接触较少所以学习起来多少有些困难。

但课程中融入了实验,并且还有这次的大作业。

对于理论知识的理解就更深刻了。

本次大作业的内容是步进电机的控制设计,其中包括转速设置、转向设置、固定步数转动、连续转动、退出系统。

程序完全是自己设计的,这与平时的实验很不同,对编程的要求很高。

而且平时的实验都是给出程序的。

这个可给我出了个难题,我认真查阅资料,学习关于这方面的知识,比如说要了解怎么样去使用8255这个可编程并行接口芯片,怎么样使用8253来定时及输出一定频率的脉冲。

在理论学习的基础上,又下了一次苦工夫,算是明白了设计一个系统的过程;

也让我体会到要想成功地设计某个东西,光学好专业知识是不够的,必须要系统的知识,无论在哪方面都要有个明白的概念,只有这样才不至于在设计过程中摸不着头脑,知道去哪些是需要查的资料,查每一条指令的作用与功能,又巩固了我的对汇编语言的了解。

感谢老师这个学期对我们的悉心教授,让我们对接口技术有了更多的了解!

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

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

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

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