.title "ex5"
.global _c_int00
.mmregs
BJ_ADD .set 1008h
BJ_DIRECT .set 60h
BJ_SPEED .set 61h
.data
.byte 0eh,0dh,0bh,07h
.sect ".vectors"
reset: B _c_int00
NOP
NOP
.space 4*127
.text
_c_int00:
LD #0h,DP
STM #3000h,SP
SSBX INTM
RSBX SXM
ST #07FFFh,SWWSR
ST #0h,CLKMD ;切換到DIV模式
tst BITF CLKMD,#1h
BC tst,TC ;判斷切換是否完成
ST #1087h,CLKMD ;切換到PLL*2模式
RPT #0FFh ;等待切換完成
NOP
ST #04h,BK ;置循環(huán)緩沖區(qū)大小
ST #2000h,AR0 ;置循環(huán)緩沖區(qū)首地址
ST #00h,BJ_DIRECT ;電機旋轉(zhuǎn)方向
ST #01h,BJ_SPEED ;電機旋轉(zhuǎn)速度
read LD #speed0,B ;判斷速度
ADD BJ_SPEED,2,B,B
BACC B
speed0 ST #6fh,AR6 ;速度0
B direct
speed1 ST #4fh,AR6 ;速度1
B direct
speed2 ST #2fh,AR6 ;速度2
B direct
speed3 ST #1fh,AR6 ;速度3
B direct
speed4 ST #0ch,AR6 ;速度4
B direct
speed5 ST #07h,AR6 ;速度5
direct BITF BJ_DIRECT,#01h ;判斷方向
BC start1,TC
start0 CALL delay
PORTW *AR0+%,BJ_ADD ;正轉(zhuǎn)
B read
start1 CALL delay
PORTW *AR0-%,BJ_ADD ;反轉(zhuǎn)
B read
delay ST #0d00h,AR7 ;延時子程序
BANZ $,*AR7-
BANZ delay,*AR6-
RET