最普通的寻轨小车程序

2019-07-16 06:38发布

诊断:单片机不停的执行检测程序当然会占CPU了, 你可以试着让单片机隔一断时间来检测一下车子的进行情况, 实现的方法可以是让单片机在中断里执行检测程序, 也可以在中断里执行其它程序, 不管单片机忙不忙, 只要能所指定的任务完成了就可以, 是不? QQ截图20120309143714.jpg


  1. #include <reg52.h>
  2. #define uchar unsigned char
  3. #define uint unsigned int
  4. void delay(uchar ms)                //延时函数
  5. {
  6.          uchar ii,jj;
  7.          for(ii=0;ii<ms;ii++)
  8.                  for(jj=0;jj<40;jj++)
  9.                 {
  10.                         if(P1==0xe1)   //检测是否要右转
  11.                         {        
  12.                                 P2=0xf1;
  13.                                 return ;
  14.                         }
  15.                         if(P1==0xf0)     //检测是否要左转
  16.                         {        
  17.                                 P2=0xf4;
  18.                                 return ;
  19.                         }
  20.                 }
  21. }
  22. void leftmove()                   //左转
  23. {
  24.         P2=0xf4;
  25.         delay(20);
  26.         P2=0xf5;
  27.         delay(60);
  28. }
  29. void rightmove()                //右转
  30. {
  31.         P2=0xf1;
  32.         delay(20);
  33.         P2=0xf5;
  34.         delay(60);
  35. }

  36. main()
  37. {
  38.         P2=0;
  39.         while(1)
  40.         {
  41.                 switch(P1)                                       //传感检测
  42.                 {
  43.                         case 0xe4:P2=0xf5;break;
  44.                         case 0xe8:leftmove();break;
  45.                         case 0xe2:rightmove();break;
  46.                         case 0xe1:P2=0xf1;break;         //大右转
  47.                         case 0xf0:P2=0xf4;break;         //大左转
  48.                 }                                                         
  49.         }        
  50. }
复制代码

程序短不过能走,但是很占用cpu


友情提示: 此问题已得到解决,问题已经关闭,关闭后问题禁止继续编辑,回答。
该问题目前已经被作者或者管理员关闭, 无法添加新回复
8条回答
diangongshi
1楼-- · 2019-07-16 09:21
你让单片机不停的执行检测程序当然会占CPU了, 你可以试着让单片机隔一断时间来检测一下车子的进行情况, 实现的方法可以是让单片机在中断里执行检测程序, 也可以在中断里执行其它程序, 不管单片机忙不忙, 只要能所指定的任务完成了就可以, 是不?
1059535356
2楼-- · 2019-07-16 15:06
楼上威武
chener
3楼-- · 2019-07-16 16:57
厉害!!!
netic8
4楼-- · 2019-07-16 18:45
 精彩回答 2  元偷偷看……
爱恨依然
5楼-- · 2019-07-16 18:56
飘过
哈军工007
6楼-- · 2019-07-16 20:40
好人啊

一周热门 更多>