找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1368|回复: 3
打印 上一主题 下一主题
收起左侧

51循迹小车

[复制链接]
跳转到指定楼层
楼主
ID:440202 发表于 2018-12-5 16:49 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
在多方资料查阅下
为了能学习新的知识
希望有需要的人
也要经过自己的思考
  1. #include<reg52.h>
  2. #define uint unsigned int
  3. #define uchar unsigned char
  4. //sbit deng=P2^3;
  5. unsigned int pwm;
  6. unsigned char zkb1,zkb2,zkb3,zkb4;
  7. sbit IN1=P0^0;   //???
  8. sbit IN2=P0^1;   //???
  9. sbit IN3=P0^2;   //???
  10. sbit IN4=P0^3;    //???
  11. sbit IN5=P1^4;          //???
  12. sbit IN6=P1^3;          //???
  13. sbit IN7=P1^2;           //???
  14. sbit IN8=P1^1;          //???   
  15. sbit ENA1=P3^2;
  16. sbit ENB1=P3^3;         //????1??????
  17. sbit ENA2=P1^5;
  18. sbit ENB2=P1^0;         //????2??????
  19. sbit L1=P2^6;  //?????????                                         
  20. sbit L2=P2^7;  //?????????
  21. sbit R1=P2^5;  //?????????
  22. sbit R2=P2^4;  //?????????


  23. uint i,j;
  24. uchar flag;
  25. //void delayms(x)
  26. //        {
  27. //        for(i=x;i>0;i--)
  28. //                for(j=110;j>0;j--);
  29. //        }
  30. void go()
  31. {
  32.        
  33.         IN1=0;
  34.         IN2=1;
  35. //        delayms(10);

  36.         IN3=0;
  37.         IN4=1;                 
  38. //        delayms(10);
  39.        
  40.         IN5=0;
  41.         IN6=1;                 
  42. //        delayms(10);
  43. //       
  44.         IN7=0;
  45.         IN8=1;

  46. //        delayms(10);
  47. }
  48. //void stop()
  49. //{
  50. //        IN1=1;
  51. //        IN2=1;
  52. ////        delayms(10);
  53. //        IN3=1;
  54. //        IN4=1;
  55. ////        delayms(10);
  56. //        IN5=1;
  57. //        IN6=1;
  58. ////        delayms(10);
  59. //        IN7=1;
  60. //        IN8=1;
  61. ////        delayms(10);
  62. //}
  63. void left()
  64. {
  65.        
  66.         IN1=0;        //??????
  67.         IN2=1;
  68.        
  69. //        delayms(10);
  70.        
  71.         IN3=1;         //??????
  72.         IN4=0;
  73.        
  74. //        delayms(10);
  75.          
  76.         IN5=0;         //??????
  77.         IN6=1;
  78.        
  79. //        delayms(10);
  80.                  
  81.         IN7=1;         //????
  82.         IN8=0;
  83.        
  84. //        delayms(10);       
  85. }
  86. void right()
  87. {
  88.        
  89.         IN1=1;
  90.         IN2=0;
  91. //        delayms(10);
  92.         IN3=0;
  93.         IN4=1;
  94.        
  95. //        delayms(10);
  96.         IN5=1;
  97.         IN6=0;
  98.        
  99. //    delayms(10);
  100.         IN7=0;
  101.         IN8=1;
  102.        
  103. //        delayms(10);
  104. }
  105. void init()
  106. {
  107.     TMOD=0x01;
  108.         TH0=0xff;
  109.         TL0=0xf7;
  110.         EA=1;
  111.         ET0=1;
  112.         TR0=1;
  113. }
  114. void T0_time()interrupt 1
  115. {

  116.         TR0=0;
  117.         TH0=0xff;
  118.         TL0=0xf7;
  119.         TR0=1;
  120.         pwm++;
  121.         if(pwm==100)
  122.         {
  123.         pwm=0;
  124.         }
  125.         if(pwm<=zkb1)
  126.         {
  127.                 ENA1=1;
  128.         }
  129.         else
  130.         {
  131.                 ENA1=0;
  132.         }
  133.         if(pwm<=zkb2)
  134.         {
  135.                 ENB1=1;
  136.         }
  137.         else
  138.         {
  139.                 ENB1=0;
  140.         }
  141.         if(pwm<=zkb3)
  142.         {
  143.                 ENA2=1;
  144.         }
  145.         else
  146.         {
  147.                 ENA2=0;
  148.         }
  149.    if(pwm<=zkb4)
  150.         {
  151.                 ENB2=1;
  152.         }
  153.         else
  154.         {
  155.                 ENB2=0;
  156.         }
  157. }
  158. void main()
  159. {       
  160.         init();       
  161.         flag=3;
  162.         while(1)
  163. {
  164.         if((L1==1)&&(R1==0))
  165.         {
  166.         flag=1;
  167.         }
  168. //        if((L2==0)&&(R1==1))
  169. //        {
  170. //        flag=1;
  171. //        }
  172.         if((L1==0)&&(R1==0))
  173.         {
  174.         flag=3;
  175.         }
  176. //         if((R2==1)&&(L2==0))
  177. //        {
  178. //        flag=1;
  179. //        }
  180.         if((R1==1)&&(L1==0))
  181.         {
  182.         flag=2;
  183.         }
  184. //        if((R1==0)&&(L2==1))
  185. //        {
  186. //        flag=2;
  187. //        }
  188. //        if((R2==0)&&(L1==1))
  189. //        {
  190. //        flag=2;
  191. //        }
  192. //         if((R2==0)&&(L2==1))
  193. //        {
  194. //        flag=2;
  195. //        }       
  196.         if((R1==1)&&(L1==1))
  197.         {
  198.         flag=3;
  199.         }       
  200.         switch (flag)
  201.         {
  202.                 case 1:
  203.                  left();
  204.                  zkb1=50;
  205.                  zkb2=50;
  206.                  zkb3=50;
  207.                  zkb4=50;
  208.                 break;
  209.                 case 2:                  
  210.                  right();
  211.                  zkb1=50;
  212.                  zkb2=50;
  213.                  zkb3=50;
  214.                  zkb4=50;                 
  215.                 break;
  216.                 case 3:               
  217.                  go();
  218.                  zkb1=20;
  219.                  zkb2=20;
  220.                  zkb3=20;
  221.                  zkb4=20;
  222.                           
  223.                 break;               
  224.         }
  225. }
  226. }
复制代码


分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

沙发
ID:423263 发表于 2018-12-5 20:40 | 只看该作者
循迹是不是需要TCRT5000 模块
回复

使用道具 举报

板凳
ID:423263 发表于 2018-12-5 20:41 | 只看该作者
对于这个模块怎么编程
回复

使用道具 举报

地板
ID:440202 发表于 2019-7-9 13:26 | 只看该作者
2434523118 发表于 2018-12-5 20:40
循迹是不是需要TCRT5000 模块

红外对管就可以
回复

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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