【基于STC89C52RC单片机的蓝牙防丢系统设计与实现7900字】_第1页
【基于STC89C52RC单片机的蓝牙防丢系统设计与实现7900字】_第2页
【基于STC89C52RC单片机的蓝牙防丢系统设计与实现7900字】_第3页
【基于STC89C52RC单片机的蓝牙防丢系统设计与实现7900字】_第4页
【基于STC89C52RC单片机的蓝牙防丢系统设计与实现7900字】_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

I1绪论随社会不断地进步,生活节奏越来越来快,随之而来的是经常发生的丢失物品的现象,蓝牙防丢系统的设计便是为了应对这一情况。课题研究背景今天中国的发展速度越来越来快,很多人都有了购买价格昂贵的物品的习惯,有时候小小一件物品都价格昂贵,如果丢失,必然会造成不少麻烦,甚至对个人和家庭带来不小的打击。中国拥有大量的人口,高铁站、地铁站、市场等日常的生活场景中聚集着令人惊讶的人流量,难免有人会丢三落四,常常会把钥匙、手拿包等弄丢。在商场里我们也常常能听到小孩走失、寻找父母的广播寻人通知,粗心的家长带孩子逛街时,家长稍不注意,孩子就会走丢,为了防止此类情况的发生,就很需要一个蓝牙防丢器,来避免以上提到的危险情况。1.2课题发展现状及前景随着现代科学信息技术的不断大步推进发展,如今现代社会的人们生活、工作状态节奏飞快,快速的现代都市生活必然提供给现代人们大量的休闲外出活动机会。由于人的注意力有限,我们不难发现在如此快节奏的日常生活中,很多人常常会丢三落四,人们很可能把一些随身携带的贵重物品遗失在其他场合,如何及时发现物品已经遗落成为了人们切实的需求。此类产品按市场分类主要有两种,其一是设备的丢失预警,另一种是人的丢失预警;按技术类型划分则有RFID防丢器等。但通常会有设计难度或本金控制等要素,蓝牙防丢器因此应运而生。当前市场上投入应用的防丢器设备普遍存在大大小小的问题,如价格高,报警声低等,在生活中难以广泛使用。此次设计的电子蓝牙防丢器小巧便携、环保,同时稳定性高、功耗低。判断的依据是物品与防丢器主机的距离变化,以此来确认物品是否在用户所需的安全范围。1.3研究内容和意义本防丢器的工作核心是单片机STC89C52RC,设计中使用了两个蓝牙模块进行相互通信,当信号不能被蓝牙模块检测到时,就会调用报警模块,发出丢失的声光警报。小巧的蓝牙防丢器便于携带,适用于大多数日常生活场景。其优点有蓝牙通信这种通讯方式安全性高,稳定性强,较为可靠,抗干扰能力强。当物体移动范围超过蓝牙可以接收检测的范围,报警模块立即发出警报。本系统设计的操作步骤以及系统设计方案实现后的具体功能为:第一步是通过开启从机和主机的蓝牙模块进行无线实时数据配对。假定配对顺利,单片机将数据从连接的串口和蓝牙模块发送到从机的蓝牙模块,从机的蓝牙模块实时接收数据。当携带蓝牙模块的主机和从机之间的间隔超过一定值时,主机接受不到从机发出的配对请求信号,系统会发出警报声,提示物品已经丢失。进一步的,本系统结构设计主要的控制系统包括主控单片机、复位驱动控制电路、时钟驱动控制电路这几个部分构成。STC89C52单片机通常使其性能正常的电压范围为4V-5.5V。复位驱动控制电路就是明确一个单片机的初始工作状态,以此驱动单片机。复位信号在单片机接通后产生,使其恢复到特定的程序段运行。时钟电路就是一个单片机外部或内部的振荡器,单片机的运行速度也与之息息相关。同时该电路向单片机输出一个正弦波信号,如果没有时钟驱动,单片机无法工作。2系统设计方案在开始系统设计之前,我阅读并学习掌握了解了一些关于单片机及蓝牙防丢系统的基本资料,确认本系统的主体方案。通过对比分析各个类型单片机的功能和细节后,认为使用一个STC89C52单片机作为核心功能控制的元器件是相对来说最合理的。单片机的外围控制电路配置有蜂鸣器报警模块、蓝牙模块、电源模块。这几个模块都经过了单独的设计和验证,最后将他们合理组合成以下所呈现的设计方案。2.1系统总体设计STC89C52单片机、复位电路、晶振电路、蓝牙模块电路、和电源模块是本次设计方案的几个主要模块。第一步,尝试匹配主机与从机无线数据通信进行匹配,正常配对后,数据由单片机通过主机蓝牙的数据传输模块模块和串口发出,从机同步接收数据。当主机因为距离太远无法接收到从机发出的匹配请求时,警报模块发挥作用,发出报警声,同时亮起警示灯,提示主机已经与从机分离。图2-1系统总体设计流程图2.2系统方案选择2.2.1控制芯片的选择在反复的思考和对比后,防丢器决定采用STC89C52RC单片机为核心器件,它容易被控制,操作方便,这就能很好的体现出单片机的优势。在挑选运行的芯片时主要的考虑因素时价格、可实现的功能、以及操作的简易程度。由于在过去的课程中曾经学习过相关单片机的操作和使用,所以使用该系列的单片机进行设计时候困难程度会小很多,后期了解到这是一款一个功率损耗低、性质和功能好、灵巧的CMOS8位的CPU,512字节的数据存储磁盘空间,有8K的Flash可编程存储器,32位I/O口线,看门狗定时器,和可以提供直接使用的串口下载,对于本设计所需的功能可以基本满足,并且价格低廉。同时,在外部供电电压不稳定的情况下,进入掉电自动保护模式,此时冻结振荡器并且保存RAM的硬件内容,单片机自动停止正常工作,要结束掉电保护时需要等到下一个中断停止或者通过硬件复位。图2-2STC89C52RC单片机实物图2.2.2蓝牙模块的选择基于蓝牙3.0协议传输标准的JDY-30模块,信号强度高、数据传输速度快、功能稳固,工作频段为2.5GHZ。图2-3蓝牙模块实物图2.2.3发声报警模块选择采用5V有源蜂鸣器模块,常用的驱动电路就是一个PNP型三极管,作用为控制开关。利用三极管9012来驱使电路工作,相当于一个开关的作用,当高电平输出,三极管的发射极与基极之间不存在电压偏差,蜂鸣器就没有电流经过,蜂鸣器不工作。发射极与基极之间形成了电压差时,表明输出了低电平,此时导通,蜂鸣器有电流通过,立刻发出声音警报。图2-45V有源蜂鸣器实物图2.2.4独立按键模块的选择选用没有自锁功能的4脚手动按键,每向下按一次,按下按键的时候就会输出一个低电平,松开按键的时候就会输出一个高电平,这就是信号的跳变。正常状态下引脚两两连接,按下按钮之后,四个引脚都连接在一起。图2-54脚按键实物图2.3系统设计总结本设计是基于STC89C52单片机的蓝牙传输系统,根据蓝牙模块采集到的数据达到不同的工作状态,从而在主不能接收到从机发出的信号时发出警报,起到防丢器的作用,可以让用户快速的发现物品已经遗落。3硬件设计单片机核心模块设计、5V电源电路设计、蓝牙模块电路设计、蜂鸣器自动报警电路设计、LED信号指示灯控制电路设计是主要的硬件设计模块。3.1STC89C52单片机的设计3.1.1STC89C52单片机的简介单片机模块作为整个系统的主控模块,用于检测蓝牙模块等各种参数,并且驱动蜂鸣器等元件,这个设计的主控芯片采用STC89C52单片机。STC89C52是一个8位微控制器,可以应用于众多不同的嵌入式控制应用系统,具有灵活度高的特点。其引脚总共由40个,1个可以实现双机通信之间同时接收和发送数据的全双工异步串行接口,4个8位并行I/O口,有8K字节程序存储空间,内置4K的带电可擦可编程只读存储器存储空间和512字节的数据存储器,同时有4个外部中断源,2个优先级,3个16位定时/计数器,1个7向量4级中断结构。此外,它有高性能,低功耗的特点。STC89C52还可以降低到0Hz静态逻辑状态运行。在空闲模式下,CPU将停止工作,但允许其他部分继续工作,如ram、定时器、计数器、串行端口和中断。在掉电保护模式下,仍然保存主存内容,此时将冻结振荡器,将停止所有工作。直到下一个中断或硬件复位到来。图3-1单片机的概述图3.1.252单片机的相关引脚说明如下表所示:表3-1STC89C52单片机的引脚功能图3-2STC89C52单片机引脚图3.1.351的单片机最小系统设计原理复位电路、时钟电路和电源电路是该单片机的最小系统。完成这三部分后,单片机才能正常工作。原理图如图3-3。图3-3单片机模块设计原理图电源引脚:VCC\GND,为单片机提供电源复位电路:按键S1、电解电容EC1、电阻R1。电容正极接VCC供电电压端,负极接RST引脚。复位有两种不同的方式,具体分为:手动按键复位、上电自动复位。其中手动按键复位也可以称为非自动按键复位。当按键不处于悬空状态时,两个高电平信号输出到系统的上电复位按钮接口后进行的手动复位。当此时电容两端分别连接的按键为悬空状态时,系统自动形成一条介于电阻与接地之间的通路,电容充电,电阻上没有电压,此时单片机自动开始进行复位,微控制器正常工作。复位电路的作用为:清零电路,将电路恢复为初始状态。当CPU发出的指令错误或者硬件的执行发生操作错误时,可以通过复位功能,恢复至初始状态,重新进行正确的指令执行动作。表3-2一些寄存器的复位状态时钟电路:晶振Y1、瓷片电容C1和C2。这款控制芯片的正常工作需要时钟控制电路自动发出系统时间,选择的晶振频率要求越高、功率消耗的就越大,11.0592MHZ石英晶振和30PF的电容(电容可以起到协振作用)进行串联是此方案中的最佳选择。3.1.4电源电路设计为了方便用户的日常使用,本设计采用了USB供电方式,因为这样可以使电路呈现最简单且最稳定的结构。本设计的系统总电源是一个5V的直流电源。DC是电源的直流插座,可以直接连接到USB电源线。如果采用其他形式的供电,我们还需要额外设计稳压电路和降压电路。电源上电由LED灯为明亮红色是否亮起来判断,防止电流过大从而烧坏LED灯的电阻的阻值为1KΩ。SW为自锁开关,按下SW即可开启电源,系统的总电源会开始输出5V的直流电流,代表电路正常工作的LED指示灯亮起。再次按下SW开关以关闭电源,红灯就会熄灭,此时系统启动电源停止输出。3.2蓝牙模块的设计蓝牙模块是用于无线网络通讯的蓝牙功能继承PCBA板。本模块具有功耗小、成本低、体积小、灵敏度高,数据传输快,作用为无线数据传输通信使用,可轻松达到8K每秒以上的传输速率,支持串行接口和SP蓝牙串口协议,实现大致的目标功能只需额外配备几个的外围控制元件,适用于开发。图3-4蓝牙模块接口图3.3蜂鸣器报警电路(低电平有效)设计 本设计利用有源蜂鸣器发出声音警报,采用直流电压供电,并且可以通过控制输出到单片机引脚的方波形式来改变蜂鸣器的鸣叫警报方式。这类发声元件在实际生活中与人们的而关系十分密切,例如在各类消费电子产品中都得到了非常广泛的应用,如电脑、电话机、报警器等,这是一种一体化的小型电子讯响设备。本系统的报警模块是一个5V有源蜂鸣器模块,有一个限流电阻起到保护作用。利用三极管9012作为该自动报警电路模块的驱动。在低电平输出到单片机的控制引脚时,蜂鸣器被导通,发出鸣叫警报,反之则不鸣叫。图3-5蜂鸣器报警电路原理图3.4LED信号指示灯的设计LED灯是一种利用光电转化的二极管。发光二极管由一个PN结组成。电路中的串联电阻起到保护LED灯的作用,限流所在支路电流的大小。具有PN结正向导通,反向截止的特性。控制单片机的引脚拉低,LED灯导通,变亮。反之LED灯不亮。图3-6LED电路原理图

4软件设计完整的过程控制管理系统由一个硬件控制系统和一个软件控制系统共同组成。利用模块的设计思维进行蓝牙防丢系统的软件部分编写,从而拆解一个复杂的软件设计为几个相对接单的部分,分别予以解决。4.1编程语言的选择整个程序用到了较多的实数运算,出于对整个计算难度的考虑,程序的代码编写主要采用了C语言。在大学四年的课程中,我们曾经学习过C语言的相关课程,对这门编程语言较为熟悉,同时对于此次设计选用的单片机使用C语言有以下几个好处:微处理器的运算、处理功能的命令和存储器架构不需要提前了解。代码可以写的通俗易懂,可理解性高、便于修改和维护。编写过程中可以使用与人类逻辑方式更接近的字符与函数。不需要考虑细节(如存储器的地址、数据类型等),因为51系列单片机的寄存器分配和寻址方式由编译器管理。比起用汇编语言撰写所需要的预期时间,利用C语言编写程序可以大大缩短这道工序。提供了大量的标准化的案例函数。C语言有较强的灵活性和可扩展性,用户可以实现将已经编写好的模块化程序添加到最新创建的程序当中。C语言具有跨平台性强的特点,几乎可以在任意目标系统上使用它的编译器,同时拥有极强的可重用性,编写好的项目可以很崇义的换转到起到处理器上。学习起来较为容易,使用较为方便。4.2Keil程序开发环境本设计中心的MCU汇编开发软件环境系统是一个keil。它生产的这款开发环境系统,兼容所有51单片机控制主机,C编程语言在很多技术方面都比较具有明显的技术优势,相较于其他类型的编程语言,具有例如结构性、可读性、可维护性强等优势,因此简单易用。Keil有以下特点:(1)Keil可以在多种操作系统中运行,方便用户在不同的系统上进行调试。拥有数量宏大的库函数,便于用户调用,并且可以和很多组合系统相互协调工作。(2)Keil是一个可以直接由用户手动的去完成从一个软件诞生的全部工序,比如开始编辑、编译、到整个软件运行连接、调试功能都齐全的开发工具。Keil软件操作界面如下图所示。图4-1Keil5的操作页面4.3烧录软件的介绍由于STC系列单片机是本系统选定的,而STC-ISP正是针对这系列设计的。所以这款烧录软件是本次设计使用到的重要软件,用于把写好的代码烧录进电路板上的单片机中。这是一款目前可以广泛用于进行代码编程下载、在线编程仿真、串口查看的软件开发设备,在51系列的多款智能产品中得到广泛的使用,优秀的软件性能和方便的用户使用感使它成了很多人在研发和设计过程中的第一选择。通过CH340等串口烧写模块把程序下载到单片机,然后把电脑与单片机的进行嵌入式系统开发的电路板和下载器连接好后,第一个步骤就是在软件选择页面中手动选择单片机型号和COM接口号、设置相应的波特率。接着需要选择项目应用程序“HEX”文件所处在的地址,然后点击单机程序下载功能按钮。具体烧录页面如图4-2。图4-2烧录软件对话框4.4主函数的设计4.4.1主函数的概述及流程图主函数是可执行程序的入口函数,相当于程序执行的起点。开头部分的函数表示初始化元件参数、重新赋值定义,这段函数结束后会有一个死循环,作用是检测是否进入循环过程中。本设计把整个系统拆分成多个模块,从而简化调用过程,方便操作。主函数对蓝牙模块进行初始化,检测发送状态,当输出为1时,定时发送链接信息。从机也设置为接收模式,同时继续检测,当长时间无数据更新时,即主机蓝牙没有接收到从机蓝牙输出的信号,主机的报警电路发出声光警报。接着,继续判断是否接受信号,如果接收到信号,警报将被清除,停止报警。如果仍然没有接收到信号,就重新进入循环检测,重复上述步骤。图4-3主机流程图物品丢失,主机警报物品丢失,主机警报图4-4从机流程图图4-5Keil5的主函数界面4.4.2主程序代码分析#include<reg52.h>//包含头文件,头文件包含特殊功能寄存器的定义#include<stdio.h>#include"delay.h"sbitbuzzer=P2^0; //引脚定义sbitled=P2^1;unsignedlongtime_20ms=0; //定时器计数unsignedcharrelater=0; //延时变量voidInit_Timer0(void);//函数声明voiduartSendStr(unsignedchar*s,unsignedcharlength);voidUART_Init(void);voiduartSendByte(unsignedchardat);voidmain(void){ Init_Timer0();//定时器0初始化 UART_Init(); DelayMs(200);//延时有助于稳定 uartSendStr("redayok!!",10); while(1)//主循环 { DelayMs(200);//定时发送链接信息 uartSendStr("*****",5); }}voidInit_Timer0(void){//**Allnotescanbedeletedandmodified**//TMOD|=0x10;//使用模式1,16位定时器,使用"|"符号可以在使用多个定时器时不受影响 TH0=(65536-20000)/256; //重新赋值20ms TL0=(65536-20000)%256; EA=1;//总中断打开 ET0=1;//定时器中断打开 TR0=1;//定时器开关打开}voidTimer0_isr(void)interrupt1{ TH0=(65536-20000)/256; //重新赋值20ms TL0=(65536-20000)%256; time_20ms++; if(relater>0) //实时更新数据 {relater--;} else {buzzer=0;led=0;}//长时间无数据更新报警}voidUART_Init(void){ //**Allnotescanbedeletedandmodified**//SCON=0x05; //SCON:模式1,8-bitUART,使能接收TMOD|=0x20;//TMOD:timer1,mode2,8-bit重装TH1=0xFD;//TH1:重装值9600波特率晶振11.0592MHz TL1=TH1;TR1=1;//TR1:timer1打开EA=1;//打开总中断ES=1;//打开串口中断}voiduartSendByte(unsignedchardat)//串口发送单字节数据{ unsignedchartime_out; time_out=0x00; SBUF=dat; //将数据放入SBUF中 while((!TI)&&(time_out<100))//检测是否发送出去 {time_out++;DelayUs2x(10);} //未发送出去进行短暂延时 TI=0; //清除ti标志}voiduartSendStr(unsignedchar*s,unsignedcharlength) //发送定长度字符串{ unsignedcharNUM; NUM=0x00; while(NUM<length) //发送长度对比 { uartSendByte(*s);//放松单字节数据 s++; //指针++ NUM++; //下一个++ }}voidUART_SER(void)interrupt4 //串行中断服务程序{ unsignedcharr_buf; if(RI)//判断是接收中断产生 { RI=0;//标志位清零 r_buf=SBUF; if(r_buf=='*') //接收到上报来的数据 { relater=5; buzzer=1; led=1; } } if(TI)//如果是发送标志位,清零 TI=0;}

