MCS51单片机与步进电机接口.docx

上传人:b****5 文档编号:4638520 上传时间:2022-12-07 格式:DOCX 页数:22 大小:147.84KB
下载 相关 举报
MCS51单片机与步进电机接口.docx_第1页
第1页 / 共22页
MCS51单片机与步进电机接口.docx_第2页
第2页 / 共22页
MCS51单片机与步进电机接口.docx_第3页
第3页 / 共22页
MCS51单片机与步进电机接口.docx_第4页
第4页 / 共22页
MCS51单片机与步进电机接口.docx_第5页
第5页 / 共22页
点击查看更多>>
下载资源
资源描述

MCS51单片机与步进电机接口.docx

《MCS51单片机与步进电机接口.docx》由会员分享,可在线阅读,更多相关《MCS51单片机与步进电机接口.docx(22页珍藏版)》请在冰豆网上搜索。

MCS51单片机与步进电机接口.docx

MCS51单片机与步进电机接口

§9.3应用举例——机械手的微机控制

随着科学技术的进步、工业自动化的进程,机械手将进一步取代简单而笨重的人工操作,逐步把在恶劣环境下工作的人们解放出来,这对于改善人们的工作条件、提高工作效率,具有一定的现实意义。

本例系存取邮件机械手的控制,在邮政部门和立体仓库中作自动存职包裹和货物之用。

一、工作原理

通过键盘,将货位(或包位)代码输入微机,启动存(或取)命令键,机械手即可在微机的控制下,作X、Y、Z三个方向的运动,完成存(或取)包操作。

控制原理如图所示。

系统主要包括微机控制、步进电机控制、机械传动系统、光控音乐电路、工作电源、货架和柜台等七部分组成。

微机根据键入的货物代码,产生相应的脉冲信号,经CH250脉冲分配器和驱动电路,输出具有一定功率的脉冲,驱动有关电机正转或反转及其步数,从而实现货物的存取。

机械手行进中,光控音乐电路驱动蜂呜器发出乐曲,从而增强了工作的节奏、控制的旋律。

二、系统组成

1、硬件设计

如图是机械手微机控制系统硬件电路。

本系统选用MCS-51系列中的8031芯片,扩展了一片2732,以存放用户程序。

由于随机存储的数据不多,只利用片内RAM。

采用两位LED显示器和2×8键盘,P3.5、P3.6和P3.7分别输出X、Y、和Z方向的控制脉冲,P1.6和P1.7分别用来控制步进电机的正/反转和产生复位信号。

2、机械传动部分

机械传动部分包括导轨、小车、升降盘和机械手等部分。

①水平方向位移

步进电机MX调通过滑轮和传送带,使小车在导轨上运动,实现X方向上的位移。

②垂直方向升降

作调方向运动的小车上装有一竖直的六棱金属杆,升降盘套于杆上,杆的顶部装有一定滑轮并配有平衡锤。

固定于小车上的步进电机MY带动升降盘,实现Y方向上的位移

③机械手动作

机械手装升降盘上,如图所示。

图中A点固定,步进电机MZ带动B点,改变A、B间的较小距离,使得机械手移动较大距离。

④货架

货架分三层,每层有4个包位,共计12个包位。

图中数字为包位编码,编码的个位数表示X位置,十位数表示Y位置(层数),以供计算机查讯、判断之用。

本例采用SB-2A型步进电机,它工作于三相六拍的工作方式。

电机按顺时针方向旋转(即正转)时,各相脉冲顺序为:

→A=1→A=1,B=1→B=1→B,C=1→C=1→C=1,A=1

电机按逆时针方向旋转(即反转)时,各相脉冲顺序为:

→A=1→A=1,C=1→C=1→C=1,B=1→B=1→B=1,A=1

三、程序设计

系统软件包括:

主程序、取包程序、存包程序、货位判断程序、X、Y方向运动和机械手动作子程序等。

(1)程序流程图

限于篇幅,只给出主要流程图。

2、脉冲序列的生成程序

对于步进电机的控制,实际上是控制步进脉冲的个数和步进脉冲的间隔,而步进电机的间隔又可转化为某基准延时子程序的循环次数。

因此,可以很方便地用软件来控制步进电机的运行,达到各种控制目的。

2、货位判断程序

如图是货位判断程序流程图。

功能:

根据键入的货位编码判断货位,以确定X、Y方向所需要的脉冲数

主程序功能:

管理键盘和显示以及有关控制。

无键按下或执行有关命令后,显示提示符“--”

(2)程序清单

ORG0000H

AJMPMAIN

MAIN:

MOVSP,#60H

SUN:

SETBP3.5

SETBP3.6

SETBP3.7

CLRP1.6

CLRP1.7

MOVR0,#40H

MOVA,#12H;字符“-”

ML0:

MOV@R0,A;的编码

INCR0

CJNER0,#42H,ML0

SETBP1.7;复位信号

;键输入/显示/键判断F6H-特殊数据R3-键号暂存器

ML1:

ACALLDIR

ACALLKEY

ADDA,#0F6H;键号+F6用于数字/功能键的判断

JCSUN1;功能键转移至SUN1

MOV41H,40H;数字键号送显示缓冲区

MOVR0,#40H

MOVR3,A

ANLA,#0FH;保留低四位

MOV@R0,A

AJMPML1

功能键处理程序(A、B、C键)

SUN1:

MOVA,R3;

CJNEA,#0AH,SUN2

AJMPQBCX

SUN2:

CJNEA,#0BH,SUN3

AJMPCBCX

SUN3:

CJNEA,#0CH,ML1

AJMPSUN

v键盘子程序

P1口-P1.6正/反转P1.7复位P3口-P3.3P3.4键盘行输入口R3-列扫描寄存器初值FEHR4-列号计数器SBUF-发送缓冲器发送列扫描信号

KEY:

ACALLKS1

JNZLK1

NI:

ACALLDIR

AJMPKEY

LK1:

ACALLDIR

ACALLDIR

ACALLKS1

JNZLK2

AJMPNI

LK2:

MOVP1,#00H

MOVR3,#0FEH

MOVR4,#00H

LK4:

MOVSBUF,R3

MOVR6,#05H;延时等待发送

DK6:

DJNZR6,DK6

JBP3.3LONE

MOVA,#00H

AJMPLKP

LONE:

JBP3.4,NEXT

MOVA,#08H

LKP:

ADDA,R4

PUSHACC

LK3:

ACALLDIR;仅做一次处理

ACALLKS1

JNZLK3

POPACC;取键值于ACC

RET

NEXT:

INCR4

MOVA,R3

JNBACC.7,KED

RLA

MOVR3,A

AJMPLK4

KED:

AJMPKEY

v判断键盘有无键按下子程序——无键按下A=00H

KS1:

MOVSBUF,#00H

MOVR6,#05H

DS6:

DJNZR6,DS6

MOVA,P3

CPLA

ANLA,#18H

RET

v显示子程序P1口-LED位扫描输出口

R2-位扫描寄存器初值为01HSBUF-LED段码发送缓冲器

DIR:

PUSHPSW

SETBPSW,4

MOVR0,#40H

MOVR2,#01H

D1:

MOVP1,R2

MOVA,@R0

ADDA,#14H

MOVCA,@A+PC

MOVSBUF,A

MOVR7,#02H

D2:

MOVR6,#0FFH

D3:

DJNZR6,D3

DJNZR7,D2

INCR0

MOVA,R2

RLA

MOVR2,A

JNBACC.2,D1

POPPSW

RET

DB3FH,06H,5BH,4FH

DB66H,60H,70H,07H

DB7FH,6rH,77H,7CH

DB39H,5EH,79H,71H

DB31H,6EH,40H,23H

DB00H

v

v

v延时子程序

YSH:

PUSHPSW

SETBPSW.3

MOVR0,#0FFH

SH:

MOVR1,#0FFH

SH0:

DJNZR1,#H0

DJNZR0,SH

POPPSW

RET

机械手控制示意图

v取包子程序

P1.6-正/反转控制30H、31H步进脉冲暂存器(X方向)

QBCX:

SETBP1.6;正转

MOV30H,#04H;X0固定脉冲数

MOV31H,#0D8H

ACALLXYXC;调用X方向运行子程序

ACALLCSHC;调用测试子程序

MOV30H,33H;X方向列脉冲数

MOV31H,34H;送30H、31H单元

ACALLXYXC;调用X方向运行子程序

MOV30H,35H;Y方向行脉冲数

MOV31H,36H;送30H、31H单元

ACALLYYXC;调用Y方向运行子程序

ACALLQWZC;调用取物子程序

CLRP1.6;反转

MOV30H,35H

MOV31H,36H

ACALLYYXC;调用Y方向运行子程序

MOV30H,33H

MOV31H,34H

ACALLXYXC;调用X方向运行子程序

MOV30H,#04H;X0固定脉冲数

MOV31H,#0D8H

ACALLXYXC;调用X方向运行子程序

ACALLFWZC;调用放物子程序

AJMPSUN

v存包子程序

P.6-正/反转控制30H、31H步进脉冲暂存器(X方向)

33H、34H-35H、36H

CBCX:

ACALLQWZC

SETBP1.6

MOV30H,#04H;X0固定脉冲数

MOV31H,#0D8H;

ACALLXYXC

ACALLCSHC

MOV30H,33H

MOV31H,34H

ACALLXYXC

MOV30H,35H

