您的位置:首页 > 其它

Wifi小车之 - 51单片机无线小车篇

2016-07-17 09:21 218 查看
2011-10-27

红外的数据是不连续的,所以试着用315M无线模块做遥控。在有了红外小车的基础上,无线就很简单了,循环判断按键是否按下就行了。我买的这个遥控套件好像有点问题,有一个按键没反应。。。

而且我这个套件还有另外一个问题,有时候突然没信号,要把天线对准它用力按,然后又有信号了。。。 囧

 



51单片机程序

控制的方法是,按住1键左转,按住3键右转,同时按住1,3键前进,按住2就后退

 

/*

电机控制板接P1

IN1 > P10

IN2 > P11

IN3 > P12

IN4 > P13

*/

 

/*预处理命令*/

#include<reg52.h>    //包含单片机寄存器的头文件

#include<intrins.h> //包含_nop_()函数定义的头文件

#define uchar unsigned char

#define uint unsigned int

#define motor P1

 

/* 函数申明 -----------------------------------------------*/

void delay(uchar x);

 

/* 变量定义 -----------------------------------------------*/

/*无线数据线接P2*/

sbit key1=P2^4;

sbit key2=P2^5;

sbit key3=P2^6;

sbit key4=P2^7;

 

/*

********************************************************************************

** 函数名称 : main(void)

** 函数功能 : 主函数

********************************************************************************

*/

main()

{

motor=0;

 

while(1){

if(key1==1 && key3==1){

motor=0xf5;

}else if(key1==1){

motor=0xfd;

}else if(key3==1){

motor=0xf7;

}else if(key2==1){

motor=0xfa;

}else{

motor=0;

}

//delay(200);

}

}

 

/*

********************************************************************************

** 函数名称 : delay(uchar x)

** 函数功能 : 延时函数

********************************************************************************

*/

void delay(uchar x)    //x*0.14MS

{

uchar i;

while(x--)

{

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

}

}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: