📄 ads805.asm
字号:
*********************************************************************
*
*
*
*********************************************************************
.title "AD_DA"
.mmregs
.def _c_int00
temp .usect "temp", 1
OUTPUT .usect "OUTPUT", 3000H
;*-----------------------TIME 0-----------------------------------------*/
; 该部分实现为ad50c,ads805的工作主时钟的设置,本例子配置为10M,
; 因此,TCR0+1=5,PRD0+1=1;
;/*--------------------------------------------------------------------*/
TIM0 .set 0024h ;
PRD0 .set 0025h
TCR0 .set 0026h
;*********************TIME 1************************************************
; 该定时期用来产生接收中断,用来接收转化的数字信号
; 该定时期的分频系数是TIME 0的一半!
;***************************************************************************
TIM1 .set 0030h
PRD1 .set 0031h
TCR0 .set 0032h
;/*-----------------------TIME-----------------------------------------*/
; 该部分实现为ad50c,ads805的工作主时钟的设置,本例子配置为5M,
; 因此,TCR0+1=5,PRD0+1=4;
;/*--------------------------------------------------------------------*/
K_TCR0_SOFT .set 0b<<11
K_TCR0_FREE .set 1b<<10
K_TCR0_PSC .set 0100B<<6
K_TCR0_TRB .set 1B<<5
K_TCR0_TSS .set 0B<<4
K_TCR0_TDDR .set 0100<<0
K_TCR0 .set K_TCR0_SOFT|K_TCR0_FREE|K_TCR0_PSC|K_TCR0_TRB|K_TCR0_TSS|K_TCR0_TDDR
;/8-------------------------------------------------------------------------
.text ;中断向量表
.align 0x80
_c_int00: B Start ;复位
NOP
NOP
.space 22*4*16
TINI1: BD Receive ;于计算机通信中断
NOP
NOp
.space 5*4*16
;BRint: RETE
; NOP
; NOP
;BXint: RETE
; NOP
;AV NOP
*/ **********************************************************************/*
* 下面是main program !
*
*/************************************************************************/*
Start:
STM #3000h, SWWSR
STM #00a0h, PMST
SSBX INTM ;关闭所有可屏蔽中断
STM #00H, IMR
STM #3FFFH, IFR ;中断标志寄存器置1
; stm #08h, 26h
;/*--------由于复位已经设置好了工作主频100m,因此没必要对工作频率操作----*/
; STM #0,CLKMD ;切换到分频方式
; NOP
;ts: LDM CLKMD,A
; AND #01B,A ;测试PLLSTATUS位
; BC ts,ANEQ ;A=0,转移,表明还没有进入DIV方式
; ;A=1,顺序执行,表明还没有进入DIV方式
; STM #30f7h,CLKMD ;采用4倍频方式
; RPT #100
; NOP
;/*-----------------------------------------------------------------------*/
;STM #2E20H,PMST ;采用微计算机模式,中断向量表地址
;STM #3610H,SWWSR ;I/O等待三个周期
;数据段等待三个周期
STM #00, CLKMD
DSPFREQU:
LDM CLKMD, A
AND #01H, A
BC DSPFREQU, ANEQ
STM #13EFH, CLKMD
RPT #50
NOP
TIME1: STM #010100100100b, TCR0
STM #01h, PRD0
STM #3FFFH, IFR
STM #010100100100b, TCR0
NOP
NOP
NOP
;LD #temp, DP
STM #temp, AR3
STM #3000h, AR4
STM #OUTPUT, AR2 ;2
;STM #4, SHIFTFinish
Receive:
NOP
NOP ;4
PORTR 2000H, *AR3 ;2
RPT #7
NOP
; MVDD *AR3, *AR2+ ;1
; RPT #4 ;1
; NOP
; LD temp, 4, A ;2
; STL A, *AR2+ ;1
; RPT #6
; NOP
B Receive
; BANZ Receive, *AR4- ;2*(AR3)
Finish:
B Finish
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -