📄 sci.asm
字号:
*******************************************
.sect "VECTORS"
*******************************************
int0 B _c_int0
int1 B BEGIN
int2 B T1_INT
int3 B BEGIN
int4 B BEGIN
int5 B SCI_INT
int6 B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
B BEGIN
*******************************************
.bss SHOUDAO,1
.bss DATE,1
.bss DATE_ADSS,1
.bss DATE_H_L,1
.bss S1,1
.bss S2,1
.global _c_int0
*******************************************
IMR .set 0004h
IFR .set 0006h
SCSR1 .set 7018h
WDCR .set 7029h
SCICCR .set 7050h
SCICTL1 .set 7051h
SCIHBAUD .set 7052h
SCILBAUD .set 7053h
SCICTL2 .set 7054h
SCIRXST .set 7055h
SCIRXEMU .set 7056h
SCIRXBUF .set 7057h
SCITXBUF .set 7059h
SCIPRI .set 705Fh
MCRA .set 7090h
MCRB .set 7092h
MCRC .set 7094h
PADATDIR .set 7098H
PBDATDIR .set 709AH
PCDATDIR .set 709CH
PDDATDIR .set 709EH
PEDATDIR .set 7095H
PFDATDIR .set 7096H
GPTCONA .set 7400h
T1CNT .set 7401h
T1CMPR .set 7402h
T1PR .set 7403h
T1CON .set 7404h
COMCONA .set 7411h
EVAIMRA .set 742Ch
EVAIMRB .set 742Dh
EVAIMRC .set 742Eh
EVAIFRA .set 742Fh
EVAIFRB .set 7430h
EVAIFRC .set 7431h
WSGR .set 0FFFFh
BIT7 .set 00008H
BIT6 .set 00009H
*******************************************
*******************************************
.text
*******************************************
.word 0ffffh,0ffffh,0ffffh,0ffffh
*******************************************
*******************************************
_c_int0:
******************清DRAM*********************
CLEAR1: MAR *,AR6
LAR AR6,#60H
LACL #0
RPT #01FH
SACL *+,0,AR6
LAR AR7,#0FFH
LAR AR6,#300H
MAR *,AR6
CLEAR2: SPLK #0H,*+,AR7
BANZ CLEAR2,AR6
LAR AR7,#0FFH
LAR AR6,#200H
MAR *,AR6
CLEAR3: SPLK #0H,*+,AR7
BANZ CLEAR3,AR6
LAR AR7,#7FFH
LAR AR6,#800H
MAR *,AR6
CLEAR4: SPLK #0H,*+,AR7
BANZ CLEAR4,AR6
*********************************************
SETC INTM
CLRC CNF
LDP #0
SPLK #012H,IMR
SPLK #0FFFFH,IFR
LDP #0E0H
SPLK #0244H,SCSR1
SPLK #06FH,WDCR
LDP #0
SPLK #0,60H
OUT 60H,WSGR
LDP #225
SPLK #0FF00H,PEDATDIR
LDP #232
SPLK #00000H,GPTCONA ;#00000H OFF T1PIN,T2PIN
SPLK #02600H,COMCONA ;#0CA07H
SPLK #00000H,T1CNT
SPLK #10000,T1PR ;
SPLK #5000,T1CMPR
SPLK #09046H,T1CON ;#9046H,
SPLK #0FFFFH,EVAIFRA ;清中断标志
SPLK #0FFFFH,EVAIFRB
SPLK #0FFFFH,EVAIFRC
SPLK #00080H,EVAIMRA ;#0180H,允许T1周期,比较中断,其余屏蔽
SPLK #00000H,EVAIMRB ;
SPLK #00000H,EVAIMRC
clrc INTM
SCI:
LDP #0E1H
SPLK #003H,MCRA
SPLK #000H,MCRC
LDP #0E0H
LAR AR0,#SCITXBUF
LAR AR1,#SCIRXBUF
LAR AR2,#0FFH
LAR AR3,#0200H
LDP #0E0H
SPLK #0FFH,SCIPRI
SPLK #07H,SCICCR
SPLK #03H,SCICTL1
SPLK #02H,SCICTL2
SPLK #02H,SCIHBAUD
SPLK #08H,SCILBAUD
SPLK #023H,SCICTL1
LACL #012H
MAR *,AR0
SACL *
*******************************************
LOOP:
LDP #5
LACL S1
BCND LOOP,EQ
SPLK #0,S1
CALL XMIT_CHAR
B LOOP
*******************************************
XMIT_CHAR:
LDP #5
LACL SHOUDAO
BCND XMIT_CHAR2,EQ
SPLK #0,SHOUDAO
LACL DATE_H_L
BCND XMIT_CHAR1,EQ
LACL #034H
MAR *,AR0
SACL *
B RCV_RDY1
XMIT_CHAR1:
LACL #012H
MAR *,AR0
SACL *
RCV_RDY1:
MAR *,AR2
BANZ XMIT_CHAR2
LAR AR2,#0FFH
LAR AR3,#0200H
LDP #5
SPLK #0,DATE_H_L
CLRC XF
XMIT_CHAR2:
RET
*******************************************
T1_INT:
MAR *,AR4 ;AR4保存现场
MAR *+
SST #1, *+ ;保存ST1
SST #0, *+ ;保存ST0
SACH *+ ;保存ACC高16位
SACL * ;保存ACC低16位
LDP #5
SPLK #1,S1
LACL DATE_ADSS
ADD #1
SACL DATE_ADSS
SUB #4000
BCND T1_INT1,LT
SPLK #0,DATE_ADSS
LACL S2
ADD #1
SACL S2
SUB #5
BCND T1_INT0,LT
SPLK #0,S2
SPLK #1,SHOUDAO
SPLK #0,DATE_H_L
LAR AR2,#0FFH
LAR AR3,#0200H
T1_INT0:
ldp #225
LACL PEDATDIR
XOR #01H
SACL PEDATDIR
T1_INT1:
LDP #232
LACL #080H
OR EVAIFRA
SACL EVAIFRA
MAR *, AR4 ;AR4恢复现场
LACL *-
ADDH *-
LST #0, *-
LST #1, *-
CLRC INTM ;开中断
RET
*******************************************
SCI_INT:
MAR *,AR4 ;AR4保存现场
MAR *+
SST #1, *+ ;保存ST1
SST #0, *+ ;保存ST0
SACH *+ ;保存ACC高16位
SACL * ;保存ACC低16位
LDP #5
LACL DATE_H_L
BCND DATE_H,EQ
LDP #5
MAR *,AR1
LACL *,AR3
ADD DATE
SACL *+
SPLK #0,DATE_H_L
B SCI_INT1
DATE_H:
LDP #5
MAR *,AR1
LACC *,8
SACL DATE
SPLK #1,DATE_H_L
SCI_INT1:
LDP #5
SPLK #1,SHOUDAO
SPLK #0,S2
MAR *, AR4 ;AR4恢复现场
LACL *-
ADDH *-
LST #0, *-
LST #1, *-
CLRC INTM ;开中断
RET
BEGIN:
clrc INTM
RET
*******************************************
.end
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -