您好,欢迎来到意榕旅游网。
搜索
您的当前位置:首页单片机课程设计--步进电机角度控制

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

来源:意榕旅游网


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

考试序列号 18

课 程 设 计

论文题目:步进电机角度控制(2)

课程名称:计算机控制技术 学 院 自动化学院 专业班级 学 号 8 姓 名 指导教师

2013 年 06 月 25 日

一、 目的:

1. 巩固和加深对《计算机控制技术》课程内容的认识和理解,提高应用水平。 2. 熟悉键盘控制和七段数码管的使用。 3. 掌握直流电机的速度控制和测试方法。 二、 课程设计内容

1. 在显示器上显示任意四位十进制数。 2. 将8个键定义键值为0~7,按任意键在显示器上显示对应键值。 3. 实现:

(1) 定义键盘按键:5个数字键;3个功

能键:设置SET、清零CLR、开始START;

(2) 显示器上第一位显示次数,后三位

显示每次行走的角度;

(3) 通过键盘的按键,设置步进电机各次的角度值;按动SET键后,开始设置:第一位设置次数,后三位设置角度值,再按动SET置入;可连续置入的角度。 (4) 按START键启动步进电机开始转

动,到位后停止;按CLR键清零步进电机回原位。

4. 电路框图(参见任务书)。 三、 任务要求

1. 设置键盘为下图所示:

2. 要求实现以下功能:

(1) 键入4(次数)270(角度值)键入SET设置完毕,键入START步进电机转动270度4次;停止后键入CLR返回零位;每个过程都必须有相关的显示。 (2) 键入7(次数)45(角度值)键入SET设置完毕,键入START步进电机转动45度7次;停止后键入CLR返回零位;每个过程都必须有相关的显示。

四、 程序代码 实验一:

按键设置为 0 1 7 8 E F A B

2 4 5 7 CLR SET START 0

程序:

ORG 0000H LJMP MAIN ORG 0100H

MAIN:

MOV 50H,#00H MOV 51H,#00H MOV 52H,#00H MOV 53H,#00H

MOV

R5,#53H ;------------------------------------------- BEGIN: MOV DPTR,#7F03H MOV A,#81H MOVX @DPTR,A ;-------------------------------------------

MOV DPTR,#7F00H MOV A,#00H MOVX @DPTR,A MOV DPTR,#7F02H MOV A,@DPTR ANL A,#03H CJNE A,#03H,INK1 ACALL DIS AJMP BEGIN INK1:

ACALL DL1MS

MOV DPTR,#7F02H MOVX A,@DPTR ANL A,#03H

CJNE A,#03H,INK2 INK2:

MOV DPTR,#7F00H MOV A,#0FEH MOVX @DPTR,A MOV DPTR,#7F02H MOVX A,@DPTR JNB ACC.1,KEY0 JNB ACC.0,KEYD AJMP BEGIN ;-------------------------------------------

MOV DPTR,#7F00H MOV A,#0FDH MOVX @DPTR,A MOV DPTR,#7F02H MOV A,@DPTR

JNB

ACC.1,KEY1

JNB ACC.0,KEYF MOV DPTR,#7F00H MOV A,#0FBH MOVX @DPTR,A MOV DPTR,#7F02H MOV A,@DPTR JNB ACC.1,KEY7 JNB ACC.0,KEYA MOV DPTR,#7F00H MOV A,#0FBH MOVX @DPTR,A MOV DPTR,#7F02H MOVX A,@DPTR JNB ACC.1,KEY8

JNB ACC.0,KEYB ;------------------------------------------- KEY0: MOV DPTR,#7F00H MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF ACALL DIS AJMP STTK KEY1:

MOV DPTR,#7F01H MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF ACALL DIS AJMP STTK KEY7:

MOV DPTR,#7F07H MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF ACALL DIS AJMP STTK KEY8:

MOV DPTR,#7F08H MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF ACALL DIS AJMP STTK KEYA:

MOV DPTR,#7F0AH MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF

ACALL DIS AJMP STTK KEYB:

MOV DPTR,#7F0BH MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF ACALL DIS AJMP STTK KEYE:

MOV DPTR,#7F0EH MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF ACALL DIS AJMP STTK KEYF:

MOV DPTR,#7F0FH MOV A,#00H MOVX

@DPTR,A

ACALL PUTBUF ACALL DIS

AJMP

STTK

;------------------------------------------- PUTBUF: PUSH 00H PUSH ACC MOV A,R5 MOV R0,A POP ACC MOV @R0,A

DEC R5 CJNE R5,#4FH,GOBACK MOV R5,#53H GOBACK:

POP 00H RET DIS:

PUSH ACC PUSH 00H PUSH 03H PUSH DPH PUSH DPL MOV R0,#50H MOV R3,#F7H AA2:

MOV A,@R0 MOV DPTR,#AA1

MOVC

A,@A+DPTR

MOV MOVX MOV MOVX MOV JNB RR MOV INC AJMP POP POP POP POP POP RET DB DB

3FH,06H,5BH,4FH,66H,6DH,7DH,07H 7FH,6FH,77H,7CH,39H,5EH,79H,71H R7,#01H R6,#0FFH R6,DL1 R7,DL0 DPTR,#7F01H @DPTR,A DPTR,#7F02H @DPTR,R3 A,R3 ACC.0,AA3 A R3,A R0 AA2 DPL DPH 03H 00H ACC

ACALL DL1MS

AA3:

AA1:

;------------------------------------------- DL1MS: MOV DL0: DL1:

MOV DJNZ DJNZ RET

ACALL DIS MOV MOV MOVX MOV MOV CJNE AJMP END

DPTR,#7F00H A,#00H @DPTR,A DPTR,#7F02H A,@DPTR A,#03H,STTK BEGIN

;------------------------------------------- STTK:

ANL A,#03H

;-----------------------------------------------------------------------------------------------------------------------------------------

实验二: 程序:

ORG 0000H LJMP

MAIN

ORG 0100H

MAIN:

MOV MOV MOV MOV 50H,#00H ;角度个位 51H,#00H 52H,#00H 53H,#00H ;角度十位 ;角度百位 ;转次数 MOV 54H,#00H ;START标志位

MOV 55H,#00H ;CLR标志位

MOV 56H,#00H

MOV 57H,#00H ;正反转标志位 MOV 58H,#01H ;前后4拍标志位 MOV 59H,#00H

;存放转的步数 MOV 60H,#00H ;角度个位 MOV 61H,#00H ;角度十位 MOV 62H,#00H ;角度百位

MOV

63H,#00H

;转次数 MOV DPTR,#7F03H MOV A,#81H

MOVX @DPTR,A

BEGIN: MOV

DPTR,#7F00H ;键盘检测

MOV

A,#00H MOVX @DPTR,A MOV

DPTR,#7F02H MOVX A,@DPTR ANL A,#03H CJNE A,#03H,INK1

MOV

A,54H ;电机运动及正反转判断 CJNE A,#01H,TEST1

;START=0跳

MOV A,55H

CJNE A,#01H ,ZHENG ;CLR=0跳 AJMP NT ;跳去显示 TEST1: MOV

A,55H ;START=0

CJNE

A,#01H,NT

;START=0,CLR=0跳去显示

FAN: MOV

57H,#00H ;给个反转标志 LCALL BJF

AJMP BEGIN ZHENG: MOV

57H,#01H

;给个正传标志

ACALL BJZ NT: ACALL DIS

AJMP

BEGIN INK1: ACALL DL1MS

MOV DPTR,#7F02H MOVX A,@DPTR

ANL A,#03H CJNE A,#03H,INK2

AJMP

BEGIN

INK2:

MOV MOV MOV DPTR,#7F00H A,#0FEH DPTR,#7F02H MOVX @DPTR,A MOVX A,@DPTR

JNB JNB MOV MOV

MOVX MOV

MOVX JNB JNB MOV MOV

MOVX MOV

MOVX JNB JNB MOV MOV

MOVX MOV

MOVX JNB JNB

LJMP

KEYCLR: MOV

LJMP KEYSTART:

MOV LJMP KEYSET: MOV MOV MOV MOV MOV MOV MOV

MOV LJMP KEY0: MOV

ACC.1,KEY2

ACC.0,KEYCLR

DPTR,#7F00H A,#0FDH @DPTR,A DPTR,#7F02H A,@DPTR ACC.1,KEY4

ACC.0,KEYSET

DPTR,#7F00H A,#0FBH @DPTR,A DPTR,#7F02H A,@DPTR ACC.1,KEY5

ACC.0,KEYSTART

DPTR,#7F00H A,#0F7H @DPTR,A DPTR,#7F02H A,@DPTR ACC.1,KEY7

ACC.0,KEY0

STTK 54H,#00H STTK 54H,#01H STTK

60H,50H

61H,51H 62H,52H 63H,53H 50H,#00H

51H,#00H 52H,#00H 53H,#00H

STTK A,#00H

ACALL PUTBUF ACALL DIS LJMP

STTK KEY2: MOV

A,#02H

ACALL PUTBUF ACALL DIS LJMP

STTK KEY4: MOV

A,#04H

ACALL PUTBUF ACALL DIS LJMP

STTK KEY5: MOV

A,#05H

ACALL PUTBUF ACALL DIS LJMP

STTK KEY7: MOV

A,#07H

ACALL PUTBUF ACALL DIS LJMP STTK

PUTBUF:

PUSH

00H PUSH ACC MOV R1,#3 MOV R0,#52H PUTBUF0:MOV

A,@R0 INC R0 MOV @R0,A DEC R0 DEC R0

DJNZ R1,PUTBUF0 POP ACC MOV 50H,A POP

00H

RET DIS:

PUSH ACC PUSH 00H PUSH

03H MOV R0,#50H MOV R3,#0F7H AA2:

MOV A,@R0 MOV DPTR,#A1 MOVC A,@A+DPTR MOV DPTR,#7F01H MOVX @DPTR,A

MOV

DPTR,#7F00H

MOV

A,R3

MOVX @DPTR,A ACALL DL1MS MOV JNB RR MOV INC AJMP AA3:

POP POP POP RET

STTK:

ACALL MOV

MOV

MOVX MOV

MOVX ANL CJNE AJMP A1:

DB

DB DL1MS: MOV DL0: MOV DL1:

DJNZ DJNZ RET BJZ:

MOV

ACALL MOV MOV MOV MOV MOV MOV MOV MOV MOV ACALL MOV

MOV

RET

A,R3 ACC.0,AA3

A R3,A R0 AA2 03H

00H ACC

DIS

DPTR,#7F00H A,#00H @DPTR,A DPTR,#7F02H A,@DPTR A,#03H A,#03H,STTK BEGIN

3FH,06H,5BH,4FH,66H,6DH,7DH,07H 7FH,6FH,77H,7CH,39H,5EH,79H,71H R7,#02H R6,#0FFH R6,DL1 R7,DL0 57H,#01H

;正转标志

BJ1

40H,50H 41H,51H 42H,52H 43H,53H 50H,60H

51H,61H 52H,62H 53H,63H 57H,#01H ;正转标志

BJ1

54H,#01H 55H,#01H

BJF: MOV

57H,#00H

;反转标志

ACALL BJ1

MOV 60H,#00H MOV 61H,#00H MOV 62H,#00H MOV 63H,#00H MOV 50H,40H MOV 51H,41H MOV 52H,42H MOV

MOV

ACALL MOV MOV MOV MOV MOV MOV RET BJ1:

PUSH

MOV MOV MOV CLR MUL MOV MOV MOV ADD MOV CLR MUL MOV ADD MOV CLR DIV ADD MOV

MOV

MOV MOV

CJNE MOV

53H,43H 57H,#00H

;反转标志

BJ1 50H,#00H 51H,#00H 52H,#00H 53H,#00H

54H,#00H 55H,#00H 03H ;转动角数据处理 R0,#52H

;百位

A,@R0 B,#6H

;100=15*6+10 C AB R1,A

;n次15的一个分量 R0,#51H

;十位

A,@R0 A,52H B,#0AH C AB R0,#50H ;个位

A,@R0

;将个位和十位和陈一个数B,#0FH C AB A,R1 ;要转A次15 59H,A

R0,53H

56H,53H A,R0 A,#00H,AAA4 54H,#00H

MOV AJMP AAA4: MOV AAA3: AAA2:

MOV MOV CJNE CJNE 55H,#00H BACK R5,53H R1,59H A,57H A,#01H,FZ A,#01H,ZX

;看标志位是走前4拍还是后4拍

58=1,走ZS

;转R1次*15

R0,#04H ;步距4拍

MOV

MOV A,58H

MOV CPL MOV AJMP ZX:

MOV CPL MOV AJMP FZ: MOV CJNE MOV CPL MOV AJMP FX:

MOV CPL MOV AAA1:

MOV MOVC MOV ACALL INC PUSH PUSH DEC MOV ACALL INC POP POP DJNZ DJNZ ACALL DJNZ

MOV

DPTR,#L1

A

58H,A

AAA1 DPTR,#L2

A 58H,A AAA1

A,58H

A,#01H,FX DPTR,#L3

A

58H,A

AAA1 DPTR,#L4 A 58H,A A,#00H A,@A+DPTR P1,A DL1M

DPTR

DPH

DPL R5 53H,R5 DIS

R5 DPL

DPH R0,AAA1 R1,AAA2 DL2MS

R5,AAA3 53H,56H

;前4拍

;标志位区反 ;后4拍

看标志位是走前4拍还是后4拍

;前4拍

;标志位区反 ;后4拍

58=1,走ZS

;

BACK: POP

RET L1: L2: L3: L4: DL1M: DL2: DL3:

DL4: DL5:

DB DB DB DB MOV MOV DJNZ RET

R7,#0FFH R6,#0FFH R6,DL5 R7,DL4

MOV DJNZ RET END

01H,03H,02H,06H 04H,0CH,08H,09H 09H,08H,0CH,04H 06H,02H,03H,01H R7,#05H R6,#0FFH R6,DL3 R7,DL2

03H

DJNZ DL2MS: MOV

DJNZ

设计流程图 开始

8255初始化 检测是否有 N 按键按下 Y 检测是否有 转动电位 SET键按下 Y 器调角度 N 检测START Y 根据保存的 N 检测C键

键是否按下 数据依次转 是否按下 动步进电机

N Y 检测CLR N 保存所调的 键是否按下 角度数据 Y 根据保存的 数据依次反 转步进电机

因篇幅问题不能全部显示,请点此查看更多更全内容

Copyright © 2019- yrrf.cn 版权所有

违法及侵权请联系:TEL:199 1889 7713 E-MAIL:2724546146@qq.com

本站由北京市万商天勤律师事务所王兴未律师提供法律服务