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

📄 us100test.lst

📁 避障模块
💻 LST
📖 第 1 页 / 共 2 页
字号:
 191   1                      tempa = 0;
 192   1      
 193   1              Decade = tempa/10;
 194   1              Unit = tempa%10;
 195   1      
 196   1              if(FlagPosi == 0)
 197   1                      DisplayLED(6, 10, 0);
 198   1              DisplayLED(7, Decade, 0);
 199   1              DisplayLED(8, Unit, 0);
 200   1      }
 201          
 202          
 203          unsigned long MeterByTrig()
 204          {
 205   1              unsigned char tempa;
 206   1              unsigned char IsOverFlow;
 207   1              unsigned long PresentTime, tempb;
 208   1              IsOverFlow = 0;
 209   1      
 210   1              //Delay1Ms();
 211   1      
 212   1              P1M1 &= 0X7F;
 213   1              P1M2 &= 0X7F;
 214   1      
 215   1              P1M1 |= 0X40;
 216   1              P1M2 &= 0XBF;
 217   1      
 218   1      
 219   1              //Timer Init
 220   1              TMOD = 0X11;
 221   1              TAMOD = 0X00;
 222   1              TCON = 0X00;
 223   1              TH1 = 0;
 224   1              TL1 = 0;
 225   1      
 226   1              Trig_Pin = 0;
 227   1              for(tempa = 0; tempa < 10; tempa++)
 228   1              {
 229   2                      Trig_Pin = 1;
 230   2              }
 231   1              Trig_Pin = 0;
 232   1      
 233   1              while(1)
 234   1              {
 235   2                      if(Echo_Pin == 1)
 236   2                      {//Start Timer;
 237   3                              TCON = 0X40;//start timer
 238   3                              break;
 239   3                      }
 240   2                      if(TCON&0X80)
C51 COMPILER V7.06   US100TEST                                                             12/27/2010 10:30:28 PAGE 5   

 241   2                      {
 242   3                              IsOverFlow = 1;
 243   3                              break;//overflow;
 244   3                      }
 245   2              }
 246   1      
 247   1              while(1)
 248   1              {
 249   2                      if(Echo_Pin == 0)
 250   2                      {//Stop Timer;
 251   3                              TCON = 0X00;
 252   3                              break;
 253   3                      }
 254   2                      if(TCON&0X80)
 255   2                      {
 256   3                              IsOverFlow = 1;
 257   3                              break;//overflow;
 258   3                      }
 259   2              }
 260   1      
 261   1      //      unsigned long PresentTime, tempb;
 262   1              PresentTime = TH1;
 263   1              PresentTime <<= 0X08;
 264   1              PresentTime += TL1;
 265   1      
 266   1              tempb = PresentTime/137;
 267   1              PresentTime /= 7;//*3
 268   1      
 269   1              PresentTime -= tempb;//time, us
 270   1      
 271   1              tempb = PresentTime/150;
 272   1              PresentTime /= 3;
 273   1              PresentTime += tempb;
 274   1              //Delay1Ms();
 275   1              return PresentTime;
 276   1      }
 277          
 278          //MeterByTrig()
 279          
 280          void MeterLenByUART()
 281          {
 282   1              RcvIndex = 0;
 283   1              UARTSnd(0X55);
 284   1      }
 285          
 286          void MeterTempByUART()
 287          {
 288   1              RcvIndex = 100;
 289   1              UARTSnd(0X50);
 290   1      }
 291          
 292          void main(void)
 293          {
 294   1              unsigned char TestMode, tempa;
 295   1              unsigned long PreLength;
 296   1      
 297   1              InitIOPort();
 298   1              UART_init();
 299   1              TestMode = GetPreMode();
 300   1      
 301   1              if(TestMode == 1)//Trig mode
 302   1              {
C51 COMPILER V7.06   US100TEST                                                             12/27/2010 10:30:28 PAGE 6   

 303   2                      while(1)
 304   2                      {
 305   3                              PreLength = MeterByTrig();
 306   3                              for(tempa = 0; tempa < 200; tempa++)
 307   3                              {
 308   4                                      DisplayLength(PreLength);
 309   4                              }
 310   3                      }
 311   2              }
 312   1              if(TestMode == 2)//UART Length
 313   1              {       
 314   2                      GLengthHigh = 0;
 315   2                      GLengthLow = 0;
 316   2                      while(1)
 317   2                      {
 318   3                              MeterLenByUART();// meter length, and set PreLength.
 319   3                              for(tempa = 0; tempa < 100; tempa++)//display Length
 320   3                              {
 321   4                                      PreLength = GLengthHigh;
 322   4                                      PreLength <<= 8;
 323   4                                      PreLength += GLengthLow;
 324   4                                      DisplayLength(PreLength);
 325   4                              }
 326   3                      }
 327   2              }
 328   1              if(TestMode == 3)//UART Temperature
 329   1              {
 330   2                      while(1)
 331   2                      {
 332   3                              MeterTempByUART();// meter Temperatur, and set GTempera.
 333   3                              for(tempa = 0; tempa < 100; tempa++)//display temperatur
 334   3                              {
 335   4                                      DisplayTemperature(GTempera);
 336   4                              }
 337   3                      }
 338   2              }
 339   1      
 340   1      
 341   1      
 342   1              while(1);
 343   1      
 344   1      
 345   1      }
 346          
 347          
 348          //1ms延时
 349          void Delay1Ms(void)
 350          {
 351   1       unsigned long TempCyc = 90;//36865;//5552;
 352   1       while(TempCyc--);
 353   1      }
 354          //5ms延时
 355          void Delay5Ms(void)
 356          {
 357   1       unsigned long TempCyc = 460;//36865;//5552;
 358   1       while(TempCyc--);
 359   1      }
 360          
 361          //400ms延时
 362          void Delay400Ms(void)
 363          {
 364   1       unsigned char TempCycA = 80;//5;
C51 COMPILER V7.06   US100TEST                                                             12/27/2010 10:30:28 PAGE 7   

 365   1       unsigned long TempCycB;
 366   1       while(TempCycA--)
 367   1       {
 368   2        TempCycB=460;//50000; //7269;
 369   2        while(TempCycB--);
 370   2       };
 371   1      
 372   1      }
 373          
 374          


MODULE INFORMATION:   STATIC OVERLAYABLE
   CODE SIZE        =   1087    ----
   CONSTANT SIZE    =     11    ----
   XDATA SIZE       =   ----    ----
   PDATA SIZE       =   ----    ----
   DATA SIZE        =      5      51
   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 + -