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

📄 test3.lst

📁 SJA1000驱动程序(分别用C&ASM书写)
💻 LST
📖 第 1 页 / 共 5 页
字号:
A51 MACRO ASSEMBLER  TEST3                                                                06/03/2003 11:04:01 PAGE     1


MACRO ASSEMBLER A51 V7.01
OBJECT MODULE PLACED IN Test3.OBJ
ASSEMBLER INVOKED BY: C:\PROGRAM FILES\KEIL701\C51\BIN\A51.EXE Test3.ASM SET(SMALL) DEBUG EP

LOC  OBJ            LINE     SOURCE

                       1     
                       2     ;$include (SJA_BCANCONF.ASM) ;导入硬件定义文件
                +1     3     ;************************************************************************
                +1     4     ;*   广州周立功单片机发展有限公司    http://www.zlgmcu.com              *
                +1     5     ;************************************************************************
                +1     6     ;************************************************************************
                +1     7     ;*                                                                      *
                +1     8     ;*  CAN 控制器SJA1000基本的硬件定义(BasicCAN 工作方式)                 *
                +1     9     ;*                                                                      *
                +1    10     ;************************************************************************
                +1    11     ;************************************************************************
                +1    12     ;*                                                                      *
                +1    13     ;*  目的:       SJA1000基本寄存器\功能位定义,便于用户使用SJA1000时     *                  
                                           
                +1    14     ;*              只需作与其硬件系统相适合的简单的修改,便能实现SJA1000的 *
                +1    15     ;*              BasicCAN工作方式的功能                                  *
                +1    16     ;*                                                                      *
                +1    17     ;*  文件名:     SJA_BCANCONF.ASM                                        *
                +1    18     ;*                                                                      *
                +1    19     ;*  模块名:     --                                                      *
                +1    20     ;*                                                                      *
                +1    21     ;*  目标系统:   任何基于任何兼容8051指令的微处理器同SJA1000组成的CAN    *
                +1    22     ;*              系统                                                    *
                +1    23     ;*                                                                      *
                +1    24     ;*  应用语言:   Keil ASM-51 or Intel ASM-51                             *
                +1    25     ;*                                                                      *
                +1    26     ;************************************************************************
                +1    27     ;*  版本 :V1.0                                                          *
                +1    28     ;*                                                                      *
                +1    29     ;************************************************************************
                +1    30     ;*  广州周立功单片机发展有限公司 保留所有的版权                         *
                +1    31     ;************************************************************************
                +1    32     
                +1    33     
                +1    34     ;************************************************************************
                +1    35     ;*以下的定义用户要根据自己的微处理器同SJA1000的硬件连接,来修改SJA1000的*
                +1    36     ;*片选地址 CONTROLLER_BASE ,暂且假定值7000H                             *
                +1    37     ;************************************************************************
  FA00          +1    38     CONTROLLER_BASE   EQU   0fa00H     ;SJA1000的片选地址
                +1    39                                       ;是操作SJA1000内部寄存器的基址
                +1    40     
                +1    41     
                +1    42     ;************************************************************************
                +1    43     ;*以下的定义用户不可修改                                                *
                +1    44     ;************************************************************************
                +1    45     ;************************************************************************
                +1    46     ;*以下的定义是SJA1000在BasicCAN工作方式下内部寄存器的定义               *
                +1    47     ;************************************************************************
                +1    48     ;*控制段寄存器(在内部地址0H---09H)                                     *
                +1    49     ;************************************************************************
                +1    50     ;控制寄存器;;;复位模式、工作模式均可进行读写                            *
  FA00          +1    51     REG_CONTROL       EQU  CONTROLLER_BASE+0H         ;内部控制寄存器地址;其内容可改变      *
                +1    52                                       ;SJA1000  的状态                      * 
                +1    53     
  0001          +1    54     BIT_RR            EQU  01H        ;复位请求控制位,控制寄存器的第0位    *
                +1    55                                       ;=1,;SJA1000进入复位状态              *
                +1    56                                       ;=0,;SJA1000返回正常工作状态          *
                +1    57     
