can.asm
来自「80c196单片机的CAN初始化及收发程序」· 汇编 代码 · 共 150 行
ASM
150 行
说明:
SENDINT1——发送子程序
RECEIVEINT1——接收子程序
fstopr——初始化子程序
CAN 地址范围:DF00H-DFFFH
250
SENDINT1:
NOP
ld bx,8840h
cmp bx,#005ah
jne datasend
ld bx,#11h
shl bx,#05h
or bx,#08h
st bx,sendid
ld bx,8844h
st bx,sendfa
ld bx,#00h
st bx,8840h
lcall sendfun
ljmp sendout1
datasend:LDB BL,8940H
CMPB BL,#05AH
JNE SENDOUT1
LD BX,8914H
LD SENDFA,BX
ADD BX,#08H
ST BX,8914H
LD BX,8916H
LD SENDID,BX
ADD BX,#00100000B
ST BX,8916H
LDB CL,8942H
INCB CL
STB CL,8942H
CMPB CL,#01H
JNE NLIGHT1
LDB BL,#5AH
STB BL,050AH
NLIGHT1:CMPB CL,#08H
JLE SENDOUT2
LDB BL,#00H
STB BL,8940H
LDB BL,#00H
STB BL,050AH
LJMP SENDOUT1
SENDOUT2:LCALL SENDFUN
SENDOUT1:SUBB CANINT,#02H
LJMP TESTOUT
RECEIVEINT1:
NOP
LDB BH,0DF14H
LDB BL,0DF15H
SHR BX,#05H
cmp bx,#10h
jne mem11
ld bx,0df16h
ldb al,0301h
andb al,#1fh
cmpb al,bl
jne mem11
st bx,8842h
ld bx,0df18h
st bx,8844h
ld bx,#005ah
st bx,8840h
mem11:cmp bx,#12h
jne mem22
ld bx,0df16h
ldb al,0301h
andb al,#1fh
cmpb al,bl
jne mem22
st bx,8848h
ld bx,0df18h
st bx,884ah
ld bx,#005ah
st bx,8846h
mem22:cmp bx,#13h
jne mem33
ld bx,8846h
cmp bx,#005ah
jne mem33
ld dx,884ah
ld bx,0df16h
st bx,[dx]+
st bx,8850h
ld bx,0df18h
st bx,[dx]+
st bx,8852h
ld bx,0df1ah
st bx,[dx]+
st bx,8854h
ld bx,0df1ch
st bx,[dx]+
st bx,8856h
ld bx,#00h
st bx,8846h
mem33:CMP BX,#3EH
JH DATASTORE
SUB BX,#1EH
ADD BX,#8800H
LDB AL,0DF16H
STB AL,[BX]
LJMP RECEIVEOUT
DATASTORE:SUB BX,#65H
SHL BX,#03H
ADD BX,#8000H
LD DX,0DF16H
ST DX,[BX]+
LD DX,0DF18H
ST DX,[BX]+
LD DX,0DF1AH
ST DX,[BX]+
LD DX,0DF1CH
ST DX,[BX]
RECEIVEOUT:LDB BL,#0CH
STB BL,0DF01H
SUBB CANINT,#01H
LJMP TESTOUT
RET
fstopr:
pushf
push bx
LDB BL,#01H
STB BL,0df00H
LDB BL,#0F4H
STB BL,0df04H
LDB BL,#0FFH
STB BL,0df05H
LDB BL,#03H
STB BL,0df06H
LDB BL,#1cH
STB BL,0df07H
LDB BL,#0DAH
STB BL,0df08H
ldb bl,#07H
stb bl,0df1fH
LDB BL,#7EH
STB BL,0df00H
pop bx
popf
ret
⌨️ 快捷键说明
复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?