stepmotor.txt

来自「代码主要功能: 步进的正反方向转动控制 速度的分级控制过程」· 文本 代码 · 共 79 行

TXT
79
字号
步进电机控制实验代码

.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  ;置循环缓冲区大小
ST #2000h,AR0  ;置循环缓冲区首地址

ST #00h,BJ_DIRECT ;电机旋转方向
ST #01h,BJ_SPEED ;电机旋转速度

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 ;正转
B read

start1 CALL delay
PORTW *AR0-%,BJ_ADD ;反转
B read


delay ST #0d00h,AR7  ;延时子程序
BANZ $,*AR7-
BANZ delay,*AR6-
RET

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?