5系统调试关于系统调试,本系统设计流程需要完成调试系统硬件和应用软件两个组成部分。调试硬件部分的主要功能是用于检测相关电路特性设计的可行性和正确与否,是否出现异常情况,调试中可以利用数字万用表来进行检测。把两个表笔分别搭在需要连接测量的电路的元件两端,测量电路是否导通、焊点是否虚焊等。调至蜂鸣档,当万用表发出声音时,我们可以知道电路正常导通;当万用表没有发出声音,就表示测量电路的两端已经断开,此时表示电路存在问题,需要自查线路是否正确,焊接是否有问题,元器件是否有问题,需要整改。软件代码部分的调试主要目的是测试代码编写程序的运行正确性,在keil5软件上自行编写一个C语言程序,并通过程序烧录软件把程序载入单片机上,观察能不能达到设计所需的功能,如果不能,观察是否存在串口选择、代码书写等错误,并且需要再进一步做修改、更进和调试。图5-1实物图(右主机左从机)本设计是一个蓝牙防丢器,基于蓝牙的短距离无线通信的特点设计的用于预防并警报物品丢失的系统。在两个主控端和子孔端都分别有一个蓝牙模块,用于发出和接收信号,基于此判断主机与从机的距离,反应出物品是否丢失。并且主机与从机都由STC89C52单片机进行配置(如图5-1)。图5-2正常工作状态(右主机左从机)按下电源按钮,电源开关打开,输入5V直流电压,两个板子上的LED灯亮起,表示电源电路处在正常工作状态(如图5-2),此时电路的警报系统不会工作,蜂鸣器不会发出声音,警示灯不亮。图5-3警报状态(右主机左从机)当主机与从机离开一定距离,主机的蓝牙接受不到从机发出的配对请求信号,主机的警报电路被导通,蜂鸣器开始发出声音警报,并且亮起红灯,此时表明主机与从机已经分离。当从机关闭电源,电源指示灯熄灭,此时主机仍正常工作,但是从机没有发出配对请求的蓝牙信号,此时,主机仍将判断为与从机分离,发出警报声音并且亮灯。如图5-3。参考文献[1]郝小雷,刘志强.基于单片机的数据采集与近距离无线传输系统研究[J].无线互联科技,2016(9):24-25.[2]李建忠.单片机原理及应用[M].西安电子科技大学出版社,2002

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论