单片机课程设计步进电机控制Word文档格式.docx

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

单片机课程设计步进电机控制Word文档格式.docx

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

单片机课程设计步进电机控制Word文档格式.docx

步距角:

对应一个脉冲信号电机转子转过的角位移.步距角=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

MOVP1,#09H

ACALLZHEN

FAN:

ACALLJIANYI2

ACALLDIR

MOVP1,#06H

ACALLDELAY

MOVP1,#03H

LJMPFAN

DELAY:

MOVR7,#02H

DELAY10:

MOVR6,7DH

DELAY12:

DJNZR6,DELAY12

DJNZR7,DELAY10

RET

JIANYI1:

ANL79H,#0FH

ANL7AH,#0FH

ANL7BH,#0FH

ANL7CH,#0FH

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

Z4:

DEC7CH

JIANYI2:

ANL79H,#0FH

MOVR5,79H

CJNER5,#0,F1

MOVR5,7AH

CJNER5,#0,F2

MOVR5,7BH

CJNER5,#0,F3

MOVR5,7CH

CJNER5,#0,F4

F1:

F2:

F3:

F4:

KEY:

ACALLKS1;

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

JNZLK1

AJMPKEY

LK1:

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

LK5:

JBACC.2,LK6;

第2行无按键按下,转差第3行

MOVA,#10H

LK6:

JBACC.3,NEXT;

第3行无按键按下,改查下一列

MOVA,#18H

LKP:

ADDA,R4;

求键号

MOVDPTR,#TAB

MOVCA,@A+DPTR

PUSHACC;

键号进栈保护

LKP1:

等待键释放

JNZLKP1

POPACC

RET

NEXT:

INCR4;

指向下一列,列号加1

JNBACC.7,KND;

8列扫描完,返回

RLA

MOVR2,A

AJMPLK3

KND:

KS1:

MOVDPTR,#0FFDDH

INCDPTR

CPLA

ANLA,#0FH

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

MOVDPTR,#0FFDCH

MOVX@DPTR,A

MOVA,R3;

写字位

ACALLDL1;

INCR0;

显示缓冲区地址加一

MOVA,R3

JBACC.5,LD1;

判断是否扫描到第六个显示位

RLA

MOVR3,A

AJMPLD0

LD1:

TEP:

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

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

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

DL1:

DL:

MOVR6,#0FFH

DLA:

DJNZR6,DLA

DJNZR7,DL

五、设计心得体会

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

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

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

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

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

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

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

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

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

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