【毕业设计】63-基于单片机的无线传输_蓝牙音响小车设计(原理图工程+源代码+实物图+答辩论文+visio流程图)

【毕业设计】63-基于单片机的无线传输_蓝牙音响小车设计(原理图工程+源代码+实物图+答辩论文+visio流程图)

资料要求

资料包含:毕业设计全套资料(精品)
原理图工程
原理图截图
实物图
答辩论文,低重复率文档,21673字
任务书
visio流程图
详情请私信!

任务书

主要研究内容:

完成车辆的无线蓝牙设计,要求使用单片机STC89C52完成蓝牙与手机的链接、能够正常完成接打电话、播放音乐等基本功能。

要求:

1、确定系统总体设计方案,给出设计方案的结构框图;

2、利用仿真软件(如:protues)完成仿真电路的具体设计;

3、利用编程软件(如:Keil5 等)完成编程;

4、对所设计的系统进行仿真调试,系统所需的设计功能。

设计说明书

摘要

随着科学技术的发展,汽车内置的设备中已经包含了蓝牙等车载设备。需要通过手机蓝牙连接车载蓝牙即可实现车机系统的使用。车机系统接入蓝牙可以应用更多功能,使车机功能拓展性更强,增加车机系统的功能性能。

本次针对与目前使用较多的车载系统进行设计,对基于单片机的无线传输小车进行设计,可实现车内车载系统的研究与设计。可实现蓝牙的连接播放音乐、接听电话等功能。系统选择使用STC89C52单片机作为主控制器,BT201车载蓝牙模块作为主要的蓝牙连接与音乐播放设备,按键作为人机交互控制设备可实现歌曲的暂停、播放、上一曲、下一曲调功能。本文通过模块化的方式对系统的硬件电路进行搭建,并且将每个电路板块均调试完成,按照系统的功能对系统的硬件电路设。并使用Keil软件对系统的软件工程搭建,并且将系统功能设计完成后制作实物的方式对系统进行验证。原理图设计完成后输出BOM物料清单,采购相关的物料并制作印制电路板,对电路焊接调试,测试硬件电路的合理性以及各个驱动电路的电位验证,最后完成实物的制作。

最后通过实物的功能性验证,实现了系统的音乐播放、蓝牙连接、上一曲、下一曲播放的功能。制作测试计划对系统的功能性、稳定性以及抗干扰能力测试。输出测试项目清单以及测试项目报告。验证系统的完整性以及预期功能性测试。

设计框架架构

前 言 1
第一章 绪论 2
第一节 研究背景 2
第二节 研究意义 2
第三节 本文的主要研究内容 3
第四节 本章小结 4
第二章 无线传输小车系统方案设计 5
第一节 系统需要实现的功能 5
第二节 BT201蓝牙模块介绍 5
第三节 主要元器件选择 7
一、单片机选型 7
二、显示器选型 7
第四节 系统方案确认 8
第五节 本章小结 8
第三章 无线传输小车系统电路设计 9
第一节 单片机最小系统电路设计 9
一、单片机介绍 9
二、单片机最小系统设计 10
第二节 按键电路设计 11
第三节 电源供电电路设计 12
第四节 LED指示灯电路设计 12
第五节 LCD1602电路设计 13
第六节 蓝牙及音频电路设计 14
第七节 总电路设计 15
第八节 本章小结 16
第四章 无线传输小车系统软件设计 17
第一节 Keil软件介绍 17
第二节 软件总流程设计 18
一、总流程图设计 18
二、主函数核心代码 19
第三节 蓝牙传输流程设计 20
一、蓝牙传输流程图设计 20
二、蓝牙传输核心代码 22
第四节 按键检测流程设计 22
一、按键检查流程图设计 22
二、按键检测核心代码 23
第五节 LCD1602显示流程设计 24
一、LCD1602程序设计流程 24
二、LCD1602核心代码 26
第六节 本章小结 26
第五章 无线传输小车系统实现 27
第一节 实物制作过程 27
一、焊接静态调试 28
二、系统综合调试 28
第二节 实物功能测试 29
一、硬件电路调试 29
二、音量调节功能测试 30
三、音乐切换功能测试 30
四、音乐播放、音乐暂停功能测试 31
五、蓝牙功能测试 32
第三节 本章小结 33
总 结 34
致 谢 35
参考文献 36
附 录 38
一、英文原文 38
二、英文翻译 41
三、工程文件 44
四、源代码 45

设计说明书及设计文件

请添加图片描述

请添加图片描述
请添加图片描述
请添加图片描述

源码展示