MOV31H,36H

ACALLYYXC

ACALLFWZC

CLRP1.6

MOV30H,35H

MOV31H,36H

ACALLYYXC

MOV30H,33H

MOV31H,34H

ACALLXYXC

MOV31H,#04H

MOV31H,#0D8H

ACALLXYXC

AJMPSUN

vX方向运行程序

P3.5——脉冲信号输出线-控制MX电机

XYXC:

PU3HPSW

SETBPSW.4

MOVR0,30H

ABC0:

MOVR1,31H

ABC1:

CLRP3.5

ACALLYSH

SETBP3.5

ACALLYSH

DJNZR1,ABC1

 DJNZR1,ABC0

POPPSW

RET

Y方向运行程序

P3.6——脉冲信号输出线-控制MY电机

YYXC:

PUSHPSW

SETBPSW.4

MOVR0,30H

ADC2:

MOVR1,31H

ADC3:

CLRP3.6

ACALLYSH

SETBP3.6

ACALLYSH

DJNZR1,ADC3

DJNZR0,ADC2

POPPSW

RET

v取物子程序

P1.6——正/反转P3.6——Y方向脉冲输出(40H)

P3.7——Z方向脉冲输出(66H)

QWZC:

PUSHPSW

SETBPSW.4

SETBP1.6

MOVR0,#66H

ABC4:

CLRP3.7

ACALLYSH

SETBP3.7

ACALLYSH

DJNZR0,ADC4

MOVR0,#40H

ABC5:

CLRP3.6

ACALLYSH

SETBP3.6

ACALLYSH

DJNZR0,ABC5

CLRP1.6

MOVR0,#66H

ABC6:

CLRP3.7

ACALLYSH

SETBP3.7

ACALLYSH

DJNZR0,ABC6

MOVR0,#40H

ABC7:

CLRP3.6

ACALLYSH

SETBP3.6

ACALLYSH

DJNZR0,ABC7

POPPSW

RET

v放物子程序

P1.6——正/反转P3.6——Y方向脉冲输出(40H)

P3.7——Z方向脉冲输出(66H)

FWZC:

PUSHPSW

SETBPSW.4

SETBP1.6

MOVR0,#40H

ABC8:

CLRP3.6

ACALLYSH

SETBP3.6

ACALLYSH

DJNZR0,ADC8

MOVR0,#66H

ABC9:

CLRP3.7

ACALLYSH

DJNZR0,ABC9

CLRP1.6

MOVR0,#40H

ABC10:

CLRP3.6

ACALLYSH

SETBP3.6

ACALLYSH

DJNZR0,ADC10

MOVR0,#66H

ABC11:

CLRP3.7

ACALLYSH

SETBP3.7

ACALLYSH

DJNZR0,ADC11

POPPSW

RET

v测试子程序

41H——货位列号暂存单元40H——货位层号暂存单元

41H40H

33H04H03H02H01H35H05H03H01H

34HCDHB9H8AH01H36HBFH5BH5BH

CSHC:

PUSHA

MOVA,41H

CJNEA,03H,MN0

MOV33H,#04H

MOV34H,#0CDH

AJMPMN3

MN0:

CJNEA,#02H,MN1

MOV33H,#03H

MOV34H,#0B9H

AJMPMN3

MN1:

CJNEA,#01H,MN2

MOV33H,#02H

MOV34H,#8AH

AJMPMN3

MN2:

MOV33H,#01H

MOV34H,#01H

MN3:

MOVA,40H

CJNEA,#02H,MN4

MOV35H,#05H

MOV36H,#0BFH

AJMPMN6

MN4:

CJNEA,#01H,MN5

MOV35H,#03H

MOV36H,#5BH

AJMPMN6

MN5:

MOV35H,#01H

MOV36H,#5BH

MN6:

POPA

RET

§9.4使用说明

本系统操作方便,而且在存包或取包过程中均有乐曲伴奏,机械手返回原处,音乐自动停止。

一、键盘介绍

键盘有数字键0~9、功能键MON、Q、C键,余下3个扩充键。

(1)数字键(0~9):

向微机输入十进制数字,组成包位编码。

(2)功能键

·监控键(MON):

使系统进入监控程序。

·取包键(Q):

使系统完成取包操作。

·存包键(C):

使系统完成存包操作。

二、操作说明

(1)开启电源(+5V和+25V),两位数码管均应显示提示符“-”表示计算机系统正常。

否则关闭电源,检查故障。

(2)预置包位编码

先输入层号(十位数),后输入序号(个位数)例如,设包位编号为23,则依次按数字键2和3,显示23,表示置数成功。

(3)启动功能键、完成有关操作,最后,显示提示符“一一”。

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

当前位置:首页 > 高中教育 > 高中教育

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

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