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

📄 93c46.lst

📁 开发的一个温控仪完整代码
💻 LST
字号:
C51 COMPILER V7.50   93C46                                                                 03/06/2007 20:40:53 PAGE 1   


C51 COMPILER V7.50, COMPILATION OF MODULE 93C46
OBJECT MODULE PLACED IN 93c46.OBJ
COMPILER INVOKED BY: E:\Keil\C51\BIN\C51.EXE 93c46.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include "TempCtrl.h"
   2          
   3          //////////////////////////////////////////////////////////////////////////
   4          /////////////////////////////////////////////////
   5          //两个Write函数后面应该加2ms到5ms的延时方能进行第二次操作
   6          void SendCmd(unsigned Cmd)
   7          {
   8   1              P_CS=0;
   9   1              P_CLK=0; 
  10   1              P_CS=1;
  11   1              P_DI=1;
  12   1              P_CLK=1;
  13   1              P_CLK=0;
  14   1              if((Cmd&0x02)==0)
  15   1                      P_DI=0;
  16   1              else
  17   1                      P_DI=1;
  18   1              P_CLK=1;   
  19   1              P_CLK=0;
  20   1              if((Cmd&0x01)==0)
  21   1                      P_DI=0;
  22   1              else
  23   1                      P_DI=1;
  24   1              P_CLK=1;   
  25   1      }
  26          /////////////////////////////////////////////////
  27          
  28          void Sendaddr(unsigned char addr)
  29          {
  30   1              unsigned char i;
  31   1              addr<<=1;
  32   1              for(i=0;i<7;i++) 
  33   1              {
  34   2                      P_CLK=0;
  35   2                      if((addr&0x80)==0)
  36   2                              P_DI=0;
  37   2                      else
  38   2                              P_DI=1;
  39   2                      addr<<=1;
  40   2                      P_CLK=1; 
  41   2              }
  42   1      }
  43          /////////////////////////////////////////////////
  44          void Senddat(unsigned char dat)
  45          {
  46   1              unsigned char i;
  47   1              for(i=0;i<8;i++) 
  48   1              {
  49   2                      P_CLK=0;
  50   2                      if((dat&0x80)==0)
  51   2                              P_DI=0;
  52   2                      else
  53   2                              P_DI=1;
  54   2                      dat<<=1;
  55   2                      P_CLK=1; 
C51 COMPILER V7.50   93C46                                                                 03/06/2007 20:40:53 PAGE 2   

  56   2              }
  57   1      }
  58          /////////////////////////////////////////////////
  59          unsigned char Readdat(void)
  60          {
  61   1              unsigned char i,temp=0;
  62   1              P_DO=1;
  63   1              for(i=0;i<8;i++) 
  64   1              {  
  65   2                      P_CLK=0;
  66   2                      temp<<=1;
  67   2                      P_CLK=1;
  68   2                      _nop_();
  69   2                      _nop_(); 
  70   2                      if(P_DO==1)
  71   2                              temp|=0x01;
  72   2              }
  73   1              return temp;
  74   1      }
  75          /////////////////////////////////////////////////
  76          void Ewen(void)
  77          {
  78   1              SendCmd(0x00); 
  79   1              Senddat(0xc0);
  80   1              P_CS=0;
  81   1              _nop_();
  82   1              P_CS=1;
  83   1      }
  84          /////////////////////////////////////////////////
  85          //93C46字节读子程序,地址范围0~127
  86          void WriteByte(unsigned char addr,unsigned char dat)
  87          {
  88   1              //kf
  89   1              if(PassWordLock==1)
  90   1                      return;//EEPROM锁定
  91   1              
  92   1              Ewen();
  93   1              SendCmd(0x01);
  94   1              Sendaddr(addr);
  95   1              Senddat(dat);
  96   1              P_CS=0;
  97   1              _nop_();
  98   1              P_CS=1;
  99   1              P_DO=1;
 100   1      }
 101          unsigned char ReadByte(unsigned char addr)
 102          { 
 103   1              unsigned char dat;
 104   1              SendCmd(0x02);
 105   1              Sendaddr(addr);
 106   1              dat=Readdat();
 107   1              P_CS=0; 
 108   1              return(dat);
 109   1      }
 110          /////////////////////////////////////////////////
 111          //93C46的字读写程序,地址范围0~63
 112          void Write(unsigned char addr,unsigned int dat)
 113          {
 114   1              unsigned char temp;
 115   1              addr &= 0x3f;
 116   1              addr <<=1;
 117   1              temp = (unsigned char)(dat>>8);
C51 COMPILER V7.50   93C46                                                                 03/06/2007 20:40:53 PAGE 3   

 118   1              WriteByte(addr,temp);  //temp
 119   1              Wait(200);//延时2ms-5ms
 120   1              temp =dat & 0xff;
 121   1              WriteByte(addr+1,temp); //temp
 122   1              Wait(200);
 123   1      }
 124          unsigned int Read(unsigned char addr)
 125          {
 126   1              unsigned int temp;
 127   1              addr&=0x3f;
 128   1              addr<<=1;
 129   1              temp=ReadByte(addr);
 130   1              temp<<=8;
 131   1              addr=ReadByte(addr+1);
 132   1              temp+=addr;
 133   1              return(temp);
 134   1      }


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