CAN接口汇编程序
ORG 0000H
LJMP MAIN
ORG 0003H
LJMP CANINT0
ORG 000BH
LJMP T0-INTERRUPT
ORG 0100H
MAIN:
MOV R0,#07FH
CLR A
MOV @R0,A
DJNZ R0,$_1
MOV @R0,A
MOV SP,#60H
LCALL SJA1000_INIT0
LCALL DISPLAY_INIT
LCALL T0INIT
SETB PX0
SETB IT0
SETB EX0
SETB ET0
SETB TR0
SETB EA
LOOPER:
JNB RCV_GOOD,LOOPER2
CLR RCV_GOOD
LCALL RCVDATA PRG
LOOPER2:
JNB SEC_FLAG,LOOPER3
CLR SEC_FLAG
LCALL SENDDATA_PRG
LOOPER3:
JNB ERR_FLAG,LOOPER4
CLR ERR_FLAG
LCALL ERR_PRG
LOOPER4:
JNB OVER_FLAG,LOOPER5
CLR OVER_FLAG
LCALL DOVER_PRG
LOOPER5:
JNB DS_ENDLFLAG,LOOPER6
CLR DS_END_FLAG
LCALL DSEND_PRG
LOOPER6:
JNB WUL FLAG,LOOPER7
CLR WUL FLAG
LCALL WOKE_PRG
LOOPER7:
AJMP LOOPER
SJA1000_INIT0:
LCALL CAN_CREATE_COMMUNATION
MOV R7,#12
LCALL CAN_SET_BANDRATE
MOV R7,#0A8H
MOV R6,#0ffH
LCALL CAN_SET_OBJECT
MOV R7,#0AAH
MOV R6,#048H
LCALL CAN_SET_OUTCLK
LCALL CAN_QUIT_RETMODEL
MOV DPTR,# REG_CONTROL
MOV A,#01EH
MOV X @DPTR,A
CLR F0
RET
ERR_PRG:
LCALL CAN_ENTER_RETMODEL
LCALL SJA1000_INIT0
MOV ERROR_STATUS,#0FCH
LCALL DISP_ERROR
RET
DSENDLPRG:
LCALL DISP_OK
RET
RCVDATA_PRG:
MOV R0,#RCV_DATA_BUF1
LCALL CAN_DATA_RECEIVE
MOV R7,#04H
LCALL CAN_CMD_PRG
RET
SENDDATA_PRG:
MOV R0,#SEND_DATA_BUFl
MOV @R0,#0AFH
INC R0
本文关键字:接口 51单片机,单片机-工控设备 - 51单片机
上一篇:单片机双机点对点通信的主机程序