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

📄 main.lst

📁 数据采集系统的好参考资料,高精度的传感器采集系统
💻 LST
📖 第 1 页 / 共 2 页
字号:
 233   1              while(Key==0)
 234   1              {
 235   2                      Read_12887(DateBuf);                            //读取日期信息
 236   2              
 237   2                      ProcDate();                                                     //数值转换成字符串
 238   2      
 239   2                      Set_addr(2,2);
 240   2                      Write_str("当前日期为");
 241   2                      Set_addr(3,1);                                          //字符串显示在液晶内
C51 COMPILER V7.50   MAIN                                                                  09/13/2006 09:30:06 PAGE 5   

 242   2                      Write_str(Date);
 243   2      
 244   2                      Key=ReadKey();
 245   2                      delay1(5000);
 246   2              }
 247   1      }
 248          //-------------------------------------------------------------------
 249          //函数:void ShowTempBuf(void)
 250          //功能:在18B20中读取温度并在液晶中显示
 251          //-------------------------------------------------------------------
 252          void ShowTemp(void)
 253          {
 254   1              char *a;unsigned char buf;
 255   1              Key=0;
 256   1              Scr_clr();Set_addr(2,2);
 257   1              while(Key==0)                                                   //等待按键返回上一级菜单
 258   1              {
 259   2                      buf=Read_Temperature();                         //读取温度
 260   2                      a=itoa(buf);
 261   2                      Temp[6]=a[0];Temp[7]=a[1];
 262   2      
 263   2                      Set_addr(2,2);                                          //在液晶上显示
 264   2                      Write_str("当前温度为");
 265   2                      Set_addr(3,2);
 266   2                      Write_str(Temp);
 267   2              
 268   2                      Key=ReadKey();
 269   2                      delay1(5000);
 270   2              }
 271   1      }
 272          //----------------------------------------------------------------
 273          //函数:void ShowDis(void)
 274          //功能:检测距离,并在液晶上显示
 275          //----------------------------------------------------------------
 276          void ShowDis(void)
 277          {
 278   1              unsigned char i;
 279   1              Scr_clr();Set_addr(2,2);
 280   1              while(Key!=4)
 281   1              {
 282   2                      DisBuf=Get_dis();
 283   2                      Dis[11]=DisBuf%10+48;
 284   2                      DisBuf/=10;
 285   2                      Dis[10]=DisBuf%10+48;
 286   2                      DisBuf/=10;
 287   2                      Dis[9]=DisBuf%10+48;
 288   2              
 289   2                      if(i++%5==0)                                            //降低刷新速度,使显示稳定
 290   2                      {
 291   3                              Set_addr(2,1);
 292   3                              Write_str(Dis);
 293   3                      }
 294   2                      
 295   2                      Key=ReadKey();
 296   2                      delay1(5000);
 297   2              }
 298   1      }
 299          //----------------------------------------------------------------------------
 300          //函数:void SetDate(void)
 301          //功能:调整时间和日期,并在液晶上显示
 302          //----------------------------------------------------------------------------
 303          void SetDate(void)
C51 COMPILER V7.50   MAIN                                                                  09/13/2006 09:30:06 PAGE 6   

 304          {
 305   1              unsigned char id=0;
 306   1              Scr_clr();Set_addr(2,3);
 307   1              while(Key!=4)                                           //如果确定或取消键按下,则返回
 308   1              {
 309   2                      Key=ReadKey();
 310   2                      switch(Key)
 311   2                      {
 312   3                              case 2:                                                         //切换键,选择一位时间日期                      
 313   3                                      if(id++==5) id=0;
 314   3                              break;
 315   3                              case 3:                                                         //调整键,改变选择的时间日期
 316   3                                      if(id==0)       if(DateBuf[0]++==9)  DateBuf[0]=0;//年
 317   3                                      if(id==1)       if(DateBuf[1]++==11) DateBuf[1]=0;//月
 318   3                                      if(id==2)       if(DateBuf[2]++==30) DateBuf[2]=0;//日
 319   3                                      if(id==3)       if(DateBuf[3]++==23) DateBuf[6]=0;//时
 320   3                                      if(id==4)       if(DateBuf[4]++==59) DateBuf[4]=0;//分
 321   3                                      if(id==5)       if(DateBuf[5]++==59) DateBuf[5]=0;//秒
 322   3                              break;
 323   3                              default:
 324   3                              break;
 325   3                      }
 326   2                      
 327   2                      ProcTime();                                                     //时间字符串处理
 328   2                      ProcDate();                                                     //日期字符串处理
 329   2      
 330   2                      Set_addr(2,1);                                          //在液晶上显示
 331   2                      Write_str(Date);
 332   2                      Set_addr(3,2);
 333   2                      Write_str(Time);
 334   2      
 335   2                      if(id<3)                                                        //移动光标
 336   2                              Set_addr(2,(DateTbl[id]/2+1));
 337   2                      else
 338   2                              Set_addr(3,(DateTbl[id]/2+2));
 339   2                      
 340   2                      Open_cur();
 341   2                      delay1(5000);
 342   2              }
 343   1              Close_cur();                                                    //关闭光标
 344   1              Write_12887(DateBuf);
 345   1      }
 346          //-----------------------------------------------------------------------------
 347          //函数:void SetClk(void)
 348          //功能:设置闹铃时间
 349          //-----------------------------------------------------------------------------
 350          void SetClk(void)
 351          {
 352   1              unsigned char id=0;
 353   1              Scr_clr();Set_addr(2,3);
 354   1              while(Key!=4)                                           //如果确定或取消键按下,则返回
 355   1              {
 356   2                      Key=ReadKey();
 357   2                      switch(Key)
 358   2                      {
 359   3                              case 2:                                                         //切换键,选择一位时间          
 360   3                                      if(id++==3) id=0;
 361   3                              break;
 362   3                              case 3:
 363   3                                      if(id==0)       if(AlarmBuf[0]++==23) AlarmBuf[0]=0;
 364   3                                      if(id==1)   if(AlarmBuf[1]++==59) AlarmBuf[1]=0;
 365   3                                      if(id==2)   if(AlarmBuf[2]++==59) AlarmBuf[2]=0;
C51 COMPILER V7.50   MAIN                                                                  09/13/2006 09:30:06 PAGE 7   

 366   3                                      if(id==3)   AlarmFlag=!AlarmFlag;
 367   3                              break;
 368   3                              default:
 369   3                              break;
 370   3                      }
 371   2                      ProcAlarm();
 372   2                      Set_addr(1,1);                                          //显示定时界面
 373   2                      Write_str("定时时间:");
 374   2                      Set_addr(2,1);
 375   2                      Write_str(Time);
 376   2                      Set_addr(3,1);
 377   2                      Write_str("闹铃:");
 378   2                      Set_addr(3,4);
 379   2                      if(AlarmFlag)   Write_str("开");
 380   2                      else                    Write_str("关");
 381   2                      
 382   2                      if(id<3)                                                        //移动光标
 383   2                              Set_addr(2,DateTbl[id]/2);
 384   2                      else
 385   2                              Set_addr(3,4);
 386   2                              
 387   2                      Open_cur();
 388   2                      delay1(5000);
 389   2              }
 390   1              Close_cur();
 391   1      }
 392          //--------------------------------------------------------------------------------------------------------
 393          char code chuang[]={
 394          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0xC0,0x00,0x18,0x00,0x60,0x00,0
             -x18,0x00,0x60,0x00,0x38,0x00,0x60,0x00,0x38,0x00,0x60,
 395          0x00,0x6E,0x00,0x60,0x00,0x67,0x98,0x60,0x00,0xC3,0x8C,0x60,0x01,0x80,0xCC,0x60,0x01,0x80,0x0C,0x20,0x03,0
             -x00,0x0C,0x20,0x06,0x0C,0x0C,0x20,0x0F,0xFE,0x0C,0x20,
 396          0x19,0x06,0x0C,0x20,0x21,0x06,0x0C,0x20,0x41,0x04,0x0C,0x20,0x01,0x04,0x0C,0x20,0x01,0x1C,0x0C,0x20,0x01,0
             -x0C,0x00,0x20,0x01,0x88,0x80,0x20,0x01,0x80,0x80,0x20,
 397          0x01,0x80,0xC0,0x20,0x00,0xE1,0xC0,0x60,0x00,0x7F,0xC4,0x60,0x00,0x0C,0x03,0xE0,0x00,0x00,0x01,0xE0,0x00,0
             -x00,0x00,0xE0,0x00,0x00,0x00,0x40,0x00,0x00,0x00,0x00};/*"创",0*/
 398          char code xin[]={
 399          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x30,0x00,0x00,0x00,0x18,0x01,0x00,0x00,0
             -x08,0x01,0xC0,0x00,0x06,0x03,0xC0,0x00,0xFE,0x07,0x00,
 400          0x07,0xCC,0x78,0x00,0x00,0x0C,0x60,0x00,0x01,0x08,0x20,0x00,0x00,0x98,0x20,0x00,0x00,0x9F,0x20,0xF8,0x00,0
             -xFC,0x3F,0xF0,0x7F,0xE0,0x23,0x00,0x70,0x20,0x63,0x00,
 401          0x00,0x2E,0x63,0x00,0x03,0xF8,0x63,0x00,0x1E,0x20,0x63,0x00,0x00,0x30,0x43,0x00,0x04,0x2C,0xC3,0x00,0x04,0
             -x24,0xC3,0x00,0x0C,0x20,0x83,0x00,0x18,0x21,0x81,0x00,
 402          0x18,0xE3,0x01,0x00,0x00,0xE2,0x01,0x00,0x00,0x64,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0
             -x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00};/*"新",0*/
 403          char code zhong[]={
 404          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x80,0x00,0x00,0x03,0x80,0x00,0x00,0
             -x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,
 405          0x00,0x03,0x03,0x00,0x00,0x03,0xFF,0xC0,0x07,0xFF,0x81,0xE0,0x03,0x03,0x01,0x80,0x03,0x03,0x01,0x80,0x03,0
             -x03,0x03,0x00,0x01,0x03,0x03,0x00,0x01,0x03,0x03,0x00,
 406          0x01,0x03,0xFF,0x00,0x01,0xFF,0xFE,0x00,0x01,0xC3,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0
             -x03,0x00,0x00,0x00,0x03,0x00,0x00,0x00,0x01,0x00,0x00,
 407          0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0
             -x01,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x01,0x00,0x00};/*"中",0*/
 408          char code xin1[]={
 409          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0
             -x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
 410          0x00,0x0C,0x00,0x00,0x00,0x07,0x01,0x80,0x00,0x03,0x80,0xF0,0x00,0x03,0x80,0x78,0x00,0x01,0x80,0x38,0x00,0
             -x00,0x00,0x18,0x04,0x40,0x00,0x00,0x0C,0x40,0x00,0x00,
 411          0x0C,0x20,0x04,0x00,0x0C,0x30,0x02,0x00,0x1C,0x10,0x03,0x00,0x1C,0x18,0x01,0x80,0x18,0x0E,0x01,0xC0,0x00,0
             -x07,0x81,0xE0,0x00,0x03,0xFF,0xE0,0x00,0x00,0xFF,0xC0,
 412          0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0
C51 COMPILER V7.50   MAIN                                                                  09/13/2006 09:30:06 PAGE 8   

             -x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00};/*"心",0*/
 413          void DrawBo(unsigned char x,unsigned char y,unsigned char *ad)
 414          {
 415   1              unsigned char k,j;
 416   1              for(k=0;k<32;k++) 
 417   1              {
 418   2                      for(j=0;j<2;j++)
 419   2                              Draw_grap(2*x+j,y*16+k,ad[4*k+2*j],ad[4*k+2*j+1]);
 420   2              }
 421   1          Open_grap();
 422   1      }
 423          //-------------------------------------------------------------
 424          //函数:void FstGrap(void)
 425          //功能:显示开机画面
 426          //-------------------------------------------------------------
 427          void FstGrap(void)
 428          {
 429   1              Clr_grap();                                             //清除图象缓冲区
 430   1              
 431   1              Set_addr(3,2);                                  //显示32X32的点阵字创新中心
 432   1              Write_str("测距电子日历");
 433   1              
 434   1              DrawBo(0,0,chuang);
 435   1              DrawBo(1,0,xin);
 436   1              DrawBo(2,0,zhong);
 437   1              DrawBo(3,0,xin1);
 438   1      }
 439          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1690    ----
   CONSTANT SIZE    =    661    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     30      19
   IDATA SIZE       =     71    ----
   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 + -