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

📄 eeprom.lst

📁 基于c8051f020的应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
 180   2                      Delay_ms(100);
 181   2              }
 182   1      
 183   1              return 1;
 184   1      }
 185          //********************************************************************************************************
             -******************
 186          void UpLoadWellDateTure(unsigned char truenum)
 187          {
 188   1              xdata unsigned char i,j=0x00;
 189   1      
 190   1              EEPROM_Init();
 191   1              for(i=0;i<MaxWellSaveNum;i++)
 192   1              {
 193   2                      if( (Read_Eeprom(0x400*i+HollDateLong)==0xA5) && (Read_Eeprom(0x400*i+HollDateLong+1)==0x5A) )
 194   2                              j++;
 195   2                      if(j==truenum)
 196   2                      {
 197   3                              UpLoadWellDate(i);
 198   3                              return ;
 199   3                      }
 200   2      
 201   2              }
 202   1      }
 203          //********************************************************************************************************
             -******************
 204          void UpLoadWellDate(unsigned char num)
 205          {
 206   1              xdata unsigned int  i,temp_datelong;
 207   1              xdata unsigned char tempa,tempb;
 208   1              xdata unsigned char temp_data[9],temp_time[9];
 209   1              xdata unsigned char temp_wellnum;
 210   1      
 211   1              EA = 0;
 212   1              // 读取数据
 213   1              for(i=0;i<HollDateLong;i++)
 214   1              {
 215   2                      HollDate[i]=Read_Eeprom(0x400*num+i);
 216   2              }
 217   1              // 读取数据长度
 218   1              tempa=Read_Eeprom(0x400*num+HollDateLong+2);
 219   1              tempb=Read_Eeprom(0x400*num+HollDateLong+3);
 220   1              temp_datelong=tempa*256+tempb;
 221   1              // 读取日期
 222   1              for(i=0;i<9;i++)
 223   1              {
 224   2                      temp_data[i]=Read_Eeprom(0x400*num+HollDateLong+4+i);
 225   2              }
 226   1              // 读取时间
 227   1              for(i=0;i<9;i++)
 228   1              {
C51 COMPILER V7.06   EEPROM                                                                06/25/2008 15:44:08 PAGE 5   

 229   2                      temp_time[i]=Read_Eeprom(0x400*num+HollDateLong+13+i);
 230   2              }
 231   1              // 读井号
 232   1              temp_wellnum=Read_Eeprom(0x400*num+HollDateLong+22);
 233   1      
 234   1              Com0_Send_Char(temp_wellnum);
 235   1              Com0_Send_Char(tempa);
 236   1              Com0_Send_Char(tempb);
 237   1              Com0_Send_String(temp_data,9);
 238   1              Com0_Send_String(temp_time,9);
 239   1              Com0_Send_String(HollDate,HollDateLong);
 240   1              EA = 1;
 241   1      /*
 242   1              Com_Send_Char(temp_wellnum,ComFlag);
 243   1              Com_Send_Char(tempa,ComFlag);
 244   1              Com_Send_Char(tempb,ComFlag);
 245   1              Com_Send_String(temp_data,9,ComFlag);
 246   1              Com_Send_String(temp_time,9,ComFlag);
 247   1              Com_Send_String(HollDate,HollDateLong,ComFlag);
 248   1              */
 249   1      }
 250          //********************************************************************************************************
             -******************
 251          void Well_Show(unsigned char num)
 252          {
 253   1              xdata unsigned int  i,temp_datelong;
 254   1              xdata unsigned int  tempa,tempb,tempc;
 255   1              xdata unsigned char temp_data[9],temp_time[9];
 256   1              xdata unsigned char temp_wellnum;
 257   1      
 258   1              LCD_CLEAR();
 259   1              // 读取数据
 260   1              for(i=0;i<HollDateLong;i++)
 261   1              {
 262   2                      HollDate[i]=Read_Eeprom(0x400*num+i);
 263   2              }
 264   1              // 读取数据长度
 265   1              tempa=Read_Eeprom(0x400*num+HollDateLong+2);
 266   1              tempb=Read_Eeprom(0x400*num+HollDateLong+3);
 267   1              temp_datelong=tempa*256+tempb;
 268   1              // 读取日期
 269   1              for(i=0;i<9;i++)
 270   1              {
 271   2                      temp_data[i]=Read_Eeprom(0x400*num+HollDateLong+4+i);
 272   2              }
 273   1              temp_data[8]=0x00;
 274   1              // 读取时间
 275   1              for(i=0;i<9;i++)
 276   1              {
 277   2                      temp_time[i]=Read_Eeprom(0x400*num+HollDateLong+13+i);
 278   2              }
 279   1              temp_time[8]=0x00;
 280   1              // 读井号
 281   1              temp_wellnum=Read_Eeprom(0x400*num+HollDateLong+22);
 282   1      
 283   1              // 显示图形
 284   1              draw_line(20,50,120,50);
 285   1              draw_line(20,0,20,50);
 286   1              for(i=0;i<HollDateLong/40;i++)
 287   1              {
 288   2                      tempa=HollDate[i*40+0];
 289   2                      tempb=HollDate[i*40+39];
C51 COMPILER V7.06   EEPROM                                                                06/25/2008 15:44:08 PAGE 6   

 290   2                      if(tempb>=tempa)
 291   2                      {
 292   3                              tempc=tempb-tempa;
 293   3                      }
 294   2                      else
 295   2                      {
 296   3                              tempc=0xFF-tempa+tempb;
 297   3                      }
 298   2                      if(tempc>5)
 299   2                              tempc=5;
 300   2                      draw_line(i*4+20,50-tempc*5,i*4+20+4,50-tempc*5);
 301   2              }
 302   1              // 显示平均转速
 303   1              tempa=0x00;
 304   1              for(i=0;i<HollDateLong-1;i++)
 305   1              {
 306   2                      if(HollDate[i]>HollDate[i+1])
 307   2                              tempa++;
 308   2              }
 309   1              tempb=HollDate[HollDateLong-1];
 310   1              tempc=tempa*256+tempb;
 311   1              sprintf(Str_Buffer,"%4.0fc",(float)tempc);
 312   1              LCD_DispStr(Str_Buffer,0,30);
 313   1              sprintf(Str_Buffer,"%4.1fc/m",(float)tempc/(float)(temp_datelong/40)*60);
 314   1              LCD_DispStr(Str_Buffer,0,75);
 315   1              // 显示测试时间
 316   1              sprintf(Str_Buffer,"%03.0fs",(float)temp_datelong/40);
 317   1              LCD_DispStr(Str_Buffer,0,5);
 318   1              // 显示井名
 319   1              sprintf(Str_Buffer,"%03.0f",(float)temp_wellnum);
 320   1              LCD_DispStr(Str_Buffer,56,8);
 321   1              // 显示日期
 322   1              strcpy(Str_Buffer,temp_data);
 323   1          LCD_DispStr(Str_Buffer,56,29);
 324   1              // 显示时间
 325   1              strcpy(Str_Buffer,temp_time);
 326   1          LCD_DispStr(Str_Buffer,56,80);
 327   1              Display_Data();
 328   1      }
 329          //********************************************************************************************************
             -******************
 330          /*
 331          bit EEPROM_TEST(void)
 332          {
 333                  unsigned int i;
 334                  unsigned char tempdate,xxx;
 335          
 336                  for(i=0;i<EEPROM_CAP;i+=10)
 337                  {
 338                          tempdate=i;
 339                          if(!Write_Eeprom(i,tempdate))
 340                                  return 0;
 341                  }
 342                  for(i=0;i<EEPROM_CAP;i+=10)
 343                  {
 344                          tempdate=i;
 345                          xxx=Read_Eeprom(i);
 346                          if(tempdate!=xxx)
 347                                  return 0;
 348                  }
 349          
 350                  return 1;
C51 COMPILER V7.06   EEPROM                                                                06/25/2008 15:44:08 PAGE 7   

 351          
 352          }
 353          */
 354          //********************************************************************************************************
             -******************
 355          // The End
 356          //********************************************************************************************************
             -******************


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   2372    ----
   CONSTANT SIZE    =     51    ----
   XDATA SIZE       =   ----      72
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----      12
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----       2
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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