单片机蓝牙控制小车
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
课题:基于单片机的蓝牙控制小车专业:
班级:
学号:
姓名:
指导教师:
设计日期:
成绩:
重庆大学城市科技学院电气信息学院
目录
1.设计目的作用 (2)
2.设计要求 (2)
3.设计的具体实现 (2)
3.1设计原理 (2)
3.2系统设计 (12)
3.3系统实现 (13)
4.总结 (19)
参考文献 (20)
附录 (21)
附录1 (21)
附录2 (22)
C51蓝牙控制小车设计报告
1设计目的与意义
目的与意义:提高学生动手能力,培养学生的思维,巩固理论知识,让我们能对单片机更加深入的了解,加深同学们对单片机的认识,通过自己动手让小车跑起来还能让同学们更加有积极性,参与感,成就感。让学生们亲自体验这门课程的神奇性。
因为无线技术的广泛使用,使蓝牙技术的发展成为了趋势之一,蓝牙可以发送和接受语音和数据,满足了大多数人的需求,它也融合了其他相关产品的特点,也是这样技术变得更多样性。实现了无线控制小车,摆脱了有线控制的不方便,更加智能。
2设计要求
SPP蓝牙串口调试助手 ----》聊天窗口--》
1、在Bluetooth_Car项目中添加超声波躲避障碍功能(在小车前进的过程中,实时检测障碍物,一旦检测的距离,接近设定的值,触发蜂鸣器,报警系统工作,小车停止前进);
2、在Bluetooth_Car项目中的串口中断服务函数中,添加小车前进的8个方向,前后左右,左前,右前,左后,右后;
3、利用外部中断,强制停止小车运行(无论小车现在处于什么状态),蜂鸣器报警1s后,可再运行;
4、用手机的蓝牙串口调试助手来远程操作小车。
3.设计的具体实现
3.1设计原理
芯片常识: STM8、C52 、STM32 、ARM
C52:主要做末端的控制 11.0592MHZ
STM32:主要做工业控制领域——智能设备 168M
ARM:主要做消费市场——手机
==============单片机小车==========
了解原理图和数据手册
一、软件建立工程
建立工程时芯片选择--》Atmel-->AT89C52
设置芯片频率,选择生成16进制可执行文件。
=============中断========
单片机获取外部数据的方式:
1.程序控制方式
a.无条件发送方式
单片机认为外部设备一直都是准备好的,直接就拿数据使用。
b.条件判断方式
在满足一定条件才获取数据。
2.中断方式
由外部控制的,当有中断请求产生的时候,就可以在中断里面去实现获取数据。
3.DMA直接存储控制器
当需要从外界获取数据的时候,DMA可以向CPU申请获取数据,由DMA直接获取数据。使用DMA可以绕过CPU处理数据,降低CPU的使用率。
中断:当CPU正常运行的时候,突然收到一个中断请求(任务),完成中断任务之后立即返回原来的程序继续执行。中断源:中断来源,发送中断的源头
中断请求:中断发出的请求,申请执行任务
中断响应:CPU响应中断请求,暂停正在执行的任务,转而执行中断任务
8个中断源:
INT0 外部中断0
INT1 外部中断1
INT2 外部中断2
INT3 外部中断3
T0 定时器0
T1 定时器1
T2 定时器2
Uart 串口中断
中断有优先级:
分为4级,从0~3,数字越大优先级越高,高优先级的中断可以打断低优先级的中断。
中断的查询次序:
在中断优先级相同的情况下,并且两个中断同时产生的时候,会优先执行查询次序级别高的中断.查询次序不能打断中断.
中断服务函数:
void INT1_func(void) interrupt 2
{
if()
}
小车两轮驱动:
单片机的IO口不能直接驱动电机运行,必须使用驱动模块才可以。
电机转动原理:
电机的两条线一根接电源正极,一根接负极就可以转动,当电极的方向改变,转动的方向也会改变。
BIA = 1;
BIB = 0;
控制右轮电机,如果想让轮子转动,只需要设置以上两个引脚,一个为1,一个为0.
P0.0 左轮 1
P0.1 左轮 0
P0.2 右轮 1
P0.3 右轮 0
如果轮子想要动起来,需要接电源线。
思考:
封装函数:前进、后退、停止、左前转、右前转、左后转、右后转
=============定时器==============
定时器就是定时,定时产生中断或者是计数。
工作方式:
定时器:主要产生定时中断
计数器:计时计数
工作模式:
模式0:12位寄存器
模式1:16位寄存器
模式2:8位自动重装载寄存器
模式3:两个8位寄存器,T1无效
时钟周期:就是频率的倒数
假设晶振12M,时钟周期是1/12us,实际上大多使用的是:1/11.0592
状态周期:
状态周期是时钟周期的两倍:1/12*2
机器周期:
12个时钟周期定为1个机器周期,如果晶振是12M,那么一个机器周期就刚好是1us。
寄存器:
TCON 控制寄存器 TMOD 模式寄存器
定时器0作模式1: TMOD.1 = 0 TMOD.0 = 1
设置寄存器计数的初值:TL0和TH0
50ms = (65536-初值)* (1/11.0592*12)
50000us = (65536-初值) * 1.08507
46080 = 65536-初值
初值 = 19456 ==》 0x4C00
TH0 = 0x4C;
TL0 = 0x00;
=============串口==============
一、计算机内部通讯的方式:
UART(串口)、I2C、SPI、1-Write(单总线)
二、数据通讯方式
并行通讯:多个任务同时进行,增加速度。