A51 MACRO ASSEMBLER  TEST3                                                                06/03/2003 11:04:01 PAGE     2

  0002          +1    58     BIT_RIE           EQU  02H        ;接收中断控制位,控制寄存器的第1位    *
                +1    59                                       ;=1,;信息被无错接收时,SJA1000发出一个 *
                +1    60                                           ;接收中断信号到微控制器           *
                +1    61                                       ;=0,;SJA1000不发送接收中断信号        *
                +1    62     
  0004          +1    63     BIT_TIE           EQU  04H        ;发送中断控制位,控制寄存器的第2位    *
                +1    64                                       ;=1,;当信息被成功发送或发送缓冲器又被 *
                +1    65                                           ;访问时,(例如,中止发送命令后),    *
                +1    66                                           ;SJA1000发出一个中断信号到微控制器*
                +1    67                                       ;=0,;SJA1000不发送中断信号            *
                +1    68     
  0008          +1    69     BIT_EIE           EQU  08H        ;出错中断控制位,控制寄存器的第3位    *
                +1    70                                       ;=1,;如果出错或总线状态改变           *
                +1    71                                           ;SJA1000发出一个中断信号到微控制器*
                +1    72                                       ;=0,;SJA1000不发送中断信号            *
                +1    73     
  0010          +1    74     BIT_OIE           EQU  10H        ;超载中断控制位,控制寄存器的第4位    *
                +1    75                                       ;=1,;如果置位数据溢出位,              *
                +1    76                                           ;SJA1000发出一个中断信号到微控制器*
                +1    77                                       ;=0,;SJA1000不发送中断信号            *
                +1    78     
                +1    79     ;BIT_5                            ;系统保留位                           *
                +1    80     ;BIT_6                            ;系统保留位                           *
                +1    81     ;BIT_7                            ;系统保留位                           *
                +1    82     
                +1    83     ;命令寄存器;;;复位模式、工作模式 只可进行写  ;;读出值为0XFF             *
  FA01          +1    84     REG_COMMAND       EQU  CONTROLLER_BASE+01H        ;内部命令寄存器地址;                  *
                +1    85                                       ;SJA1000  的状态                      * 
                +1    86     
  0001          +1    87     BIT_TR            EQU  01H        ;发送请求位,命令寄存器的第0位        *
                +1    88                                       ;=1,;信息被发送                       *
                +1    89                                       ;=0,;无发送动作                       *
                +1    90     
  0002          +1    91     BIT_AT            EQU  02H        ;中止发送位,命令寄存器的第1位        *
                +1    92                                       ;=1,;如果不是在处理过程中,            *
                +1    93                                           ;等待处理的发送请求将取消         *
                +1    94                                       ;=0,;                                 *
                +1    95     
  0004          +1    96     BIT_RRB           EQU  04H        ;释放接收缓冲器位,命令寄存器的第2位  *
                +1    97                                       ;=1,;接收缓冲器中存放信息的内存空间   *
                +1    98                                           ;将被释放                         *
                +1    99                                           ;SJA1000发出一个中断信号到微控制器*
                +1   100                                       ;=0,;                                 *
                +1   101     
  0008          +1   102     BIT_COS           EQU  08H        ;清除超载状态位,命令寄存器的第3位    *
                +1   103                                       ;=1,;清除超载状态                     *
                +1   104                                       ;=0,;                                 *
                +1   105     
  0010          +1   106     BIT_GTS           EQU  10H        ;睡眠位;         命令寄存器的第4位    *    
                +1   107                                       ;=1,;如果没有CAN中断等待和总线活动,   *
                +1   108                                           ;SJA1000进入睡眠模式              *
                +1   109                                       ;=0,;                                 *
                +1   110     ;BIT_5                            ;系统保留位                           *
                +1   111     ;BIT_6                            ;系统保留位                           *
                +1   112     ;BIT_7                            ;系统保留位                           *
                +1   113     
                +1   114     ;状态寄存器;;;复位模式、工作模式 可进行读  ; 写操作无效                 *
  FA02          +1   115     REG_STATUS        EQU  CONTROLLER_BASE+02H        ;内部状态寄存器地址;                  *
                +1   116                                       
  0001          +1   117     BIT_RBS           EQU  01H        ;接收缓冲器状态位,状态寄存器的第0位  *
                +1   118                                       ;=1,;RXFIFO中有可用信息               *
                +1   119                                       ;=0,;无可用信息                       *
                +1   120     
  0002          +1   121     BIT_DOS           EQU  02H        ;超载状态位,状态寄存器的第1位        *
                +1   122                                       ;=1,;信息丢失,因为RXFIFO中没有足够的  *
                +1   123                                           ;空间来存储它                     *
A51 MACRO ASSEMBLER  TEST3                                                                06/03/2003 11:04:01 PAGE     3

                +1   124                                       ;=0,;自从最后一次清除数据溢出命令执行,
                +1   125                                           ;无数据溢出发生
                +1   126     
  0004          +1   127     BIT_TBS           EQU  04H        ;发送缓冲器状态位,状态寄存器的第2位  *
                +1   128                                       ;=1,;CPU可以向发送缓冲器写信息        *
                +1   129                                       ;=0,;CPU不能访问发送缓冲器;有信息正   *
                +1   130                                           ;在等待发送或正在发送             *
                +1   131     
  0008          +1   132     BIT_TCS           EQU  08H        ;发送完毕状态位,状态寄存器的第3位    *
                +1   133                                       ;=1,;最近一次发送请求被成功处理       *
                +1   134                                       ;=0,;当前发送请求未处理完毕           *
                +1   135     
  0010          +1   136     BIT_RS            EQU  10H        ;接收状态位;     状态寄存器的第4位    *    
                +1   137                                       ;=1,;SJA1000正在接收信息              *
                +1   138                                       ;=0,;没有正在接收的信息               *
                +1   139      
  0020          +1   140     BIT_TS            EQU  20H        ;发送状态位;     状态寄存器的第4位    *    
                +1   141                                       ;=1,;SJA1000正在发送信息              *
                +1   142                                       ;=0,;没有正在发送的信息               *
                +1   143     
  0040          +1   144     BIT_ES            EQU  40H        ;出错状态位;     状态寄存器的第4位    *    
                +1   145                                       ;=1,;至少出现一个错误计数器满或超过   *
                +1   146                                           ;CPU报警限制                      *
                +1   147                                       ;=0,;两个错误计数器都在报警限制以下   *
                +1   148     
  0080          +1   149     BIT_BS            EQU  80H        ;总线状态位;     状态寄存器的第4位    *    
                +1   150                                       ;=1,;总线关闭;SJA1000退出总线活动     *
                +1   151                                       ;=0,;总线开启;SJA1000加入总线活动     *
                +1   152     
                +1   153     ;中断寄存器允许中断源的识别;;; 只读                                     *
  FA03          +1   154     REG_INTERRUPT    EQU  CONTROLLER_BASE+03H        ;内部中断寄存器地址;                   *
                +1   155                                       
  0001          +1   156     BIT_RI           EQU  01H        ;接收中断位,中断寄存器的第0位         *
                +1   157                                       ;=1,;;当接收FIFO不空和接收中断        *
                +1   158                                            ;使能时置位此位                  *
                +1   159                                       ;=0,;无可用信息                       *
                +1   160     
  0002          +1   161     BIT_TI           EQU  02H        ;发送中断位,中断寄存器的第1位         *
                +1   162                                       ;=1,;发送缓冲器状态从0变为1(释放)     *
                +1   163                                           ;和发送中断使能时,置位此位        *
                +1   164                                       ;=0,;微控制器的任何读访问将清除此位   *

⌨️ 快捷键说明

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