typora-root-url: ./
【毕业设计】63-基于单片机的无线传输_蓝牙音响小车设计(原理图工程+源代码+实物图+答辩论文+visio流程图)
文章目录
资料
资料包含:毕业设计全套资料(精品)
原理图工程
原理图截图
实物图
答辩论文,低重复率文档,21673字
任务书
visio流程图
任务书
主要研究内容:
完成车辆的无线蓝牙设计,要求使用单片机STC89C52完成蓝牙与手机的链接、能够正常完成接打电话、播放音乐等基本功能。
要求:
1、确定系统总体设计方案,给出设计方案的结构框图;
2、利用仿真软件(如:protues)完成仿真电路的具体设计;
3、利用编程软件(如:Keil5 等)完成编程;
4、对所设计的系统进行仿真调试,系统所需的设计功能。
设计说明书
摘要
随着科学技术的发展,汽车内置的设备中已经包含了蓝牙等车载设备。需要通过手机蓝牙连接车载蓝牙即可实现车机系统的使用。车机系统接入蓝牙可以应用更多功能,使车机功能拓展性更强,增加车机系统的功能性能。
本次针对与目前使用较多的车载系统进行设计,对基于单片机的无线传输小车进行设计,可实现车内车载系统的研究与设计。可实现蓝牙的连接播放音乐、接听电话等功能。系统选择使用STC89C52单片机作为主控制器,BT201车载蓝牙模块作为主要的蓝牙连接与音乐播放设备,按键作为人机交互控制设备可实现歌曲的暂停、播放、上一曲、下一曲调功能。本文通过模块化的方式对系统的硬件电路进行搭建,并且将每个电路板块均调试完成,按照系统的功能对系统的硬件电路设。并使用Keil软件对系统的软件工程搭建,并且将系统功能设计完成后制作实物的方式对系统进行验证。原理图设计完成后输出BOM物料清单,采购相关的物料并制作印制电路板,对电路焊接调试,测试硬件电路的合理性以及各个驱动电路的电位验证,最后完成实物的制作。
最后通过实物的功能性验证,实现了系统的音乐播放、蓝牙连接、上一曲、下一曲播放的功能。制作测试计划对系统的功能性、稳定性以及抗干扰能力测试。输出测试项目清单以及测试项目报告。验证系统的完整性以及预期功能性测试。
设计说明书及设计文件
答辩论文,低重复率文档,21673字
源码展示
/*------------------------------------------------------------------*/
/* --- 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);
}