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

📄 at24c02.lst

📁 PT2313程序音响控制电路1
💻 LST
字号:
C51 COMPILER V7.08   AT24C02                                                               03/03/2007 22:34:43 PAGE 1   


C51 COMPILER V7.08, COMPILATION OF MODULE AT24C02
OBJECT MODULE PLACED IN .\AT24C02.obj
COMPILER INVOKED BY: C:\Keil\C51\BIN\C51.EXE ..\..\My Documents\keill\AT24C02.c BROWSE DEBUG OBJECTEXTEND PRINT(.\AT24C0
                    -2.lst) OBJECT(.\AT24C02.obj)

line level    source

   1          #include "at89x51.h"
   2          #include "stdio.h"
   3          ///////////////////////
   4          sbit dison1=P3^4;   /*   DISPLAY 1 */
   5          sbit dison2=P3^5;   /*   DISPLAY 1 */
   6          sbit SDA=P3^0;      /*   IC    */
   7          sbit SCL=P3^1;      /*   IC     */
   8          unsigned char a;
   9          ////////////////////////////////////////////
  10          void displaypre();
  11          //******************************************
  12          void delay(int i);
  13          void inc();
  14          void dec();
  15          //*********************************
  16          void icdata(da);
  17          void IC_START();
  18          void IC_STOP();
  19          void ACK();
  20          void senddata( dat);
  21          unsigned char readdata(unsigned char rddata);
  22          //*****************
  23          void atrd24(unsigned char rdda);
  24          unsigned char readbyte(unsigned char readdat[8]);
  25          void wr_byte();
  26          void wr_paper(unsigned char pinterorg,unsigned char wrdata[8]);
  27          ////////////////////////////
  28          // MAIN
  29          ///////////////////////////
  30          main()
  31          {
  32   1      unsigned char i,pinter=0x00,a[8]={1,3,5,7,2,4,6,8},g[8];
  33   1      TMOD=0X01;
  34   1      EA=1;
  35   1      ET0=1;
  36   1      TH0=0Xf8;
  37   1      TL0=0X58;
  38   1      TR0=1;
  39   1      while(1)
  40   1      {
  41   2      if(P3_2==0)
  42   2      {
  43   3      while(P3_2==0);
  44   3      //atwr24();
  45   3      wr_paper(pinter,a);
  46   3      //P3_7=0;
  47   3      }
  48   2      
  49   2      if(P3_3==0)
  50   2      {
  51   3      while(P3_3==0);
  52   3      g[8]=readbyte();
*** WARNING C209 IN LINE 52 OF ..\..\MY DOCUMENTS\KEILL\AT24C02.C: '_readbyte': too few actual parameters
  53   3      ++i;
C51 COMPILER V7.08   AT24C02                                                               03/03/2007 22:34:43 PAGE 2   

  54   3      a=g[i];
*** ERROR C213 IN LINE 54 OF ..\..\MY DOCUMENTS\KEILL\AT24C02.C: left side of asn-op not an lvalue
  55   3      //atrd24(i);
  56   3      P3_7=0;
  57   3      }
  58   2      }
  59   1      
  60   1      }
  61          ////////////////////////////
  62          //**************************
  63          // KEY AND DISPLAY INERRUPT
  64          //////////////////////////////
  65          void dis() interrupt 1
  66          {
  67   1      
  68   1      displaypre();
  69   1      
  70   1      TH0=0Xd8;
  71   1      TL0=0X18;
  72   1      }
  73          ///***************************
  74          
  75          //////////////////////////////////
  76          //  DISPLAY
  77          //////////////////////////////////
  78          void displaypre()
  79          {
  80   1      unsigned char d1,d2;
  81   1      switch(a)
  82   1      {
  83   2      case 0x00: d1=0X09,d2=0X09;break;    /*0,0 */
  84   2      case 0x01: d1=0X09,d2=0xcf;break;    /*0,1 */
  85   2      case 0x02: d1=0X09,d2=0x2C;break;    /*0,2  */
  86   2      case 0x03: d1=0X09,d2=0x4C;break;    /*0,3  */
  87   2      case 0x04: d1=0X09,d2=0xCA;break;    /*0,4  */
  88   2      case 0x05: d1=0X09,d2=0x58;break;    /*0,5   */
  89   2      case 0x06: d1=0X09,d2=0x18;break;    /*0,6   */
  90   2      case 0x07: d1=0X09,d2=0xcd;break;    /*0,7////////////////0*/
  91   2      
  92   2      case 0x08: d1=0X09,d2=0x08;break;   /*0,8  */
  93   2      case 0x09: d1=0X09,d2=0x48;break;  /*0,9   */
  94   2      case 0x0a: d1=0xcf,d2=0X09;break;  /*1,0   */
  95   2      case 0x0b: d1=0xcf,d2=0xcf;break;  /*1,1   */
  96   2      case 0x0c: d1=0xcf,d2=0x2C;break;  /*1,2   */
  97   2      case 0x0d: d1=0xcf,d2=0x4C;break;  /*1,3   */
  98   2      case 0x0e: d1=0xcf,d2=0xCA;break;  /*1,4   */
  99   2      case 0x0f: d1=0xcf,d2=0x58;break;  /*1,5////////////////1 */
 100   2      default:d1=0xfe,d2=0xfe;        ;  /*-,-*/
 101   2      }
 102   1      P1=d1;
 103   1      dison1=0;
 104   1      delay(1000);
 105   1      dison1=1;
 106   1      P1=d2;
 107   1      dison2=0;
 108   1      delay(1000);
 109   1      dison2=1;
 110   1      }
 111          ////////////////
 112          
 113          ////////////////////////////////////
 114          /////////////////////////////
C51 COMPILER V7.08   AT24C02                                                               03/03/2007 22:34:43 PAGE 3   

 115          void delay(int i)
 116          {
 117   1      while(--i);
 118   1      }
 119          
 120          
 121          //////////////////////////////////////
 122          //write 1
 123          ///////////////////////////////////////
 124          void wr_byte()
 125          {
 126   1       IC_START();
 127   1       senddata(0Xa0);
 128   1       senddata(0X00);
 129   1       senddata(0x08);
 130   1       IC_STOP();
 131   1      }
 132          //////////////////////////////////////
 133          //write 2
 134          ///////////////////////////////////////
 135          void wr_paper(unsigned char pinterorg,unsigned char wrdata[8])
 136          {
 137   1      unsigned char j;
 138   1       IC_START();
 139   1       senddata(0Xa0);
 140   1       senddata(pinterorg);
 141   1      for(j=0;j<8;j++)
 142   1      {
 143   2       senddata(*(wrdata+j));
 144   2      }
 145   1       IC_STOP();
 146   1      }
 147          //********************
 148          // read data1
 149          ///////////////////////
 150          void atrd24(unsigned char rdda)
 151          {
 152   1       IC_START();
 153   1       senddata(0Xa0); 
 154   1       senddata(rdda);
 155   1       IC_START();
 156   1       senddata(0Xa1);
 157   1       a=readdata();
 158   1       IC_STOP();
 159   1      }
 160          //********************
 161          // read data2
 162          ///////////////////////
 163          unsigned char readbyte(unsigned char readdat[8])
 164          {
 165   1      unsigned char j;
 166   1      IC_START();
 167   1      senddata(0Xa1);
 168   1      for(j=0;j<8;j++)
 169   1       {
 170   2       readdat[j]=readdata();
 171   2        ACK();
 172   2       }
 173   1       IC_STOP();
 174   1      return(readdat[j]);
 175   1      }
 176          
C51 COMPILER V7.08   AT24C02                                                               03/03/2007 22:34:43 PAGE 4   

 177          //**********************************
 178          //IC START
 179          //***********************************
 180          void IC_START() 
 181          {
 182   1      SCL=0;
 183   1      SDA=1;
 184   1      SCL=1;
 185   1      SDA=0;
 186   1      SCL=0;
 187   1      }
 188          //**********************************
 189          //IC_STOP
 190          //***********************************
 191          void IC_STOP()
 192          {
 193   1      SCL=0;
 194   1      SDA=0;
 195   1      SCL=1;
 196   1      SDA=1;
 197   1      SCL=0;
 198   1      SDA=0;
 199   1      }          
 200          //**********************************
 201          //ACK
 202          //***********************************
 203          void ACK()
 204          {
 205   1      SCL=0;
 206   1      SDA=0;
 207   1      SCL=1;
 208   1      SCL=0;
 209   1      SDA=1;
 210   1      }
 211          //***********************************
 212          //       WIRE BYT
 213          //***********************************
 214          void senddata(dat)
 215          {
 216   1      unsigned char i,b;
 217   1      SCL=0;
 218   1      for(i=0;i<8;i++)
 219   1      {
 220   2        b=dat<<i;
 221   2       if((b&=0x80)==0x80)   
 222   2            SDA=1;     
 223   2            else
 224   2            SDA=0;
 225   2        SCL=1;
 226   2        SCL=0;        
 227   2      }
 228   1      SDA=1;
 229   1      SCL=1;
 230   1      while(SDA==1);
 231   1      SCL=0;
 232   1      }
 233          ////////////////////////////////////
 234          //***********************************
 235          //       READ BYT
 236          //***********************************
 237          unsigned char readdata(unsigned char rddata)
 238          {
C51 COMPILER V7.08   AT24C02                                                               03/03/2007 22:34:43 PAGE 5   

 239   1      unsigned char i;
 240   1      SDA=1;
 241   1      for(i=0;i<8;i++)
 242   1      { 
 243   2          rddata<<= 1;
 244   2          if (SDA)
 245   2          rddata |=0x01;
 246   2      
 247   2          SCL=1;
 248   2          SCL=0;      
 249   2      }
 250   1      return(rddata);
 251   1      }

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

⌨️ 快捷键说明

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