⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 can591_peliconf.asm

📁 P87C591的CAN通讯程序模块
💻 ASM
📖 第 1 页 / 共 2 页
字号:
         REG_CAN_ACFPRIO EQU      31

         ACF1_FT1_PRIO   EQU       01         
         ACF1_FT2_PRIO   EQU       02
         ACF2_FT1_PRIO   EQU       04
         ACF2_FT2_PRIO   EQU       08
         ACF3_FT1_PRIO   EQU       10H
         ACF3_FT2_PRIO   EQU       20H
         ACF4_FT1_PRIO   EQU       40H
         ACF4_FT2_PRIO   EQU       80H

;;/*
;********************************************************************************************************************
;* 验收滤波器寄存器的地址定义 PeliCAN模式  注:只在复位模式下有效
;********************************************************************************************************************
;;*/
         REG_CAN_ACF1_ACR0     EQU 32            ;;//验收代码0寄存器
         REG_CAN_ACF1_ACR1     EQU 33            ;;//验收代码1寄存器
         REG_CAN_ACF1_ACR2     EQU 34            ;;//验收代码2寄存器
         REG_CAN_ACF1_ACR3     EQU 35            ;;//验收代码3寄存器

         REG_CAN_ACF1_AMR0     EQU 36            ;;//验收屏蔽0寄存器
         REG_CAN_ACF1_AMR1     EQU 37            ;;//验收屏蔽1寄存器
         REG_CAN_ACF1_AMR2     EQU 38            ;;//验收屏蔽2寄存器
         REG_CAN_ACF1_AMR3     EQU 39            ;;//验收屏蔽3寄存器

         REG_CAN_ACF2_ACR0     EQU 40            ;;//验收代码0寄存器
         REG_CAN_ACF2_ACR1     EQU 41            ;;//验收代码1寄存器
         REG_CAN_ACF2_ACR2     EQU 42            ;;//验收代码2寄存器
         REG_CAN_ACF2_ACR3     EQU 43            ;;//验收代码3寄存器

         REG_CAN_ACF2_AMR0     EQU 44            ;;//验收屏蔽0寄存器
         REG_CAN_ACF2_AMR1     EQU 45            ;;//验收屏蔽1寄存器
         REG_CAN_ACF2_AMR2     EQU 46            ;;//验收屏蔽2寄存器
         REG_CAN_ACF2_AMR3     EQU 47            ;;//验收屏蔽3寄存器

         REG_CAN_ACF3_ACR0     EQU 48            ;;//验收代码0寄存器
         REG_CAN_ACF3_ACR1     EQU 49            ;;//验收代码1寄存器
         REG_CAN_ACF3_ACR2     EQU 50            ;;//验收代码2寄存器
         REG_CAN_ACF3_ACR3     EQU 51            ;;//验收代码3寄存器

         REG_CAN_ACF3_AMR0     EQU 52            ;;//验收屏蔽0寄存器
         REG_CAN_ACF3_AMR1     EQU 53            ;;//验收屏蔽1寄存器
         REG_CAN_ACF3_AMR2     EQU 54            ;;//验收屏蔽2寄存器
         REG_CAN_ACF3_AMR3     EQU 55            ;;//验收屏蔽3寄存器

         REG_CAN_ACF4_ACR0     EQU 56            ;;//验收代码0寄存器
         REG_CAN_ACF4_ACR1     EQU 57            ;;//验收代码1寄存器
         REG_CAN_ACF4_ACR2     EQU 58            ;;//验收代码2寄存器
         REG_CAN_ACF4_ACR3     EQU 59            ;;//验收代码3寄存器

         REG_CAN_ACF4_AMR0     EQU 60            ;;//验收屏蔽0寄存器
         REG_CAN_ACF4_AMR1     EQU 61            ;;//验收屏蔽1寄存器
         REG_CAN_ACF4_AMR2     EQU 62            ;;//验收屏蔽2寄存器
         REG_CAN_ACF4_AMR3     EQU 63            ;;//验收屏蔽3寄存器

         CAN_ACR_ACF1          EQU       32
         CAN_ACR_ACF2          EQU       40
         CAN_ACR_ACF3          EQU       48
         CAN_ACR_ACF4          EQU       56

         CAN_AMR_ACF1          EQU       36
         CAN_AMR_ACF2          EQU       44
         CAN_AMR_ACF3          EQU       52
         CAN_AMR_ACF4          EQU       60        
;;/*
;********************************************************************************************************************
;*                          Tx 缓冲器的地址定义 PeliCAN 模式
;********************************************************************************************************************
;;*/
 ;;/*仅写地址;*/
         REG_CAN_TXFMINFO EQU 112            ;;//TX 帧信息 标准帧、扩展帧)寄存器
         REG_CAN_TXBUF1   EQU 113            ;;//TX 帧信息 标准帧、扩展帧)识别码1寄存器
         REG_CAN_TXBUF2   EQU 114            ;;//TX 帧信息 标准帧、扩展帧)识别码2寄存器
         REG_CAN_TXBUF3   EQU 115            ;;//TX 帧信息 标准帧数据1、扩展帧识别码3)寄存器
         REG_CAN_TXBUF4   EQU 116            ;;//TX 帧信息 标准帧数据2、扩展帧识别码4)寄存器
         REG_CAN_TXBUF5   EQU 117            ;;//TX 帧信息 标准帧数据3、扩展帧数据1)寄存器
         REG_CAN_TXBUF6   EQU 118            ;;//TX 帧信息 标准帧数据4、扩展帧数据2)寄存器
         REG_CAN_TXBUF7   EQU 119            ;;//TX 帧信息 标准帧数据5、扩展帧数据3)寄存器
         REG_CAN_TXBUF8   EQU 120            ;;//TX 帧信息 标准帧数据6、扩展帧数据4)寄存器
         REG_CAN_TXBUF9   EQU 121            ;;//TX 帧信息 标准帧数据7、扩展帧数据5)寄存器
         REG_CAN_TXBUF10  EQU 122            ;;//TX 帧信息 标准帧数据8、扩展帧数据6)寄存器
         REG_CAN_TXBUF11  EQU 123            ;;//TX 帧信息              扩展帧数据7)寄存器
         REG_CAN_TXBUF12  EQU 123            ;;//TX 帧信息              扩展帧数据8)寄存器
;;/*仅读地址;*/
         REG_CAN_TXFMRD   EQU 112            ;;//读取TX 帧信息 标准帧、扩展帧)寄存器
         REG_CAN_TXRD1    EQU 113            ;;//读取TX 帧信息 标准帧、扩展帧)识别码1寄存器
         REG_CAN_TXRD2    EQU 114            ;;//读取TX 帧信息 标准帧、扩展帧)识别码2寄存器
         REG_CAN_TXRD3    EQU 115            ;;//读取TX 帧信息 标准帧数据1、扩展帧识别码3)寄存器
         REG_CAN_TXRD4    EQU 116            ;;//读取TX 帧信息 标准帧数据2、扩展帧识别码4)寄存器
         REG_CAN_TXRD5    EQU 117            ;;//读取TX 帧信息 标准帧数据3、扩展帧数据1)寄存器
         REG_CAN_TXRD6    EQU 118            ;;//读取TX 帧信息 标准帧数据4、扩展帧数据2)寄存器
         REG_CAN_TXRD7    EQU 119            ;;//读取TX 帧信息 标准帧数据5、扩展帧数据3)寄存器
         REG_CAN_TXRD8    EQU 120            ;;//读取TX 帧信息 标准帧数据6、扩展帧数据4)寄存器
         REG_CAN_TXRD9    EQU 121            ;;//读取TX 帧信息 标准帧数据7、扩展帧数据5)寄存器
         REG_CAN_TXRD10   EQU 122            ;;//读取TX 帧信息 标准帧数据8、扩展帧数据6)寄存器
         REG_CAN_TXRD11   EQU 123            ;;//读取TX 帧信息              扩展帧数据7)寄存器
         REG_CAN_TXRD12   EQU 124            ;;//读取TX 帧信息              扩展帧数据8)寄存器

;;/*
;********************************************************************************************************************
;*                          Rx 缓冲器的地址定义 PeliCAN 模式
;********************************************************************************************************************
;;*/

         REG_CAN_RXFMINFO EQU 96            ;;//RX 帧信息 标准帧、     扩展帧)寄存器
         REG_CAN_RXBUF1   EQU 97            ;;//RX 识别码 标准帧、     扩展帧)寄存器1
         REG_CAN_RXBUF2   EQU 98            ;;//RX 帧信息 标准帧、     扩展帧)识别码2寄存器
         REG_CAN_RXBUF3   EQU 99            ;;//RX 帧信息 标准帧数据1、扩展帧识别码3)寄存器
         REG_CAN_RXBUF4   EQU 100            ;;//RX 帧信息 标准帧数据2、扩展帧识别码4)寄存器
         REG_CAN_RXBUF5   EQU 101            ;;//RX 帧信息 标准帧数据3、扩展帧数据1)寄存器
         REG_CAN_RXBUF6   EQU 102            ;;//RX 帧信息 标准帧数据4、扩展帧数据2)寄存器
         REG_CAN_RXBUF7   EQU 103            ;;//RX 帧信息 标准帧数据5、扩展帧数据3)寄存器
         REG_CAN_RXBUF8   EQU 104            ;;//RX 帧信息 标准帧数据6、扩展帧数据4)寄存器
         REG_CAN_RXBUF9   EQU 105            ;;//RX 帧信息 标准帧数据7、扩展帧数据5)寄存器
         REG_CAN_RXBUF10  EQU 106            ;;//RX 帧信息 标准帧数据8、扩展帧数据6)寄存器
         REG_CAN_RXBUF11  EQU 107            ;;//RX 帧信息              扩展帧数据7)寄存器
         REG_CAN_RXBUF12  EQU 108            ;;//RX 帧信息              扩展帧数据8)寄存器

;;/*
;********************************************************************************************************************
;* 定义标准帧或扩展帧的报文识别码的长度
;********************************************************************************************************************
;;*/
		STD_FRAMEID_LENTH EQU	   02
		EXT_FRAMEID_LENTH EQU	   04

;/*
;********************************************************************************************************************
;*                      CAN591 的PeliCAN 工作方式命令字定义
;*      每一个命令字都通过将该命令字写入命令寄存器,两条命令之间必须至少间隔一个内部时钟
;*  周期(内部时钟频率为外部振荡器频率的1/2)
;********************************************************************************************************************
;*/
     	NORMAL_SEND        EQU      01H        ;//正常发送命令,允许自动重发
   	STOP_SEND   	   EQU      02H	    ;//中止发送位
      	SINGLE_SEND        EQU      03H        ;//单次发送,不自动重发
      	RELEASE_RX_BUF	   EQU      04H	    ;//释放接收缓冲器
      	CLR_DATA_OVER  	   EQU      08H	    ;//清除数据溢出
      	SELF_RCV_REQUEST   EQU      10H        ;//自身接收请求
      	SELF_SINGLE_RCVSEND EQU     12H        ;//单次自接收性质的信息发送

;/*
;********************************************************************************************************************
;*                      CAN591 的PeliCAN 工作方式 错误代码定义
;*      每一个PeliCAN 工作方式下的函数都将产生一个返回值,该值应该符合下面的代码定义
;********************************************************************************************************************
;*/
      SJA_OK               EQU   	 00

      SJA_INTERFACE_ERR    EQU    	 -1         ;//与微处理器接口错
      SJA_ENTRYRESET_ERR   EQU   	 -2         ;//进复位状态错
      SJA_QUITRESET_ERR    EQU   	 -3         ;//退出复位状态错
      SJA_INIT_ERR         EQU   	 -4         ;//初始化错
      SJA_CODE_ERR         EQU   	 -5         ;//代码错
      SJA_FRAME_ERR        EQU   	 -6         ;//帧格式错
      SJA_WTXBUF_ERR       EQU   	 -7         ;//写发送缓冲区错

      SJA_CANBUS_ERR       EQU   	 -8         ;//总线错误 (关闭)

 		SJA_TXBUFLOCK	   EQU		 -9 		;//发送缓冲区锁定
 		SJA_RXBUFEMPTY	   EQU		 -10 		;//接收缓冲区为空
 		SJA_RRXVUF_ERR	   EQU		 -11 		;//接收数据错

 		SJA_SETACR_ERR	   EQU		 -12 		;//设置代码验收寄存器错
 		SJA_NOTRSTMODE     EQU     	 -13 		;//sja1000不在复位模式,却调用了初始化函数

 		SJA_SETBTR_ERR	   EQU		 -14 		;//设置总线定时器错
 		SJA_NOBTRSIZE      EQU		 -15 		;//波特率不能设为此值
 		SJA_SETAMR_ERR	   EQU		 -16 		;//设置验收屏蔽寄存器错

 		SJA_SETOCR_ERR	   EQU		 -17 		;//设置输出控制寄存器错
                SJA_SETCDR_ERR	   EQU		 -18 		;//设置时钟分频寄存器错

      		SJA_IMPCMD_ERR	   EQU		 -19 		;//命令执行出错
 		SJA_NOTHISCMD	   EQU		 -20 		;//没有此命令
     		SJA_SETACFMODE_ERR EQU     	 -21       	;//设置代码验收滤波器模式寄存器错
     		SJA_SETACFPRIO_ERR EQU      	 -22       	;//设置代码验收滤波器优先级寄存器错
    		SJA_SETACFEN_ERR   EQU     	 -23     	;//设置代码验收滤波器使能寄存器错
    		SJA_SETIER_ERR     EQU     	 -24        	;//设置中断使能失败

/*
;/*
;********************************************************************************************************************
;*                     定义系统最大波特率
;********************************************************************************************************************
;*/
  	MAX_BAND_RATE   	   EQU 		1000000

;/*
;********************************************************************************************************************
;*                     定义12M的晶体下,CAN总线通用波特率代表的数值   
;********************************************************************************************************************
;*/
          ByteRate_20k   EQU    00          ;//波特率20kbps
          ByteRate_40k   EQU    01          ;//波特率40kbps
          ByteRate_50k   EQU    02          ;//波特率50kbps
          ByteRate_80k   EQU    03          ;//波特率80kbps
          ByteRate_100k  EQU    04          ;//波特率100kbps
          ByteRate_125k  EQU    05          ;//波特率125kbps
          ByteRate_200k  EQU    06          ;//波特率200kbps
          ByteRate_250k  EQU    07          ;//波特率250kbps
          ByteRate_400k  EQU    08          ;//波特率400kbps
          ByteRate_500k  EQU    09          ;//波特率500kbps
          ByteRate_666k  EQU    0aH         ;//波特率666kbps
          ByteRate_800k  EQU    0bH         ;//波特率800kbps
          ByteRate_1000k EQU    0cH         ;//波特率1000kbps
 
 ;;/*$page;*/

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -