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

📄 eeprom.lst

📁 LCD显示电子计价秤方案 1. 该方案使用的传感器为20KG,灵敏度约为0.5mv/v,选用新传感器线性较好的一段(100g-15Kg),直接处理,没有做非线性修正,称重可能会有偏差. 2. 软件
💻 LST
字号:
C51 COMPILER V8.05a   EEPROM                                                               05/17/2008 09:11:47 PAGE 1   


C51 COMPILER V8.05a, COMPILATION OF MODULE EEPROM
OBJECT MODULE PLACED IN eeprom.OBJ
COMPILER INVOKED BY: D:\Program Files\Keil\C51\BIN\C51.EXE eeprom.c BROWSE DEBUG OBJECTEXTEND

line level    source

   1          #include<def.h>
   2          #define time            1
   3          #define icaddress_w     0xa0
   4          #define icaddress_r     0xa1
   5          #define wordaddress     0x00
   6          #define parameter       0xaa
   7          #if board==finishboard
                      //-----------------------------------------------发送开始信号--------------------------------------------
             ------------------------
                      void sendstart()
                      {
                              SDA=1;
                              SCLK=1;
                              _delay_us(time);
                              SDA=0;
                              _delay_us(time);
                              SCLK=0;
                              _delay_us(time);
                      }
                      //-----------------------------------------------发送结束信号--------------------------------------------
             ------------------------
                      void sendend()
                      {
                              SDA=0;
                              SCLK=0;
                              _delay_us(time);
                              SCLK=1;
                              _delay_us(time);
                              SDA=1;
                              _delay_us(time);
                      }
                      //-----------------------------------------------发送ACK信号---------------------------------------------
             ------------------------
                      void sendack_eeprom()
                      {
                              SDA=0;
                              SCLK=0;
                              _delay_us(time);
                              SDA=1;                  //释放数据线,交给24CO1控制
                              while(SDA==1);  //等待SDA=0
                              //发送一个时钟
                              SCLK=1;
                              _delay_us(time);
                              SCLK=0;
                              _delay_us(time);
                      }
                      //-----------------------------------------------发送8bit数据--------------------------------------------
             -------------------------
                      void sendbyte(uchar sdata)
                      {
                              uchar i;        //控制循环次数
                              SCLK=0;
                              SDA=0;
                              _delay_us(time);
                              for(i=1;i<=8;i++)
C51 COMPILER V8.05a   EEPROM                                                               05/17/2008 09:11:47 PAGE 2   

                              {
                                      if((sdata&0x80)==0x80)          //高位在前
                                      {
                                              SDA=1;
                                              _delay_us(time);
                                              SCLK=1;
                                      }               
                                      else
                                      {
                                              SDA=0;
                                              _delay_us(time);                                        
                                              SCLK=1;
                                      }
                                      _delay_us(time);
                                      SCLK=0;
                                      _delay_us(time);
                                      SDA=0;                  
                                      sdata=sdata<<1;
                                      _delay_us(time);
                              }
                      }
                      //-----------------------------------------------读8bit数据----------------------------------------------
             -----------------------
                      uchar readbyte()
                      {
                              uchar i,sdata;  //i控制循环次数,sdata临时数据寄存器
                              sdata=0;
                              SCLK=0;
                              SDA=0;
                              _delay_us(time);
                              SDA=1;          //释放数据线
                              for(i=1;i<=8;i++)
                              {       
                                      SCLK=1;
                                      _delay_us(time);                                
                                      if(SDA==1)              //高位在前
                                      {
                                              sdata=sdata&&0xff;      
                                      }               
                                      else
                                      {
                                              sdata=sdata&&0xfe;
                                      }
                                      SCLK=0;
                                      _delay_us(time); 
                                      sdata=sdata<<1;
                              }
                              SCLK=0;
                              SDA=0;
                              return (sdata);
                      }
                      //------------------------------------------------读eeprom-----------------------------------------------
             ------------------
                      void writeeeprom()
                      {
                              //写一字节数据到指定的地址单元
                              sendstart();
                              sendbyte(icaddress_w);
                              sendack_eeprom();
                              sendbyte(wordaddress);
                              sendack_eeprom();
                              sendbyte(parameter);
C51 COMPILER V8.05a   EEPROM                                                               05/17/2008 09:11:47 PAGE 3   

                              sendack_eeprom();
                              sendend();
                              _delay_ms(10);
                      }
                      //------------------------------------------------写eeprom-----------------------------------------------
             ------------------
                      uchar readeeprom()
                      {
                              uchar readdata=0;
                              //从指定的地址单元读一字节数据
                              sendstart();
                              sendbyte(icaddress_w);
                              sendack_eeprom();
                              sendbyte(wordaddress);
                              sendack_eeprom();
                              sendstart();
                              sendbyte(icaddress_r);
                              sendack_eeprom();
                              readdata=readbyte();
                              sendend();
                              return (readdata);
                      }
*** WARNING C316 IN LINE 132 OF eeprom.c: unterminated conditionals


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   ----    ----
   CONSTANT SIZE    =   ----    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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