标题: 2003智能小车程序(全国大学生电子设计竞赛) [打印本页]

作者: LLLBBB    时间: 2017-5-15 13:19
标题: 2003智能小车程序(全国大学生电子设计竞赛)
分享一套智能小车程序


单片机源程序如下:
  1. #include<reg51.h>
  2. #include"Config.h"
  3. #include"IOCfg.c"
  4. #include"TimeDLY.h"
  5. #include"StepMot.h"
  6. #include"Follow.h"
  7. #include"LightDTC.h"
  8. #include"MetalDTC.h"
  9. #include"SegDisp.h"
  10. #include"UltraDTC.h"

  11. INT32U  RunTime=0;  //运行时间
  12. INT8U   MetalNum=0; //直道的金属块数目

  13. void InitIO()
  14. {
  15.         LMot_AP=0;LMot_AN=0;LMot_BP=0;LMot_BN=0;
  16.         RMot_AP=0;RMot_AN=0;RMot_BP=0;RMot_BN=0;
  17.         Follow_L=1;Follow_M=1;Follow_R=1;
  18.         Metal_DTC=1;
  19.         UltraDTC_TR=0;UltraDTC_RE=1;
  20.         LightDTC_L=1;LightDTC_M=1;LightDTC_R=1;
  21.         Guide=0;
  22.         DS1CS=0;DS0CS=0;P2=0x00;
  23.         }
  24.        
  25. void main()
  26. {
  27.         INT8U i;
  28.         InitIO();
  29.         LMotRun(LSPEED);
  30.         RMotRun(LSPEED);
  31.         TMOD = TMOD | 0x20 ;        //T1 工作在方式2(8位计数器,自动重载)
  32.         TH1 = 0x00;
  33.         TL1 = 0x9B;
  34.         EA  = 1;
  35.         ET1 = 1;
  36.         TR1 = 1;
  37.         while(1)
  38.         {
  39.                 do //直道运行时间小于20秒,实际约为15秒
  40.                 {
  41.                         Follow();
  42.                         if(Metal_Detec()) MetalNum++;
  43.                         Seg_Disp((INT8U)(RunTime/10000));
  44.                         }
  45.                 while(RunTime<200000);
  46.                 do
  47.                 {
  48.                         Follow();
  49.                         Seg_Disp((INT8U)(RunTime/10000));
  50.                         }
  51.                 while(Metal_DTC != 1);
  52.                 //达到C点,停留5s,断续声光指示
  53.                 LMotStop();
  54.                 RMotStop();
  55.                 for(i=0;i<5;i++)
  56.                 {
  57.                         Guide = 1;
  58.                         T0_Delay(5000);
  59.                         Guide = 0;
  60.                         T0_Delay(5000);
  61.                         }
  62.                 do //进入障碍区
  63.                 {
  64.                         Ultra_DTC();
  65.                         Seg_Disp((INT8U)(RunTime/10000));
  66.                         }
  67.                 while(RunTime<500000);
  68.                 do //进入停车区
  69.                 {
  70.                         Light_DTC();
  71.                         Seg_Disp((INT8U)(RunTime/10000));
  72.                         }
  73.                 while(RunTime<800000);
  74.                         //停车
  75.                 LMotRun(HSPEED);
  76.                 RMotRun(HSPEED);
  77.                 LDelay(20000);
  78. ……………………

  79. …………限于本文篇幅 余下代码请从51黑下载附件…………
复制代码

所有资料51hei提供下载:
智能小车.rar (44.83 KB, 下载次数: 15)







欢迎光临 (http://www.51hei.com/bbs/) Powered by Discuz! X3.1