单片机课程设计步进电机控制.docx

上传人:b****7 文档编号:9298228 上传时间:2023-02-04 格式:DOCX 页数:16 大小:180.12KB
下载 相关 举报
单片机课程设计步进电机控制.docx_第1页
第1页 / 共16页
单片机课程设计步进电机控制.docx_第2页
第2页 / 共16页
单片机课程设计步进电机控制.docx_第3页
第3页 / 共16页
单片机课程设计步进电机控制.docx_第4页
第4页 / 共16页
单片机课程设计步进电机控制.docx_第5页
第5页 / 共16页
点击查看更多>>
下载资源
资源描述

单片机课程设计步进电机控制.docx

《单片机课程设计步进电机控制.docx》由会员分享,可在线阅读,更多相关《单片机课程设计步进电机控制.docx(16页珍藏版)》请在冰豆网上搜索。

单片机课程设计步进电机控制.docx

单片机课程设计步进电机控制

 

单片机课程设计

 

姓名:

***

学号:

**********

班级:

电气0903

 

2012/6/21

一、设计任务、原理、步骤

任务:

从键盘上输入正、反转命令,转速参数(16级)和转动步数显示在LED显示器上。

显示器上显示:

第一位为0表示正转,为1表示反转;第二位0~F为转速等级,第三到第六位设定步数。

单片机依显示器上显示的正、反转命令,转速级数和转动步数进行相应动作,转动步数减为零时停止转动。

原理:

如图,当有一相绕组被通电激励时,磁通从正相齿,经过软铁芯的转子,并以最短路径流向负相齿,为使磁通路径最短,在磁场力的作用下,转子被迫移动,使最近的一对齿与被激励的一相对准。

那么,通过对它每相线圈中电流的顺序切换可使电机作步进式旋转。

相数:

产生不同对极N、S磁场的激磁线圈对数。

拍数:

指电机转过一个齿距角所需脉冲数,以四相电机为例,有四相四拍运行方式即AB-BC-CD-DA-AB或A-B-C-D-A,四相八拍运行方式即A-AB-B-BC-C-CD-D-DA-A.

步距角:

对应一个脉冲信号电机转子转过的角位移.步距角=360/(转子齿数*拍数)

系统中使用20BY-0型号步进电机,它使用+5V直流电源,步距角为18度,电机线圈由A、B、C、D四相组成。

步进电机驱动原理是通过对它每相线圈中的电流的顺序切换来使电机作步进式旋转,驱动电路由脉冲信号来控制,所以调节脉冲信号的频率便可改变步进电机的转速。

BA、BB、BC、BD即为脉冲信号输入插孔,驱动器输出A、B、C、D接步进电机。

步骤:

先设计键盘显示程序,根据书本的键盘扫描程序与数码管显示程序,把二者整合到一起,成功后,再做驱动电机程序,在键盘显示程序的基础上,进行扩张,实现电机的正反转与调速控制。

 

二、硬件原理接线图

键盘显示原理图

 

连线图

⏹步进电机模块插头接实验系统J3插座,(顺接)

⏹把P1.0~P1.3分别接到BA~BD插孔。

 

三、流程图

按键流程图

 

 

数码管显示流程图

 

电机控制程序流程图

四、程序清单

ORG0000H

AJMPMAIN

ORG0050H

MAIN:

MOVSP,#40H;主程序

MOV79H,#10H;初始化,使数码管“灭”

MOV7AH,#10H

MOV7BH,#10H

MOV7CH,#10H

MOV7DH,#10H

MOV7EH,#10H

MOVR1,#7EH

MAIN1:

ACALLKEY;调用键盘扫描子程序

MOV@R1,A;把键值送入显示缓冲区

CJNER1,#78H,KS;显示缓冲区是否存满

CJNEA,#16H,MAIN;确认键是否按下

LJMPRUN

KS:

DECR1

LJMPMAIN1

RUN:

MOVA,7EH;电机运行

JZZHEN;跳正转子程序

JNZFAN;跳反转子程序

ZHEN:

MOVP1,#03H;AB相加脉冲

ACALLDELAY;延时

ACALLJINAYI1;减一

ACALLDIR;显示

MOVP1,#06H;BC相加脉冲

ACALLDELAY

ACALLJINAYI1

ACALLDIR

MOVP1,#0CH

ACALLDELAY

ACALLJINAYI1

ACALLDIR

MOVP1,#09H

ACALLDELAY

ACALLJINAYI1

ACALLDIR

ACALLZHEN

FAN:

MOVP1,#09H

ACALLDELAY

ACALLJIANYI2

ACALLDIR

MOVP1,#0CH

ACALLDELAY

ACALLJIANYI2

ACALLDIR

MOVP1,#06H

ACALLDELAY

ACALLJIANYI2

ACALLDIR

MOVP1,#03H

ACALLDELAY

ACALLJIANYI2

ACALLDIR

LJMPFAN

DELAY:

MOVR7,#02H

DELAY10:

MOVR6,7DH

DELAY12:

DJNZR6,DELAY12

DJNZR7,DELAY10

RET

JIANYI1:

ANL79H,#0FH

ANL7AH,#0FH

ANL7BH,#0FH

ANL7CH,#0FH

LCALLDIR

LCALLDIR

MOVR5,79H

CJNER5,#0,Z1

DEC79H

MOVR5,7AH

CJNER5,#0,Z2

DEC7AH

MOVR5,7BH

CJNER5,#0,Z3

DEC7BH

MOVR5,7CH

CJNER5,#0,Z4

LJMPMAIN

Z1:

DEC79H

RET

Z2:

DEC7AH

RET

Z3:

DEC7BH

RET

Z4:

DEC7CH

RET

JIANYI2:

ANL79H,#0FH

ANL7AH,#0FH

ANL7BH,#0FH

ANL7CH,#0FH

LCALLDIR

LCALLDIR

MOVR5,79H

CJNER5,#0,F1

DEC79H

MOVR5,7AH

CJNER5,#0,F2

DEC7AH

MOVR5,7BH

CJNER5,#0,F3

DEC7BH

MOVR5,7CH

CJNER5,#0,F4

LJMPMAIN

F1:

DEC79H

RET

F2:

DEC7AH

RET

F3:

DEC7BH

RET

F4:

DEC7CH

RET

KEY:

ACALLKS1;调用判断有无键按下子程序

JNZLK1

ACALLDIR

AJMPKEY

LK1:

ACALLDIR

ACALLDIR

ACALLKS1

JNZLK2

AJMPKEY

LK2:

MOVR2,#0FEH;首列扫描字入R2

MOVR4,#00H;首列号入R4

LK3:

MOVDPTR,#0FFDDH

MOVA,R2

MOVX@DPTR,A

MOVDPTR,#0FFDEH

MOVXA,@DPTR

JBACC.0,LK4;ACC.0为1则跳转,即第0行按键未按下

MOVA,#00H

AJMPLKP

LK4:

JBACC.1,LK5;第1行无按键按下,转差第2行

MOVA,#08H

AJMPLKP

LK5:

JBACC.2,LK6;第2行无按键按下,转差第3行

MOVA,#10H

AJMPLKP

LK6:

JBACC.3,NEXT;第3行无按键按下,改查下一列

MOVA,#18H

LKP:

ADDA,R4;求键号

MOVDPTR,#TAB

MOVCA,@A+DPTR

PUSHACC;键号进栈保护

LKP1:

ACALLKS1;等待键释放

JNZLKP1

POPACC

RET

NEXT:

INCR4;指向下一列,列号加1

MOVA,R2

JNBACC.7,KND;8列扫描完,返回

RLA

MOVR2,A

AJMPLK3

KND:

AJMPKEY

KS1:

MOVDPTR,#0FFDDH

MOVA,#00H

MOVX@DPTR,A

INCDPTR

MOVXA,@DPTR

CPLA

ANLA,#0FH

RET

TAB:

DB07H,04H,08H,05H,09H,06H,0AH,0BH

DB01H,00H,02H,0FH,03H,0EH,0CH,0DH

DB00H,00H,00H,00H,00H,00H,00H,16H

END

DIR:

MOVR0,#79H;显示程序

MOVR3,#01H

LD0:

MOVDPTR,#TEP;写字形

MOVA,@R0

MOVCA,@A+DPTR

CPLA

MOVDPTR,#0FFDCH

MOVX@DPTR,A

MOVA,R3;写字位

MOVDPTR,#0FFDDH

MOVX@DPTR,A

ACALLDL1;延时

INCR0;显示缓冲区地址加一

MOVA,R3

JBACC.5,LD1;判断是否扫描到第六个显示位

RLA

MOVR3,A

AJMPLD0

LD1:

RET

TEP:

DB3FH,06H,5BH,4FH,66H,6DH

DB7DH,07H,7FH,6FH,77H,7CH

DB39H,5EH,79H,71H,00H,73H

DL1:

MOVR7,#02H

DL:

MOVR6,#0FFH

DLA:

DJNZR6,DLA

DJNZR7,DL

RET

五、设计心得体会

为期一周的单片机课程设计,我有很多心得体会,有关于单片机方面的,更多的是人与人之间的。

此次单片机课程设计意义非凡。

一开始,我们组出现了很多问题,例如,如何把键盘与显示程序整合到一起,但是在老师的悉心指导和同学的帮助下,各种问题都被解决了。

此次课程设计不仅增强了同学们的动手实践能力,而且更加丰富了同学们的理论知识,熟悉了汇编语言的编程方法。

除此之外,我还学到了如何与人合作,与人交流。

总而言之,单片机课程设计对于我们有很大的帮助,我们从中受益匪浅

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

当前位置:首页 > 小学教育 > 数学

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

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