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

📄 bc7281a.lst

📁 利用SMALL RTOS51做的一个项目
💻 LST
字号:
C51 COMPILER V7.50   BC7281A                                                               12/29/2004 20:23:49 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE BC7281A
OBJECT MODULE PLACED IN .\BC7281A.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\Peripheric\BC7281A.C BROWSE DEBUG OBJECTEXTEND PRINT(.\BC7281A.lst) OBJE
                    -CT(.\BC7281A.obj)

line level    source

   1          #include"config.h"
   2          
   3          
   4          
   5          //*******************************************************************************************************
   6          //*****************************         GLOBAL   PERAMETER          *************************************
   7          //*******************************************************************************************************
   8          
   9          
  10          
  11          
  12          /*********************************************************************************************************
  13          ** 函数名称: send_byte
  14          ** 功能描述: 写入BC728X
  15          **
  16          ** 输 入:      sbyte           //数据
  17          ** 输 出: 无
  18          ** 全局变量: 无
  19          ** 调用模块: 无
  20          ********************************************************************************************************/
  21          
  22                          void send_byte(unsigned char sbyte)
  23          {
  24   1              unsigned char i;
  25   1      
  26   1              BC728X_CLK=0;
  27   1              BC728X_CLK=1;
  28   1      
  29   1              for(i=0;(i<250)&&BC728X_DAT;i++)
  30   1              {
  31   2                      BC728X_CLK=0;
  32   2                      BC728X_CLK=1;
  33   2              }//while(BC728X_DAT);
  34   1      
  35   1              if(BC728X_DAT)
  36   1                      return;
  37   1              
  38   1              BC728X_CLK=0;
  39   1              BC728X_CLK=1;
  40   1              
  41   1              //while(!BC728X_DAT);
  42   1              for(i=0;(i<250)&&(!BC728X_DAT);i++);
  43   1              
  44   1              if(!BC728X_DAT)
  45   1                      return;
  46   1              
  47   1      
  48   1              for(i=0;i<8;i++)
  49   1              {
  50   2                      if(sbyte&0x80)
  51   2                      {
  52   3                              BC728X_DAT=1;
  53   3                      }
  54   2                      else
C51 COMPILER V7.50   BC7281A                                                               12/29/2004 20:23:49 PAGE 2   

  55   2                      {
  56   3                              BC728X_DAT=0;
  57   3                      }
  58   2                      sbyte<<=1;
  59   2      
  60   2                      BC728X_CLK=0;
  61   2                      BC728X_CLK=1;
  62   2      
  63   2              //      _Nop();
  64   2              //      _Nop();
  65   2              //      _Nop();
  66   2              //      _Nop();
  67   2              //      _Nop();
  68   2              //      _Nop();
  69   2              //      _Nop();
  70   2                      
  71   2              }
  72   1      
  73   1              BC728X_DAT=1;
  74   1      
  75   1              _Nop();
  76   1              _Nop();
  77   1              _Nop();
  78   1              _Nop();
  79   1      //      _Nop();
  80   1      //      _Nop();
  81   1      //      _Nop();
  82   1      }
  83          
  84          /*********************************************************************************************************
  85          ** 函数名称: recieve_byte
  86          ** 功能描述: 写入BC728X
  87          **
  88          ** 输 入: 无
  89          ** 输 出: 无
  90          ** 全局变量: 无
  91          ** 调用模块: 无
  92          ********************************************************************************************************/
  93          
  94                          unsigned char receive_byte(void)
  95          {
  96   1              unsigned char i,ibyte;
  97   1      
  98   1              BC728X_CLK=0;
  99   1              BC728X_CLK=1;
 100   1      
 101   1              //while(!BC728X_DAT);
 102   1              for(i=0;(i<250)&&(!BC728X_DAT);i++);
 103   1              if(!BC728X_DAT)
 104   1                      return;
*** WARNING C173 IN LINE 104 OF ..\PERIPHERIC\BC7281A.C: missing return-expression
 105   1      
 106   1              BC728X_CLK=0;
 107   1              BC728X_CLK=1;
 108   1      
 109   1      
 110   1              for(i=0;i<8;i++)
 111   1              {
 112   2                      _Nop();
 113   2                      _Nop();
 114   2      //              _Nop();
 115   2      //              _Nop();
C51 COMPILER V7.50   BC7281A                                                               12/29/2004 20:23:49 PAGE 3   

 116   2      //              _Nop();
 117   2      //              _Nop();
 118   2      //              _Nop();
 119   2      
 120   2                      ibyte<<=1;
 121   2      
 122   2                      if(BC728X_DAT)
 123   2                      {
 124   3                              ibyte++;
 125   3                      }
 126   2                      
 127   2                      BC728X_CLK=0;
 128   2                      BC728X_CLK=1;
 129   2      
 130   2                      
 131   2              }
 132   1      
 133   1              BC728X_DAT=1;
 134   1      
 135   1              _Nop();
 136   1              _Nop();
 137   1      //      _Nop();
 138   1      //      _Nop();
 139   1      //      _Nop();
 140   1      //      _Nop();
 141   1      //      _Nop(); 
 142   1      
 143   1              return(ibyte);
 144   1      }
 145          
 146          /*********************************************************************************************************
 147          ** 函数名称: Write728x
 148          ** 功能描述: 写入BC728X
 149          **
 150          ** 输 入:      addr,           //地址
 151          **                      wdata           //数据
 152          ** 输 出: 无
 153          ** 全局变量: 无
 154          ** 调用模块: 无
 155          ********************************************************************************************************/
 156          
 157                          void Write728x(unsigned char addr,unsigned char wdata)
 158          {
 159   1              ES=0;
 160   1      
 161   1              send_byte(addr);
 162   1              send_byte(wdata);
 163   1      
 164   1              ES=1;
 165   1      }
 166          
 167          /*********************************************************************************************************
 168          ** 函数名称: Read728x
 169          ** 功能描述: 读入BC728X
 170          **
 171          ** 输 入:      addr,           //地址
 172          **                      
 173          ** 输 出:  receive_byte()              //数据
 174          ** 全局变量: 无
 175          ** 调用模块: receive_byte()
 176          ********************************************************************************************************/
 177          
