找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 3420|回复: 0
收起左侧

2003智能小车程序(全国大学生电子设计竞赛)

[复制链接]
ID:200281 发表于 2017-5-15 13:19 | 显示全部楼层 |阅读模式
分享一套智能小车程序
0.png

单片机源程序如下:
  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)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

快速回复 返回顶部 返回列表