d_motor.asm
来自「C5402汇编编写的对直流电机和步进电机进行控制的程序。」· 汇编 代码 · 共 75 行
ASM
75 行
.mmregs
.global _c_int00
.ref _Motor_init
.ref _DCM_CNRTL
SPSA1 .set 0x0048
SPSD1 .set 0x0049
SPCR1 .set 0x0000
SPCR2 .set 0x0001
PCR .set 0x000e
.text
_c_int00:
;-------------------------------------------
; 初始化DSP
;-------------------------------------------
; 关中断
SSBX INTM
RSBX CPL
NOP
NOP
; 设置堆栈
STM #0x0300,SP
; 设置中断屏蔽寄存器,开串口0收中断和中断2
STM #08h,IMR
; 清中断标志
STM 0,IFR
; 设置DP指针值,用于DP寻址高9位
LD #0h,DP
; 设置软件等待状态寄存器和块转移控制寄存器
STM 7fffh,SWWSR
STM 800h,BSCR
; 设置中断向量表首地址
LDM PMST,A
AND #7fh,0,A,A
OR #0080h,0,A,A
STLM A,PMST
;将串口1配置为通用IO口
STM #SPCR1,SPSA1
ANDM #0xfffe,SPSD1
STM #SPCR2,SPSA1
ANDM #0xfffe,SPSD1
RPT #0x1ff
NOP
STM #PCR,SPSA1
STM #0x3f00,SPSD1
;设置时钟模式寄存器,根据需要倍频
STM 0h,CLKMD
cmode: LDM CLKMD,A
AND #1h,0,A,A
BC cmode,ANEQ
STM 1207h,CLKMD
;设置定时器寄存器
STM #0x13FF,PRD ; load timer period
STM #0x13FF,TIM
STM #0x3F,TCR
STM #0x2f,TCR
RSBX INTM
;进入直流电机控制程序
CALL _Motor_init
motor_cntrl:
CALL _DCM_CNRTL
NOP
B motor_cntrl
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?