/*------------------------------------------------------------------*/
/* --- STC MCU Limited ---------------------------------------------*/
/* --- STC89-90xx Series MCU UART (8-bit/9-bit)Demo ----------------*/
/* --- Mobile: (86)13922805190 -------------------------------------*/
/* --- Fax: 86-0513-55012956,55012947,55012969 ---------------------*/
/* --- Tel: 86-0513-55012928,55012929,55012966----------------------*/
/* --- Web: www.STCMCU.com -----------------------------------------*/
/* --- Web: www.GXWMCU.com -----------------------------------------*/
/* If you want to use the program or the program referenced in the  */
/* article, please specify in which data and procedures from STC    */
/*------------------------------------------------------------------*/
#include "reg51.h"
#include "intrins.h"
#include "stdio.h"
#include "math.h"
typedef unsigned char BYTE;
typedef unsigned int WORD;
#define FOSC 11059200L      //System frequency
#define BAUD 9600           //UART baudrate
unsigned char DIS[16]; 
bit busy;
void SendData(BYTE dat);
void SendString(char *s);
sbit LCD1602_RS = P1^0;
sbit LCD1602_RW = P1^1;
sbit LCD1602_E  = P1^2;
#define  LCD1602_Data  P0
void delay_50us_1602(unsigned int t)
{
	unsigned char j;
	for(;t>0;t--)
		for(j=19;j>0;j--);
}
void LCD1602_write_com(unsigned char com) 
{
	LCD1602_E = 0;     //使能
	LCD1602_RS = 0;	   //选择发送命令
	LCD1602_RW = 0;	   //选择写入	
	LCD1602_Data = com;     //放入命令
	delay_50us_1602(1);		//等待数据稳定
	LCD1602_E = 1;	          //写入时序
	delay_50us_1602(5);	  //保持时间
	LCD1602_E = 0;
}
void LCD1602_write_data(unsigned int dat)
{
	LCD1602_E = 0;	//使能清零
	LCD1602_RS = 1;	//选择输入数据
	LCD1602_RW = 0;	//选择写入

	LCD1602_Data = dat; //写入数据
	delay_50us_1602(1);
	LCD1602_E = 1;   //写入时序
	delay_50us_1602(5);   //保持时间
	LCD1602_E = 0;
}
void LCD1602_init(void)
{
	
		delay_50us_1602(5);   //保持时间
		delay_50us_1602(5);   //保持时间	
	LCD1602_write_com(0x38);  //开显示
	LCD1602_write_com(0x38);  //开显示
 	LCD1602_write_com(0x38);  //开显示
	LCD1602_write_com(0x0c);  //开显示不显示光标
	LCD1602_write_com(0x06);  //写一个指针加1
	LCD1602_write_com(0x01);  //清屏
	LCD1602_write_com(0x80);  //设置数据指针起点   
}
void LCD1602_Clear(void)
{
	LCD1602_write_com(0X01);
}
/*******************************************
函数名称:Disp_ZF
功    能:控制液晶显示字符
参    数:addr--显示位置的首地址
          pt--指向显示数据的指针
          num--显示字符个数
返回值  :无
********************************************/
void LCD1602_Disp_ZF(unsigned char addr,const unsigned char * pt,unsigned char num)
{
	unsigned char i;
	LCD1602_write_com(addr); 
	for(i = 0;i < (num*1);i++) 
		LCD1602_write_data(*(pt++)); 
} 
void LCD1602_String(unsigned char addr,const unsigned char * pt)
{
	LCD1602_write_com(addr); 
	while(*(pt))
	{
		LCD1602_write_data(*(pt)); 
		pt++;
	}
} 
sbit KEY1 = P2^0;
sbit KEY2 = P2^1;
sbit KEY3 = P2^2;
sbit KEY4 = P2^3;
sbit KEY5 = P2^4;
sbit KEY6 = P2^5;
sbit KEY7 = P2^6;
sbit KEY8 = P2^7;
unsigned char buf[20];
void Set_Vol(unsigned char dat)
{	
//	//设置波特率9600
//	sprintf(buf,"AT+CT01\r\n",(short)dat);	
//	SendString(buf);
	//
	sprintf(buf,"AT+CA%d\r\n",(short)dat);	
	SendString(buf);	
	//设定音量 0-30
	sprintf(buf,"AT+CA%d\r\n",(short)(dat%31));	
	SendString(buf);	
	//播放
	sprintf(buf,"AT+AA01\r\n");	
	SendString(buf);	
	///暂停
	sprintf(buf,"AT+AA02\r\n");	
	SendString(buf);		
	/// 下一曲
	sprintf(buf,"AT+CC\r\n");	
	SendString(buf);
	/// 上一曲
	sprintf(buf,"AT+CD\r\n");	
	SendString(buf);	
	//复位
	sprintf(buf,"AT+CZ\r\n");	
	SendString(buf);	
	//蓝牙模式
	sprintf(buf,"AT+CM01\r\n");	
	SendString(buf);	
	
}


评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

cqtianxingkeji

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值