吾爱破解 - 52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 3575|回复: 7
收起左侧

[C&C++ 转载] 自设蓝牙模块小车程序

[复制链接]
Z.W 发表于 2018-11-18 22:23
本帖最后由 wushaominkk 于 2018-11-19 23:20 编辑

   
[C] 纯文本查看 复制代码
#include<reg52.h> 
typedef unsigned int uint;
typedef unsigned char uchar;
typedef unsigned int u16;   //对数据类型进行声明定义
typedef unsigned char u8;
sbit IN1=P1^0; //定义电机驱动信号输出端
sbit IN2=P1^1; //定义电机驱动信号输出端
sbit IN3=P1^2; //定义电机驱动信号输出端
sbit IN4=P1^3; //定义电机驱动信号输出端
sbit  LED1=P1^4; //定义左转向灯信号输出端
sbit  LED2=P1^5; //定义右转向灯信号输出端
sbit  BEEP=P1^6; //定义喇叭信号输出端
sbit  DD1=P1^7;  //大灯
uchar rev=0; //蓝牙接收缓存值
bit rok=0; //接收标志
void delay(u16 i)
{
while(i--); 
}

void zzx() //左转向灯
{
LED1=0;
delay(30000); //大约延时450ms
LED1=1;
delay(30000); //大约延时450ms 
  
}
void ddl() //亮大灯
{
DD1=0;
  
}
void ddm() //灭大灯
{
DD1=1;
  
}
    void md() //灭灯
{
LED1=1;
LED2=1; 
  
}
void bx() //喇叭停
{
BEEP=1; 
  
}
void yzx() //右转向灯
{
LED2=0;
delay(30000); //大约延时450ms
LED2=1;
delay(30000); //大约延时450
}
void  laba()
{
      
  BEEP=0; 
   
}
void qianjin()
{
   IN1=0;    
   IN2=1; 
   IN3=1;      
   IN4=0;
   
}
void houtui()
{
   IN1=1;    
   IN2=0; 
   IN3=0;      
   IN4=1;
    LED1=0;
LED2=0; 
}
/********************************************************************
* 名称 :zuozhuan()
* 功能 : 电机1后退,电机2前进,整车表现为左转。
* 输入 : 无
* 输出 : 无
***********************************************************************/
  void zuozhuan()
{ 
   IN1=0;    
   IN2=0; 
   IN3=1;      
   IN4=0;
LED1=0;
delay(5000); //大约延时450ms
LED1=1;
delay(5000); //大约延时450
   }
void youzhuan()
{ 
   
   IN1=0;    
   IN2=1; 
   IN3=0;      
   IN4=0;
   LED2=0;
delay(5000); //大约延时450ms
LED2=1;
delay(5000); //大约延时450
   }
    void tingche()
{ 
   IN1=0;    
   IN2=0; 
   IN3=0;      
   IN4=0; 
}
/********************************************************************
* 名称 : Com_Init()
* 功能 : 串口初始化,晶振11.0592,波特率9600,使串口中断
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Init(void)
{
TMOD = 0x20;
PCON = 0x00;
SCON = 0x50; 
TH1 = 0xFd; //设置波特率 9600
TL1 = 0xFd;
TR1 = 1; //启动定时器1
ES = 1; //开串口中断
EA = 1; //开总中断
}
void gongneng()
{
  switch(rev)
  {
   case '0': tingche(); break;
   case '1': qianjin(); break;
   case '2': houtui(); break;
   case '3': zuozhuan(); break;
   case '4': youzhuan(); break;
   case '5': laba(); break;
      case '6': zzx(); break;
   case '7': yzx(); break;
      case '8': md(); break;
   case '9': bx(); break;
   case 'A': ddl(); break;
   case 'B': ddm(); break;
   default:break; 
  }
  rok=0;
}
void main()
{
    Com_Init();//初始化           
    while(1)//循环结构,选择函数控制小车的状态
{
   if(rok)//标志为1才开始接适
   {
   gongneng();
}
}
}
/********************************************************************
* 名称 : Com_Int()
* 功能 : 串口中断子函数
* 输入 : 无
* 输出 : 无
***********************************************************************/
void Com_Int(void) interrupt 4
{
ES = 0;//关串口中断
if(RI) //当硬件接收到一个数据时,RI会置位1,串口接收中断标志位,有数据窘RI自动置位0,需手动清0
  {
  rev=SBUF;//从SBUF中读出数据
  RI = 0;
  rok=1; //正在接收
  }
ES = 1;  
}

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

寒花开 发表于 2018-11-19 17:41
感觉很神奇,就是不知道怎么用
makai136586 发表于 2018-11-19 21:16
wushaominkk 发表于 2018-11-19 23:19

发帖注意代码插入规范,已帮你编辑,下次注意!
【公告】发帖代码插入教程
https://www.52pojie.cn/thread-713042-1-1.html
 楼主| Z.W 发表于 2018-11-19 23:52
本帖最后由 Z.W 于 2018-11-19 23:56 编辑

寒花开 发表于 2018-11-19 17:41
感觉很神奇,就是不知道怎么用


用于单片机烤录的程序。
可实现利用蓝牙软件遥控小车运动。可用于单片机爱好者学习自制小车的参考程序
参考软件Keil uVision4 和stc-isp-15xx-v6.75
蓝牙控制软件:蓝牙串口助手
a2634008 发表于 2018-11-20 13:27
感谢分享~正好收藏
双面妲己 发表于 2018-11-20 16:47
好厉害就是看不懂
xtvott 发表于 2018-11-21 14:46
正在研究学习单片机,楼楼的代码不错,留个爪,日后学习使用
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则

返回列表

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-11-15 22:27

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表