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

📄 93c66.lst

📁 93C46/66的读写程序
💻 LST
📖 第 1 页 / 共 2 页
字号:
C51 COMPILER V7.09   93C66                                                                 10/31/2005 17:27:24 PAGE 1   


C51 COMPILER V7.09, COMPILATION OF MODULE 93C66
OBJECT MODULE PLACED IN 93c66.OBJ
COMPILER INVOKED BY: D:\Keil\C51\BIN\c51.exe 93c66.c DB OE SMALL ROM(LARGE)

line level    source

   1          #include <AT89X52.h>
   2          #include <ABSACC.h>
   3          sbit CS_93c66=P2^3;
   4          sbit SK_93c66=P2^2;
   5          sbit DI_93c66=P2^1;
   6          sbit DO_93c66=P2^0;
   7          sbit CD_1=P2^4;
   8          sbit CD_2=P2^5;
   9          sbit CD_3=P2^6;
  10          sbit CD_4=P2^7;
  11          void START_93c66();
  12          void END_93c66();
  13          void EWEN_93c66();
  14          void EWDS_93c66();
  15          unsigned char READ(unsigned int);
  16          unsigned char WRITE(unsigned int,unsigned int);
  17          void SEND_DATA_93c66(unsigned int,unsigned char);
  18          void delay1(unsigned int);
  19          unsigned char Addr_bit=9;//--------------------------46设为7,66设为9----------------------------
  20          /*
  21          void write_93c66(unsigned char page,unsigned int position)
  22          {
  23                  unsigned char page_0;
  24                  unsigned int page_address;
  25                  page_address=361;
  26                  WRITE(position,page);
  27                  page_0=READ(page_address);
  28          if(page_0!=page)
  29                  {
  30                          WRITE(page_address,page);
  31                  }
  32          
  33          }
  34          void store(unsigned char hh,mm,ss)
  35          {
  36          //      ss=0x30;
  37          //      mm=0x31;
  38          //      hh=0x32;
  39                  unsigned int sum,sum_min,position;
  40                  unsigned char page;
  41                  sum=hh*3600+mm*60+ss;
  42                  sum_min=hh*60+mm;
  43                  page=sum_min/6;
  44                  position=sum%360;
  45                  write_93c66(page,position);
  46          }
  47          
  48          unsigned int READ_STATE()
  49          {
  50                  unsigned int state;
  51                  unsigned char n;
  52                  unsigned char hh,mm,ss;
  53                  unsigned char page,position_num;
  54                  unsigned int position,sum;
  55                  page=READ(361);
C51 COMPILER V7.09   93C66                                                                 10/31/2005 17:27:24 PAGE 2   

  56                  
  57                  for(n=0;n<360;n++)
  58                          {
  59                          position=n;
  60                          position_num=READ(n);   
  61                          if(position_num!=page)
  62                                  {
  63                                  break;
  64                                  }
  65                          }
  66                  sum=page*6*60+position;
  67                  hh=sum/3600;
  68                  mm=(sum/60)%60;
  69                  ss=sum%60;
  70                  state=0;
  71                  state=state|hh;
  72                  state=state<<6;
  73                  state=state|mm;
  74                  state=state<<6;
  75                  state=state|ss;
  76                  return state;
  77          }
  78          
  79          */
  80          void main()
  81          {
  82   1      //      store(1,10,10);//call the sub to write data in 9346
  83   1      //      READ_STATE();
  84   1      unsigned int n,tmp;
  85   1      
  86   1      WRITE(1,8);
  87   1      /*
  88   1      P0=0xff;
  89   1      for(n=0;n<0x1ff;n++)//in 46 n range from 0 to 7f
  90   1      {
  91   1      if(!WRITE(n,n))
  92   1              {
  93   1              CD_3=0;
  94   1              P0=0x65;
  95   1              while(1)
  96   1              {};
  97   1              }
  98   1      }
  99   1      while(1)
 100   1              {
 101   1              for(n=0;n<0x1ff;n++)//in 46 n range from 0 to 7f
 102   1                      {
 103   1                      tmp=(n<<1);
 104   1                      CD_2=1;
 105   1                      CD_1=0;
 106   1                      P0=READ(n);
 107   1                      delay1(60000);
 108   1                      CD_1=1;
 109   1                      CD_2=0;
 110   1                      P0=tmp;
 111   1                      delay1(60000);
 112   1                      }
 113   1              }
 114   1      
 115   1      CD_1=0;
 116   1      while(1)
 117   1      {
C51 COMPILER V7.09   93C66                                                                 10/31/2005 17:27:24 PAGE 3   

 118   1      for(n=0;n<0x1ff;n++)
 119   1      {P0=(READ(n)<<1);
 120   1      //delay1(30000);
 121   1      */
 122   1      CD_2=0;
 123   1      P0=READ(1);
 124   1      while(1)
 125   1      {
 126   2      ;
 127   2      }
 128   1      }
*** WARNING C280 IN LINE 84 OF 93C66.C: 'n': unreferenced local variable
*** WARNING C280 IN LINE 84 OF 93C66.C: 'tmp': unreferenced local variable
 129          //-----------------------------------------------------COPY--------------------------------------------
 130          //2 .用C51 软件包对CAT93c66 器件进行读写操作
 131          //(1 )CAT93c66 的汇编读写软件包
 132          /*=========================================================*/
 133          /* CSI93c66 操作子程序 */
 134          /* 注意:这里使用的CSI93c66 为8 位结构的EEROM
 135          */
 136          /*=========================================================*/
 137          //#include <Reg764.h>
 138          /*87LPC764 的头文件*/
 139          void delay1(unsigned int num)
 140          {
 141   1              while(num!=0){num=num-1;}
 142   1      }
 143          /***********************************************************************/
 144          /*名称: START_93c66() */
 145          /*说明: 用于93c66 的启动,防止由于CS_93c66 的改动而引起数据时序混乱 */
 146          /***********************************************************************/
 147          void START_93c66()
 148          {
 149   1              DO_93c66=1; /*防止DO 由于是低电平而无法输入*/
 150   1              CS_93c66=1;
 151   1              /*开启93c66*/
 152   1              CS_93c66=0;
 153   1              DI_93c66=0;
 154   1              SK_93c66=0;
 155   1              CS_93c66=1;
 156   1              delay1(1000);
 157   1      }
 158          /***************************************************************************/
 159          /*名称:END_93c66() */
 160          /*说明:用于93c66 的结束,防止由于CS_93c66 的改动而引起数据线为0 而无法输入*/
 161          /***************************************************************************/
 162          void END_93c66()
 163          {
 164   1              CS_93c66=0;
 165   1              DI_93c66=1;
 166   1              SK_93c66=1;
 167   1      }
 168          /***********************************************************************/
 169          /*名称:SEND_DATA_93c66() */
 170          /*说明:在93c66 启动下,送入指定位数的数据 */
 171          /*输入: op_data 要输入的数据 */
 172          /* num 输入的位数 */
 173          /**********************************************************************/
 174          void SEND_DATA_93c66(unsigned int op_data,unsigned char num)
 175          {
 176   1              unsigned char temp1;
 177   1              op_data=op_data<<(16-num); /*左移去掉无用位*/
C51 COMPILER V7.09   93C66                                                                 10/31/2005 17:27:24 PAGE 4   

 178   1              for(temp1=0;temp1<num;temp1++)
 179   1                      {
 180   2                      if( (op_data&0X8000)==00 )
 181   2                              {DI_93c66=0;}
 182   2                      else
 183   2                              {DI_93c66=1;}
 184   2                      SK_93c66=1;//SK_93c66=1;SK_93c66=1;SK_93c66=1;
 185   2                      SK_93c66=0;

⌨️ 快捷键说明

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