原创经典:调试好的CAN总线程序(汇编1)
价格:200.00
提供can实验开发板给初学者大家需要的话联系我:nnyt@1CAN控制器为SJA1000,驱动器为TJA1050,电源隔离;2提供详尽的源程序,可根据用户需求编写程序联系我:13671387011(短信联系,***详谈)***:531706356系统can地址为550,用于can系统测试,应用T0定时器每隔1s向can总线发送一组数据:数据长度为8个字节,首字节为05H,第二个字节为累加变量,每秒钟数值增加1,CONTROLLER_BASEEQU7E00H;SJA1000的片选地址RCV_GOODBIT0FH;成功的接收一帧标志SEC_FLAGBIT010H;一秒到标志ERR_FLAGBIT011H;监测到错误标志S***E_INT_INFODATA032H;保存SJA1000中断寄存器的内容SEND_DATA_BUF1DATA040H;发送缓冲区SEND_DATA_BUF2DATA041HSEND_DATA_BUF3DATA042HSEND_DATA_BUF4DATA043HSEND_DATA_BUF5DATA044HSEND_DATA_BUF6DATA045HSEND_DATA_BUF7DATA046HSEND_DATA_BUF8DATA047HSEND_DATA_BUF9DATA048HSEND_DATA_BUF10DATA049HRCV_DATA_BUF1DATA050H;接收缓冲区RCV_DATA_BUF2DATA051HRCV_DATA_BUF3DATA052HRCV_DATA_BUF4DATA053HRCV_DATA_BUF5DATA054HRCV_DATA_BUF6DATA055HRCV_DATA_BUF7DATA056HRCV_DATA_BUF8DATA057HRCV_DATA_BUF9DATA058HRCV_DATA_BUF10DATA059HERROR_STATUSDATA07CH;错误状态表示TEST_DATADATA07FH;测试发送数据;程序开始ORG0000HLJMPMAIN;运行主程序ORG0003HLJMPBCAN_INT0;中断方式访问SJA1000程序ORG000BHLJMPT0_INTERRUPT;定时器0中断ORG0100H;程序开始MAIN:MOVR0,#07fHCLRAMOV@R0,ADJNZR0,$-1MOV@R0,AMOVSP,#60H;设置SPCLRP2.0;SJA1000退出硬件复位模式LCALLSJA1000_INT0;初始化SJA1000LCALLT0_INITCLRP3.4;点亮指示灯SETBPX0SETBIT0SETBEX0SETBET0SETBTR0SETBEALOOPER:JNBRCV_GOOD,LOOPER2;sja1000成功接收一帧,通知CPU处理CLRRCV_GOODLCALLRCVDATA_PRGLOOPER2:JNBSEC_FLAG,LOOPER3;一秒时间到,每秒发送一次CLRSEC_FLAGCLRP3.5;点亮指示灯LCALLSENDDATA_PRGLOOPER3:JNBERR_FLAG,LOOPER4;错误标志,错误处理CLRERR_FLAGLCALLERR_PRGLOOPER4:AJMPLOOPER;;;;;;;;;初始化SJA1000;;SJA1000_INT0:LCALLBCAN_CREATE_COMMUNATION;调用SJA1000接口测试函数MOVR7,#04LCALLBCAN_SET_BANDRATE;设置波特率为100kMOVR7,#0A8H;设置接收报文IDMOVR6,#0FFHLCALLBCAN_SET_OBJECTMOVR7,#0AAH;设置输出控制、时钟分频;正常输出模式MOVR6,#048H;使能内部比较器、禁止CLKOUTLCALLBCAN_SET_OUTCLK;LCALLBCAN_QUIT_RETMODEL;退出复位状态MOVDPTR,#REG_CONTROL;开放SJA1000内部功能中断MOVA,#01EH;中断开放MOVX@DPTR,ACLRF0RET;;;;;错误信息处理;;;;;;;;;;;;ERR_PRG:LCALLBCAN_ENTER_RETMODEL;进入复位模式LCALLSJA1000_INT0;MOVERROR_STATUS,#0FCHRET;;;;;;;;;接收数据处理部分;;;;;RCVDATA_PRG:MOVR0,#RCV_DATA_BUF1;微处理器接收首地址LCALLBCAN_DATA_RECEIVE;调用接收数据子程序MOVR7,#04H;释放接收缓冲区LCALLBCAN_CMD_PRG;RET;;;;;;;;;;;;;;;;;;控制SJA1000向CAN总线发送数据处理部分;;;;;;;;;;;;;;;SENDDATA_PRG:MOVR0,#SEND_DATA_BUF1MOV@R0,#02HINCR0MOV@R0,#08HINCR0MOV@R0,#05HMOVA,TEST_DATAINCR0MOV@R0,AMOV
北京智德科技有限公司
业务 QQ: 531706356