找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 1634|回复: 0
打印 上一主题 下一主题
收起左侧

蓝牙壁障小车项目

[复制链接]
跳转到指定楼层
楼主
ID:112410 发表于 2017-12-30 14:18 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
第三次发帖了,这次笔者发的是在大二阶段笔者在电子技术社团担任干部期间和社团干部成员一起给大一新生准备一个项目教学计划。该项目以STC51单片机系统为平台,意在让大一新生掌握项目化编程的方法,所以我们只是提供了驱动代码,新生在初步了解后可以尝试做出第一个作品,蓝牙和壁障小车。
话不多说,附上一些代码。


*******************************************************************************/
#include "bluetooth.h"
u8         tmp;//开辟一个变量存储蓝牙串口读取的数据

/*******************************************************************************
* 函 数 名:    baudrateinit
* 函数功能:    初始化波特率值为9600,蓝牙模块做好与手机app的连接准备
* 输    入:            无
* 输    出:         无
* 使用说明:   这个函数是编写蓝牙小车程序的第一步配置,须在主函数开头就调用。
* 示    例:          baudrateinit();
*******************************************************************************/
void baudrateinit()                     
{       
   ES=0;                                    //中断允许位置0
   SCON = 0x50;                        // REN=1允许串行接受状态,串口工作模式1,
   TMOD = TMOD|0x20;                      //定时器1工作于方式2,8位自动重载模式,用于产生波特率
   TH1=TL1=0xFD;                       //波特率9600 (本次测试采用晶振为11.0592)
   PCON &= 0x7f;                       //波特率不倍增
   TR1 = 1;                            //定时器1开始工作,产生波特率                                                                                         
   TI=0;                                  //发送标志位置0                                       
   RI=0;                             //接收标志位置0
   ES=1;                                                             //中断允许
}

/*******************************************************************************
* 函 数 名:    readData
* 函数功能:    读串口数据函数
* 输    入:            无
* 输    出:         输出返回值tmp
*******************************************************************************/
u8 readData()                                               
{
       
        if(RI==1)  //接收到蓝牙发送信息的标志
        {
                tmp = SBUF;                //将寄存器中的数据存储在tmp变量中
                RI = 0;                   //将标志清零
        }
        return tmp;                 //返回一个变量值
               
}
/*******************************************************************************
* 函 数 名:    carState
* 函数功能:    小车的马达控制函数
* 输    入:    speed=速度,可输入high、middle、low三个值       
                        motor=小车模式,可输入car_Forward、car_Back、car_Left、

                        car_Right、car_Stop、car_Brake六个值
* 输    出:         P1引脚
* 示    例: 小车工作在高速前进状态:  carState(car_Forward , high)
*******************************************************************************/
void carState(u8 motor , u16 speed)       
{                                                                               
        motor_IO = motor ;                        //调P1引脚输出的占空比
        delay(speed);                                 //motor、speed、motor_IO在头文件中宏定义了
        motor_IO = car_Stop;
        delay(500-speed);
}

/*******************************************************************************
* 函 数 名:    delay
* 函数功能:    小车的延时函数,无须调用
* 输    入:           i
* 输    出:         无
*******************************************************************************/
void delay(u16 i)
{
        while(i--);                   //空语句
}


代码已经打包,还有当时项目教学计划的说明书和资料文档。






代码及教程步骤.rar

3.71 MB, 下载次数: 14, 下载积分: 黑币 -5

评分

参与人数 1黑币 +100 收起 理由
admin + 100 共享资料的黑币奖励!

查看全部评分

分享到:  QQ好友和群QQ好友和群 QQ空间QQ空间 腾讯微博腾讯微博 腾讯朋友腾讯朋友
收藏收藏 分享淘帖 顶 踩
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

手机版|小黑屋|51黑电子论坛 |51黑电子论坛6群 QQ 管理员QQ:125739409;技术交流QQ群281945664

Powered by 单片机教程网

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