📄 can总线程序(汇编) sja1000--nnyt的笔记.mht
字号:
R7, #0A8H =20
;=C9=E8=D6=C3=BD=D3=CA=D5=B1=A8=CE=C4ID<BR> =20
MOV =20
R6, =
#0FFH<BR> =20
LCALL =20
BCAN_SET_OBJECT<BR> =20
MOV =20
R7, #0AAH =20
;=C9=E8=D6=C3=CA=E4=B3=F6=BF=D8=D6=C6=A1=A2=CA=B1=D6=D3=B7=D6=C6=B5;=D5=FD=
=B3=A3=CA=E4=B3=F6=C4=A3=CA=BD<BR> =20
MOV =20
R6, #048H =20
;=CA=B9=C4=DC=C4=DA=B2=BF=B1=C8=BD=CF=C6=F7=A1=A2=BD=FB=D6=B9CLKOUT<BR>&n=
bsp; =20
LCALL =20
BCAN_SET_OUTCLK ;<BR> =20
LCALL =
BCAN_QUIT_RETMODEL =20
;=CD=CB=B3=F6=B8=B4=CE=BB=D7=B4=CC=AC<BR> =20
MOV &nbs=
p; =20
DPTR,#REG_CONTROL =
;=BF=AA=B7=C5SJA1000=C4=DA=B2=BF=B9=A6=C4=DC=D6=D0=B6=CF<BR> &=
nbsp;=20
MOV &nbs=
p; =20
A,#01EH =20
;=D6=D0=B6=CF=BF=AA=B7=C5<BR> =
MOVX @DPTR,A=20
<BR> =20
CLR =20
F0<BR> RET </P>
<P>;;;;;;;;;;;;;;;;;;;;;;=B4=ED=CE=F3=D0=C5=CF=A2=B4=A6=C0=ED;;;;;;;;;;;;=
;;;;;;;;;;;;;;;;;;;;;;;;;;<BR>ERR_PRG:<BR> =20
LCALL =20
BCAN_ENTER_RETMODEL =
=20
;=BD=F8=C8=EB=B8=B4=CE=BB=C4=A3=CA=BD<BR> =
LCALL =20
SJA1000_INT0 ;<BR> =
MOV =20
ERROR_STATUS,#0FCH<BR> RET</P>
<P>;;;;;;;;;;;;;;;;;;;;;;;=BD=D3=CA=D5=CA=FD=BE=DD=B4=A6=C0=ED=B2=BF=B7=D6=
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;<BR>RCVDATA_PRG:<BR> =20
MOV R0,# RCV_DATA_BUF1 =20
;=CE=A2=B4=A6=C0=ED=C6=F7=BD=D3=CA=D5=CA=D7=B5=D8=D6=B7<BR> &n=
bsp; LCALL =20
BCAN_DATA_RECEIVE &n=
bsp; =20
;=B5=F7=D3=C3=BD=D3=CA=D5=CA=FD=BE=DD=D7=D3=B3=CC=D0=F2<BR> &n=
bsp; MOV =20
R7,#04H =
=20
;=CA=CD=B7=C5=BD=D3=CA=D5=BB=BA=B3=E5=C7=F8 <BR> =
LCALL =20
BCAN_CMD_PRG =20
;<BR> =20
RET<BR>;;;;;;;;;;;;;;;;;;=BF=D8=D6=C6SJA1000=CF=F2CAN=D7=DC=CF=DF=B7=A2=CB=
=CD=CA=FD=BE=DD=B4=A6=C0=ED=B2=BF=B7=D6;;;;;;;;;;;;;;;<BR>SENDDATA_PRG:<B=
R> =20
MOV =20
R0, =
#SEND_DATA_BUF1=20
<BR> =20
MOV =20
@R0, =
#02H<BR> =20
INC =20
R0<BR> =20
MOV =20
@R0, =
#08H<BR> =20
INC =20
R0<BR> =20
MOV =20
@R0, =
#05H<BR> =20
MOV &nbs=
p; =20
A, =20
TEST_DATA<BR> =20
INC =20
R0<BR> =20
MOV =20
@R0, =
A<BR> =20
MOV =20
R0, =20
#SEND_DATA_BUF1<BR> =20
LCALL =20
BCAN_DATA_WRITE =20
;=BD=AB=D2=AA=B7=A2=CB=CD=B5=C4=CA=FD=BE=DD=CB=CD=C8=EB=B7=A2=CB=CD=BB=BA=
=B3=E5=C7=F8<BR> =20
MOV =20
R7, =20
#01<BR> =
LCALL =20
BCAN_CMD_PRG<BR> RET</P>
<P>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=B6=A8=CA=B1=C6=F70=B3=F5=CA=BC=BB=AF;;;;=
;;;;;;;;;;;;;;;;;;;;;;;;;;;<BR>T0_INIT:<BR> =20
MOV A,TMOD<BR> =20
ANL A,#0F0H<BR> =20
ORL A,#01H<BR> =20
MOV =20
TMOD,A;T0=B9=A4=D7=F7=D4=DA=B7=BD=CA=BD1<BR> =20
MOV =20
TH0,#0FCH =20
;=B6=A8=CA=B1=D6=DC=C6=DA1MS<BR> =
MOV =20
TL0,#066H<BR> MOV =20
3AH,#00H<BR> RET</P>
<P>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=CD=E2=B2=BF=D6=D0=B6=CF0;;;;;;;;;;;;;;;;=
;;;;;;;;;;;;;;;;;;<BR>BCAN_INT0:<BR> =20
push DPH<BR> PUSH =20
DPL<BR> PUSH =20
PSW =20
;PSW,ACC=C8=EB=D5=BB<BR> PUSH =20
ACC<BR> =
USING =20
3 =20
;=D3=A6=D3=C3=BC=C4=B4=E6=C6=F7=B5=DA3=D7=E9 =
<BR> MOV =20
DPTR,#REG_INTERRUPT =
;=B6=C1=D6=D0=B6=CF=BC=C4=B4=E6=C6=F7<BR> =20
MOVX =20
A,@DPTR =20
;<BR> MOV =20
SAVE_INT_INFO,A =20
;=B1=A3=B4=E6=D6=D0=B6=CF=BC=C4=B4=E6=C6=F7=B5=C4=C4=DA=C8=DD<BR> &n=
bsp; JNB =20
ACC.0,BCAN_INT1 =20
;=BD=D3=CA=D5=D6=D0=B6=CF<BR> SETB =20
RCV_GOOD =
;=D6=C3=CE=BB=BD=D3=CA=D5=B1=EA=D6=BE</P>
<P>BCAN_INT1:<BR> MOV =20
A,SAVE_INT_INFO &nbs=
p;=20
<BR> JNB =20
ACC.2,BCAN_INT2 =20
;=B4=ED=CE=F3=D6=D0=B6=CF<BR> SETB =20
ERR_FLAG =20
;=D6=C3=CE=BB=B4=ED=CE=F3=B1=EA=D6=BE<BR>BCAN_INT2:<BR> =
POP =20
ACC<BR> POP =
PSW<BR> =20
POP DPL<BR> =20
POP DPH <BR> =20
RETI<BR>;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;=B6=A8=CA=B1=C6=F70=D6=D0=B6=
=CF;;;;;;;;;;;;;;;;<BR>T0_INTERRUPT:<BR> =20
push DPH<BR> PUSH =20
DPL<BR> PUSH =20
PSW &nbs=
p;=20
;PSW=A1=A2ACC=C8=EB=D5=BB<BR> PUSH =20
ACC<BR> USING =20
2<BR> MOV =20
TH0,#80H =20
;=C9=E8=D6=C3=B6=A8=CA=B1=D6=DC=C6=DA0.3S<BR> =
MOV =20
TL0,#26H<BR> =20
INC 3AH<BR> =20
MOV A,3AH<BR> =
CJNE =20
A,#23H,T0_QUIT =20
;=C5=D0=B6=CF1=C3=EB=CA=B1=BC=E4=CA=C7=B7=F1=B5=BD<BR> =
MOV =20
3AH,#00H<BR> INC =20
TEST_DATA &nbs=
p;=20
;=B2=E2=CA=D4=B7=A2=CB=CD=B5=C4=CA=FD=BE=DD,=C3=BF1=C3=EB=BC=D31<BR> =
; =20
SETB =20
SEC_FLAG  =
; =20
;=D6=C3=CE=BB1=C3=EB=B5=BD=B1=EA=D6=BE<BR>T0_QUIT:<BR> =
POP =20
ACC<BR> POP =
PSW<BR> =20
POP DPL<BR> =20
POP DPH<BR> RETI</P>
<P> </P>
<P> </P>
<P>BCAN_ENTER_RETMODEL:<BR> =20
MOV =20
DPTR, #REG_CONTROL =20
;=BF=D8=D6=C6=BC=C4=B4=E6=C6=F7=B7=C3=CE=CA =
<BR> =20
MOVX =20
A, =20
@DPTR &n=
bsp; =20
;<BR> =20
ORL =20
A, =20
#01H &nb=
sp; =20
;=D6=C3=CE=BB=B8=B4=CE=BB=C7=EB=C7=F3<BR> =20
MOVX =
@DPTR, =20
A =
&=
nbsp; =20
;<BR> =20
CLR =20
F0<BR> =20
MOVX =20
A, =20
@DPTR &n=
bsp; =20
;=D1=E9=D6=A4=B8=B4=CE=BB=CA=C7=B7=F1=D0=B4=C8=EB<BR> &n=
bsp; =20
JB  =
;=20
ACC.0, BCAN_ER_QUIT<BR> =20
SETB =20
F0  =
; =
=20
;=B8=B4=CE=BB=B2=BB=B3=C9=B9=A6<BR>BCAN_ER_QUIT:<BR> &nb=
sp; RET</P>
<P> </P>
<P>BCAN_QUIT_RETMODEL:<BR> =20
MOV =20
DPTR, #REG_CONTROL ; =
=BF=D8=D6=C6=BC=C4=B4=E6=C6=F7=B7=C3=CE=CA =20
<BR> =20
MOVX =20
A, =20
@DPTR =20
;<BR> =20
ANL =20
A, =20
#0FEH =20
;=C7=E5=C1=E3=B8=B4=CE=BB=C7=EB=C7=F3=A3=AC=BD=F8=C8=EB=B9=A4=D7=F7=D7=B4=
=CC=AC<BR> =20
MOVX =
@DPTR, =20
A<BR> =20
CLR =20
F0<BR> =20
MOVX =20
A, =20
@DPTR =20
<BR> =20
JNB =20
ACC.0, BCAN_QR_QUIT =20
;=D1=E9=D6=A4=CA=C7=B7=F1=CD=CB=B3=F6=B8=B4=CE=BB=D7=B4=CC=AC<BR> &n=
bsp; =20
SETB =20
F0<BR>BCAN_QR_QUIT:<BR> RET</P>
<P> </P>
<P> </P>
<P><BR>BCAN_DATA_WRITE:<BR> =20
MOV =20
DPTR, #REG_STATUS =
;=B6=C1=C8=A1=D7=B4=CC=AC=BC=C4=B4=E6=C6=F7<BR> &n=
bsp;=20
MOVX =20
A, =
@DPTR =20
;=C5=D0=B6=CF=C9=CF=B4=CE=B7=A2=CB=CD=CA=C7=B7=F1=CD=EA=B3=C9<BR> &n=
bsp; =20
SETB =20
F0<BR> =20
JNB =20
ACC.3, BCAN_DW_QUIT =
;=D5=FD=D4=DA=B7=A2=CB=CD=CD=CB=B3=F6<BR> =20
CLR =20
F0  =
; =20
<BR> =20
MOVX =20
A, =
@DPTR =20
;=C5=D0=B6=CF=B7=A2=CB=CD=BB=BA=B3=E5=C7=F8=CA=C7=B7=F1=CB=F8=B6=A8=A3=AC=
<BR> =20
⌨️ 快捷键说明
复制代码
Ctrl + C
搜索代码
Ctrl + F
全屏模式
F11
切换主题
Ctrl + Shift + D
显示快捷键
?
增大字号
Ctrl + =
减小字号
Ctrl + -