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

📄 gt.lst

📁 这是GPS全球卫星定位系统授时的下位机部分
💻 LST
📖 第 1 页 / 共 3 页
字号:
 235   2              }
 236   1              else
 237   1                      TI=0;
 238   1              
 239   1      }
 240          
 241          
C51 COMPILER V7.50   GT                                                                    10/28/2005 21:31:12 PAGE 5   

 242          
 243          /********************************************************
 244          * I/O 初始化
 245          /*******************************************************/
 246          void IoInit(void)
 247          {
 248   1              P1M1=0x00;              //P1准双向口
 249   1              P1M2=0x00;
 250   1              P2M1=0x00;              //P2端口设置为准双向
 251   1              P2M2=0x00;
 252   1              P0M1=0x00;
 253   1              P0M2=0x00;
 254   1              
 255   1      }
 256          /********************************************************
 257          *ISP初始化程序
 258          *********************************************************/
 259          void IspInit(void)
 260          {       //unsigned char i;
 261   1          SSTAT &=0xFA;
 262   1              BRGCON =0x00;
 263   1              AUXR1 |=0x40;
 264   1              SCON =0X50;
 265   1      //      BRGR0=0xF0;                             // setup BRG for 9600 baud @ 7.373MHz internal RC oscillator
 266   1      //      BRGR1=0x02;
 267   1              BRGR0=0xF0;                             // setup BRG for 4800 baud @ 7.373MHz internal RC oscillator
 268   1              BRGR1=0x05;
 269   1              BRGCON=0X03;
 270   1      
 271   1              
 272   1      }
 273          /*********************************************************
 274          *主程序
 275          ************************************************************/
 276          
 277          void main(void)
 278          {       char i;
 279   1              IoInit();     //初始化I/O口
 280   1              IspInit();     //初始化ISP
 281   1              EX1=1;         //允许计数脉冲中断
 282   1              IT1=1;         //边沿触发
 283   1              EA=1;
 284   1              ES=1;
 285   1              PS=1;
 286   1              init_lcm();
 287   1          ACC = 0;
 288   1              i=1;
 289   1              led1=1 ;
 290   1              GPS_STATUS=0;
 291   1              GPS_DATA_POINT=0;
 292   1      //      init1302();
 293   1              hour24();
 294   1              sendCMD(DDRAM_0);
 295   1              sendCMD(off_cursor);
 296   1              while(1)
 297   1              {
 298   2                      delay(500);
 299   2                      if(i==1)
 300   2                      {       led1=1;
 301   3                              i=0;
 302   3                              send_title_up();        
 303   3                      }
C51 COMPILER V7.50   GT                                                                    10/28/2005 21:31:12 PAGE 6   

 304   2                      else
 305   2                      {       led1=0;
 306   3                              i=1;
 307   3                              send_title_down();      
 308   3                      }
 309   2              }
 310   1      }
 311          /*********************************************************/
 312          
 313          /************************************************************/
 314          void newdelay(void)
 315          {char i;
 316   1      for(i=0;i<0x0ee;i++);
 317   1      }
 318          
 319          void sendBYTE(char dat)
 320          {
 321   1              char i;
 322   1              for(i=0;i<8;i++)
 323   1              { SCLK=0;
 324   2              if((dat&0x80)!=0)
 325   2                      {SID=1;}
 326   2              else
 327   2                      {SID=0; }
 328   2              SCLK=1;
 329   2              dat=dat<<1;
 330   2              }
 331   1      }
 332          
 333          void sendCMD(char dat)
 334          {
 335   1      sendBYTE(0xf8);
 336   1      delay(10);
 337   1      sendBYTE(dat&0xf0);
 338   1      delay(10);
 339   1      sendBYTE((dat<<4)&0xf0);
 340   1      delay(10);
 341   1      }
 342          
 343          void sendDAT(char dat)
 344          {
 345   1      sendBYTE(0xfa);
 346   1      delay(10);
 347   1      sendBYTE(dat&0xf0);
 348   1      delay(10);
 349   1      sendBYTE((dat<<4)&0xf0);
 350   1      delay(10);
 351   1      }
 352          
 353          void display(char x_add,char dat,char dat1)
 354          {
 355   1      sendCMD(x_add);
 356   1      sendDAT(dat);
 357   1      sendDAT(dat1);
 358   1      }
 359          
 360          void init_lcm(void)
 361          {
 362   1      sendCMD(0x30);
 363   1      sendCMD(0x04);
 364   1      sendCMD(0x0f);
 365   1      sendCMD(0x01);
C51 COMPILER V7.50   GT                                                                    10/28/2005 21:31:12 PAGE 7   

 366   1      sendCMD(0x02);
 367   1      delay(10);
 368   1      led2=0;
 369   1      }
 370          void send_title_up()
 371          {
 372   1              unsigned char day,month,date,year;
 373   1              unsigned char dayl,monthl,datel,yearl;
 374   1              unsigned char dayh,monthh,dateh,yearh;
 375   1              uchar i,k;
 376   1              sendCMD(DDRAM_0);
 377   1              sendCMD(off_cursor);
 378   1      /*      day=R1302(0x87);
 379   1              month=R1302(0x89);
 380   1              date=R1302(0x8b);
 381   1              year=R1302(0x8d);
 382   1              dayh=(day>>4)&0x03;
 383   1              dayl=day&0x0f;
 384   1              monthh=(month>>4)&0x01;
 385   1              monthl=month&0x0f;
 386   1              dateh=(date>>4)&0x0f;
 387   1              datel=date&0x0f;
 388   1              yearh=(year>>4)&0x0f;
 389   1              yearl=year&0x0f;
 390   1              sendDAT('2');
 391   1              sendDAT('0');
 392   1              sendDAT(BCD2ASC(yearh));
 393   1              sendDAT(BCD2ASC(yearl));
 394   1              sendDAT('-');
 395   1              sendDAT(BCD2ASC(monthh));
 396   1              sendDAT(BCD2ASC(monthl));
 397   1              sendDAT('-');
 398   1              sendDAT(BCD2ASC(dayh));
 399   1              sendDAT(BCD2ASC(dayl));
 400   1              display(0x85,0xd0,0xc7);
 401   1              display(0x86,0xc6,0xda);
 402   1              sendDAT(BCD2ASC(datel));  */
 403   1              if (GPS_STATUS==999)
 404   1              {
 405   2                      for(i=0; i<15; i++)
 406   2                      {
 407   3                              sendDAT(GPS_DATA[i+1]); 
 408   3                      }
 409   2              }
 410   1              led3=0;
 411   1      }
*** WARNING C280 IN LINE 372 OF GT.C: 'day': unreferenced local variable
*** WARNING C280 IN LINE 372 OF GT.C: 'month': unreferenced local variable
*** WARNING C280 IN LINE 372 OF GT.C: 'date': unreferenced local variable
*** WARNING C280 IN LINE 372 OF GT.C: 'year': unreferenced local variable
*** WARNING C280 IN LINE 373 OF GT.C: 'dayl': unreferenced local variable
*** WARNING C280 IN LINE 373 OF GT.C: 'monthl': unreferenced local variable
*** WARNING C280 IN LINE 373 OF GT.C: 'datel': unreferenced local variable
*** WARNING C280 IN LINE 373 OF GT.C: 'yearl': unreferenced local variable
*** WARNING C280 IN LINE 374 OF GT.C: 'dayh': unreferenced local variable
*** WARNING C280 IN LINE 374 OF GT.C: 'monthh': unreferenced local variable
*** WARNING C280 IN LINE 374 OF GT.C: 'dateh': unreferenced local variable
*** WARNING C280 IN LINE 374 OF GT.C: 'yearh': unreferenced local variable
*** WARNING C280 IN LINE 375 OF GT.C: 'k': unreferenced local variable
 412          void send_title_down()
 413          {
 414   1              unsigned char sec,min,hr;
C51 COMPILER V7.50   GT                                                                    10/28/2005 21:31:12 PAGE 8   

 415   1              unsigned char secl,minl,hrl;
 416   1              unsigned char sech,minh,hrh;
 417   1              sendCMD(DDRAM_1);
 418   1              sendCMD(off_cursor);
 419   1              sec=R1302(0x81);
 420   1              min=R1302(0x83);
 421   1              hr=R1302(0x85);
 422   1              sech=(sec>>4)&0x0f;
 423   1              secl=sec&0x0f;
 424   1              minh=(min>>4)&0x0f;
 425   1              minl=min&0x0f;
 426   1              hrh=(hr>>4)&0x03;
 427   1              hrl=hr&0x0f;
 428   1              sendDAT(BCD2ASC(hrh));
 429   1              sendDAT(BCD2ASC(hrl));
 430   1              sendDAT(':');
 431   1              sendDAT(BCD2ASC(minh));
 432   1              sendDAT(BCD2ASC(minl));
 433   1              sendDAT(':');
 434   1              sendDAT(BCD2ASC(sech));
 435   1              sendDAT(BCD2ASC(secl));
 436   1              led3=1;
 437   1      }          
 438          void   init1302(void)
 439          {
 440   1              W1302(0x8e,0x00);  //写保护打开
 441   1              W1302(0x8c,0x05);  //年05
 442   1              W1302(0x8a,0x01);  //星期06
 443   1              W1302(0x88,0x10);  //月10
 444   1              W1302(0x86,0x27);  //日27
 445   1              W1302(0x84,0x18);  //24小时制,18时
 446   1              W1302(0x82,0x11);  //分钟09
 447   1              W1302(0x80,0x00);  //启动时钟,00秒
 448   1              W1302(0x8f,0x80);  //写保护关闭
 449   1      }
 450          void   hour24(void)
 451          {
 452   1              W1302(0x8e,0x00);  //写保护打开
 453   1              W1302(0x84,0x7f&R1302(0x85));  //24小时制
 454   1      //      W1302(0x84,0x21);  //24小时制,21时
 455   1              W1302(0x8f,0x80);  //写保护关闭
 456   1      }
 457          void   hour12(void)
 458          {
 459   1              W1302(0x8e,0x00);  //写保护打开
 460   1              W1302(0x84,0x80|R1302(0x85));  //12小时制
 461   1              W1302(0x8f,0x80);  //写保护关闭
 462   1      }

⌨️ 快捷键说明

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