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

📄 uart.lst

📁 C8051F120与串口、并口、D12、USB、LCD应用
💻 LST
📖 第 1 页 / 共 2 页
字号:
 170   2      
 171   2                      if(CheckKeyF==1)                                                        //键盘检测           
 172   2                  {           
 173   3                              CheckKey();
 174   3                      CheckKeyF=0;
 175   3                  }   
 176   2      
 177   2                      if (URP > DSP)                                                          //检测新接收数据
 178   2                      {
 179   3                              if(Disflag==1)                                                  //是否需要显示
C51 COMPILER V7.01  UART                                                                   06/30/2007 11:42:50 PAGE 4   

 180   3                              {
 181   4                                      if(UartParaList[1]==0)
 182   4                                              DSP=tprintf(X,Y,DSP);   
 183   4                                      else
 184   4                                      {
 185   5                                              Hexprintf(X,Y,DSP);
 186   5                                              DSP++;
 187   5                                      }
 188   4                                      if(F)                                                           //写满了一页
 189   4                                      {
 190   5                                              Disflag=0;                                              //关显示
 191   5                                              if(UartParaList[1]==1)  DSP--;
 192   5                                              p[currentp+1]=DSP;                              //记录下页地址
 193   5                                              dprintf(6,224,DownArrow);       
 194   5                                      }
 195   4                              }
 196   3      
 197   3                              if(RCounter!=(URP-Mydata))                              //显示接收字节数
 198   3                              {
 199   4                                      RCounter=(URP-Mydata);
 200   4                                      if(RCounter==MAXLEN-1)                          //数据区满
 201   4                                      {
 202   5                                              Udprintf(20,208,"接收区已满(2k字节)");
 203   5                                              SFRPAGE_SAVE=SFRPAGE;                   //关掉UART      
 204   5                                              SFRPAGE=UART0_PAGE;
 205   5                                              REN0=0;
 206   5                                              SFRPAGE=SFRPAGE_SAVE;
 207   5                                      }
 208   4                                      else                                                            //刷新数字                              
 209   4                                      {
 210   5                                              char buf[10];
 211   5                                              sprintf(buf,"%d",RCounter);
 212   5                                              Udprintf(32,208,buf);
 213   5                                      }
 214   4                              }
 215   3                      }
 216   2      
 217   2                      if(Key[1].pressed==1)                           //检测到下键
 218   2                      {
 219   3                              if(p[currentp+1]!=Mydata)               //可以向下翻页
 220   3                              {
 221   4                                      currentp++;
 222   4                                      Clear(0,208);
 223   4                                      dprintf(1,224,UpArrow);
 224   4                                      if(UartParaList[1]==0)
 225   4                                      {
 226   5                                              DSP=tprintf(0,0,p[currentp]);
 227   5                                              if(F==0)                                        //写完了,未写满一页,等待接收显示新数据
 228   5                                              {
 229   6                                                      Disflag=1;
 230   6                                                      dprintf(6,224,"  ");
 231   6                                              }
 232   5                                              else                                            //该页已写满                     
 233   5                                              {
 234   6                                                      Disflag=0;
 235   6                                                      p[currentp+1]=DSP;
 236   6                                                      dprintf(6,224,DownArrow);
 237   6                                              }
 238   5                                      }
 239   4                                      if(UartParaList[1]==1)
 240   4                                      {
 241   5                                              dprintf(6,224,"  ");
C51 COMPILER V7.01  UART                                                                   06/30/2007 11:42:50 PAGE 5   

 242   5                                              DSP=p[currentp];
 243   5                                              Disflag=1;
 244   5                                              F=0;
 245   5                                              X=0;
 246   5                                              Y=0;
 247   5                                      }
 248   4                              }
 249   3                              Key[1].pressed=0;
 250   3                      }
 251   2      
 252   2                      if(Key[0].pressed==1)                           //向上翻页
 253   2                      {
 254   3                              if(currentp>0)                                  //可以向上翻页
 255   3                              {
 256   4                                      currentp--;
 257   4                                      Clear(0,208);
 258   4                                      if(currentp>0)
 259   4                                      {
 260   5                                              dprintf(1,224,UpArrow);
 261   5                                      }
 262   4                                      else
 263   4                                      {
 264   5                                              dprintf(1,224,"  ");
 265   5                                      }
 266   4                                      dprintf(6,224,DownArrow);
 267   4                                      if(UartParaList[1]==0)
 268   4                                      tprintf(0,0,p[currentp]);
 269   4                                      if(UartParaList[1]==1)
 270   4                                      {
 271   5                                              Disflag=1;
 272   5                                              DSP=p[currentp];
 273   5                                              F=0;
 274   5                                              X=0;
 275   5                                              Y=0;
 276   5                                      }
 277   4                              }
 278   3                              Key[0].pressed=0;
 279   3                      }
 280   2      
 281   2                      if(Key[5].pressed==1)                   //暂停
 282   2                      {
 283   3                              char temp;
 284   3                              SFRPAGE_SAVE=SFRPAGE;                   //切换Uart开关  
 285   3                              SFRPAGE=UART0_PAGE;
 286   3                              REN0=~REN0;
 287   3                              temp=REN0;
 288   3                              SFRPAGE=SFRPAGE_SAVE;
 289   3                              if(temp==0)                                             //当前为暂停状态
 290   3                              {
 291   4                                      Udprintf(16,224,"暂停接收");
 292   4                                      dprintf(26,224,"继续");
 293   4                              }
 294   3                              else                                                    //当前为接收状态                        
 295   3                              {
 296   4                                      dprintf(16,224,"        ");
 297   4                                      dprintf(26,224,"暂停");
 298   4                              }
 299   3                              Key[5].pressed=0;
 300   3                      }
 301   2              
 302   2                      if(Key[7].pressed==1)                   //退出串口模块
 303   2                      {
C51 COMPILER V7.01  UART                                                                   06/30/2007 11:42:50 PAGE 6   

 304   3                              ClearKey();                                             //清按键
 305   3                              Clear(0,240);                                   //清屏幕
 306   3                              SFRPAGE_SAVE=SFRPAGE;                                   
 307   3                              SFRPAGE=UART0_PAGE;
 308   3                              REN0=0;                                                 //关闭Uart接受
 309   3                              TR1=0;                                                  //关T1
 310   3                              SFRPAGE=SFRPAGE_SAVE;
 311   3                              return;
 312   3                      }
 313   2                      
 314   2                      if(UartParaList[2]==0)                          //数据返回
 315   2                      {               
 316   3                              if(UBUSY==0)                                    //Uart发送空闲
 317   3                              {
 318   4                                      if( USP<URP )                           //有字节需要发送
 319   4                                      {
 320   5                                              UBUSY=1;                                //Uart忙
 321   5                                              SFRPAGE_SAVE=SFRPAGE;                                   
 322   5                                              SFRPAGE=UART0_PAGE;     
 323   5                                              TI0=1;                                  //进入发送中断
 324   5                                              SFRPAGE=SFRPAGE_SAVE;
 325   5                                      }
 326   4                              }
 327   3                      }                                       
 328   2              }
 329   1      }


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1852    ----
   CONSTANT SIZE    =    357    ----
   XDATA SIZE       =   2011      91
   PDATA SIZE       =   ----    ----
   DATA SIZE        =   ----    ----
   IDATA SIZE       =   ----    ----
   BIT SIZE         =   ----    ----
END OF MODULE INFORMATION.


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

⌨️ 快捷键说明

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