📄 mem.asm
字号:
.include "F2407REGS.H" ;引用头部文件
.def _c_int0
.data
RSV: .word 0
TABLE: .word 00c0h, 00f9h, 00a4h, 00b0h, 0099h, 0092h, 0082h, 00f8h
.word 0080h, 0090h, 0088h, 0083h, 00c6h, 00a1h, 0086h, 008eh
SEG_ON: .word 0000h
SEG_OFF: .word 0001h
TEMP: .word 0
COUNT: .word 100
.text
SEG7_DATA .set 8001h
SEG0_EN .set 8002h
SEG1_EN .set 8003h
SEG2_EN .set 8004h
SEG3_EN .set 8005h
SEG4_EN .set 8006h
SEG5_EN .set 8007h
SEGS_CNT .set 6h
LOOP_CNT .set 50
DAT8 .set 8
_c_int0 ;相当于主程序的入口
CALL SYSINIT ;调系统初始化程序
LDP #DP_B01
OUT SEG_ON, SEG0_EN ;IO 指令
OUT SEG_ON, SEG1_EN
OUT SEG_ON, SEG2_EN
OUT SEG_ON, SEG3_EN
OUT SEG_ON, SEG4_EN
OUT SEG_ON, SEG5_EN
OUT TABLE, SEG7_DATA
NOP ;此处检查数码管的显示情况
LDP #RSV
SPLK #1234H, TEMP ;数据存储指令
NOP ;此处检查TEMP的显示情况
LDP #6
BLDD #300h,200H
NOP
BLPD #800h,00h
DMOV DAT8
SPLK #7FFFh,DAT8
TBLR DAT8
TBLW DAT8
LOOP: NOP
B LOOP
*系统初始化程序*
SYSINIT:
SETC INTM
CLRC SXM
CLRC OVM
CLRC CNF ;B0 被配置为数据存储空间
LDP #0E0H
SPLK #81FEH, SCSR1 ;CLKIN=6 M, CLKOUT=24 M
SPLK #0E8H, WDCR ;不使能WDT
LDP #0
SPLK #0000H, IMR ;不使能
SPLK #0FFFFH, IFR ;清全部中断标志
RET
*软件延时程序*
DELAY:
MAR *, AR4
LAR AR4, #0800H
LAR AR0, #00H
DELAY1: SBRK #1
NOP
CMPR 00
BCND DELAY1, NTC
RET
END
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -