《51单片机 蓝牙控制小车键 简单容易理解解析 程序》由会员分享,可在线阅读,更多相关《51单片机 蓝牙控制小车键 简单容易理解解析 程序(3页珍藏版)》请在金锄头文库上搜索。
1、#include typedef unsigned int u16; typedef unsigned char u8;/定义车轮 I0 接口 sbit IN1 = P21; sbit IN2 = P22; sbit IN3 = P23; sbit IN4 = P24; u8 mode,flag;/延时函数 void delay(u16 i) while(i-); void go()/前进 IN1=1; IN2=0; IN3=1; IN4=0; void turn()/转圈 IN1=1; IN2=0; IN3=0; IN4=1; void left() /左转 IN1=0; IN2=0; IN
2、3=1; IN4=0; void right() /右转 IN1=1; IN2=0; IN3=0; IN4=0; void back() /后退 IN1=0; IN2=1; IN3=0; IN4=1; void stop() /停止 IN1=0; IN2=0; IN3=0; IN4=0; void timeinit()/定时器 1 工作方式 2 8 为自动重装TMOD=0x20;TH1=0xF9;TL1=0xF9;SM0=0;SM1=1;REN=1;TR1=1;ET1=0;EA=1;ES=1; void main ()timeinit();while (1)if(flag) /flag 初始化
3、为 0,在终端中接收到数据值赋值为 1,当为 1 是进入 ifflag=0;/设置为 0,没有接收到数据不进入 if ,不处理数据switch(mode) /接线收到数据 mode 的值,进行相应的处理case 1:go(); break; case 2:turn(); break; case 3: right();break; case 4: left(); break; case 5: back();break; case 6: stop();break; void ck() interrupt 4RI=0;/清中断标志位,目的是为了下次接受mode=SBUF; /mode 读取中断接收到的数据flag=1;/flag 接受成功后的标记,为了接收到数据在 main 中处理