📄 easy2416a.asm
字号:
$INCLUDE(C8051F040.INC) ; Register definition file.
$INCLUDE(easycore.INC) ; easycore 符号定义
$INCLUDE(EASYCORE.LIB) ; easycore 子程序
EXTRN CODE(init_configc);
EXTRN CODE(init_startc);
EXTRN CODE(init_setc);
EXTRN CODE(init_runc);
EXTRN CODE(stepc);
EXTRN CODE(tmsc);
EXTRN CODE(scanc);
;================中断向量重定向地址=======================
ORG 0E000H
ORG 0E003H ;external interrupt0 vecter (INT0)
ORG 0E013H ;external interrupt1(INT1)
ORG 0E033H ;Serial Peripheral Interface(SPI)
ORG 0E03BH ;SMBus interface
ORG 0E043H ;ADC0 Window Comparator
ORG 0E04BH ;Programmable Counter Array
ORG 0E053H ;Comparator 0
ORG 0E05BH ;Comparator 1
ORG 0E063H ;Comparator 2
ORG 0E07BH ;ADC0 end of Conversion
ORG 0E083H ;Timer 4
ORG 0E08BH ;ADC2 end of Conversion
ORG 0E093H ;ADC2 Window Comparator
;===============用户应用程序调用入口====================
ORG 0E0A0H ;用户端口初始化
LJMP INIT_CONFIG
ORG 0E0A3H ;用户上电初始化
LJMP INIT_START
ORG 0E0A6H ;用户设置初始化
LJMP INIT_SET
ORG 0E0A9H ;用户运行初始化
LJMP INIT_RUN
ORG 0E0ACH ;演算周期扫描
LJMP SCAN
ORG 0E0B0H ;指令周期扫描
LJMP STEP
ORG 0E0B3H ;2.5MS周期扫描 ;
LJMP TMS
ORG 0E100H
;********************************************
INIT_CONFIG: LCALL INIT_CONFIGC
RET
INIT_START: LCALL INIT_STARTC
LCALL SCANC;
RET
INIT_RUN: LCALL INIT_RUNC
RET
INIT_SET: LCALL INIT_SETC
RET
STEP: LCALL stepc
RET
TMS: ;;入栈保存工作寄存器
MOV A,R0
PUSH ACC
MOV A,R1
PUSH ACC
MOV A,R2
PUSH ACC
MOV A,R3
PUSH ACC
MOV A,R4
PUSH ACC
MOV A,R5
PUSH ACC
MOV A,R6
PUSH ACC
MOV A,R7
PUSH ACC
LCALL TMSC;;内核2.5ms中断程序调用的函数
;出栈恢复工作寄存器
POP ACC
MOV R7,A
POP ACC
MOV R6,A
POP ACC
MOV R5,A
POP ACC
MOV R4,A
POP ACC
MOV R3,A
POP ACC
MOV R2,A
POP ACC
MOV R1,A
POP ACC
MOV R0,A
RET
SCAN: LCALL SCANC
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -