📄 netcard.asm
字号:
*
*hit651 voice platform software
*=================== netcard.asm ========================
*2004.1.1 hit651
*
.mmregs
.include macro.inc
.include netcard.inc
.include ref.inc
.include union.inc
.def netcard_init,set_mynodeid
.text
*
********************* netcard init ***********************
netcard_init:
WRITE 0x21,NET_REG_CR ;page 0
WRITE 0x4c,NET_REG_PSTART
WRITE 0x80,NET_REG_PSTOP
WRITE 0x4c,NET_REG_BNRY
WRITE 0x40,NET_REG_TPSR
WRITE 0xcc,NET_REG_RCR ;cc dd
WRITE 0xe0,NET_REG_TCR ;e0 e2
WRITE 0xc9,NET_REG_DCR ;c9 c1
WRITE 0x01,NET_REG_IMR ;rx=1
WRITE 0xff,NET_REG_ISR
WRITE 0x61,NET_REG_CR ;page 1
WRITE 0x4d,NET_REG_CURR
WRITE 0x0,NET_REG_MAR0
WRITE 0x0,NET_REG_MAR1
WRITE 0x0,NET_REG_MAR2
WRITE 0x0,NET_REG_MAR3
WRITE 0x0,NET_REG_MAR4
WRITE 0x0,NET_REG_MAR5
WRITE 0x0,NET_REG_MAR6
WRITE 0x0,NET_REG_MAR7
WRITE 0x21,NET_REG_CR
PORTR NET_REG_ISR,*(read_reg)
RET
*
*********************** set mynodeid *********************
set_mynodeid:
STM mynodeid,AR1
ST #0x52,*AR1+
ST #0x54,*AR1+
ST #0x4C,*AR1+
ST #0x19,*AR1+
ST #0x13,*AR1+
ST #0x8D,*AR1+
STM mynodeid, AR1
STM #(6-1),AR2
set_mynodeid_1:
ANDM #0xff,*AR1+
BANZ set_mynodeid_1,*AR2-
STM mynodeid,AR1
PAGE 1
DELAY 40
PORTW *AR1+,NET_REG_PAR0
DELAY 40
PORTW *AR1+,NET_REG_PAR1
DELAY 40
PORTW *AR1+,NET_REG_PAR2
DELAY 40
PORTW *AR1+,NET_REG_PAR3
DELAY 40
PORTW *AR1+,NET_REG_PAR4
DELAY 40
PORTW *AR1, NET_REG_PAR5
DELAY 40
PORTR NET_REG_PAR0,*(0X100)
DELAY 40
PORTR NET_REG_PAR1,*(0X101)
DELAY 40
PORTR NET_REG_PAR2,*(0X102)
DELAY 40
PORTR NET_REG_PAR3,*(0X103)
DELAY 40
PORTR NET_REG_PAR4,*(0X104)
DELAY 40
PORTR NET_REG_PAR5,*(0X105)
DELAY 40
PAGE 0
*set mynodeid
LD *(mynodeid+1),8,A
ADD *(mynodeid),A
STL A,*(mynodeid)
LD *(mynodeid+3),8,A
ADD *(mynodeid+2),A
STL A,*(mynodeid+1)
LD *(mynodeid+5),8,A
ADD *(mynodeid+4),A
STL A,*(mynodeid+2)
RET
*
.end
******************** netcard reset ************************
netcard_reset:
PAGE 0
WRITE 0x21,NET_REG_CR ;page 0
WRITE 0xc9,NET_REG_DCR
WRITE 0x00,NET_REG_IMR
WRITE 0xff,NET_REG_ISR
PORTR NET_PORT_RESET,*(read_reg)
DELAY 300
PORTW *(read_reg),NET_PORT_RESET
STM #5000,AR1
netcard_reset_loop: ;delay 150ms
DELAY 10000 ;10000 * 10ns = 0.1ms
BANZ netcard_reset_loop,*AR1-
RET
*
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -