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

📄 main.lst

📁 这个文档程序主要应用了单片机的串行通讯部分
💻 LST
📖 第 1 页 / 共 4 页
字号:
 632   3                              lcd_prt_char(26,'w');
 633   3                              lcd_prt_letter(28,0x18,0);
 634   3                              lcd_prt_letter(29,0x1f,0);
 635   3                              lcd_prt_char(48,'W');//“本地端口”
 636   3                              lcd_prt_char(50,'X');
 637   3                              lcd_prt_char(52,'Y');
 638   3                              lcd_prt_char(54,'T');
 639   3                              lcd_prt_char(60,'Z');//“远程端口”
 640   3                              lcd_prt_char(62,'w');
 641   3                              lcd_prt_char(64,'Y');
 642   3                              lcd_prt_char(66,'T');
 643   3                              lcd_prt_char(72,'j');//“退出”
 644   3                              lcd_prt_char(74,'k');//
 645   3                              lcd_prt_char(79,'v');//“→”
 646   3                              lcd_prt_letter(86,0x30,0);//“+_”
 647   3                              lcd_prt_char(92,'G');//“配置”
 648   3                              lcd_prt_char(94,'H');
 649   3                      }
 650   2                      else
 651   2                      {
 652   3                              //终端号
 653   3                              lcd_prt_letter(6,(gprsres[8]>>4)&0x0f,gprsturner==6);
 654   3                              lcd_prt_letter(7,gprsres[8]&0x0f,gprsturner==7);
 655   3                              lcd_prt_letter(8,(gprsres[9]>>4)&0x0f,gprsturner==8);
 656   3                              lcd_prt_letter(9,gprsres[9]&0x0f,gprsturner==9);
 657   3                              //远程IP
 658   3                              num=gprsres[0];
 659   3                              adisplaygprs(30-1,num,1);//留出千位,,位置内部自加一
 660   3                              lcd_prt_letter(33,0x2f,0);
 661   3                              num=gprsres[1];
 662   3                              adisplaygprs(34-1,num,1);
 663   3                              lcd_prt_letter(37,0x2f,0);
 664   3                              num=gprsres[2];
 665   3                              adisplaygprs(38-1,num,1);
 666   3                              lcd_prt_letter(41,0x2f,0);
 667   3                              num=gprsres[3];
 668   3                              adisplaygprs(42-1,num,1);
 669   3                              //本地端口
 670   3                              num=(gprsres[6]*256+gprsres[7]);
 671   3                              adisplaygprs(56,num,0);
 672   3                              //远程端口
 673   3                              num=(gprsres[4]*256+gprsres[5]);
 674   3                              adisplaygprs(68,num,0);
 675   3                      }