C51 COMPILER V7.50   BC7281A                                                               12/29/2004 20:23:49 PAGE 4   

 178                          unsigned char Read728x(unsigned char addr)
 179          {
 180   1              addr|=0x80;
 181   1      
 182   1              send_byte(addr);
 183   1      
 184   1              return(receive_byte());
 185   1      }
 186          
 187          
 188          /*********************************************************************************************************
 189          ** 函数名称: DispNum
 190          ** 功能描述: 显示数字
 191          **
 192          ** 输 入:      addr,           //地址
 193          **                      
 194          ** 输 出:   无
 195          ** 全局变量: 无
 196          ** 调用模块: 无
 197          ********************************************************************************************************/
 198          
 199          
 200          void DispNum(unsigned char address,unsigned long num)
 201          {
 202   1              idata char i,j;
 203   1              
 204   1              ES=0;
 205   1              
 206   1              switch(address)
 207   1              {
 208   2                      case 0  :       j=1;
 209   2                                              for(i=6;i&&j;i--)
 210   2                                              {
 211   3                                                      j=num%10;
 212   3                                                      
 213   3                                                      j+=((i-1)<<4);
 214   3      
 215   3                                                      Write728x(0x14,j);
 216   3                                                      
 217   3                                                      num/=10;
 218   3                                      
 219   3                                                      if(num>0)
 220   3                                                              j=1;
 221   3                                                      else
 222   3                                                              j=0;
 223   3                                              }
 224   2      
 225   2                                              if(i)
 226   2                                              {
 227   3                                                      for(;i--;)
 228   3                                                              Write728x((i-1),0xFF);
 229   3                                              }
 230   2                                              
 231   2                                              break;
 232   2                      case 1  :       j=1;
 233   2                                              for(i=12;(i>6)&&j;i--)
 234   2                                              {
 235   3                                                      j=num%10;
 236   3                                                      
 237   3                                                      j+=((i-1)<<4);
 238   3      
 239   3                                                      Write728x(0x14,j);
C51 COMPILER V7.50   BC7281A                                                               12/29/2004 20:23:49 PAGE 5   

 240   3                                              
 241   3                                                      num/=10;
 242   3                                      
 243   3                                                      if(num>0)
 244   3                                                              j=1;
 245   3                                                      else
 246   3                                                              j=0;
 247   3                                              }
 248   2      
 249   2                                              if(i>6)
 250   2                                              {
 251   3                                                      for(;i>6;i--)
 252   3                                                              Write728x((i-1),0xFF);
 253   3                                              }
 254   2                                              
 255   2                                              break;
 256   2                      case 2  :       for(i=13;i<15;i++)
 257   2                                              {
 258   3                                                      Write728x((i-1),0xFF);
 259   3                                              }
 260   2      
 261   2                                              if(_Flag_StateLed)
 262   2                                                      Write728x(0x18,0x77);
 263   2      
 264   2                                              j=1;
 265   2                                              for(i=15;i>12&&j;i--)
 266   2                                              {
 267   3                                                      j=num%10;
 268   3                                                      j+=((i-1)<<4);
 269   3                                                      num/=10;
 270   3                                                      Write728x(0x14,j);
 271   3                                                      j=num;
 272   3                                              }
 273   2                                              break;
 274   2      
 275   2                      case 3  :       for(i=12;i>6;i--)
 276   2                                              {
 277   3                                                      j=num%10;
 278   3      
 279   3                                                      j+=((i-1)<<4);
 280   3                                                      Write728x(0x14,j);
 281   3                                              
 282   3                                                      j&=0x0F;
 283   3      
 284   3                                                      num/=10;
 285   3      
 286   3                                                      if(j)
 287   3                                                              break;
 288   3                                                      if(!num)
 289   3                                                              break;
 290   3      
 291   3                                              
 292   3                                              }                       
 293   2                                              
 294   2                                              break;
 295   2                      default :       return;
 296   2              }
 297   1      
 298   1              ES=1;
 299   1                      
 300   1      }
 301          
C51 COMPILER V7.50   BC7281A                                                               12/29/2004 20:23:49 PAGE 6   

 302          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    612    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----       5
   IDATA SIZE       =   ----       2
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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