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

📄 ch.lst

📁 本程序是mc145572U接口驱动程序,有一些问题,希望大家指点.
💻 LST
字号:
C51 COMPILER V8.02   CH                                                                    11/29/2006 17:29:51 PAGE 1   


C51 COMPILER V8.02, COMPILATION OF MODULE CH
OBJECT MODULE PLACED IN .\obj\ch.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ch.c BROWSE DEBUG OBJECTEXTEND OBJECT(.\obj\ch.obj)

line level    source

   1          #define CH //定义主要通道的处理函数B1,B2,D,eoc,M4,M5/M6
   2          
   3          #include "reg51.h"
   4          #include "intrins.h"
   5          #include "absacc.h"
   6          #include "io.h"//AT89C2051的IO定义
   7          #include "spi.h"//将SPI子函数定义为外部函数
   8          #include "sub.h"//激活子函数定义为外部函数
   9          #include "ch.h"//通道子函数定义为外部函数
  10          
  11          /************************DCH-non-ISDN使用********************/
  12          void  D_channel_initial()//non-ISDN使用
  13           {
  14   1      
  15   1                      _nop_();
  16   1              reset();
  17   1                      _nop_();
  18   1              writedata(0x7A,8);//BR10 address  Enable SCP/PCP D channel read/write access through OR12
  19   1                      _nop_();        
  20   1              writedata(0x02,8);//BR10(b1) select D channel置1
  21   1                      _nop_();
  22   1              writedata(0x48,8);//IRQ3使能
  23   1                      _nop_();
  24   1              writedata(0x28,8);// Set activation request bit
  25   1                      _nop_();
  26   1              }
  27          
  28          void  D_channel_interrupt()//non-ISDN使用
  29          {
  30   1        unsigned char val;
  31   1        if(val&0x38==0x38)//NR3(b3) = 1
  32   1              {
  33   2              if(val&0x1F==0x1F)//IF NR1 = F
  34   2                      {
  35   3                              
  36   3                              }
  37   2              else
  38   2                      {
  39   3                      if((val&0x1A==0x1A)||(val&0x1B==0x1B))//IF NR1 = A or B AND initial activation  
  40   3                              writedata(0x21,8);
  41   3                      else
  42   3                              {
  43   4                               if(val&0x14==0x14) 
  44   4                               writedata(0x14,8);
  45   4                               }
  46   3                        }
  47   2                      }
  48   1              }
  49          
  50          /********timeslot assignment programming********/
  51          void  timeslot_initial()
  52                  {
  53   1              _nop_();
  54   1              reset();
  55   1              _nop_();
C51 COMPILER V8.02   CH                                                                    11/29/2006 17:29:51 PAGE 2   

  56   1              writedata(0x7A,8);//BR10 address 
  57   1              _nop_();
  58   1              writedata(0x01,8);//BR10(b0) <– 1;  Select Init Group Overlay registers
  59   1              _nop_();
  60   1              writedata(0x7A,8);//BR10先写入地址0111-1010  Select Init Group Overlay registers
  61   1              _nop_();
  62   1              writedata(0x01,8);//BR10(b0) <– 1;
  63   1              _nop_();
  64   1              writedata(0x70,8);//OR0 address
  65   1              _nop_(); 
  66   1              writedata(0x08,8);//OR0 <–08
  67   1              _nop_(); 
  68   1              writedata(0x71,8);//OR1 address
  69   1              _nop_(); 
  70   1              writedata(0x0C,8);//OR1 <0C
  71   1              _nop_(); 
  72   1              writedata(0x72,8);//OR2 address
  73   1              _nop_(); 
  74   1              writedata(0x11,8);//OR2 <11
  75   1              _nop_();        
  76   1              writedata(0x73,8);//OR3 address
  77   1              _nop_(); 
  78   1              writedata(0x08,8);//OR3 <–08
  79   1              _nop_();        
  80   1              writedata(0x74,8);//OR4 address
  81   1              _nop_(); 
  82   1              writedata(0x0C,8);//OR4 <0C
  83   1              _nop_();        
  84   1              writedata(0x75,8);//OR5 address
  85   1              _nop_(); 
  86   1              writedata(0x11,8);//OR5 <11
  87   1              _nop_(); 
  88   1              writedata(0x76,8);//OR6 address
  89   1              _nop_(); 
  90   1              writedata(0xE0,8);//OR6 <E0
  91   1              _nop_();        
  92   1              writedata(0x7A,8);//OR10 address 
  93   1              _nop_();
  94   1              writedata(0x00,8);//BR10(b0) <-0 not select Init Group Overlay registers
  95   1              _nop_();
  96   1              }
  97          
  98          void    timer_ISR()
  99           {
 100   1        ;
 101   1              }
 102          /***********febe and nebe counters*********/
 103          
 104          void   febe_nebe_initial()
 105           {
 106   1      
 107   1              _nop_();
 108   1              writedata(0x74,8);// BR4 Clear febe counter
 109   1              _nop_();
 110   1              writedata(0x00,8);//BR4-00000000
 111   1              _nop_();
 112   1              _nop_();
 113   1              writedata(0x75,8);// BR5 Clear nebe counter
 114   1              _nop_();
 115   1              writedata(0x00,8);//BR5-00000000
 116   1              _nop_();        
 117   1              writedata(0x7A,8);//BR10 add
C51 COMPILER V8.02   CH                                                                    11/29/2006 17:29:51 PAGE 3   

 118   1              _nop_();
 119   1              writedata(0x01,8);//BR10(b0)<-1
 120   1              _nop_();
 121   1              writedata(0x77,8);//OR7 add
 122   1              _nop_();
 123   1              writedata(0x01,8);// Enable febe/nebe rollover
 124   1              _nop_();
 125   1              writedata(0x7A,8);//BR10 add
 126   1              _nop_();
 127   1              writedata(0x00,8);//BR10(b0)<-0
 128   1              _nop_();        
 129   1              }
 130          
 131          void   febe_nebe_interrupt()
 132                  {
 133   1              if(1)//block error  ratio timer 1.2 second--100 blocks
 134   1              {
 135   2      //febe <– BR4; /* store current febe */
 136   2      //FE_BLER <– febe – last_febe /* calculate far end BLER of last 1.2 sec */
 137   2      //IF FE_BLER <= 0 THEN /* test for febe counter rollover */
 138   2      //FE_BLER <– 256 – FE_BLER /* adjust far end BLER for counter
 139   2      //rollover */
 140   2      //last_febe <– BR4 /* update last_febe */
 141   2      //nebe <– BR5; /* store current nebe */
 142   2      //NE_BLER <– nebe – last_nebe /* calculate near end BLER of last 1.2 sec */
 143   2      //IF NE_BLER <= 0 THEN /* test for nebe counter rollover */
 144   2      //NE_BLER <– 256 – NE_BLER /* adjust near end BLER for counter
 145   2      //rollover */
 146   2      //last_nebe <– BR5 /* update last_nebe */      
 147   2                      }
 148   1              }
 149          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    324    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       1
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


C51 COMPILATION COMPLETE.  0 WARNING(S),  0 ERROR(S)

⌨️ 快捷键说明

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