清华大学微机原理课程设计.doc

上传人:wj 文档编号:4894655 上传时间:2023-05-07 格式:DOC 页数:16 大小:1.80MB
下载 相关 举报
清华大学微机原理课程设计.doc_第1页
第1页 / 共16页
清华大学微机原理课程设计.doc_第2页
第2页 / 共16页
清华大学微机原理课程设计.doc_第3页
第3页 / 共16页
清华大学微机原理课程设计.doc_第4页
第4页 / 共16页
清华大学微机原理课程设计.doc_第5页
第5页 / 共16页
清华大学微机原理课程设计.doc_第6页
第6页 / 共16页
清华大学微机原理课程设计.doc_第7页
第7页 / 共16页
清华大学微机原理课程设计.doc_第8页
第8页 / 共16页
清华大学微机原理课程设计.doc_第9页
第9页 / 共16页
清华大学微机原理课程设计.doc_第10页
第10页 / 共16页
清华大学微机原理课程设计.doc_第11页
第11页 / 共16页
清华大学微机原理课程设计.doc_第12页
第12页 / 共16页
清华大学微机原理课程设计.doc_第13页
第13页 / 共16页
清华大学微机原理课程设计.doc_第14页
第14页 / 共16页
清华大学微机原理课程设计.doc_第15页
第15页 / 共16页
清华大学微机原理课程设计.doc_第16页
第16页 / 共16页
亲,该文档总共16页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

清华大学微机原理课程设计.doc

《清华大学微机原理课程设计.doc》由会员分享,可在线阅读,更多相关《清华大学微机原理课程设计.doc(16页珍藏版)》请在冰点文库上搜索。

清华大学微机原理课程设计.doc

《微机原理与接口技术》课程设计

项目:

步进电机转动控制的设计

院系:

信息科学技术学院

专业班级:

姓名:

学号:

指导老师:

时间:

目录

前言

第一章步进电机的工作原理

1.1步进电机的工作原理

1.2步进电机的驱动原理

第二章步进电机转动控制的要求与设计方案

2.1步进电机的控制与要求

2.2设计方案的确定

第三章步进电机转动控制的的硬件电路

3.1步进电机的硬件框图

3.2 8255控制部分及开关控制

3.3ULN2803部分的设计

第四章步进电机转动控制的软件设计

4.1主程序流程图

4.2主程序及其注释

第五章步进电机控制程序的调试

5.1硬件调试

5.2软件调试

5.3调试过程

第六章步进电机控制的拓展

6.1拓展功能一

6.2拓展功能二

第七章设计体会与小结

附录

附录一系统硬件原理图

附录二参考文献

前言

微机原理与接口课程设计是电子技术学习中非常重要的一个环节,是将理论知识和实践能力相统一的一个环节,是真正锻炼学生能力的一个环节。

步进电机转动控制具有设计简单应用广泛的特点,非常适合作为课程设计课题。

步进电机转动控制是通过操作实现电机的加速减速正转与反转,广泛用于现实社会生活生产中,如高楼中的电梯,工厂中的机床。

因此,研究步进电机转动控制,有着非常现实的意义。

通过本次课程设计,我提高如何综合运用所学知识解决时间问题的能力,以及获得有关项目管理和团队合作等等众多方面的具体经验,增强对相关课程内容的理解和掌握能力,培养对整体课程知识综合运用和融会贯通的能力。

此次步进电机转动控制利用8255A芯片,以8088微处理器作为CPU,A口为输出,C口为输入来控制步进电机转动,拨动开关来调节速度。

第一章步进电机的工作原理

1.1步进电机的工作原理

该步进电机为一四相步进电机,采用单极性直流电源供电。

只要对步进电机的各相绕组按合适的时序通电,就能使步进电机步进转动。

图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相绕组的磁极对齐。

而0、3号齿和A、B相绕组产生错齿,2、5号齿就和A、D相绕组磁极产生错齿。

依次类推,A、B、C、D四相绕组轮流供电,则转子会沿着A、B、C、D方向转动。

四相步进电机按照通电顺序的不同,可分为单四拍、双四拍、八拍三种工作方式。

单四拍与双四拍的步距角相等,但单四拍的转动力矩小。

