预览加载中,请您耐心等待几秒...
1/10
2/10
3/10
4/10
5/10
6/10
7/10
8/10
9/10
10/10

亲,该文档总共15页,到这已经超出免费预览范围,如果喜欢就直接下载吧~

如果您无法下载资料,请参考说明:

1、部分资料下载需要金币,请确保您的账户上有足够的金币

2、已购买过的文档,再次下载不重复扣费

3、资料包下载后请先用软件解压,在使用对应软件打开

CAN总线通信系统设计发送电路设计发送电路电路图接收电路设计接收电路电路图几点说明发送程序设计发送程序代码MOVDPTR,#0FE07H;写总线定时寄存器1 MOVA,#2FH MOVX@DPTR,A MOVDPTR,#0FE08H;写输出控制寄存器 MOVA,#0FAH MOVX@DPTR,A MOVDPTR,#0FE1FH;写时钟分频寄存器 MOVA,#40H MOVX@DPTR,A MOVDPTR,#0FE00H;写控制寄存器 MOVA,#0EH;开放中断源 MOVX@DPTR,A LOOP:MOVP1,#0FFH;P1为准双向口,先写1 NOP MOVA,P1;读拨码开关编码 MOV30H,ATXBUFF: MOVDPTR,#0FE02H;读状态寄存器,判发送缓冲区状态 MOVXA,@DPTR JNBACC.2,TXBUFF MOVDPTR,#0FE0AH;向发送缓冲区填入标识符 MOVA,#20H;接收方地址20H MOVX@DPTR,A MOVDPTR,#0FE0BH;填入数据长度 MOVA,#01H MOVX@DPTR,A MOVDPTR,#0FE0CH;填入拨码开关编码 MOVA,30H MOVX@DPTR,A MOVDPTR,#0FE01H;置CMR.0为1请求发送 MOVA,#01H MOVX@DPTR,A AJMPLOOP END接收程序设计接收程序代码MOVDPTR,#0FE07H;写总线定时寄存器1 MOVA,#2FH MOVX@DPTR,A MOVDPTR,#0FE08H;写输出控制寄存器 MOVA,#0FAH MOVX@DPTR,A MOVDPTR,#0FE1FH;写时钟分频寄存器 MOVA,#40H MOVX@DPTR,A MOVDPTR,#0FE00H;写控制寄存器 MOVA,#0EH;开放中断源 MOVX@DPTR,A MAINLOOP: LCALLDISP;调用显示子程序 MOVDPTR,#0FE02H;读状态寄存器判接收缓冲区是否有报文 MOVXA,@DPTR JNBACC.0,MAINLOOP MOVDPTR,#0FE16H;读取接收缓冲区开关状态数据 MOVXA,@DPTR MOVRECDAT,A MOVDPTR,#0FE01H;接收完毕释放缓冲区 MOVA,#04H MOVX@DPTR,A AJMPMAINLOOPDISP:MOVA,RECDAT ANLA,#0FH;取开关状态低4位 MOVLED0,A MOVA,RECDAT ANLA,#0F0H;取开关状态高4位 SWAPA MOVLED1,A MOVDPTR,#TABLE MOVA,LED0 MOVC A,@A+DPTR SETB P3.4 MOV P1,A LCALL DELAY CLR P3.4 MOV A,LED1 MOVC A,@A+DPTR SETBP3.5 MOV P1,A LCALL DELAY CLR P3.5 RETDELAY: MOVR6,#10 ;延时5毫秒 D1: MOVR7,#250 DJNZR7,$ DJNZR6,D1 RET TABLE: DB3FH,06H,5BH,4FH,66H DB6DH,7DH,07H,7FH,6FH DB77H,7CH,39H,5EH,79H,71H END