📄 sysreg.asm
字号:
*********************************************************************************
* SYSREG.ASM v1.00 *
* 版权(c) 2003- 北京合众达电子技术有限责任公司 *
* 设计者: 段立锋 *
*********************************************************************************
.file "sysreg.asm"
.c_mode
.mmregs
.copy "vc54x.inc" ; VC5402 Memory-Mapped Register Declaration
.copy "dec5416.inc" ; SEED DEC5416 Memory-Mapped Register Declaration
.def _sys_set
.def _memory_set
.def _sysreg_read
.def _sysint_enable
.def _sysint_disable
.def _sys_clk
.def _sys_wait
.ref _sys_statbuff
.text
*********************************************************************************
* 系统设置操作函数 *
*********************************************************************************
*********************************************************************************
* *
* 函数定义:void _sys_set(uint portdata) *
* 功 能:系统设置 *
* *
* 入口参数: A---- 要写入的数据 *
* 出口参数: 无 *
* 资源使用:AR0,B *
* *
*********************************************************************************
_sys_set: PSHM SWWSR ;保存当前的系统等待时间
LDM SWWSR,B
OR #07000H,B ;设置系统为14个等待
STLM B,SWWSR
STM #0,AH
STM #_sys_statbuff,AR0
STL A,*AR0(SYSB0) ;保存要写入的数据
PORTW *AR0(SYSB0),syscntl ;将数据写入到第一个寄存器
POPM SWWSR
.if __far_mode
FRET
.else
RET
.endif
*********************************************************************************
* *
* 函数定义:void _memory_set(uint portdata) *
* 功 能:存贮区设置 *
* *
* 入口参数: A---- 要写入的数据 *
* 出口参数:无 *
* 资源使用:AR0,B *
* *
*********************************************************************************
_memory_set: STM #0,AH
STM #_sys_statbuff,AR0
STL A,*AR0(SYSB0) ;保存要写入的数据
PSHM SWWSR ;保存当前的系统等待时间
LDM SWWSR,A
OR #07000H,A ;设置系统为14个等待
STLM A,SWWSR
PORTW *AR0(SYSB0),memcntl ;将数据写入到第二个寄存器
NOP
NOP
NOP
POPM SWWSR
.if __far_mode
FRET
.else
RET
.endif
*********************************************************************************
* *
* 函数定义:uint _sysint_read(uint port) *
* 功 能:串口初始化 *
* *
* 入口参数: A---- port:IO空间寄存器的地址 *
* 出口参数: A---- 回读值 *
* 资源使用:AR0,B *
* *
*********************************************************************************
_sysreg_read: PSHM SWWSR ;保存当前的系统等待时间
LDM SWWSR,B
OR #07000H,B ;设置系统为14个等待
STLM B,SWWSR
STM #0,AH
STM #_sys_statbuff,AR0
BC sysstat,ANEQ ;判断是哪个寄存器
PORTR sysstat0,*AR0(SYSB1) ;读第一个寄存器
LD *AR0(SYSB1),A ;读回值写入寄存器A,做为返回值
B sysregrexit
sysstat: PORTR sysstat1,*AR0(SYSB1) ;读第二个寄存器
LD *AR0(SYSB1),A ;读回值写入寄存器A,做为返回值
sysregrexit: POPM SWWSR
.if __far_mode
FRET
.else
RET
.endif
*********************************************************************************
* *
* 函数定义:uint _sysint_enable(uint setdata) *
* 功 能:串口初始化 *
* *
* 入口参数: A---- port:IO空间寄存器的地址 *
* 出口参数: A---- 回读值 *
* 资源使用:B *
* *
*********************************************************************************
_sysint_enable: STM #0,AH
STM #0,BH
LDM IMR,B
nop
nop
nop
OR B,A
nop
nop
nop
STLM A,IMR
nop
nop
RSBX INTM ; enable the interuption
.if __far_mode
FRET
.else
RET
.endif
*********************************************************************************
* *
* 函数定义:uint _sysint_disable(uint setdata) *
* 功 能:串口初始化 *
* *
* 入口参数: A---- port:IO空间寄存器的地址 *
* 出口参数: A---- 回读值 *
* 资源使用:B *
* *
*********************************************************************************
_sysint_disable: STM #0,AH
STM #0,BH
LDM IMR,B
AND B,A
STL A,IMR
.if __far_mode
FRET
.else
RET
.endif
*********************************************************************************
* *
* 函数定义:uint _sysint_clk(uint setdata) *
* 功 能:串口初始化 *
* *
* 入口参数: A---- port:IO空间寄存器的地址 *
* 出口参数: A---- 回读值 *
* 资源使用:B *
* *
*********************************************************************************
_sys_clk: STM #_sys_statbuff,AR0
STM #0,AH
STL A,*AR0(SYSCLOCKS) ;save the sys clock set
STM #0B,CLKMD ;switch to DIV mode
TstSatu: LDM CLKMD,B
AND #01B,B ;poll STATUS bit
BC TstSatu,BNEQ
STLM A,CLKMD ;switch to PLL X 10 mode
PllSatu: LDM CLKMD,B
AND #01B,B ;poll STATUS bit
BC PllSatu,BEQ
.if __far_mode
FRET
.else
RET
.endif
*********************************************************************************
* *
* 函数定义:uint _sys_wait(uint set data) *
* 功 能:串口初始化 *
* *
* 入口参数: A---- port:IO空间寄存器的地址 *
* 出口参数: A---- 回读值 *
* 资源使用:B *
* *
*********************************************************************************
_sys_wait: STM #0,AH
STLM A,SWWSR
.if __far_mode
FRET
.else
RET
.endif
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -