智能车matlab 单片机 舵机,蓝牙遥控智能车制作 单片机+SG90舵机扫描

for(b=0;b<120;b++);

}

void delayx1ms(int x)

{

unsigned char a,b;

for(x;x>0;x--)

for(b=102;b>0;b--)

for(a=3;a>0;a--);

}

void delay1ms()

{

unsigned char a,b;

for(b=102;b>0;b--)

for(a=3;a>0;a--);

}

void delay500us()

{

unsigned char a,b;

for(b=1;b>0;b--)

for(a=227;a>0;a--);

}

void main()   //    主函数

{

Init();         //     串口初始化函数调用

while (1)

{

if (RI==1)   //    判断是否有数据

{

RI = 0;     // 置0

Com = SBUF;    // 暂时存放接收的数据

Cont();             // 调用数据处理函数

}

}

}

void Init()    //串口初始化

{

ES=0;                     //中断关闭

SCON = 0x50;         //   串行控制寄存器   01010000串口工作方式1并允许中断接收数据

TMOD = 0x20;        //    定时器/计[color=rgb(34, 34, 34)][backcolor=rgb(248, 248, 248)][font=PingFang SC,Arial,5FAE软雅黑,5B8B体,simsun,sans-serif][size=0.48] [/font][/backcolor][/color]数器1设置为工作方式

TH1=TL1=0xFD;     //   设置波特率9600=110592*1000000/12/(0x100-0xfd)/32   本次实验晶振(11.0592)

PCON &= 0x7f;       //    波特率不倍增

TR1 = 1;         //   开启定时器1

TI=0;             //   发送中断位

RI=0;             //   接收中断位

ES=1;            //   开启串口中断

motor1=0;

motor2=0;     //   电机初始化

motor3=0;

motor4=0;

}

void Send(uc a)   //单字节数据发送

{

TI=0;             // TI是串口接收标志位

SBUF=a;         //SBUF---即串口数据缓冲寄存器   将数据存入

while (TI==0) ;//等待发送结束

TI=0;             //清零

}

void qianjin()   //前进功能函数

{

motor1=1;

motor2=0;

motor3=1;

motor4=0;

}

void zuozhuan()   //原地左转功能函数

{

motor1=0;

motor2=1;

motor3=1;

motor4=0;

}

void youzhuan()  //原地右转功能函数

{

motor1=1;

motor2=0;

motor3=0;

motor4=1;

}

void houtui()  //后退功能函数

{

motor1=0;

motor2=1;

motor3=0;

motor4=1;

}

void ZUO()  // 单独左转功能函数

{

motor1=0;

motor2=0;

motor3=1;

motor4=0;

}

void YOU()  // 单独右转功能函数

{

motor1=1;

motor2=0;

motor3=0;

motor4=0;

}

void xunji()  //寻迹模式切换 功能函数

{

// while(1)

{

if((blackorwhite1==1)&& (blackorwhite2==0)&&(blackorwhite3==1))

qianjin();

else if ((blackorwhite1==0&&blackorwhite2==0&&blackorwhite3==1)||(blackorwhite1==0&&blackorwhite2==1&&blackorwhite3==1))

zuozhuan();

else if((blackorwhite1==1&&blackorwhite2==1&&blackorwhite3==0)||(blackorwhite1==1&&blackorwhite2==0&&blackorwhite3==0))

youzhuan();

else if ((blackorwhite1==0)&&(blackorwhite2==0)&&(blackorwhite3==0))

qianjin();

else

houtui();

}

}

//void L2_0()                                                  SG90舵机0度函数  若需要可以解禁此功能

/{

//        int i,j;

//        for(j=0;j<43;j++)

//        {

//                PWM1=1;

//                delay500us();

//       //      delay1ms();

//                PWM1=0;

//                for(i=0;i<19;i++)

//                delay1ms();

//                delay500us();

//                PWM1=0;

//                for(i=0;i<20;i++)

//                delay1ms();

//        }

//}

void L2_45()                                                    //舵机45度旋转函数

{

int i,j;

for(j=0;j<43;j++)

{

PWM1=1;

//     delay500us();

delay1ms();

PWM1=0;

for(i=0;i<20;i++)

delay1ms();

//     delay500us();

PWM1=0;

for(i=0;i<21;i++)

delay1ms();

}

}

void L2_90()                                              //舵机90度旋转函数

{

int i,j;

for(j=0;j<43;j++)

{

PWM1=1;

delay1ms();

delay500us();

PWM1=0;

for(i=0;i<18;i++)

delay1ms();

delay500us();

PWM1=0;

for(i=0;i<20;i++)

delay1ms();

}

c2c9ed493cd281aa86d8a6f5178c4c01.gif [1] [2] 610626052e95c7fbe3d254abc769d9ad.gif

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值