zhuanwan2051.c

来自「本人学习单片机一年多时间厚参加全国电子设计大赛的程序以及赛前练习的程序。」· C语言 代码 · 共 76 行

C
76
字号
#include<AT892051.H>

main()
{unsigned char deng;
 for(;;)
  {deng=P1&0xF0;
   switch(deng)
	{case 0xD0:        /* 0x0A=0000'101'1 不转弯  */
	  {P1_0=1;
      P1_1=1;
		P1_2=1;
      P1_3=0;         /* 正转 */
		break;
      }
    case 0xC0:        /* 0x0A=0000'001'1 右偏 ->左 */
	  {P1_0=0;
      P1_1=1;
		break;
      }
    case 0xE0:        /* 0x0A=0000'011'1 右偏 ->左 */
	  {P1_0=0;
      P1_1=1;
		break;
      }
    case 0x90:        /* 0x0A=0000'100'1 左偏 ->右 */
	  {P1_0=1;
      P1_1=0;
		break;
      }
    case 0xB0:        /* 0x0A=0000'110'1 左偏 ->右 */
	  {P1_0=1;
      P1_1=0;
		break;
      }
    case 0x80:        /* 0x0A=0000'000'1 不可能情况 */
	  {break;
      }
    case 0xF0:        /* 0x0A=0000'111'1 停止运动 */
	  {P1_2=1;
      P1_3=1;
		break;
      }
	}
  }
}

/*
if(deng==0x0A)   /* 0x0A=0000'101'0 不转弯  
    {P1_0=1;
     P1_1=1;
     }
   if(deng==0x02)   /* 0x0A=0000'001'0 右偏 ->左  
    {P1_0=0;
     P1_1=1;
     }
   if(deng==0x06)   /* 0x0A=0000'011'0 右偏 ->左  
    {P1_0=0;
     P1_1=1;
     }
   if(deng==0x08)   /* 0x0A=0000'100'0 左偏 ->右 
    {P1_0=1;
     P1_1=0;
     }
   if(deng==0x0C)   /* 0x0A=0000'110'0 左偏 ->右  
    {P1_0=1;
     P1_1=0;
     }
   if(deng==0x00)   /* 0x0A=0000'000'0 不可能情况  
    {;
     }
   if(deng==0x0E)   /* 0x0A=0000'111'0 停止运动 
    {P1_2=1;
     P1_3=1;
     }
*/

⌨️ 快捷键说明

复制代码Ctrl + C
搜索代码Ctrl + F
全屏模式F11
增大字号Ctrl + =
减小字号Ctrl + -
显示快捷键?