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

📄 a24cxx.lst

📁 用RS485通信
💻 LST
字号:
C51 COMPILER V7.06   A24CXX                                                                11/01/2008 21:34:46 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE A24CXX
OBJECT MODULE PLACED IN A24CXX.OBJ
COMPILER INVOKED BY: D:\keil\keil\C51\BIN\C51.EXE A24CXX.c BROWSE DEBUG OBJECTEXTEND

stmt level    source

   1          #include<reg51.h>
   2          #include"IIC.h"
   3          #include"A24CXX.h"
   4          uchar  call[] = {0xd5,23,1,0}        ;//呼叫数据
   5          uchar  close[] = {0xd5,26,1,0};            //关视频音频
   6          uchar  opendoor[] = {0xd5,24,1,0};       //用户机控制门口机开门数据
   7          uchar  danger[] = {0xd5,22,1,0};          //紧急呼叫
   8          uchar   xying[] = {0xd5,25,1,0};          //有人应答
   9          uchar  xian=0xd6; //空闲
  10          
  11          //向A24CXX发送一字节数据函数:A24C_Send()
  12          void A24C_Send(uchar temp)
  13          {
  14   1              uchar i;
  15   1              for(i=0;i<8;i++)
  16   1              {
  17   2                      PinSDA=temp&0x80;
  18   2                      temp=temp<<1;
  19   2                      nNop(20);
  20   2                      PinSCL=1;
  21   2                      nNop(20);               //SCL高电平时间不小于4uS
  22   2                      PinSCL=0;               //SCL低电平时间不小于4.7uS
  23   2              }
  24   1              nNop(20);
  25   1              PinSDA=1;                       //准备接收应答信号
  26   1              nNop(20);
  27   1              PinSCL=1;                       //发送应答时钟
  28   1              while(PinSDA);          //判断是否有应答信号
  29   1              nNop(20);
  30   1              PinSCL=0;
  31   1              }
  32                  
  33          //从A24CXX读一字节数据函数:A24C_Read()
  34          uchar A24C_Read()
  35          {
  36   1              uchar i,temp=0;
  37   1              PinSDA=1;
  38   1              for(i=0;i<8;i++)
  39   1              {
  40   2                      PinSCL=0;
  41   2                      temp=temp<<1;
  42   2                      PinSCL=1;
  43   2                      nNop(20);
  44   2                      if(PinSDA)
  45   2                              temp++;
  46   2              }
  47   1              PinSCL=0;
  48   1              PinSDA=0;//应答位
  49   1              PinSCL=1;
  50   1              nNop(20);
  51   1              PinSCL=0;
  52   1              PinSDA=1;
  53   1              return(temp);
  54   1              }
  55                  
C51 COMPILER V7.06   A24CXX                                                                11/01/2008 21:34:46 PAGE 2   

  56          //向A24CXX指定地址发送一字节数据函数:A24C_WriteByte()
  57          void A24C_WriteByte(uchar DevAddr,uchar SubAddr,uchar temp)
  58          {
  59   1              StartIIC();
  60   1              A24C_Send(DevAddr);
  61   1              A24C_Send(SubAddr);
  62   1              A24C_Send(temp);
  63   1              StopIIC();
  64   1              LongDelay(2);
  65   1              }
  66          
  67          //从A24CXX指定地址接收一字节数据函数:A24C_ReadByte()
  68          uchar A24C_ReadByte(uchar DevAddr,uchar SubAddr)
  69          {
  70   1              uchar temp;
  71   1              StartIIC();
  72   1              A24C_Send(DevAddr);
  73   1              A24C_Send(SubAddr);
  74   1              StopIIC();
  75   1              StartIIC();
  76   1              A24C_Send(DevAddr+1);
  77   1              temp = A24C_Read();
  78   1              StopIIC();
  79   1              LongDelay(2);
  80   1              return(temp);
  81   1              }
  82          
  83          //向A24CXX中预存入数据函数:WriteEErom()
  84          void WriteEErom()
  85          {
  86   1              uchar i,j;
  87   1              do{
  88   2                      StartIIC();
  89   2                      A24C_Send(A24C02);
  90   2                      A24C_Send(j);
  91   2                      for(i=0;i<8;i++)
  92   2                              A24C_Send(i+j);
  93   2                      StopIIC();
  94   2                      for(i=0;i<255;i++)
  95   2                              nNop(10);
  96   2                      j=j+8;
  97   2                      }while(j!=0);
  98   1      }       
  99          
 100          
 101          void chushuju()
 102          {
 103   1       A24C_WriteByte(0xa0,0x00,xian);
 104   1       A24C_WriteByte(0xa0,0x01,call[0]);
 105   1       A24C_WriteByte(0xa0,0x02,call[1]);
 106   1       A24C_WriteByte(0xa0,0x03,call[2]);
 107   1       A24C_WriteByte(0xa0,0x04,call[3]);
 108   1      
 109   1       A24C_WriteByte(0xa0,0x05,close[0]);
 110   1       A24C_WriteByte(0xa0,0x06,close[1]);
 111   1       A24C_WriteByte(0xa0,0x07,close[2]);
 112   1       A24C_WriteByte(0xa0,0x08,close[3]);
 113   1      
 114   1       A24C_WriteByte(0xa0,0x09,opendoor[0]);
 115   1       A24C_WriteByte(0xa0,0x0a,opendoor[1]);
 116   1       A24C_WriteByte(0xa0,0x0b,opendoor[2]); 
 117   1       A24C_WriteByte(0xa0,0x0c,opendoor[3]);
C51 COMPILER V7.06   A24CXX                                                                11/01/2008 21:34:46 PAGE 3   

 118   1      
 119   1       A24C_WriteByte(0xa0,0x0d,danger[0]);
 120   1       A24C_WriteByte(0xa0,0x0e,danger[1]);
 121   1       A24C_WriteByte(0xa0,0x0f,danger[2]);
 122   1       A24C_WriteByte(0xa0,0x10,danger[3]);
 123   1      
 124   1       A24C_WriteByte(0xa0,0x11,xying[0]);
 125   1       A24C_WriteByte(0xa0,0x12,xying[1]);
 126   1       A24C_WriteByte(0xa0,0x13,xying[2]);
 127   1       A24C_WriteByte(0xa0,0x14,xying[3]);
 128   1      
 129   1      }       


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =    467    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     21      12
   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 + -