标题: 51单片机智能循迹小车仿真图+元件清单+程序和原理图 [打印本页]

作者: a664254710    时间: 2017-8-31 10:16
标题: 51单片机智能循迹小车仿真图+元件清单+程序和原理图

智能循迹小车仿真原理图如下(proteus仿真工程文件可到本帖附件中下载)



电路原理图:


元件清单:
Part  TypeDesignatorDescription
1N5822D7Schottky Diode
4148   *  8个D11Diode
4007
D1Diode整流二极管1N4007



3KR2电阻
5.1K   *  12个R12电阻
150   *  5个R18电阻
620
R25电阻
100
R3电阻
10K   *  6个RV1电位器



89C52U2单片机






1000uF/25VC13Electrolytic Capacitor
100uF/25VC4Electrolytic Capacitor



100uHL1电感






LED红和黄各一个LED2LED2



LM2576-5.0U1开头稳压
7812   *  2个U14三端固定稳压器



L298D10驱动芯片
LM393   *  3个U4LM393



12V电机  *  2个MG1



RPR220   *  6个U9光电探测器






12V蓄电池JP1
开关按钮  *  5个S1  



两个轮子和万向轮


单片机源程序如下:
  1. #include<reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. uchar temp,signal,tt1;


  5. void delay_1ms(uint d)
  6. {
  7.         uint i;
  8.         while(d--)
  9.                 for(i=0;i<75;i++);
  10. }

  11. void motor_run()                   //电机起动
  12. {
  13.           P1=0x35;
  14.         delay_1ms(150);
  15.         P1=0x00;
  16.         delay_1ms(20);
  17. /*        ENA=1;

  18.         OUT1=0;

  19.         OUT2=1;
  20.         delay_1ms(800);
  21.         OUT2=0;
  22.         delay_1ms(200);
  23.        
  24.         ENB=1;

  25.         OUT4=0;

  26.         OUT3=1;
  27.         delay_1ms(800);
  28.         OUT3=0;
  29.         delay_1ms(200);
  30. */
  31. }
  32. void motor_left()                         //左进
  33. {
  34.         P1=0x30;
  35.         delay_1ms(150);
  36.         P1=0x00;
  37.         delay_1ms(20);
  38. }

  39. void motor_right()                   //右进
  40. {
  41.         P1=0x05;
  42.         delay_1ms(150);
  43.         P1=0x00;
  44.         delay_1ms(20);
  45. }

  46. void motor_big_right()                         //粗右进
  47. {
  48.         P1=0x55;
  49.         delay_1ms(150);
  50.         P1=0x00;
  51.         delay_1ms(20);
  52. }
  53. void motor_big_left()
  54. {
  55.         P1=0x33;
  56.         delay_1ms(150);
  57.         P1=0x00;
  58.         delay_1ms(20);
  59. }
  60. void motor_stop()                                        //电机停止
  61. {
  62.          P1=0x00;
  63. }
  64. void motor_back()
  65. {
  66.         P1=0x53;
  67. }
  68. void main()
  69. {
  70.         tt1=0;
  71.         EA=1;
  72.         ET1=1;
  73.         TR1=1;
  74.         TMOD=0x01;
  75.         TH1=-(1000/256);
  76.         TL1=-(1000%256);
  77.         while(1)
  78.         {

  79.                  temp=P2;
  80.                 signal=temp&0xff;                   //得到红外反向信号
  81.                 switch(signal)
  82.                 {
  83.                         case 0xff:           //无偏差
  84.                                 motor_run();
  85.                                 break;
  86.                         case 0xfd:           //1轮右偏                       

  87.                                 motor_left();
  88.                                 break;
  89.                         case 0xef:            //4轮左偏                          

  90.                                 motor_right();
  91.                                 break;
  92.                         case 0xfb:     //2轮右偏出轨
  93.                         case 0xf9:           //1、2轮右偏                                               
  94.                                 motor_big_left();
  95. //                                delay_1ms(10);
  96.                                 break;

  97.                         case 0xdf:           //5左偏出轨                          
  98.                         case 0xcf:      //4、5轮左偏
  99.                                 motor_big_right();
  100. //                                delay_1ms(10);
  101.                                 break;

  102.                         case 0xfe:           //0最右偏出轨          
  103.                         case 0xfa:
  104.                                 motor_big_left();
  105. //                                delay_1ms(10);
  106.                                 break;

  107.                         case 0xbf:     //6最左偏出轨          
  108.                         case 0x9f:          
  109.                                 motor_big_right();
  110. //                                delay_1ms(10);
  111.                                 break;       
  112.                        
  113.                         case 0xeb:         //前两传感器压在黑线上
  114.                         case 0xdb:         //后两传感器压在黑线上
  115.                         case 0xbe:         //中间两传感器压在黑线上
  116.                         case 0xac:                 //前四传感器压在黑线上
  117.                         case 0x9a:                //后四传感器压在黑线上
  118.                                 motor_back();
  119.                                 delay_1ms(200);
  120.                                 motor_stop();
  121.                                
  122. //                                delay_1ms(1000);                                                                                                                                         

  123.                         default:
  124. ……………………

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

所有资料51hei提供下载:
智能循迹小车电路图和程序及仿真图.rar (132.8 KB, 下载次数: 1192)



作者: 逍遥自由行    时间: 2017-12-5 19:31
功能很完整
作者: renqian4436    时间: 2017-12-14 08:39
差一个实物图
作者: wesw520    时间: 2017-12-18 13:48
感谢共享!!
作者: liuyun1223    时间: 2017-12-19 13:42
谢谢大神分享
作者: ccce    时间: 2017-12-23 20:17
下载后的附件在哪呢

作者: cmd9688    时间: 2018-1-14 00:34
支持楼主   学习了!
作者: 麦克的妖怪    时间: 2018-1-18 14:48
感谢分享!!
作者: 暗淡的光    时间: 2018-1-23 11:55
怎么购买了还需要再花黑币下载的吗?
作者: 寂寞小奥特曼    时间: 2018-1-25 20:58
非常感谢您的分享
作者: cwxds    时间: 2018-3-2 20:26
支持楼主   学习了!
作者: 大肚哥    时间: 2018-3-13 09:25
感谢分享,学习了
作者: jw19931124    时间: 2018-3-30 15:03
元件清单

元件清单.docx

14.31 KB, 下载次数: 40, 下载积分: 黑币 -5


作者: wangxiaoming123    时间: 2018-4-1 13:29
共享资源吧!!
作者: wangxiaoming123    时间: 2018-4-1 13:31
共享资源吧!老铁。
作者: chengfeix    时间: 2018-4-12 16:16
逍遥自由行 发表于 2017-12-5 19:31
功能很完整

为什么我这没有用呢

作者: zxl990318    时间: 2018-4-13 21:05
很好很给力,干货
作者: zxl990318    时间: 2018-4-13 21:06
很好很给力,有用的帖子!
作者: eeeeeee45145    时间: 2018-4-20 08:46
很好真的很好呀
作者: 背包客91    时间: 2018-4-20 11:13
大神厉害厉害
作者: Lionel1412    时间: 2018-4-20 23:30
学习学习
作者: maxiaotiao    时间: 2018-4-21 16:55
很好的东西
作者: Mayday0    时间: 2018-4-24 14:51
请问楼主,在仿真中没有看到RPR220啊,还有那六个开关的作用,能否解答一下,非常感谢
作者: 叶神    时间: 2018-5-3 18:33
纯小白,望大神指点迷津
作者: JACKLI    时间: 2018-5-8 21:01
下载看了一下,,想法很不错
作者: q790721848    时间: 2018-5-16 09:30
我为什么购买了 这个附件还是不让我下载
作者: 兔巨侠    时间: 2018-5-18 12:34
非常感谢,很具体,我看了后再请教
作者: 你好早晚    时间: 2018-5-20 08:10
非常感谢,找了很久的资源,终于早到了非常有用的资源了
作者: 孔乙己的爸爸    时间: 2018-5-23 13:05
赞,很棒棒!
作者: 生性薄凉    时间: 2018-5-23 23:14
初学者前来报道,先做一个最简单的循迹
作者: bc2580    时间: 2018-6-8 12:14
怎么下载附件

作者: 云霄997    时间: 2018-6-8 22:59
附件在哪呢?
作者: 徐鹤宁达芙妮    时间: 2018-6-19 16:25
感觉很nice
作者: niuniniu    时间: 2018-6-25 16:51
有关于7805的资料么
作者: 111129    时间: 2018-7-3 18:48
ccce 发表于 2017-12-23 20:17
**** 作者被禁止或删除 内容自动屏蔽 ****

你找到附件了吗

作者: 1260393672    时间: 2018-7-3 20:25
proteus
作者: 111129    时间: 2018-7-4 16:57
111129 发表于 2018-7-3 18:48
你找到附件了吗

找到了  thanks

作者: m2478085531    时间: 2018-7-4 19:54
这个做出实物没楼主
作者: abnerdara    时间: 2018-7-11 20:30
很给力

作者: 皮乒乒乓乓    时间: 2018-7-12 10:29
谢谢帮助
作者: 皮乒乒乓乓    时间: 2018-7-12 10:33
谢谢大佬
作者: abnerdara    时间: 2018-7-12 11:03
好吧,不得不说,这根本就是在坑我,购买了,下载还需要积分,去你的
作者: yumozhang    时间: 2018-7-14 09:51
感谢
分享
作者: han0826    时间: 2018-7-15 15:37
下来学习学习,谢谢
作者: 51singlechip    时间: 2018-7-27 19:44
感谢大佬
作者: Bjnun    时间: 2018-7-29 09:19
感谢分享!
作者: 舒服只给死人    时间: 2018-8-20 17:47
赞一个!
作者: Jerry27    时间: 2018-8-28 22:50
我初学的,感觉很好很实用
作者: Jimmmy    时间: 2018-9-24 13:03
很好的资料,感谢分享!
作者: svsspe    时间: 2018-10-12 22:05
大哥,这个php文件怎么打开啊,求指教
作者: 51之谜    时间: 2018-11-15 17:44
写的很好
作者: 啊芳    时间: 2018-11-22 09:45
帮助很大
作者: yezhi123    时间: 2018-12-3 11:11
谢谢帮助

作者: yezhi123    时间: 2018-12-3 11:14
多谢分享 谢谢大佬
作者: lyys    时间: 2018-12-12 11:08
附件在哪儿啊
作者: lyys    时间: 2018-12-12 11:09
111129 发表于 2018-7-4 16:57
找到了  thanks

附件在哪里啊
作者: 700619    时间: 2018-12-24 11:27
哪个大神能讲一下原理?急求!!!
作者: 700619    时间: 2018-12-24 11:30
哪位大神能讲一下原理(尤其是那6个开关的作用)!!!
感谢!!!
作者: onepercent    时间: 2018-12-25 18:34
谢谢分享
作者: 157297414    时间: 2019-1-1 10:53
已收藏,非常好
作者: 10086实习生    时间: 2019-1-2 19:46
#在这里快速回复#很给力!
作者: bewellontheway    时间: 2019-1-4 10:50
http://www.51hei.com/bbs/forum.php?mod=viewthread&tid=144753 工厂实用的智能循迹车,全套资料提供。
作者: 光辉进军    时间: 2019-1-7 12:31
很给力
作者: 光辉进军    时间: 2019-1-7 12:38
逍遥自由行 发表于 2017-12-5 19:31
**** 作者被禁止或删除 内容自动屏蔽 ****

谢谢分享
作者: 88026320    时间: 2019-1-15 12:38
收藏,感谢!
作者: 郭文玲呀    时间: 2019-2-1 16:10
请问这个程序分为几个模块呀?

作者: 郭文玲呀    时间: 2019-2-1 16:11
700619 发表于 2018-12-24 11:30
哪位大神能讲一下原理(尤其是那6个开关的作用)!!!
感谢!!!

你知道了吗?给我讲讲行吗
作者: ikon路    时间: 2019-3-8 14:20
感谢大神分享
作者: 懷念sunny    时间: 2019-3-9 18:43
谢谢分享
作者: tutoujing    时间: 2019-4-16 20:51
郭文玲呀 发表于 2019-2-1 16:11
你知道了吗?给我讲讲行吗

你会了吗同学?
作者: ghq    时间: 2019-4-20 21:01
电机是用L298N驱动的吗?
作者: Moustache998    时间: 2019-4-24 11:31
很棒

作者: l-k    时间: 2019-4-30 15:10
很好 很棒 很实用
作者: 1716175573    时间: 2019-5-10 15:03
好棒强啊
作者: wangjinlongsb    时间: 2019-5-24 09:12
对我们的帮助很大,认真学习啦
作者: zzl.    时间: 2019-6-5 15:22
#define P_IOA_Data (volatile unsigned int *)0x7000 #define P_IOA_Dir (volatile unsigned int *)0x7002 #define P_IOA_Attrib (volatile unsigned int *)0x7003   unsigned int scan();//检测黑线函数定声明 unsigned int num=0; void delay();   void init_1()//输入初始化 { [P_IOA_Dir]=0x00f0; [P_IOA_Attrib]=0x00f0; [P_IOA_Data]=0x000f; } //void init_2()//输出初始化 //{ //[P_IOA_Dir]=1; //[P_IOA_Attrib]=1; //[P_IOA_Data]=0; //} void main() {  while(1)  {   void init_1();   num=scan();   //void init_2();   switch(num)   {   case 1:    {     while(1)     {      [P_IOA_Data]=0x9f;      delay(500); //     if([P_IOA_Data]==1)//传感器返回1,则终止转弯,下同      break;     }    }   case 2:    {     while(1)     {      [P_IOA_Data]=0x9f;      delay(500);      break;     }    }   case 4:    {     while(1)     {      [P_IOA_Data]=0x6f;      delay(500);      break;     }    }   case 5:    {     while(1)     {      [P_IOA_Data]=0x6f;      delay(500);      break;     }    }   case 0:    {     while(1)     {      [P_IOA_Data]=0x5f;      delay(500);      break;     }    }     }  [P_IOA_Data]=0x5f;//直走  delay(500);    } }         void delay(uint z) {  uint x,y;  for(x=z;x>0;x--)   for(y=110;y>0;y--);  } unsigned int scan() {  if(P_IOA_Data==0xfe)  {   num=1;   return num;  }  if(line_2==0xfd)  {   num=2;   return num;  }     if(line_4==0xfb)  {   num=4;   return num;  }   if(line_5==0xf7)  {   num=5;   return num;  }  return 0; }  
作者: 快感炮王    时间: 2019-7-8 11:29
感谢楼主分享啊
作者: 嘟嘟胖子    时间: 2019-7-18 13:47
非常不错的参考资料
作者: c1ancy    时间: 2019-8-8 17:13
赞一个非常给力
作者: 1368088682    时间: 2019-9-7 11:25
很完整,感谢分享
作者: 6618408    时间: 2019-10-25 09:20
好强啊
作者: kmj    时间: 2019-11-7 21:31
感谢分享
作者: drwho    时间: 2019-11-8 15:35
感谢分享
作者: yezhli1990    时间: 2019-12-16 10:29
真是厉害,值得学习,我也做一个
作者: GoodbyeLina    时间: 2019-12-21 10:59
感谢楼主,我们明年也要参加这个智能小车比赛
作者: 黑晨    时间: 2019-12-21 11:50
相当完整,正在学习中
作者: CYTBBB    时间: 2019-12-23 11:42
为什么有三个向左三个向右,都是什么作用的啊??
作者: klaus0    时间: 2019-12-23 12:22
感谢大神的分享
作者: 2386592133    时间: 2019-12-27 18:15
大神,可以帮我做一个仿真图吗,q2386592133
作者: 331    时间: 2020-3-1 09:59
0.0我也想要
作者: 撒村基坑    时间: 2020-4-11 11:33
感谢分享!!
作者: ylbswbs    时间: 2020-4-15 12:21
我想问一下为什么左右都需要三个开关控制啊
作者: pomelo0203    时间: 2020-4-24 08:47
楼主有实物图吗
作者: 卡卡源源    时间: 2020-4-29 21:57
感谢楼主
作者: 1122333zx    时间: 2020-4-30 01:58
图很清晰完整
作者: yejun    时间: 2020-5-22 08:49
谢谢楼主分享,感谢大神。
作者: asdfgjjkjbb    时间: 2020-5-25 10:29
很好啊
作者: asdfgjjkjbb    时间: 2020-5-25 10:29
bc2580 发表于 2018-6-8 12:14
怎么下载附件

上方有
作者: Missinging    时间: 2020-5-29 14:57
支持楼主感谢分享
作者: dysnbb    时间: 2020-6-7 13:58
谢谢楼主的分享,很有用




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