原创 关于用2003驱动步进电机的问题

2007-8-21 16:54 5132 10 10 分类: 消费电子
关于用2003驱动步进电机的问题

 



在仿真的时候,通电后,单片机向2003送送信号,2003的输入端有信号输入,但是输出端不显示有信号输出,为什么会出现这种情况?仿真图如下图所示:
点击看大图
程序:ORG      0000H
STOP:    ORL    P1,#0FFH      ;步进电机停止
LOOP:    JNB    P1.0,FOR2      ;如果p1.0按下正转
                  JNB      P1.1,REV2      ;如果p1.1按下反转
                  JNB      P1.2,STOP1    ;如果p1.2按下停止?
                  JMP      LOOP          ;反复监测键盘
FOR:     LCALL XIAN
                  MOV      R0,#00H        ;正转到tab取码指针初值
FOR1:    CLR    A
           MOV      A,R0          ;取码
           MOV      DPTR,#TABLE  
           MOVC     A,@A+DPTR
                  JZ       FOR           ;是否到了结束码00H
         CPL    A
         MOV    P2,A          ;输出到p2开始正转
         JNB    P1.2,STOP1    ;如果p1.2按下停止
         JNB    P1.1,REV2     ;如果p1.1按下反转
         LCALL DELAY         ;转动的速度
              INC    R0            ;取下一个码
         JMP    FOR1          ;继续正转
REV: LCALL XIAN
                MOV    R0,#05H     ;反转到TAB取码指针初值
REV1: CLR    A
         MOV    A,R0          ;取码
         MOV    DPTR,#TABLE
         MOVC   A,@A+DPTR
         JZ     REV           ;是否到了结束码00H
                CPL    A
         MOV    P2,A          ;输出到p2开始反转
         JNB    P1.2,STOP1    ;如果p1.2按下停止
         JNB    P1.0,FOR2     ;如果p1.0按下正转
         LCALL DELAY         ;转动的速度
         INC    R0            ;取下一个码
         JMP    REV1          ;继续反转
STOP1:   LCALL DELAY         ;按p1.2的消除抖动
         JNB    P1.2,$        ;p1.2放开否?
         LCALL DELAY         ;放开消除抖动
                MOV    SCON,#0
                MOV    A,#0
         MOV    SBUF,A
         JNB    TI,$
         CLR    TI
         MOV    SBUF,A
         JNB    TI,$
         CLR    TI
         JMP    STOP
FOR2:                    LCALL DELAY         ;按p1.0的消除抖动
         JNB    P1.0,$        ;p1.0放开否
         LCALL DELAY         ;放开消除抖动
         JMP    FOR
REV2:                    LCALL DELAY         ;按p1.1的消除抖动
         JNB    P1.1,$        ;p1.1放开否
         LCALL DELAY         ;放开消除抖动
         JMP    REV
XIAN:                  MOV   SCON,#0 ; 允许接受数据
         MOV   DPTR,#S ;查表
                         CLR   A ;累加器清零
                         MOV   A,#7
                      MOVC A,@A+DPTR
         MOV SBUF,A ;
         JNB TI,$ ;
         CLR TI
         CLR A
         MOV A,#4
         MOVC A,@A+DPTR
         MOV SBUF,A ;
         JNB   TI,$ ;
         CLR   TI
                         RET
;DELAY1:    MOV   R1,#255        ;延时20ms
;D11: MOV   R2,#255
;          DJNZ R2,$
;              DJNZ R1,D11
DELAY:    MOV   R1,#40        ;延时20ms
D1: MOV   R2,#248
         DJNZ R2,$
                DJNZ R1,D1
         RET
S:       DB    3FH,06H,5BH,4FH,66H,6DH,7DH,07H,7FH,67H
TABLE:   DB    03H,09H,0CH,06H ; 正转表
         DB    00H            ; 正转结束
         DB    06H,0CH,09H,03H ; 反转表
         DB    00H            ; 反转结束
         END
PARTNER CONTENT

文章评论0条评论)

登录后参与讨论
EE直播间
更多
我要评论
0
10
关闭 站长推荐上一条 /3 下一条