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

📄 interface.lst

📁 基于c8051f020的应用
💻 LST
📖 第 1 页 / 共 3 页
字号:
C51 COMPILER V7.06   INTERFACE                                                             06/25/2008 15:44:08 PAGE 1   


C51 COMPILER V7.06, COMPILATION OF MODULE INTERFACE
OBJECT MODULE PLACED IN INTERFACE.OBJ
COMPILER INVOKED BY: C:\Keil\C51\BIN\c51.exe INTERFACE.C DB OE

stmt level    source

   1          //********************************************************************************************************
             -******************
   2          #include <c8051F020.h>
   3          #include <stdio.h>
   4          #include <setjmp.h>
   5          #include <string.h>
   6          #include "HEAD.H"
   7          //********************************************************************************************************
             -******************
   8          jmp_buf ReturnToJSJM;
   9          //********************************************************************************************************
             -******************
  10          void Sys_Function(void)
  11          {
  12   1              xdata unsigned char SubFuncKey=0x00;    
  13   1      
  14   1              while(1)
  15   1              {       
  16   2                      LCD_CLEAR();
  17   2                      //LCD_DispStr("U:Start Test.",8,5);
  18   2                      disp_chn_str("↑丰开始测试",2,10,12,1);
  19   2                      //LCD_DispStr("D:Date Index.",16,5);
  20   2                      disp_chn_str("↓丰数据检索",14,10,12,1);
  21   2                      //LCD_DispStr("L:Clear Al:l Date.",24,5);
  22   2                      disp_chn_str("←丰清除所有数据",26,10,12,1);
  23   2                      //LCD_DispStr("R:System Set.",32,5);
  24   2                      disp_chn_str("→丰设置参数",38,10,12,1);
  25   2                      //LCD_DispStr("E:Return.",48,5);
  26   2                      //disp_chn_str("确定 返回",50,15,12,1);
  27   2                      Display_Data();
  28   2              
  29   2                      while(!(SubFuncKey=get_key(1)));
  30   2      
  31   2                      switch(SubFuncKey)
  32   2                      {
  33   3                              case UP_ARROW_KEY:
  34   3                              {
  35   4                                      Date_Test();
  36   4                                      break;
  37   4                              }
  38   3                              case DOWN_ARROW_KEY:
  39   3                              {
  40   4                                      Date_Index();
  41   4                                      break;
  42   4                              }
  43   3                              case LEFT_ARROW_KEY:
  44   3                              {
  45   4                                      Clear_ALL_Date();
  46   4                                      break;
  47   4                              }
  48   3                              case RIGHT_ARROW_KEY:
  49   3                              {
  50   4                                      Sys_Setup();
  51   4                                      break;
  52   4                              }
C51 COMPILER V7.06   INTERFACE                                                             06/25/2008 15:44:08 PAGE 2   

  53   3                              case RETURN_KEY:
  54   3                              {
  55   4                                      LCD_CLEAR();
  56   4                                      return;
  57   4                              }
  58   3                              default:break;
  59   3                      }
  60   2                      SubFuncKey=0x00;
  61   2              }
  62   1      }
  63          //********************************************************************************************************
             -******************
  64          void Date_Test(void)
  65          {
  66   1              xdata unsigned int  i;
  67   1      
  68   1              LCD_CLEAR();
  69   1              WorkStation=0xBB;
  70   1              HollDataNum=0x00;
  71   1              HollSigNum=0x00;
  72   1              TH2=0;TL2=0;
  73   1              DS1302_Read();
  74   1              //LCD_DispStr("Station:Testing",16,5);
  75   1              disp_chn_str("数据测试中",14,10,12,1);
  76   1      
  77   1              disp_chn_str("转数",50,10,12,1);
  78   1              disp_chn_str("时间",38,10,12,1);
  79   1              while(WorkStation==0xBB)
  80   1              {
  81   2                      if(Timer3%TimeFre==0x00)
  82   2                      {
  83   3                              sprintf(Str_Buffer,":%05.0fc",(float)HollSigNum);
  84   3                              LCD_DispStr(Str_Buffer,52,34);
  85   3                              //LCD_SHOW_WellSaveStation();
  86   3                              sprintf(Str_Buffer,":%3.0f/%3.0fs",(float)(HollDataNum*TestTime/40),(float)(HollDateLong*TestTime/40));
  87   3                              LCD_DispStr(Str_Buffer,40,34);
  88   3                              Display_Data();
  89   3                      }
  90   2              }
  91   1              //LCD_DispStr("Station:Saving ",16,5);
  92   1              disp_chn_str("数据保存中",14,10,12,1);
  93   1              // 确保显示数据正确
  94   1              sprintf(Str_Buffer,":%05.0fc",(float)HollSigNum);
  95   1              LCD_DispStr(Str_Buffer,52,34);
  96   1              // 保存标志
  97   1              Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong,0xA5);
  98   1              Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+1,0x5A);
  99   1              // 保存数据长度
 100   1              Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+2,HollDataNum*TestTime>>8);
 101   1              Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+3,HollDataNum*TestTime);
 102   1              // 保存日期
 103   1              for(i=0;i<9;i++)
 104   1              {
 105   2                      Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+4+i,Clock_Date_Str[i]);
 106   2              }
 107   1              // 保存时间
 108   1              for(i=0;i<9;i++)
 109   1              {
 110   2                      Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+13+i,Clock_Time_Str[i]);
 111   2              }
 112   1              // 保存井号
 113   1              Write_Eeprom(0x400*NowSaveWellAddr+HollDateLong+22,NowWellName);
C51 COMPILER V7.06   INTERFACE                                                             06/25/2008 15:44:08 PAGE 3   

 114   1              // 保存数据
 115   1              Write_Well_date(0x400*NowSaveWellAddr,HollDate,HollDateLong);
 116   1              /*
 117   1              for(i=0;i<HollDateLong;i++)
 118   1              {
 119   1                      Write_Eeprom(0x400*NowSaveWellAddr+i,HollDate[i]);
 120   1                      if(i%10==0x00)
 121   1                      {
 122   1                              sprintf(Str_Buffer,"Rate:%3.0f/100",(float)((float)i*100/HollDateLong));
 123   1                              LCD_DispStr(Str_Buffer,32,5);
 124   1                              Display_Data();
 125   1                      }
 126   1              }
 127   1              */
 128   1              Well_Show(NowSaveWellAddr);
 129   1              while(!(get_key(1)));
 130   1              EEPROM_Init();
 131   1      
 132   1      }
 133          //********************************************************************************************************
             -******************
 134          void Date_Index(void)
 135          {
 136   1              xdata unsigned char SubFK=0x00;
 137   1              xdata unsigned int  i,j;
 138   1              xdata unsigned int  cursor_line;                                        // 显示时的当前行在当前页中的位置
 139   1              xdata unsigned int  NowFirstAddr;                                       // 显示时的第一行在所有有效井中的位置
 140   1       
 141   1              setjmp (ReturnToJSJM) ;                                 // 主界面设置点
 142   1      
 143   1              LCD_CLEAR();
 144   1              // 取得有效数据量,并记录位置
 145   1              NowWellNum=0x00;
 146   1              for(i=0;i<MaxWellSaveNum;i++)
 147   1              {
 148   2                      if( (Read_Eeprom(0x400*i+HollDateLong)==0xA5) && (Read_Eeprom(0x400*i+HollDateLong+1)==0x5A) )
 149   2                      {
 150   3                              // 读取日期
 151   3                              for(j=0;j<9;j++)
 152   3                              {
 153   4                                      well_index[NowWellNum].BeginDate[j]=Read_Eeprom(0x400*i+HollDateLong+4+j);
 154   4                              }
 155   3                              well_index[NowWellNum].BeginDate[8]=0x00;
 156   3                              // 读取时间
 157   3                              for(j=0;j<9;j++)
 158   3                              {

⌨️ 快捷键说明

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