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

📄 lcmservice.lst

📁 带时钟功能温度和湿度测量的仪器
💻 LST
📖 第 1 页 / 共 2 页
字号:
 180   1               
 181   1               nTemp=data1&0x7F;
 182   1           OutputChar(position[start+4],22,0);                                //off
 183   1           if ((data1&0x80)==0x80)                                                    //最高位为1表示为负数
 184   1                      OutputChar(position[start+3],18,0);             //显示一个负号'-'
 185   1               else
 186   1                              OutputChar(position[start+3],(nTemp/100),0);//显示一个最高位
 187   1               //采用固定小数点方式显示
 188   1           OutputChar(position[start],(data2%10),0);
 189   1           OutputChar(position[start+1],(nTemp%10),1);
 190   1           OutputChar(position[start+2],((nTemp/10)%10),0);
 191   1      
 192   1               //DelayTime(2,_LCM_KEEP_T);                                            //显示停留
 193   1      }
 194          /*------------------------------------------------*/
 195          #if _SYS_TEST>0                                                                         //提供给测试用的输出开关
              /*------------------------------------------------*/
              /*
              名称: OutputThreeChar
              功能: 显示三个字节数据/日期和时钟页面
              注意: [xx-xx-xx] 
              */
              void  OutputThreeChar(uchar data1,uchar data2,uchar data3,uchar space)
              {
                       LCM_Clear();
                   OutputChar(position[0],17,0);
                   OutputChar(position[9],16,0);      //|_ 16:字型编号
                   OutputChar(position[3],space,0);   //间隔符号
                   OutputChar(position[6],space,0);  
                   OutputChar(position[1],(data3%10),0);
                   OutputChar(position[2],(data3/10),0);
                   OutputChar(position[4],(data2%10),0);
                   OutputChar(position[5],(data2/10),0);
                   OutputChar(position[7],(data1%10),0);
                   OutputChar(position[8],(data1/10),0);
              
                       DelayTime(2,_LCM_KEEP_T);                      //显示停留
                       LCM_Clear();
              }
              #endif
 220          /*------------------------------------------------*/
 221          /*
 222          名称: OutputLcmBuf
 223          功能: 显示特定页面缓冲的内容ClkLcmBuf[10]
 224          注意: [xx-xx-xx] 
 225          */
 226          void  OutputLcmBuf(uchar *start)
 227          {
 228   1              uchar i;
 229   1              LCM_Clear();
 230   1              for(i=0;i<_MAX_LCM_NUM;i++)
 231   1              {
 232   2                      OutputChar(position[9-i],*start++,0);
 233   2              }
 234   1              DelayTime(2,_LCM_KEEP_T);                        //显示停留
 235   1              LCM_Clear();
 236   1      }
 237          /*------------------------------------------------*/
 238          /*------------------------------------------------*/
 239          #if _SYS_TEST>0                                         //提供给测试用的输出开关
              /*------------------------------------------------*/
C51 COMPILER V7.20   LCMSERVICE                                                            11/09/2002 21:11:14 PAGE 5   

              /*
              名称: OutputFrequency
              功能: 显示检测到频率值页面   <64K HZ
              注意: [      [00] 
              */
              void  OutputFrequency(uint Myfre)
              {
                               LCM_Clear();
                       OutputChar(position[9],16,0);  //[ 16:字型编号
                       OutputChar(position[0],17,0);  //]
              
                               OutputChar(position[1],0,0);  //]
                               OutputChar(position[2],0,0);  //]
                               OutputChar(position[3],0,0);  //]
                       OutputChar(position[4],Myfre%10,1);
                       OutputChar(position[5],(Myfre%100)/10,0);
                       OutputChar(position[6],(Myfre%1000)/100,0);
                       OutputChar(position[7],(Myfre%10000)/1000,0);
                       OutputChar(position[8],Myfre/10000,0);
                               
                               DelayTime(1,_LCM_KEEP_T);                              //显示停留
                               LCM_Clear();
               }
              /*------------------------------------------------*/
              #endif
 266          /*------------------------------------------------*/
 267          /*
 268          名称: DispLayTaskRun()
 269          功能: 执行需要的显示任务
 270          注意: 要不断的检测标志
 271          */
 272          void    DispLayTaskRun()
 273          {
 274   1      //#if   _SYS_TEST>0
 275   1              //OutputFrequency(UartRecBuf[0]);
 276   1      //#else
 277   1              uchar LcmBuf[3];
 278   1      /*根据模式将各模式需要显示的数据装载到显示缓冲中*/
 279   1              LCM_Clear();
 280   1              switch(SystemState)
 281   1              {
 282   2                      case _CMD_NORMAL_RUN:
 283   2                      /*检测是否配置了传感器监控功能*/
 284   2                              OutputTHValue(TempInteger,TempDecimal,6);
 285   2                              OutputTHValue(HumiInteger,HumiDecimal,0);
 286   2                              OutputChar(position[4],22,0);  //off
 287   2                      OutputChar(position[5],22,0);  //[ 16:字型编号
 288   2                              DelayTime(1,_LCM_KEEP_T);
 289   2                      break;
 290   2      
 291   2                      case _CMD_CTRL_RUN:
 292   2                      #if _CLOCK_TASK>0
 293   2                              ReadClock(ClkLcmBuf);                           //更新时钟数据
 294   2                      #endif
 295   2                              switch(LcmMode)
 296   2                              {
 297   3                                      case _TIME_RUN:
 298   3                                              LcmBuf[0]=ClkLcmBuf[_ID_HOUR];
 299   3                                              LcmBuf[1]=ClkLcmBuf[_ID_MINUTE];
 300   3                                              LcmBuf[2]=ClkLcmBuf[_ID_SECOND];
 301   3                                              CopyBuffer(TimePage,ClkLcmBuf);
 302   3                                              ClkLcmBuf[_ID_HOUR_H]=LcmBuf[0]/10;
C51 COMPILER V7.20   LCMSERVICE                                                            11/09/2002 21:11:14 PAGE 6   

 303   3                                              ClkLcmBuf[_ID_HOUR_L]=LcmBuf[0]%10;
 304   3                                              ClkLcmBuf[_ID_MINUTE_H]=LcmBuf[1]/10;
 305   3                                              ClkLcmBuf[_ID_MINUTE_L]=LcmBuf[1]%10;
 306   3                                              ClkLcmBuf[_ID_SECOND_H]=LcmBuf[2]/10;
 307   3                                              ClkLcmBuf[_ID_SECOND_L]=LcmBuf[2]%10;
 308   3                                      break;
 309   3                                      case _DATE_RUN:
 310   3                                              LcmBuf[0]=ClkLcmBuf[_ID_YEAR];
 311   3                                              LcmBuf[1]=ClkLcmBuf[_ID_MONTH];
 312   3                                              LcmBuf[2]=ClkLcmBuf[_ID_DAY];
 313   3                                              CopyBuffer(DatePage,ClkLcmBuf);
 314   3                                              ClkLcmBuf[_ID_YEAR_H]=LcmBuf[0]/10;
 315   3                                              ClkLcmBuf[_ID_YEAR_L]=LcmBuf[0]%10;
 316   3                                              ClkLcmBuf[_ID_MONTH_H]=LcmBuf[1]/10;
 317   3                                              ClkLcmBuf[_ID_MONTH_L]=LcmBuf[1]%10;
 318   3                                              ClkLcmBuf[_ID_DAY_H]=LcmBuf[2]/10;
 319   3                                              ClkLcmBuf[_ID_DAY_L]=LcmBuf[2]%10;
 320   3      
 321   3                                              #if _SYS_TEST >0
                                                              OutputThreeChar(LcmBuf[0],LcmBuf[1],LcmBuf[2],_CHAR_FH);
                                                      #endif
 324   3                                      break;
 325   3                                      case _WEEKLY_RUN:
 326   3                                              LcmBuf[0]=ClkLcmBuf[_ID_WEEKLY];
 327   3                                              CopyBuffer(WeekPage,ClkLcmBuf);
 328   3                                              ClkLcmBuf[_ID_WEEKLY_H]=LcmBuf[0]/10;
 329   3                                              ClkLcmBuf[_ID_WEEKLY_L]=LcmBuf[0]%10;
 330   3                                      break;
 331   3                                      case _COMBUSY_RUN:
 332   3                                              CopyBuffer(BusyPage,ClkLcmBuf);
 333   3                                      break;
 334   3                                      case _ERROR_RUN:
 335   3                                              CopyBuffer(ErrorPage,ClkLcmBuf);
 336   3                                      break;
 337   3      
 338   3                                      default:
 339   3                                              CopyBuffer(ErrorPage,ClkLcmBuf);        //出错
 340   3                                      break;
 341   3                              }
 342   2                              OutputLcmBuf(ClkLcmBuf);
 343   2                      break;
 344   2                      default:
 345   2                              CopyBuffer(ErrorPage,ClkLcmBuf);                        //出错
 346   2                              OutputLcmBuf(ClkLcmBuf);
 347   2                      break;
 348   2                      }
 349   1      //#endif
 350   1      }
 351          /*------------------------------------------------*/
 352          #endif
 353          


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

C51 COMPILER V7.20   LCMSERVICE                                                            11/09/2002 21:11:14 PAGE 7   


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

⌨️ 快捷键说明

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