C51 COMPILER V8.02   MAIN                                                                  09/16/2008 10:53:22 PAGE 12  

 676   2              }
 677   1              else
 678   1              {
 679   2                      if(gprsturner==100)
 680   2                      {
 681   3                              gprsturner=133;
 682   3                              clrscr(0);clrscr(1);clrscr(2);
 683   3                              lcd_prt_char(0,'Z'+1);//“显示IP”
 684   3                              lcd_prt_char(2,'Z'+2);
 685   3                              lcd_prt_letter(4,0x18,0);
 686   3                              lcd_prt_letter(5,0x1f,0);
 687   3                              lcd_prt_char(24,'I');//“心跳时间”
 688   3                              lcd_prt_char(26,'J');
 689   3                              lcd_prt_char(28,'K');
 690   3                              lcd_prt_char(30,'L');
 691   3                              lcd_prt_char(72,'j');//“退出”
 692   3                              lcd_prt_char(74,'k');//
 693   3                              lcd_prt_char(79,'v');//“→”
 694   3                              lcd_prt_letter(86,0x30,0);//“+_”
 695   3                              lcd_prt_char(92,'G');//“配置”
 696   3                              lcd_prt_char(94,'H');
 697   3                      }
 698   2                      else
 699   2                      {
 700   3                              //显示IP
 701   3                              num=gprsres[10];
 702   3                              adisplaygprs(6-1,num,1);//留出千位,,位置内部自加一
 703   3                              lcd_prt_letter(9,0x2f,0);
 704   3                              num=gprsres[11];
 705   3                              adisplaygprs(10-1,num,1);
 706   3                              lcd_prt_letter(13,0x2f,0);
 707   3                              num=gprsres[12];
 708   3                              adisplaygprs(14-1,num,1);
 709   3                              lcd_prt_letter(17,0x2f,0);
 710   3                              num=gprsres[13];
 711   3                              adisplaygprs(18-1,num,1);
 712   3                              //心跳时间
 713   3                              num=gprsres[15]*5;
 714   3                              adisplaygprs(32,num,0);
 715   3                      }
 716   2              }
 717   1      
 718   1      }
 719          /************************************定时器0********************************/
 720          //定时器0初始化,,用于时间机制   
 721          void time0_init(void)
 722          {
 723   1              TMOD&=0xf0;
 724   1              TMOD|=0x01;//T0工作方式1
 725   1              
 726   1              TL0=0x00;//初值28672
 727   1              TH0=0x70;
 728   1      
 729   1              TR0=1;
 730   1      }
 731          
 732          /************************************时间机制*******************************/
 733          void time_manager(void)
 734          {
 735   1              //uchar *ptr;
 736   1              //重设定时值
 737   1              TF0=0;
C51 COMPILER V8.02   MAIN                                                                  09/16/2008 10:53:22 PAGE 13  

 738   1              TL0+=0x00;
 739   1              TH0+=0x70;
 740   1              
 741   1              //下面是时间处理,,24h为一个循环
 742   1              timer++;
 743   1              if(timer==50)
 744   1              {
 745   2                      timer=0;
 746   2                      second++;                               
 747   2                      if(second==60)
 748   2                      {
 749   3                              second=0;
 750   3                              minute++;
 751   3                              if(minute==60)
 752   3                              {
 753   4                                      minute=0;
 754   4                                      hour++;
 755   4                                      if(hour==24)
 756   4                                      {
 757   5                                              second=0;
 758   5                                              minute=0;
 759   5                                              hour=0;
 760   5                                      }
 761   4                              }
 762   3                      }
 763   2              }
 764   1              //下面开始检测
 765   1              //gprs回复检测
 766   1              if(gprscarryf)
 767   1              {
 768   2                      if((signed char)(second-gprssendtime)>3||(signed char)(gprssendtime-second)>3)
 769   2                      {gprscarryf=0;gprslostf=1;}
 770   2              }
 771   1              //数据接收检测          
 772   1              if(slimitf)//间隔小于一秒的数据将被认为是同一串数据
 773   1              {
 774   2                      
 775   2                      if((signed char)(second-secondcopy)>1||(signed char)(secondcopy-second)>1)
 776   2                      {
 777   3                              slimitf=0;//解除秒检测                  
 778   3                              temp[datacounter++]=0xee;//写结束码,,这里要求收到数据小于253,,不然会出错
 779   3                              temp[datacounter++]=0xee;
 780   3                              temp[datacounter++]=0xee;
 781   3      
 782   3                              if(gprscarryf)
 783   3                              {
 784   4                                      
 785   4                                      storegprsnews();
 786   4                                      datacounter=0;//计数复位,,准备接收新数据
 787   4                                      gprscarryf=0;gprsresf=1;//
 788   4                                      
 789   4      
 790   4                              }
 791   3                              else
 792   3                              {
 793   4                                      newnewsf=1;//设置收到数据标志
 794   4                                      storenews();//内部标志了newnewsf0或者newnewsf1或者newnewsf2                     
 795   4                                      datacounter=0;//计数复位,,准备接收新数据
 796   4                                      scrfreshf=1;
 797   4                              }
 798   3                                                      
 799   3                              //usemark++;
C51 COMPILER V8.02   MAIN                                                                  09/16/2008 10:53:22 PAGE 14  

 800   3                              //if(usemark==3)usemark=0;
 801   3                      }
 802   2              }
 803   1              //消息显示检测
 804   1              if(mlimitf)
 805   1              {
 806   2                      if((signed char)(minute-minutecopy)>1||(signed char)(minutecopy-minute)>1)
 807   2                      {mlimitf=0;state=0x00;oldnewsf=1;scrfreshf=1;}//解除分检测
 808   2              }
 809   1      }
 810          
 811          
 812          /**********************************设备初始化*******************************/
 813          //所有设备初始化
 814          void device_init(void)
 815          {
 816   1              WDT_CONTR=0x3f;//开启看门狗
 817   1              time0_init();
 818   1              lcd_init();//液显初始化
 819   1              serial_init();//串口初始化
 820   1      }
 821          /************************************纠错程序*******************************/
 822          //纠错程序
 823          /*void rectify(void)
 824          {
 825                  //标志位
 826                  
 827                  lcd_prt_letter(0,ti,0);
 828          }*/


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   8898    ----
   CONSTANT SIZE    =   2529    ----
   XDATA SIZE       =    256    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =     18      41
   IDATA SIZE       =    125    ----
   BIT SIZE         =     20    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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