久久久久久久999_99精品久久精品一区二区爱城_成人欧美一区二区三区在线播放_国产精品日本一区二区不卡视频_国产午夜视频_欧美精品在线观看免费

 找回密碼
 立即注冊

QQ登錄

只需一步,快速開始

搜索
查看: 2361|回復: 1
打印 上一主題 下一主題
收起左側

大一的時候做的非常簡單的紅外循跡小車程序

[復制鏈接]
跳轉到指定樓層
樓主
ID:328225 發表于 2020-4-6 15:28 | 只看該作者 回帖獎勵 |倒序瀏覽 |閱讀模式
基本是手動調節參數,所以很適合入門吧
大佬就別看了,從來沒有接觸過的可以看看,都是非常基礎的c語言

單片機源程序如下:
  1. #include <reg52.h>  

  2. #define uint unsigned int
  3. #define uchar unsigned char  
  4. #define left    0
  5. #define right   1

  6. sbit IN1 = P1^0;   
  7. sbit IN2 = P1^1;  
  8. sbit ENA = P1^2;  
  9. sbit IN3 = P1^3;  
  10. sbit IN4 = P1^4;  
  11. sbit ENB = P1^5;  
  12.   
  13. sbit left2 = P0^0;  
  14. sbit left1 = P0^1;  
  15. sbit right1 = P0^2;  
  16. sbit right2 = P0^3;  
  17. sbit right3 = P0^4;
  18. sbit left3 = P0^5;
  19. sbit  key1=P3^2;
  20.   
  21. sbit beep=P3^4;       
  22. sbit DOUT=P1^6;               

  23. unsigned char zkb1 = 0;  
  24. unsigned char zkb2 = 0;  
  25. unsigned char t = 0;  
  26. unsigned char i,j,a,b;
  27. unsigned char speed=25;
  28. uint flag=0;
  29. unsigned char SignalFlag[2];
  30. void init()  
  31. {  
  32.     EA = 1;  
  33.     TMOD |= 0x01;  
  34.     TH0 =(65536 - 100) / 256;  
  35.     TL0 = (65536 - 100)% 256;     
  36.     ET0 = 1;
  37.     TR0 = 1;  
  38. }  
  39.   
  40. void timer0() interrupt 1  
  41. {  
  42.   
  43.     TH0 = (65536 - 100) / 256;  
  44.     TL0 = (65536 - 100) % 256;  
  45.          
  46.     if(t < zkb1)  
  47.     {  

  48.         ENA = 1;  
  49.     }  
  50.     else   
  51.     {  
  52.         ENA = 0;  
  53.     }  
  54.     if(t < zkb2)            
  55.     {  
  56.         ENB =1;  
  57.     }  
  58.     else   
  59.     {  
  60.         ENB = 0;  
  61.     }  
  62.     ++t;  
  63.     if(t >= 200)  
  64.     {  
  65.         t = 0;  
  66.     }  
  67.       
  68.       
  69.   
  70. }  
  71. void delay( uint z)
  72. { uint j;
  73.   while( z--)
  74.   { for(j=110;j>0;j--);}
  75. }
  76.   
  77. void turn_left()  
  78. {
  79.     zkb1 =29;//15;
  80.     zkb2 =38;
  81.           
  82.     IN1 = 1;  
  83.     IN2 = 0;  
  84.     IN3 = 1;  
  85.     IN4 = 0;       
  86. }  
  87.    
  88. void turn_right()  
  89. {  
  90.     zkb1 = 38;
  91.     zkb2 = 29;//15;
  92.     IN1 = 1;  
  93.     IN2 = 0;  
  94.     IN3 = 1;  
  95.     IN4 = 0;
  96. }  
  97. void turn_left1()  
  98. {
  99.     zkb1 =12;//15;
  100.     zkb2 =45;
  101.           
  102.     IN1 = 1;  
  103.     IN2 = 0;  //左輪反轉
  104.     IN3 = 1;  
  105.     IN4 = 0;
  106. }  
  107.    
  108. void turn_right1()  
  109. {  
  110.     zkb1 = 45;
  111.     zkb2 = 12;//15;
  112.     IN1 = 1;  
  113.     IN2 = 0;  
  114.     IN3 = 1;  
  115.     IN4 = 0;       
  116. }  
  117.   void turn_right2()  
  118. {
  119.        
  120.     zkb1 =32;//15;
  121.     zkb2 =32;
  122.           
  123.     IN1 = 0;  
  124.     IN2 = 1;  
  125.     IN3 = 1;  
  126.     IN4 = 0;       
  127.         }

  128.    
  129. void turn_left2()  
  130. {  
  131.     zkb1 = 32;
  132.     zkb2 = 32;//15;
  133.     IN1 = 1;  
  134.     IN2 = 0;  
  135.     IN3 = 0;  
  136.     IN4 = 1;       

  137. }  
  138. void qianjin()  
  139. {  
  140.     zkb1 =30;
  141.     zkb2 =30;
  142.           IN1 = 1;  
  143.     IN2 = 0;  
  144.     IN3 = 1;  
  145.     IN4 = 0;       
  146. }

  147. void tingzhi()  
  148. {  

  149.   zkb1 = 0;
  150.         zkb2 = 0;
  151.    delay(250);
  152.        
  153. }  


  154. void delay1()//延時程序
  155. {
  156. uchar m,n,s;
  157. for(m=20;m>0;m--)
  158. for(n=20;n>0;n--)
  159. for(s=248;s>0;s--);
  160. }


  161. void xunji()  
  162. {  
  163.     unsigned char flag=0;  

  164.     if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0)&&(left3 == 0)&&(right3 == 0))
  165.     {  
  166.         flag = 0;  
  167.     }  
  168.     else if(((right2 == 0)&&(right1 ==0)&&(left1 == 1)&&(left2 == 0))&&(left3 == 0)&&(right3 == 0)||((right2 == 0)&&(right1 == 0)&&(left1 == 1)&&(left2 == 1))&&(left3 == 0)&&(right3 == 0))
  169.                 {  
  170.         flag = 1;  
  171.     }  
  172.     else if(((right2 == 0)&&(right1 == 1)&&(left1 == 0)&&(left2 == 0))&&(left3 == 0)&&(right3 == 0)||((right2 == 1)&&(right1 == 1)&&(left1 == 0)&&(left2 == 0))&&(left3 == 0)&&(right3 == 0))  
  173.     {  
  174.         flag = 2;  
  175.     }  
  176.     else if((right2 == 1)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0)&&(left3 == 0)&&(right3 == 0))  
  177.     {  
  178.         flag = 3;  
  179.     }  
  180.     else if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 1)&&(left3 == 0)&&(right3 == 0))
  181.     {  
  182.         flag = 4;  
  183.     }
  184.     else if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0)&&(left3 == 0)&&(right3 == 1))  
  185.     {  
  186.         flag = 5;  
  187.     }  
  188.     else if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0)&&(left3 == 1)&&(right3 == 0))
  189.     {  
  190.         flag = 6;  
  191.     }               
  192.                 else if((right2 == 1)&&(right1 == 1)&&(left1 == 1)&&(left2 == 1))  
  193.     {  
  194.         flag = 7;  
  195.     }
  196.                 else flag=0;
  197.     switch(flag)  
  198.     {  
  199.         case 0:qianjin();break;  
  200.          
  201.         case 1:turn_left();break;  
  202.          
  203.         case 2:turn_right();break;  
  204.          
  205.         case 3:turn_right1();break;  
  206.          
  207.         case 4:turn_left1();break;
  208.                        
  209.         case 5:turn_right2();break;  
  210.          
  211.         case 6:turn_left2();break;                       
  212.                        
  213.         case 7:tingzhi();break;  
  214.                        
  215.         default:qianjin();break;                        
  216.     }  
  217. }  
  218.   
  219.    void main()
  220. {  
  221.     init();   
  222.      while(1)  
  223.     {  
  224.        if (key1==0)
  225.                           {
  226.                                         do
  227.                                   {
  228.                                                 IN1 = 1;  
  229.             IN2 = 0;  
  230.             IN3 = 0;  
  231.             IN4 = 1;       
  232.                                                 zkb1 = 27;
  233.             zkb2 = 27;
  234.                                                 beep=1;
  235.           }
  236.                                         while(right3==0);
  237.                                         do
  238.                                         {
  239.                                                 IN1 = 1;  
  240.             IN2 = 0;  
  241.             IN3 = 1;  
  242.             IN4 = 0;       
  243.                                                 beep= 1;
  244.                                                 zkb1 = 40;
  245.             zkb2 = 20;
  246.                                         }
  247.                                         while(right1==0);
  248.                                         turn_left1();
  249.                                         delay(220);
  250.                                 }
  251.                                 else
  252.                                 {      
  253.                 xunji();
  254.         }
  255. }
  256. }
復制代碼

以上程序51hei提供下載:
xunji.zip (41.62 KB, 下載次數: 17)


分享到:  QQ好友和群QQ好友和群 QQ空間QQ空間 騰訊微博騰訊微博 騰訊朋友騰訊朋友
收藏收藏 分享淘帖 頂 踩
回復

使用道具 舉報

沙發
ID:1 發表于 2020-4-6 22:56 | 只看該作者
本帖需要重新編輯補全電路原理圖,源碼,詳細說明與圖片即可獲得100+黑幣(帖子下方有編輯按鈕)
回復

使用道具 舉報

您需要登錄后才可以回帖 登錄 | 立即注冊

本版積分規則

手機版|小黑屋|51黑電子論壇 |51黑電子論壇6群 QQ 管理員QQ:125739409;技術交流QQ群281945664

Powered by 單片機教程網

快速回復 返回頂部 返回列表
主站蜘蛛池模板: 狠狠躁天天躁夜夜躁婷婷老牛影视 | 99精品欧美一区二区三区 | 久久久久久国产精品免费免费狐狸 | 国产美女自拍视频 | 欧美激情视频一区二区三区在线播放 | 久久亚洲国产 | 欧美一级免费看 | 精品一区二区三区免费视频 | 羞羞视频网站免费看 | 日本在线视频一区二区 | 欧美福利视频 | 国产精品免费观看 | 久久综合入口 | 欧美色综合天天久久综合精品 | 黄色播放 | 午夜爽爽爽男女免费观看影院 | 欧美激情 一区 | 久久精品色欧美aⅴ一区二区 | 成人免费网站在线 | 国产成人久久精品 | 欧洲精品视频一区 | 毛片a| 国产日韩欧美另类 | 在线观看你懂的网站 | 久久久婷婷 | 在线观看涩涩视频 | 精品久久中文 | 激情五月激情综合网 | 日韩精品免费在线观看 | 亚洲一区中文字幕 | 久久激情视频 | 亚洲人成人一区二区在线观看 | 欧美日韩精品区 | 国产精品久久久久久久久久免费看 | 国产精品视频在线观看 | 国产精品国产a | 久久成人国产精品 | 就操在线 | 亚洲高清在线 | 久久精品综合 | 天天操 天天操 |