?? 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 + -