show_window.lst

来自「此程序是GPS的定位程序」· LST 代码 · 共 679 行 · 第 1/3 页

LST
679
字号
 213   3                                      {                                       
 214   4                                              CleanScreen();
 215   4                                      delay_nms(1);
 216   4                                              show_menu_SuDu();         // 速度 
 217   4                                              show_menu_sat();          // 使用的卫星数
 218   4                                                              show_sum_sat();           // 天空中总卫星数     
 219   4                                                              key= keyscan();
 220   4                                                              if(key==0x08)break;                                     
 221   4                                                      } 
 222   3      
 223   3                                                      break;
 224   3                         case 0x08:   show_menu_frist();
 225   3                                          break;      
 226   3                                                      /*等待按键值为8,返回原菜单*/
 227   3                         default:   break;                                     
 228   3                      }
 229   2              
 230   2              }
 231   1      
 232   1      
 233   1      
 234   1      }
 235          
 236          /*****************************************************************/
 237          /* 窗口显示函数:基本信息                    :第三屏 :                                  */
 238          /* 窗口模式:                       00000.0000                   */
 239          /*    
 240                 ----------------------- ------- --------------------------
 241                /经度半球           1       'W' 或 'E'                                     \
C51 COMPILER V8.02   SHOW_WINDOW                                                           05/16/2008 10:44:20 PAGE 5   

 242               | ----------------------- ------- --------------------------
 243               | 经度坐标           7       WGS84坐标系统,坐标格式ddmmmmm |
 244               |                            在第4位数字后省略了一个小数点  |
 245               | ----------------------- ------- ---------------------------
 246          
 247                                                                                               */
 248          /*****************************************************************/
 249          void show_menu_JingDu()
 250          {
 251   1              unsigned char temp_jd=0;
 252   1                                                                         
 253   1          temp_jd = JD_a-48;             // 转换为ASCII
 254   1              temp_jd = 19+temp_jd;       
 255   1              Display_Char(0,1,temp_jd);     // 经度的方向
 256   1          Display_Char(1,1,62);              // : 
 257   1      
 258   1              if(buf_full|0x01)
 259   1              { 
 260   2                      for(i=0;i<5;i++)
 261   2                              {
 262   3                                              Display_Char(2+i,1,JD[i]-48);
 263   3                              }
 264   2                      Display_Char(7,1,66);
 265   2                      for(i=1;i<5;i++)
 266   2                      {
 267   3                          Display_Char(7+i,1,JD[i+5]-48);
 268   3                              }               
 269   2              }
 270   1      }
 271          /*****************************************************************/
 272          /* 窗口显示函数:基本信息                    :第三屏 :                                  */
 273          /* 窗口模式:                       0000.0000                    */
 274          /*    
 275                 ----------------------- ------- --------------------------
 276                /伟度半球           1       'N' 或 'S'                                     \
 277               | ----------------------- ------- --------------------------
 278               | 纬度坐标           7       WGS84坐标系统,坐标格式ddmmmmm |
 279               |                            在第4位数字后省略了一个小数点  |
 280               | ----------------------- ------- ---------------------------
 281          
 282                                                                                               */
 283          /*****************************************************************/
 284          void show_menu_WeiDu()
 285          {
 286   1      
 287   1      
 288   1              unsigned char temp_wd=0;
 289   1                                                                         
 290   1          temp_wd = WD_a-48;            // 转换为ASCII
 291   1              temp_wd = 19+temp_wd;       
 292   1      
 293   1              Display_Char(0,3,temp_wd);     // 纬度的方向
 294   1          Display_Char(1,3,62);              // : 
 295   1              if(buf_full|0x01)
 296   1              {
 297   2                      for(i=0;i<4;i++)
 298   2                      {
 299   3                                   Display_Char(2+i,3,WD[i]-48);
 300   3                              }
 301   2                              Display_Char(6,3,66);
 302   2                              for(i=0;i<4;i++)
 303   2                              {
C51 COMPILER V8.02   SHOW_WINDOW                                                           05/16/2008 10:44:20 PAGE 6   

 304   3                               Display_Char(7+i,3,WD[i+5]-48);
 305   3                              }
 306   2              }
 307   1      }
 308          /*****************************************************************/
 309          /* 窗口显示函数:基本信息                    :第三屏 :                                  */
 310          /* 窗口模式:                         000000                     */
 311          /*    
 312                 ----------------------- ------- -----------------------
 313               /年                      2       UTC年的最后两位数字         \
 314              | ----------------------- ------- ------------------------
 315              | 月                      2       UTC月, "01".."12"           |
 316          T   | ----------------------- ------- ------------------------
 317          i   | 日                      2       UTC日, "01".."31"           |
 318          m   | ----------------------- ------- ------------------------
 319          e   | 时                      2       UTC时, "00".."23"           |
 320              | ----------------------- ------- ------------------------
 321              | 分                      2       UTC分, "00".."59"           |
 322              | ----------------------- ------- ------------------------
 323               \秒                      2       UTC秒, "00".."59"           /
 324                ----------------------- ------- ------------------------
 325          
 326          
 327                                                                                               */
 328          /*****************************************************************/
 329          void show_menu_ShiJian()
 330          {
 331   1      
 332   1          unsigned char xdata dsp_count=0;                       //刷新次数计数器
 333   1          unsigned char xdata Bhour=0,Bday=0,Bmonth=0;
 334   1          unsigned int  xdata Byear=0;
 335   1                                                                                      
 336   1          CleanScreen();
 337   1              delay_nms(100);
 338   1              Display_Char(0,3,55);          // T
 339   1          Display_Char(1,3,62);              // : 
 340   1              delay_nus(100);
 341   1      
 342   1                      if(buf_full|0x08)                                                           //北京时间转换
 343   1                              {
 344   2                                      if(Bhour!=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA)
 345   2                                      {
 346   3                                              Bhour=((time[0]-0x30)*10+time[1]-0x30)+TIME_AREA;                       
 347   3                                              Bday=(date[0]-0x30)*10+date[1]-0x30;
 348   3                                              Bmonth=(date[2]-0x30)*10+date[3]-0x30;
 349   3                                              Byear=(date[4]-0x30)*10+date[5]-0x30+2000;
 350   3                                              if(Bhour>=24)
 351   3                                              {                                                       //如果小时数大于24
 352   4                                                      Bhour-=24;                                              //小时数减24
 353   4                                                      Bday++;                                                 //日期数加1
 354   4                                                      switch(Bday)
 355   4                                                      {                                                   //判断日期
 356   5                                                              case 29:                                        //普通年的2月份
 357   5                                                                          if((!((Byear%400==0)||((Byear%4==0)&&(Byear%100!=0)))&&(Bmonth==2)))
 358   5                                                                              {
 359   6                                                                                              Bday=1;
 360   6                                                                                              Bmonth++;
 361   6                                                                              }
 362   5                                                                              break;
 363   5                                                              case 30:                                                        //如果是闰年的2月
 364   5                                                                              if(((Byear%400==0)||((Byear%4==0)&&(Byear%100!=0)))&&(Bmonth==2))
 365   5                                                                              {
C51 COMPILER V8.02   SHOW_WINDOW                                                           05/16/2008 10:44:20 PAGE 7   

 366   6                                                                                              Bday=1;
 367   6                                                                                              Bmonth++;
 368   6                                                                              }
 369   5                                                                              break;
 370   5                                                              case 31:
 371   5                                                                              if((Bmonth==4)||(Bmonth==6)||(Bmonth==9)||(Bmonth==11))
 372   5                                                                              {
 373   6                                                                                              Bday=1;
 374   6                                                                                              Bmonth++;
 375   6                                                                              }
 376   5                                                                              break;
 377   5                                                              case 32:
 378   5                                                                              Bday=1;
 379   5                                                                              Bmonth++;
 380   5                                                                              if(Bmonth>=13)
 381   5                                                                              {
 382   6                                                                                              Byear++;
 383   6                                                                                              Bmonth=1;
 384   6                                                                              }
 385   5                                                                              break;
 386   5                                                      }
 387   4                                              }
 388   3                                      }
 389   2      
 390   2                              Display_Char(0,1,39);          // D
 391   2                      Display_Char(1,1,62);          // : 
 392   2      
 393   2                                      Display_Char(3,1,2);                        // 2
 394   2                                      Display_Char(4,1,0);                                            // 0
 395   2                                      Display_Char(5,1,(Byear%100)/10);               
 396   2                                      Display_Char(6,1,Byear%10);
 397   2                                      Display_Char(7,1,68);
 398   2                                      Display_Char(8,1,Bmonth/10);
 399   2                                      Display_Char(9,1,Bmonth%10);
 400   2                                      Display_Char(10,1,68);
 401   2                                      Display_Char(11,1,Bday/10);
 402   2                                      Display_Char(12,1,Bday%10);
 403   2                                      
 404   2                              Display_Char(0,5,52);          // Q
 405   2                      Display_Char(1,5,62);          // : 
 406   2                                      Display_Character(4,5,28);         // 星期
 407   2                                      Display_Character(6,5,29);
 408   2      
 409   2                                      switch(week(Byear%100,Bmonth,Bday))
 410   2                                      {
 411   3                                              case 0:
 412   3                                                      Display_Char(8,5,7);                  // 星期日
 413   3                                                      break;
 414   3                                              case 1:                                                                  
 415   3                                                      Display_Char(8,5,1);                              // 星期一
 416   3                                                      break;
 417   3                                              case 2:                                                                   
 418   3                                                      Display_Char(8,5,2);                              // 星期二
 419   3                                                      break;                                          
 420   3                                              case 3:
 421   3                                                      Display_Char(8,5,3);                              // 星期三
 422   3                                                      break;                                          
 423   3                                              case 4:
 424   3                                                      Display_Char(8,5,4);                              // 星期四
 425   3                                                      break;                                          
 426   3                                              case 5:
 427   3                                                      Display_Char(8,5,5);                              // 星期五
C51 COMPILER V8.02   SHOW_WINDOW                                                           05/16/2008 10:44:20 PAGE 8   

 428   3                                                      break;                                          
 429   3                                              case 6:
 430   3                                                      Display_Char(8,5,6);                              // 星期六
 431   3                                                      break;                                          

⌨️ 快捷键说明

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