Intelligent Video Conferencing
Status Report
Appendix--HC11 Assembly Code for Motor Control
PORTC EQU $1003 ;WE WILL USE PORT C FOR HORIZONTAL ROTATION
DDRC EQU $1007
ORTB EQU $1004 ;WE WILL USE PORT B FOR VERTICAL ROTATION
ORG $C000
LDAA #$FF
STAA DDRC ;END OF OUTPUT INITIALIZATION
NIT: LDX #RSEQ ;THIS INITIALIZES THE POINTER TO THE SEQUENCE
STX HROT
STX VROT
HSTART: LDAA HANGL ;THIS GETS THE ANGLE OF ROTATION NEEDED
;I NEED TO DIVIDE THE ANGLE BY 1.8
;WHICH WILL GIVE ME THE STEPS
;THEN I WILL PUT #STEPS IN LOC HSTEPS
BRA HROT ;GO TO HORIZONTAL MOTION ROUTINE
VSTART: LDAA VANGL ;SAME COMMENTS AS ABOVE
;FIND STEPS AND STORE IT
BRA VROT ;GO TO VERTICAL ROTATION ROUTINE
ROT: LDX HROT ;THIS STARTS THE ROTATION WHERE IT LEFT OFF
LDAB HNUM ;KEEPS TRACK OF WHERE WE ARE IN SEQUENCE
LDAA HDIR ;THIS WILL GET DIRECTION
;ASSUME 1 IS POS AND 0 IS NEG
BEQ HRSTEP ;IF DIR IS NEG GO TO REVERSE STEP
HFSTEP: LDY HSTEPS ;THIS IS NUMBER OF STEPS TO TAKE
OOP1: LDAA 0,X ;THIS IS FOR FORWARD HORIZONTAL ROTATION
STAA PORTC ;SENDS BIT PATTERN TO THE HORIZONTAL MOTOR
INX
DEY
BEQ ENDH
INCB
CMPB #$08
BNE LOOP1 ;THIS LOOKS FOR THE END OF ONE CYCLE OF THE STEP SEQ.
CLRB ;INITIALIZES THE STEP SEQUENCE AGAIN
LDX #BSEQ
BRA LOOP1 ;GOES BACK AT BEGINNING OF SEQUENCE
HRSTEP: LDY HSTEPS ;THIS IS FOR REVERSE HORIZONTAL ROTATION
OOP2: LDAA 0,X
STAA PORTC
DEX
DEY
BEQ ENDH
DECB
BNE LOOP2 ;THIS LOOKS FOR THE END OF ONE CYCLE
LDAB #$08
LDX #ESEQ
BRA LOOP2
ENDH: STX HROT
STAB HNUM
BRA VSTART
ROT: LDX VROT ;THIS STARTS THE ROTATION WHERE IT LEFT OFF
LDAB VNUM ;KEEPS TRACK OF WHERE WE ARE IN SEQUENCE
LDAA VDIR ;THIS WILL GET DIRECTION
;ASSUME 1 IS POS AND 0 IS NEG
BEQ VRSTEP ;IF DIR IS NEG GO TO REVERSE STEP
VFSTEP: LDY VSTEPS ;THIS IS NUMBER OF STEPS TO TAKE
OOP3: LDAA 0,X ;THIS IS FOR FORWARD VERTICAL ROTATION
STAA PORTB ;SENDS BIT PATTERN TO THE VERTICAL MOTOR
INX
DEY
BEQ ENDV
INCB
CMPB #$08
BNE LOOP3 ;THIS LOOKS FOR THE END OF ONE CYCLE OF THE STEP SEQ.
CLRB ;INITIALIZES THE STEP SEQUENCE AGAIN
LDX #BSEQ
BRA LOOP3 ;GOES BACK AT BEGINNING OF SEQUENCE
VRSTEP: LDY VSTEPS ;THIS IS FOR REVERSE VERTICAL ROTATION
OOP4: LDAA 0,X
STAA PORTB
DEX
DEY
BEQ ENDV
DECB
BNE LOOP4 ;THIS LOOKS FOR THE END OF ONE CYCLE
LDAB #$08
LDX #ESEQ
BRA LOOP4
ENDV: STX VROT
STAB VNUM
NOP
SEQ: FCB $0A
FCB $08
FCB $09
FCB $01
FCB $05
FCB $04
FCB $06
SEQ: FCB $02
ROT: FDB $00
NUM: FCB $00
ROT: FDB $00
NUM: FCB $00
ANGL: FCB $00
STEPS: FDB $00
DIR: FCB $00
ANGL: FCB $00
STEPS: FDB $00
DIR: FCB $00
Return to the index or the appendix