八拍工作方式的步距角是单四拍与双四拍的一半,因此,八拍工作方式既可以保持较高的转动力矩又可以提高控制精度。

 单四拍、双四拍与八拍工作方式的电源通电时序与波形分别如图2.a、b、c所示:

a.单四拍b.双四拍c.八拍

图2步进电机工作时序波形图

1.2步进电机的驱动原理

步进电动机是一种数字元件,易于数字电路接口,但一般数字电路的信号的能量远远不足以驱动步进电动机。

因此,必须有一个与之匹配的驱动电路来驱动步进电动机。

对步进电动机驱动一般有如下要求:

(1)能够提供较快的电流上升和下降速度,使电流波形尽量接近矩形。

(2)具有供截止期间释放电流流通的回路,以降低绕组两端的反电动势,加快电流衰减。

(3)具有较高的功率及效率。

步进电动机的驱动方式很多,如单极性驱动、双极性驱动、高低压驱动、斩波驱动、细分驱动、集成电路驱动等。

第二章步进电机转动控制的要求与设计方案

2.1步进电机的控制要求

使用汇编语言外加K0-K7等一系列的开关实现对步行电机转速与方向的控制(实现两个以上功能):

1.启动与停止控制:

用户拨动某一指定键后可以实现电机的启动与停止的控制;

2.方向的控制:

用户将某一指定键拨向上可以实现电机的正转,拨向下实现电机的反转;

3.速度的控制:

用户将另一指定键拨向上可以实现电机的加速转动,拨向下实现电机的减速转动;

4.综合控制:

用户一起拨动上述的按键后可以实现电机的加速正转,减速反转等操作;

5.扩展功能:

自主创新,综合运用微机原理与接口技术的知识扩展2个功能。

2.2设计方案的确定

选用TN88\86实验箱与微机,通过在实验箱构造硬件电路,主要是利用8255A芯片单元模块、步进电机单元模块。

通过微机编程与下载到实验箱上。

实现软硬结合控制步进电机的转动。

第三章步进电机转动控制的硬件电路

3.1步进电机的硬件框图

1、按图3连接线路,用8255输出脉冲序列,开关K0~K6控制步进电机转速,K7控制步进电机转向。

2、PA0~PA3接电机的驱动端;PC0~PC7接K0~K7。

3、编写程序实现步进电机的顺时针旋转控制。

当K0~K6中任一开关为“1”(向上拨)时步进电机启动,全部为“0”时步进电机停止,其中K0为“1”时速度最慢,K6为“1”时速度最快。

K7为“1”(向上拨)时步进电机顺时针转动,为“0”(向下拨)时逆时针转动。

图3步进电机的接入线路图

3.28255控制部分及开关控制

8255的片选信号CS接288H~28FH。

PA0~PA3接电机的驱动端;PC0~PC7接K0~K7。

8255A芯片一般占用四个连续的口地址,按照从高到低分别为:

控制口、C口、B口、A口。

如图4所示:

8255共有三种工作方式:

方式0:

基本输入输出;

方式1:

中断工作方式;

方式2:

双通输入输出,仅有A口。

D7—D0:

10001001A口输出,C口输入。

MOVDX,P55CTL

MOVAL,89H;(89H=10001001B,为控制字)

OUTDX,AL

图48255A管脚分配图

3.3ULN2803部分的设计

由于集成电路集驱动和保护于一体,作为小功率步进电动机的专用驱动芯片,ULN2803是高耐压、大电流达林顿陈列,由七个硅NPN达林顿管组成,如图5所示:

图5ULN2803示意图

该电路的特点如下:

ULN2803的每一对达林顿都串联一个2.7K的基极电阻,在5V的工作电压下它能与TTLCMOS电路直接相连,可以直接处理原先需要标准逻辑缓冲器来处理的数据。

ULN2803工作电压高,工作电流大,灌电流可达500mA,并且能够在关态时承受50V的电压,输出还可以在高负载电流并行运行。

ULN2803A在各种控制电路中常用它作为驱动继电器的芯片,其芯片内部做了一个消线圈反电动势的二极管。

ULN2803的输出端允许通过IC电流200mA,饱和压降VCE约1V左右,耐压BVCEO约为36V。

输出电流大,故可以用来直接驱动步进电机,如图6所示:

图6Seriesuln2803a

第四章步进电机转动控制的软件设计

4.1主程序流程图

开始

8255初始化,A口输出,C口输入

33H=>BUF

BUF内容从8255A口输出

读开关状态

K0=1?

K1=1?

K3=1?

K2=1?

K5=1?

K4=1?

K6=1?

置停止信息

控制循环信息右移一位

控制循环信息左移一位

延时

延时

K7=1?

置延时时间

Y

Y

Y

Y

Y

Y

Y

Y

N

N

N

N

N

N

N

图7主程序流程图

选用8255的A口做输出,C口做输入。

BUF输出给电机驱动端,通过检测开关,赋给不同的延时值和不同的移位命令,改变转速转向。

不停的循环输出,使得电机转动。

通过改变CX的赋值来控制电动机的转动速度。

CX越小电动机的转动速度越大。

也可以通过改变BL的值来改变单个开关的速度。

我们把CX称为总开关,BL成为分开关。

从而达到从K0到K6速度逐渐变快,而K7控制电动机的反转。

当K7闭合时电动机反转

4.2主程序及其注释

源程序如下:

P55AEQU60H;8255A口输出

P55CEQU62H;8255C口输入

P55CTRLEQU63H;8255控制口

DATASEGMENT

BUFDB0

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVDX,P55CTRL

MOVAL,89H

OUTDX,AL;8255C输入,A输出

MOVBUF,33H

OUT1:

MOVAL,BUF

MOVDX,P55A

OUTDX,AL

IN1:

MOVDX,P55C

INAL,DX;读开关状态

TESTAL,01H

JNZK0

TESTAL,02H

JNZK1

TESTAL,04H

JNZK2

TESTAL,08H

JNZK3

TESTAL,10H

JNZK4

TESTAL,20H

JNZK5

TESTAL,40H

JNZK6

STOP:

JMPOUT1

K0:

MOVBL,10H;00010000B

SAM:

TESTAL,80H;K7是否为1

JZZX0

JMPNX0

K1:

MOVBL,18H;00011000B

JMPSAM

K2:

MOVBL,20H;00100000B

JMPSAM

K3:

MOVBL,40H;01000000B

JMPSAM

K4:

MOVBL,80H;10000000B

JMPSAM

K5:

MOVBL,0C0H;11000000B

JMPSAM

K6:

MOVBL,0FFH;11111111B

JMPSAM

ZX0:

CALLDELAY

MOVAL,BUF

RORAL,01H;循环右移

MOVBUF,AL

JMPOUT1

NX0:

CALLDELAY

MOVAL,BUF

ROLAL,01H;循环左移

MOVBUF,AL

JMPOUT1

DELAYPROCNEAR

DELAY1:

MOVCX,0100H

DELAY2:

LOOPDELAY2

DECBL;减1指令

JNZDELAY1;ZF位标志是否为1

RET

DELAYENDP

CODEENDS

ENDSTART

第五章步进电机控制程序的调试

5.1硬件调试

5.1.1断电调试

为了安全,首先进行断电调试,用万用表检测系统是否有短路现象,再检查严原理是否正确。

经检测,原理正确也没有短路现象。

5.1.2通电调试

打开电源,下载程序,看是否正常。

5.2软件调试

将写好的源程序在软件上编译连接,直接下载到实验箱,观察现象。

经过多次调试后达到了设计要求。

5.3调试过程

在第一次下载后运行时,电机不转动,查找原因,发现电源接口没有接对,经修改后运行正确。

调整后接线如图8所示:

图8调整后接线

第六章步进电机控制的拓展

6.1拓展功能一

实现步进电机的正反转与加速的时间控制,具体过程如下:

正转加速一段时间,然后停止5秒,然后反向加速一段时间,然后再正转,如此循环往复.

源程序如下:

MODEEQU080H;8255方式控制字

CTLEQU8000H;8255端口A地址

CONTRLEQU8003H;8255控制寄存器地址

AEQU01H

BEQU02H

CEQU04H

DEQU08H

QSEQU300;步进电机转过的圈数

DATASEGMENT

DLY_CDW0;DLY_C用以控制延时的长短以实现步进电机的加速

SOURCEDBA,A+B,B,B+C,C,C+D,D,D+A;步序表,使电机的工作方式为单/双8拍

DATAENDS

CODESEGMENT

ASSUMECS:

CODE,DS:

DATA

START:

MOVAX,DATA;初始化数据段

MOVDS,AX

********************

;初始化8255,使8255的A口输出.

********************

MOVDX,CONTRL;8255的控制寄存器地址送DX

MOVAL,MODE;8255的A口输出,故初始化控制字为80H

OUTDX,AL;将控制字从8255输出以配置8255的工作方式

MOVDX,CTL;将A口地址送DX

MOVAL,0;将0送AL

OUTDX,AL;8255的端口写0以实现初始化

MOVDLY_C,300H;延时初始值

MOVCX,QS;将步进电机的圈数300送CX

6.2拓展功能二

实现的功能是让电机正向加速,速度达到最大值后匀速转动。

源程序如下:

ZZ:

MOVBX,0;将0送BX,让电机的初始步为A

NEXT1:

MOVDX,CTL;将8255的A口地址送DX

MOVAL,SOURCE[BX];将电机的步序送AL

OUTDX,AL;将步序表中的第一个步序通过A口输出

CALLDELAY;调用延时子程序,用来控制电机转速

INCBX;BX加1,为取下一个步序做准备

CMPBX,7

JBENEXT1;判断电机是否已经走完8拍

PUSHCX;保存CX的值,因为下面还要用到CX

MOVCX,DLY_C;将DLY_C的值送CX

DECCX;CX(即DLY_C)减1以实现加速

CMPCX,100H;CX与100H比较,判断电机转速是否已经达到最大值

JNENN1;若电机转速尚未达到最大值,则转向NN1

INCCX;若电机转速已经达到最大值,则CX加1以实现电机匀速转动

NN1:

MOVDLY_C,CX;将CX的值送DLY_C以实现在一个循环

POPCX;恢复CX

LOOPZZ;CX减1,让电机转下一圈

第七章设计体会与小结

通过本次课程设计,使自己的动手实践与所学知识结合应用的能力有了很大的提高,让我认识到实践的重要性,但同时要实际应用过和当中,也发现理论知识的重要性,没有理论知识的支撑,是不能很好的完成本次课程设计的。

本次设计步进电机转动控制,通过我掌握了的微机原理与接口技术知识,查资料、百度、请教同学老师等等。

虽然,知识固然重要,但废寝忘食般的研究态度和乐于助人的品格更需要提倡。

通过利用8255A芯片来实现步进电机控制转动的设计应用,不仅为以后的学习实践打下了基础,并且很好的消化了所学知识的难点、问题。

在设计过程当中也发现了自己经验的不足。

首先是对试验箱的认识和应用,很多模块的使用存在误解。

然后就是在编程序方面的,有好多程序只是一知半懂,不能熟练地操作,需要提示和看书,需要大量的练习,为以后的学习指明方向。

在完成自己所涉及项目后参与到其他同学的项目里,共同研究学习,互相帮助,不仅帮助了他人,还扩展了自己的实践能力。

感谢指导老师提供给我们实践课本知识的机会,并且认真地陪同学生一起设计课程设计,奠基了以后自主研究设计项目的能力

附录:

附录一:

系统硬件原理图

附录二

参考文献:

【1】丁继斌,邓利民.电机学.北京:

化学工业出版社,2008.5.

【2】陈光军,傅越千.微机原理与接口技术.北京:

北京大学出版社,2007.1.

【3】吕勇,徐雅娜.微机原理与接口技术教程与实训.北京:

北京大学出版社,2006.1.

【4】彭虎,周佩玲,傅忠谦.微机原理与接口技术.第二版.北京:

电子工业出版社,2008.3

【5】沈美明,温冬婵.IBM-PC汇编语言程序设计.北京:

清华大学出版社,1993.

【6】艾德才.Pentium/80486实用汇编语言程序设计.北京:

清华大学出版社,1997.

【7】M.RafiquzzamanFundamentalsofDigitalLogicandMicrocomputerDesign

AJOHNWILEY&SONS,INC.,PUBLICATIONJUNE6,2005.

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

当前位置:首页 > 幼儿教育 > 幼儿读物

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2