找回密码
 立即注册

QQ登录

只需一步,快速开始

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

寻迹小车程序

[复制链接]
跳转到指定楼层
楼主
ID:244394 发表于 2017-10-30 22:35 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
上周做的寻迹小车程序,上传保存一下

单片机源程序如下:
  1. #include <reg52.h>  
  2.   
  3. sbit IN1 = P1^0;   
  4. sbit IN2 = P1^1;  
  5. sbit ENA = P1^2;  
  6. sbit IN3 = P1^3;  
  7. sbit IN4 = P1^4;  
  8. sbit ENB = P1^5;  
  9.   
  10. sbit left1 = P0^0;  
  11. sbit left2 = P0^1;  
  12. sbit right1 = P0^2;  
  13. sbit right2 = P0^3;  
  14.   
  15. unsigned char zkb1 = 0;  
  16. unsigned char zkb2 = 0;  
  17. unsigned char t = 0;  
  18.   
  19.   
  20. void init()  
  21. {  
  22.     EA = 1;  
  23.     TMOD |= 0x01;  
  24.     TH0 =(65536 - 100) / 256;  
  25.     TL0 = (65536 - 100)% 256;     
  26.     ET0 = 1;  
  27.     TR0 = 1;  
  28. }  
  29.   
  30. void timer0() interrupt 1  
  31. {  
  32.   
  33.     TH0 = (65536 - 100) / 256;  
  34.     TL0 = (65536 - 100) % 256;  
  35.          
  36.     if(t < zkb1)  
  37.     {  
  38. //      if(t % 2 == 0)  
  39. //      {  
  40. //          ENA = 1;  
  41. //      }  
  42. //      else   
  43. //      {  
  44. //          ENA = 0;  
  45. //      }  
  46.         ENA = 1;  
  47.     }  
  48.     else   
  49.     {  
  50.         ENA = 0;  
  51.     }  
  52.     if(t < zkb2)  
  53.     {  
  54. //      if(t%2 == 0)  
  55. //      {  
  56. //          ENB = 1;  
  57. //      }  
  58. //      else   
  59. //      {  
  60. //          ENB = 0;  
  61. //      }  
  62.         ENB =1;  
  63.     }  
  64.     else   
  65.     {  
  66.         ENB = 0;  
  67.     }  
  68.     ++t;  
  69.     if(t >= 50)  
  70.     {  
  71.         t = 0;  
  72.     }  
  73. }  
  74.   
  75. void turn_left1()  
  76. {  
  77.     zkb1 = 13;  
  78.     zkb2 = 0;   
  79. }  
  80.   
  81. void turn_left2()  
  82. {   
  83.     zkb1 = 13;  
  84.     zkb2 = 0;  
  85. }  
  86.   
  87. void turn_right1()  
  88. {  
  89.     zkb1 = 0;  
  90.     zkb2 = 13;  
  91. }  
  92.   
  93. void turn_right2()  
  94. {  
  95.     zkb1 = 0;  
  96.     zkb2 = 13;  
  97. }  
  98.   
  99. void qianjin()  
  100. {  
  101.     zkb1 = 8;  
  102.     zkb2 = 8;  
  103. }  
  104. void xunji()  
  105. {  
  106.     unsigned char flag;  
  107.     if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))  
  108.     {  
  109.         flag = 0;  
  110.     }
  111.           
  112.     if((right2 == 0)&&(right1 ==1)&&(left1 == 0)&&(left2 == 0))  
  113.     {  
  114.         flag = 1;  
  115.     }
  116.           
  117.     if((right2 == 0)&&(right1 == 0)&&(left1 == 1)&&(left2 == 0))  
  118.     {  
  119.         flag = 2;  
  120.     }
  121.           
  122.     if((right2 == 0)&&(right1 == 0)&&(left1 == 0)&&(left2 == 1))  
  123.     {  
  124.         flag = 3;  
  125.     }
  126.           
  127.     if((right2 == 1)&&(right1 == 0)&&(left1 == 0)&&(left2 == 0))  
  128.     {  
  129.         flag = 4;  
  130.     }
  131.          
  132.     switch(flag)  
  133.     {  
  134.         case 0:
  135.                         qianjin();
  136.                 break;  
  137.          
  138.         case 1:
  139.                         turn_right1();
  140.                 break;  
  141.          
  142.         case 2:
  143.                         turn_left1();
  144.                 break;  
  145.          
  146.         case 3:
  147.                         turn_left2();
  148.                 break;  
  149.          
  150.         case 4:
  151.                         turn_right2();
  152.                 break;  
  153.          
  154.         default:
  155.                         qianjin();
  156.                 break;  
  157.     }  
  158. }  
  159.   
  160. void main()  
  161. {  
  162.     init();  
  163. //  zkb1 = 40;  
  164. //  zkb2 = 30;  
  165.     IN1 = 0;  
  166.     IN2 = 1;  
  167.     IN3 = 0;  
  168.     IN4 = 1;  
  169.     while(1)  
  170.     {               
  171.                 xunji();           
  172.     }  
  173. }
复制代码

所有资料51hei提供下载:
xunji.zip (28.44 KB, 下载次数: 21)


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

使用道具 举报

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

本版积分规则

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

Powered by 单片机教程网

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