基于MSP430f5529的红外循迹小车

 

#include "msp430f5529.h"

   void qj()    //前进

   {

     P3OUT &=~ BIT0;

     P3OUT |=BIT1;

     P2OUT &=~ BIT0;

     P2OUT |=BIT2;   

   }

    void tz()   //停止

   {

     P3OUT &=~ BIT0;

     P3OUT &=~ BIT1;

     P2OUT &=~ BIT0;

     P2OUT &=~ BIT2;   

   }

   void zz()    //左转

   {

     P3OUT |=BIT0;

     P3OUT &=~ BIT1;

     P2OUT &=~ BIT0;

     P2OUT |= BIT2; 

   }

    void yz()   //右转

   {

     P3OUT &=~ BIT0;

     P3OUT |= BIT1;

     P2OUT |= BIT0;

     P2OUT &=~ BIT2; 

   }

void main()

{

    WDTCTL = WDTPW | WDTHOLD; //关闭看门狗

    P4DIR |=BIT1;    //输出给ENA(左轮)

    P4DIR |=BIT2;    //输出给ENB(右轮)

    P3DIR |=BIT0;    //输出给IN1(左轮)

    P3DIR |=BIT1;    //输出给IN2

    P2DIR |=BIT0;    //输出给IN3(右轮)

    P2DIR |=BIT2;    //输出给IN4

    P6DIR |=BIT0;    //输出给蜂鸣器

    P1DIR &=~ BIT2;  //左红外输入

    P4DIR &=~ BIT3;  //右红外输入

    P1REN |= BIT2;   //为输入设置上拉电阻

    P4REN |= BIT3;

    P4OUT &=~ BIT1;  //将输入输出口置零

    P4OUT &=~ BIT2;

    P3OUT &=~ BIT0;

    P3OUT &=~ BIT1;

    P2OUT &=~ BIT0;

    P2OUT &=~ BIT2;

    P6OUT &=~ BIT0;

    P1OUT &=~ BIT2;

    P4OUT &=~ BIT3;

    while(1)

    {

       if(P1IN&BIT2)   //P1.2为1时执行

       {

         if(P4IN&BIT3) //P4.3为1时执行

         {

           tz();      //调用“停止”指令

         }

         else         //P4.3为0时执行

         {

           zz();

         }

       }

       else          //P1.2为0时执行

       {

         if(P4IN&BIT3) //P4.3为1时执行

         {

           yz();

         }

         else         //P4.3为0时执行

         {

           qj();

         }       

       } 

    }

}

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值