返回首页
当前位置: 主页 > 定时器/计数器 >

MCS-51单片机驱动步进电机的程序设计

时间:2009-06-29 20:42来源:未知 作者:牛牛 点击:
1.实验设计 定时器 1 于方式 1,16 位 ,10ms 中断一次 40H 10ms 计数单元 41H 秒计数单元 42H 分计数单元 43H 时计数单元 定时方式 1 为 10MS:THX=0ECH,TLX=78H 方式 0 为 10MS: THX=63H,TLX=18H 步进电机驱动实验 定时中断程序 正转后反转 , 显示计数值 步

  1.实验设计

内容来自单片机之家www.dpj100.com

 定时器1于方式1,16,10ms中断一次 单片机

    40H 10ms计数单元

单片机

    41H 秒计数单元 内容来自单片机之家www.dpj100.com

    42H 分计数单元

单片机

    43H 时计数单元

单片机

 定时方式110MS:THX=0ECH,TLX=78H 内容来自单片机之家www.dpj100.com

     方式010MS: THX=63H,TLX=18H 单片机

步进电机驱动实验  定时中断程序

内容来自单片机之家www.dpj100.com

正转后反转,显示计数值

单片机

步进电机按三相六拍的工作方式运动

单片机

           X

内容来自单片机之家www.dpj100.com

        C    B    A 单片机

      P1.2 P1.1 P1.0

内容来自单片机之家www.dpj100.com

用键盘上方的发光二极管(3FH)对应指示:

单片机

        D2   D1   D0 单片机

 正转:A-AB-B-BC-C-CA-A 内容来自单片机之家www.dpj100.com

 反转:A-CA-C-BC-B-AB-A 内容来自单片机之家www.dpj100.com

2.参考程序

单片机

; 42H,41HBCD码计数单元

单片机

;内存分配

内容来自单片机之家www.dpj100.com

TCTER   EQU     40H     ;10ms计数单元

单片机

CTCL    EQU     44H     ;进给步数

内容来自单片机之家www.dpj100.com

CTCH    EQU     45H     ;最大9999

单片机

STAT    EQU     52H

单片机

SMOUT   EQU     55H 单片机

; 位地址,工作标志

单片机

XP      EQU     02H     ;X轴正反转

内容来自单片机之家www.dpj100.com

XW      EQU     04H     ;工作标志 单片机

; 内容来自单片机之家www.dpj100.com

DISP    EQU     0DE00H  ;显示子程序入口

单片机

; 内容来自单片机之家www.dpj100.com

    ORG     0000H

内容来自单片机之家www.dpj100.com

START:  AJMP    MAIN

单片机

; 内容来自单片机之家www.dpj100.com

    ORG     000BH   ;定时器0中断服 内容来自单片机之家www.dpj100.com

    AJMP    T0INT   ;务程序入口 单片机

; 单片机

    ORG     0030H

内容来自单片机之家www.dpj100.com

MAIN:   MOV     R0,#39H ;显示缓冲区初始化

单片机

MAIN_0: MOV     @R0,#0

单片机

    INC     R0 内容来自单片机之家www.dpj100.com

    CJNE    R0,#44H,MAIN_0  内容来自单片机之家www.dpj100.com

    MOV     STAT,#01 单片机

    MOV     SMOUT,#01H

内容来自单片机之家www.dpj100.com

    MOV     CTCL,#50H       ;150 单片机

    MOV     CTCH,#01H 内容来自单片机之家www.dpj100.com

    SETB    XW 单片机

    CLR     XP 单片机

    MOV     TMOD,#01H 单片机

    MOV     IE,#10000010B

内容来自单片机之家www.dpj100.com

    MOV     TH0,#0ECH;10ms:EC78H 单片机

    MOV     TL0,#78H

内容来自单片机之家www.dpj100.com

    SETB    TR0

内容来自单片机之家www.dpj100.com

MAIN_1: JNB     XW,MAIN_2

内容来自单片机之家www.dpj100.com

    ACALL   CONT    ;主程序循环

内容来自单片机之家www.dpj100.com

    SJMP    MAIN_1

内容来自单片机之家www.dpj100.com

MAIN_2: CLR     TR0     ;关定时器 内容来自单片机之家www.dpj100.com

MAIN_3: LCALL   DISP

单片机

    SJMP    MAIN_3 单片机

;

单片机

CONT:   MOV     3FH,SMOUT

单片机

    LCALL   DISP    ;控制程序

单片机

;       MOV     P1,SMOUT

单片机

    RET 内容来自单片机之家www.dpj100.com

;

内容来自单片机之家www.dpj100.com

;定时器0中断服务程序

单片机

T0INT:  MOV     TH0,#0ECH

内容来自单片机之家www.dpj100.com

    MOV     TL0,#78H

单片机

    PUSH    ACC     ;保护现场

内容来自单片机之家www.dpj100.com

    PUSH    PSW 单片机

    PUSH    01H

内容来自单片机之家www.dpj100.com

    INC     TCTER 内容来自单片机之家www.dpj100.com

    MOV     A,TCTER

单片机

    CJNE    A,#50,T0INTR

单片机

    MOV     TCTER,#0 内容来自单片机之家www.dpj100.com

    ACALL   XPD0 单片机

    ACALL   COUNT 单片机

T0INTR: POP     01H

单片机

    POP     PSW     ;恢复现场 单片机

    POP     ACC 单片机

    RETI

单片机

COUNT:  JB      XP,COUNT0

单片机

    MOV     A,41H   ;个十单元

单片机

    INC     A

单片机

    DA      A

单片机

    MOV     41H,A

单片机

    JNZ     COUNT1

单片机

    CLR     C

内容来自单片机之家www.dpj100.com

    MOV     A,42H   ;百千单元

单片机

    INC     A

内容来自单片机之家www.dpj100.com

    DA      A

单片机

    MOV     42H,A 内容来自单片机之家www.dpj100.com

    SJMP    COUNT1

内容来自单片机之家www.dpj100.com

COUNT0: MOV     A,41H   ;个十单元

内容来自单片机之家www.dpj100.com

    ADD     A,#99H

内容来自单片机之家www.dpj100.com

    DA      A 单片机

    MOV     41H,A

单片机

    CJNE    A,#99H,COUNT2

单片机

    MOV     A,42H   ;百千单元

单片机

    ADD     A,#99H 内容来自单片机之家www.dpj100.com

    DA      A 单片机

    MOV     42H,A

单片机

    SJMP    COUNT2 内容来自单片机之家www.dpj100.com

COUNT1: MOV     A,42H

内容来自单片机之家www.dpj100.com

    XRL     A,CTCH

内容来自单片机之家www.dpj100.com

    JNZ     TINT0

单片机

    MOV     A,41H

单片机

    XRL     A,CTCL

内容来自单片机之家www.dpj100.com

    JNZ     TINT0 内容来自单片机之家www.dpj100.com

    SETB    XP 单片机

    SJMP    TINT0

单片机

COUNT2: MOV     A,42H 单片机

    JNZ     TINT0

单片机

    MOV     A,41H 单片机

    JNZ     TINT0 单片机

    CLR     XW 单片机

;

单片机

TINT0:  MOV     A,41H   ;第一拆字

单片机

    ANL     A,#0FH

单片机

    MOV     39H,A 内容来自单片机之家www.dpj100.com

    MOV     A,41H

单片机

    ANL     A,#0F0H 单片机

    SWAP    A

单片机

    MOV     3AH,A 单片机

    MOV     A,42H   ;第二拆字

单片机

    ANL     A,#0FH 单片机

    MOV     3BH,A 单片机

    MOV     A,42H 内容来自单片机之家www.dpj100.com

    ANL     A,#0F0H 单片机

    SWAP    A 单片机

    MOV     3CH,A 单片机

    MOV     3DH,#10H        ;空格 单片机

    JB      XP,TINT1

单片机

    MOV     3EH,#0AH        ;正转

内容来自单片机之家www.dpj100.com

    RET

单片机

TINT1:  MOV     3EH,#0BH        ;反转

单片机

    RET 单片机

;步进电机驱动处理 单片机

XPD0:   MOV     R1,#STAT 单片机

    JB      XP,XPD1

内容来自单片机之家www.dpj100.com

    INC     @R1     ;正转

单片机

    CJNE    @R1,#07H,XPD2

单片机

    MOV     @R1,#1 单片机

    SJMP    XPD2

单片机

XPD1:   DEC     @R1     ;反转 单片机

    CJNE    @R1,#00H,XPD2 单片机

    MOV     @R1,#06

单片机

XPD2:   MOV     A,@R1 单片机

    ADD     A,#2 单片机

    MOVC    A,@A+PC 单片机

    MOV     SMOUT,A

单片机

    RET

单片机

SM_TAB: DB      03H,01H,05H 单片机

    DB      04H,06H,02H 单片机

顶一下
(14)
73.7%
踩一下
(5)
26.3%
------分隔线----------------------------
推荐内容