电子系统设计第讲.ppt
文本预览下载声明
MOV DPTR,#OCR ;写输出控制寄存器 MOV A,#01AH MOVX @ DPTR,A MOV DPTR,#CDR ;写时钟分频寄存器 MOV A,#00H ;将CAN工作模式设为 ;BasicCAN模式时钟2分频 MOVX @DPTR,A MOV DPTR,#CR ;写控制寄存器 MOV A,#0EH ;开放中断源 MOVX @DPTR,A RET CAN发送子程序设计 TXDATA:MOV DPTR,#SR ;读状态寄存器 MOVX A,@DPTR JNB ACC.4,TXDATA ;判断是否正在接收 TS0: MOVX A,@DPTR JNB ACC.3,TS0 ;判断上次发送是否完成 TS1: MOVX A,@DPTR JNB ACC.2,TS1 ;判断发送缓冲器是否锁定 MOV DPTR,#TXB MOV A,50H ;向发送缓冲区填入标识符 MOVX @DPTR,A MOV A,51H ;向发送缓冲区填入数据长度 MOVX @DPTR,A MOV A,52H ;向发送缓冲区送4字节数据 CAN发送子程序设计 MOVX @DPTR,A MOV A,53H MOVX @DPTR,A MOV A,54H MOVX @DPTR,A MOV A,55H MOVX @DPTR,A MOV DPTR,#CMR ;置CMR.0为1请求发送 MOV A,#01H MOVX @DPTR,A RET CAN接收子程序设计 RXDATA : MOV DPTR,#RXB MOVX A,@DPTR MOV 58H,A ;读下位机节点号 INC DPTR MOVX A,@DPTR MOV 59H,A ;读取数据字节长度 INC DPTR MOVX A,@DPTR MOV 5AH,A INC DPTR MOVX A,@DPTR MOV 5BH,A INC DPTR CAN接收子程序设计 MOVX A,@DPTR MOV 5CH,A INC DPTR MOVX A,@DPTR MOV 5DH,A MOV DPTR,#CMR ;释放接收缓冲区 MOV A,#04H MOVX @DPTR,A MOV DPTR,#SR ;读状态寄存器 MOVX A,@DPTR JB ACC.1,ERROR ;判数据溢出 JB ACC.7,ERROR ;判总线状态 JB ACC.6,ERROR ;判错误计数器状态 RET ERRO
显示全部