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

📄 pcf8563.lst

📁 这是一个
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V6.12  PCF8563                                                                12/23/2004 11:57:19 PAGE 1   


C51 COMPILER V6.12, COMPILATION OF MODULE PCF8563
OBJECT MODULE PLACED IN C:\MY\HICJ6\PCF8563.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE C:\MY\HICJ6\PCF8563.C DB SB OE

stmt level    source

   1          #include "P89C60X2.h"
   2          #include "hicj6.h"
   3          
   4          BYTE idata  rom_sed[9];
   5          
   6          BYTE idata rom_rec[7];
   7          
   8          BYTE idata j,k;
   9          
  10          bit flag,flag1;
  11          
  12          void delay(void) //延时子程序
  13          
  14          {BYTE i;
  15   1      
  16   1      for(i=0;i<6;i++);
  17   1      
  18   1      }
  19          
  20          void I_start(void) //发送I2C总线起始条件子程序
  21          
  22          {sda=1;
  23   1      
  24   1      ;
  25   1      
  26   1      scl=1;
  27   1      
  28   1      delay();
  29   1      
  30   1      sda=0;
  31   1      
  32   1      delay();
  33   1      
  34   1      scl=0;
  35   1      
  36   1      ;
  37   1      
  38   1      }
  39          
  40          void I_stop(void) //I2C总线停止条件子程序
  41          
  42          {sda=0;
  43   1      
  44   1      ;
  45   1      
  46   1      scl=1;
  47   1      
  48   1      delay();
  49   1      
  50   1      sda=1;
  51   1      
  52   1      delay();
  53   1      
  54   1      }
  55          
C51 COMPILER V6.12  PCF8563                                                                12/23/2004 11:57:19 PAGE 2   

  56          bit I_send(BYTE I_data) //字节数据传送子程序
  57          
  58          { BYTE i;
  59   1      
  60   1      for(i=0;i<8;i++)
  61   1      
  62   1      {//sda-(bit)(I_data&0x80);
  63   2      
  64   2      I_data=I_data<<1;
  65   2      
  66   2      scl=1;
  67   2      
  68   2      delay();
  69   2      
  70   2      scl=0;
  71   2      
  72   2      }
  73   1      
  74   1      ;;
  75   1      
  76   1      sda=1; ;; //ready for receiving ACK bit
  77   1      
  78   1      scl=1; ;; //start receiving ack bit
  79   1      
  80   1      flag=0;
  81   1      
  82   1      if(sda==0)flag=0;
  83   1      
  84   1      else flag=1; //return(~I_clock());
  85   1      
  86   1      scl=0;
  87   1      
  88   1      return(flag);
  89   1      
  90   1      }
  91          
  92          BYTE I_receive(void) //字节数据接收子程序
  93          
  94          { data BYTE i;
  95   1      
  96   1      BYTE I_data=0;
  97   1      
  98   1      sda=1;
  99   1      
 100   1      for(i=0;i<8;i++)
 101   1      
 102   1      { I_data*=2;
 103   2      
 104   2      ;
 105   2      
 106   2      scl=0;
 107   2      
 108   2      delay();
 109   2      
 110   2      scl=1; ;;
 111   2      
 112   2      if(sda==1)I_data++;
 113   2      
 114   2      ;;
 115   2      
 116   2      }
 117   1      
C51 COMPILER V6.12  PCF8563                                                                12/23/2004 11:57:19 PAGE 3   

 118   1      scl=0; ;;;
 119   1      
 120   1      sda=0;
 121   1      
 122   1      if(flag1==0){;;scl=1;delay();scl=0;} //not last receic_BYTE ACK
 123   1      
 124   1      else{sda=1; ;;scl=1;delay();scl=0;flag1=0;} //the last receive_BYTE ~ACK
 125   1      
 126   1      return(I_data);
 127   1      
 128   1      }
 129                       /*
 130          main() //主程序
 131          
 132          {data BYTE i;
 133          
 134          rom_sed[0]=0x00; rom_sed[1]=0x00;
 135          
 136          rom_sed[2]=0x00; rom_sed[3]=0x55;
 137          
 138          rom_sed[4]=0x23; rom_sed[5]=0x31;
 139          
 140          rom_sed[6]=0x06; rom_sed[7]=0x92;
 141          
 142          rom_sed[8]=0x99;
 143          
 144          for(i=0;i<255;i++)delay();
 145          
 146          I_start();
 147          
 148          if(~I_send(rom_sed[i]));
 149          
 150          else;
 151          
 152          }
 153          
 154          I_stop();
 155          
 156          }
 157          
 158          else;
 159          
 160          }
 161          
 162          else;
 163          
 164          start: I_start();
 165          
 166          if(~I_send(0xa2)) //pcf_write address
 167          
 168          {if(~I_send(0x02)) //pcf_status register address
 169          
 170          {I_start();
 171          
 172          if(~I_send(0xa3)) //write status register
 173          
 174          {for(i=0;i<7;i++)
 175          
 176          {if(i= =6)flag1=1;
 177          

⌨️ 快捷键说明

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