📄 dsp04.asm
字号:
.include "exp1_2407.h"
.def _c_int0
.sect ".vectors" ;定义主向量段
RSVECT B _c_int0 ;PM 0 复位向量 1
INT1 B PHANTOM ;PM 2 中断优先级1 4
INT2 B GISR2 ;PM 4 中断优先级2 5
INT3 B PHANTOM ;PM 6 中断优先级3 6
INT4 B PHANTOM ;PM 8 中断优先级4 7
INT5 B PHANTOM ;PM A 中断优先级5 8
INT6 B PHANTOM ;PM C 中断优先级6 9
;RESERVED B PHANTOM ;PM E 模拟量输入中断(保留) 10
;SW_INT8 B PHANTOM ;PM 10 用户定义软件中断 -
; …
;SW_INT31 B PHANTOM ;PM 3E 用户定义软件中断 -
;中断子向量入口定义pvecs
.sect ".pvecs" ;定义子向量段
PVECTORS: B PHANTOM ;保留向量地址偏移量-0000h
B PHANTOM ;保留向量地址偏移量-0001h
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM
B PHANTOM ;保留向量地址偏移量-0026h
B T1PINT_ISR ;保留向量地址偏移量-0027h T1PINT中断
B PHANTOM ;保留向量地址偏移量-0028h
B PHANTOM ;保留向量地址偏移量-0041h
.text
_c_int0
SETC INTM ;禁止所有中断
CLRC SXM ;抑制符号位扩展
CLRC OVM ;累加器中结果正常溢出
CLRC CNF ;B0区被配置为数据空间
LDP #0E0H ;指向 7000h-7080h区
SPLK #81FEH,SCSR1 ;时钟 4 倍频,CLKIN=6M,CLKOUT=24M
SPLK #0E8H,WDCR ;不使能 WDT
LDP #0H
SPLK #02H,IMR ;将数据02h赋至中断控制寄存器IMR处,开INT2 中断
SPLK #0FFFFH,IFR ;将数据0FFFFH存至中断标志寄存器IFR处,请中断
LDP #DP_EVA
SPLK #80H,EVAIMRA ;EVA中断屏蔽寄存器A,禁止通用定时器1及比较单元中断
SPLK #0FFFFH,EVAIFRA ;复位标志位
SPLK #01CDH,T1PR ;定时器的周期寄存器,周期为#01CDH
SPLK #0000H,T1CNT ;定时器的计数寄存器,加载影子寄存器
SPLK #164CH,T1CON ;控制寄存器,连续增计数,X/64,使能定时器操作,内cpu时钟,禁止比较,使用自身的周期寄存器
MAR *,AR0 ;将当前辅助寄存器设为 AR0
LAR AR0,#1000 ;装载AR0
LDP #0
SPLK #00AAH,60H
CLRC INTM ;清除状态寄存器ST0 的中断方式位;
WAIT:
NOP
B WAIT
GISR2:
LDP #0E0H
LACC PIVR,1
ADD #PVECTORS
BACC
T1PINT_ISR:
LDP #DP_EVA
SPLK #00H,T1CNT
SPLK #0FFFFH,EVAIFRA
BANZ EXIT,AR0
LAR AR0,#1000
LDP #0
LACL 60H
CMPL
SACL 60H
OUT 60H,8001H
EXIT:
LDP #0H
SPLK #0FFFFH,IFR
CLRC INTM
RET
PHANTOM:
KICK_DOG ;复位看门狗
RET
END
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -