📄 main.asm
字号:
;============================================================================*
.include "F2407.h" ;头文件
.def _c_int0
.bss GPR0,1
;============================================================================*
;系统初始化
;使能EVA,EVB,A/D模块,其他的未使能(根据要求使能)。
;======================================================
.text ;加密位
.word #0ffffh
.word #0ffffh
.word #0ffffh
.word #0ffffh
_c_int0:
LDP #0H
SETC INTM ;屏蔽总中断程序
CLRC SXM ;符号位不作扩展
LACC IFR ;清标志
SACL IFR
CLRC CNF ;B0为数据存储区
SETC OVM
LDP #WDCR>>7
SPLK #006Fh, WDCR ;看门狗不使能
KICK_DOG
SPLK #01FFh, GPR0
OUT GPR0, WSGR ;设置整体延时
LDP #SCSR1>>7
SPLK #0000000010001100B,SCSR1;仅使能ADC EVA EVB时钟
LDP #MCRB>>7 ;设置指向I/O口复用寄存器B
SPLK #0FFFDH,MCRB ;MCRB中设置1硬件上与仿真器相连,实现在线仿真
;==========================初始化===========================
LDP #IFR>>7
SPLK #0FFH,IFR ;写1清除中断标志位
SPLK #0H,IMR ;中断均不使能
LDP #MCRC>>7
SPLK #0FFFFH,MCRC
LDP #EVAIFRA>>7
SPLK #0FFFH,EVAIFRA ;设置EVA的中断标志寄存器A
SPLK #0FH,EVAIFRB
SPLK #0FH,EVAIFRC
SPLK #0200H,EVAIMRA ;设置EVA的中断屏蔽寄存器A
SPLK #0,EVAIMRB
SPLK #0,EVAIMRC
;=====================初始化事件管理器======================
LDP #234 ;数据页面指向寄存器地址7500H~7480H
SPLK #0000000001000001B,GPTCONB
;第6位TCOMPOE=1,允许定时器比较输出
;第1~0位,即T3PIN=01,允许定时器比较输出低电平有效
SPLK #50,T3PR ;设置周期寄存器
SPLK #30,T3CMPR ;设置比较寄存器
SPLK #0H,T3CNT ;设置计数寄存器
SPLK #0001110101000010B,T3CON
;第12~11位,即TMODE=11,采用定向的增/减计数模式
;第10~8位,即TPS2-0=000,预定标分频因子为x/1
;第6位,即TENABLE=1,定时器计数使能
;位5~4,即TCLKS1/TCLKS0=01,采用外部时钟
;位1,即TECMPR=1,定时器3比较使能
;位0,即SELT1PR=0,使能自身的周期寄存器
;====================================================================================
LOOP
NOP
NOP
NOP
B LOOP
.END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -