基于单片机的蓝牙家电开关控制系统设计
摘要 本文利用所学51单片机基础知识结合自动控制技术和蓝牙2.0通信技术设计完
成一套无线遥控家电开关系统。本设计详细地讲述了51单片机控制原理和单片机编程技术,HC-05蓝牙通信技术以及自动化控制技术。整个系统以STC89C52单片机为核心,单片机实现HC-05蓝牙指令的解析与继电器开关控制指令的发出。 蓝牙通信单元采用工业级的HC-05蓝牙模块来完成,蓝牙模块在整个系统中负责蓝牙指令的接收和传输;家电开关的自动控制部分采用4路继电器开关来实现,继电器开关是典型的弱电信号控制型开关,在工业控制,家电控制等诸多方面得到很好的应用,为了使系统设计简便,操作演示方便,家用电器部分采用4种LED灯来模拟替代,通过继电器开关上接的LED灯的亮灭来模拟所控制的电器的开启和关闭,系统LCD12864液晶实时显示4种家电开关的开启与关闭状态。整个系统设计思路清晰,设计成本较低,具有较高的使用和推广价值。
关键词 单片机 蓝牙遥控 家电开关 智能家电
目 录
第一章 前 言 ........................................................... 3
1.1 课题背景 ......................................................... 3 1.2 课题研究的目的和意义 ............................................. 3 1.3 系统的设计任务和要求 ............................................. 4 第二章 蓝牙家电开关控制系统方案设计 ..................................... 5
2.1 系统设计方案比较与可行性论证 ..................................... 5
2.2 系统设计方案的选择 ............................................... 7 第三章 蓝牙家电开关控制系统硬件设计 ..................................... 8 3.1电源管理系统设计 ................................................... 8
3.1.1电源管理系统方案选择 ......................................... 8 3.1.2电源管理系统电路设计 ......................................... 9 3.2 HC-05蓝牙通信系统设计 ............................................ 10
3.2.1蓝牙型号的选取及论证 ........................................ 10 3.2.2蓝牙通信电路设计 ............................................ 10 3.2.3蓝牙模块功能测试 ............................................ 11 3.2.4蓝牙模块与手机蓝牙之间的设置与匹配 .......................... 12 3.3 单片机最小系统设计 .............................................. 14
3.3.1系统单片机型号的选择与论证 .................................. 14 3.3.2系统单片机最小系统电路设计 .................................. 14 3.3.3系统单片机最小系统电路测试 .................................. 15 3.4 家电控制电路设计 ................................................. 15 3.5 系统显示电路设计 ................................................. 16 第四章 蓝牙家电开关控制系统软件设计 .................................... 18
4.1系统软件编程环境介绍 ............................................. 18 4.2系统主程序流程图 ................................................. 18 4.3系统蓝牙通信模块子程序 ........................................... 20 第五章 系统的组装与调试 ................................................ 21
5.1系统的组装与焊接 ................................................. 21 5.2系统的调试 ....................................................... 21 5.3系统的功能测试与检验 ............................................. 22 总结 .................................................................... 23 致 谢 ................................................... 错误!未定义书签。 参考文献 ................................................................ 23 附录I 系统硬件实物图 .................................................... 25 附录II 系统电路图 ....................................................... 26 附录III 系统源程序 ...................................................... 27
基于单片机的蓝牙家电开关控制系统设计论文
第一章 前 言
1.1 课题背景
随着人们生活条件的逐步提高,电视、冰箱、空调、洗衣机等诸多家用电器已经进入了千家万户,随着家用电器种类的不断增多,较早的家庭住宅设计之初对家用电器开关的预留相对较少,这就出现了要通过增加很多电源插板的方式才能满足多种家用电器的接入使用,采用外接电源插板的方式不仅存在一定的安全隐患,经常插板电源插头也极不方便,因而传统的机械式开关必将被新的科技产品所取代。
目前国内大部分家用电器开关仍旧是传统的机械式按键开关。原因是传统式的电器开关开发周期短,制作成本低,方案成熟,因而在很长一段时间内,在国内市场上都是传统开关占据着主要的市场份额。然而,随着人们生活条件的逐步提高,家用电器的价格不断降低,使得大部分家庭都能够负担的起这些家电的使用,但是当人们把一个个新的家电从市场搬到家后会发现一个新的问题,就是室内电源开关有限,必需外接电源插板方可使用,这使得家用电器使用的便利性大打折扣,重新装修布线又会带来很大的金钱投入,正因为如此,最近几年来很多公司已经开始投入研发团队开发综合性、智能化、便捷性、无线遥控家电开关的设计,智能化家电开关与传统的开关有着本质上的区别,智能化家电开关采用继电器控制,完全脱离了实际的传统开关,继电器开关的存在已经有了很长一段时间了,在很多遥控家电开关中已经得到了普及和应用。目前市场上传统的遥控家电开关已经不能满足人们的对家电控制的要求了,传统的遥控器具有单一性,每种遥控器只能控制一种家用电器,随着家用电器的逐步增加,使得众多的遥控器很难去分辨,因而综合性、多用途的遥控器将是为了发展的方向。
在国外,20世纪末无线遥控开关系统以及得到推广和应用,比国内开发早了近20年,美国最早的蓝牙遥控开关并未用在家用电器上,而是用在工业的计算机上,我们熟知的笔记本电脑的蓝牙文件上传功能,蓝牙无线打印功能这些都是早期的典型蓝牙传输的应用。进入二十一世纪以来,蓝牙技术已经被众多的手机厂商所应用,正是由于手机蓝牙的应用,使蓝牙技术由传统的工业应用发展到了日常应用,各种手机蓝牙控制设备也逐步被开发和推广应用。
1.2 课题研究的目的和意义
微电子技术、自动控制技术与通信技术的发展将人类社会带入了一个电子信息世
3
基于单片机的蓝牙家电开关控制系统设计论文
界,各种电子控制系统应用于生活的每一个角落。其中居住环境的智能化、人性化已经越来越受到青睐,电子科技的发展已经极大的便利了人们的生活,基于单片机与移动通信技术的蓝牙无线家电开关控制系统已经逐步在高端住宅场合得到了推广和应用并取得了一致的好评。
随着人们生活水平的提高,越来越多的家用电器被放置到自己的居住空间里面,家电的应用使人们生活水平得到了很大的提高,但是家电占用了较多的居住空间的同时,也为操作带了了一定的麻烦,或许你还在为一堆遥控器中找你要的那个的时候,在高端住宅的人们已经在用自己的智能手机来随意的开启自己的家电了。采用智能手机进行家电的控制具有划时代的进步,因为手机蓝牙遥控的方式不再受到遥控器型号的限制,传统的家用电器开关需要匹配的遥控器才能进行有效的操作,当有了手机蓝牙遥控技术,所有的家电遥控器都可以扔到一边了,手机蓝牙遥控不仅节约了给遥控器更换电池所耗费的成本和时间,同时也使操作的便利性得到很大的提高。
综合蓝牙家电开关系统的各个设计层面和功能要求,本文利用51单片机技术、自动控制技术,手机蓝牙通信技术设计了一套以单片机为基础的无线家电开关控制系统。本系统主要包括电源管理部分,单片机控制模块,液晶显示模块,HC-05蓝牙通信模块,自动控制模块五大部分组成。本设计结构简单、工作可靠、价格低廉,控制灵活,应用性比较强。因此,不仅在市场推广上有显著的实际意义,在学术研究上也有一定的教学与教育意义。
1.3 系统的设计任务和要求
本设计采用STC89C52单片机为主控芯片,结合HC-05蓝牙模块,通过软件编程结合硬件实物来完成一款无线家电开关控制系统的设计与制作。此蓝牙遥控家电开关系统主要电路模块包括:单片机最小系统、HC-05蓝牙模块、液晶LCD12864显示电路、电源系统电路、继电器开关电路。系统所使用的主要元器件包括:STC89C52单片机、HC-05工业级2.0蓝牙模块、液晶显示屏采用中文液晶LCD12864、家用电器开关采用DC-5V松乐继电器开关。
本设计主要设计任务和要求包括:(1)系统接收到手机蓝牙发送的指令后能够正确的对指令解析;(2)家电开关开启和关闭要有输出指示灯提示,通过继电器控制的灯的亮灭来模拟对应电器的开启和关闭;(3)系统具备液晶显示界面,用来显示所控制家电的开启和关闭状态;(4)系统需要设计完成4路家电开关的开启与关闭控制,相互之间不能有干扰。
4
基于单片机的蓝牙家电开关控制系统设计论文
第二章 蓝牙家电开关控制系统方案设计
2.1 系统设计方案比较与可行性论证
经过大量查阅相关资料,本文选择以下三种设计方案进行分析和比较,然后进行相应方案的论证和可行性分析,最终选择一个可行性较高的方案作为系统最终的设计方案来进行设计。
方案一
方案一采用NRF24L01无线射频方式进行遥控控制,采用此方案进行设计的硬件框图如图2-1所示。
51单片 机发送终端 NRF24L01射频模块 51单片机接收终端 LCD液晶显示
NRF24L01射频模块 4路继电器家电开关 图2-1 方案一系统框图
图2-1为所选设计方案一的硬件设计框图,采用此方案进行设计具有设计成本低廉,开发难度低等优点,便于推广和应用;不足之处是发射终端同样需要单片机进行控制,远程控制需要随时随地携带控制设备,操作不便,同时由于没有相应的密码设置,容易被附近同样频段的遥控设备误操作。
方案二
方案二采用GSM移动通信网络的方式进行远程控制,系统通过手机远程发送短信的模式实现家用电器的开启和关闭,采用此方案进行设计的硬件框图如图2-2所示。
5
基于单片机的蓝牙家电开关控制系统设计论文
移动手机终端 51单片机接收控制终端 LCD液晶显示 SIM900A GSM模块
4路继电器家电开关 图2-2 方案二系统框图
图2-2为所选设计方案二的硬件设计框图,采用此方案进行设计具有操作灵活,不用携带额外控制器即可远程控制,同时控制不受距离限制的优点;不足之处是开发难度大,设计成本相对较高,通过手机短信进行控制需要缴纳一定的通信费用,在一些低端的住宅场合推广具有一定的难度。
方案三
方案三采用手机蓝牙终端进行遥控控制,系统通过手机蓝牙实现家用电器开关的遥控开启和关闭,采用此方案进行设计的硬件框图如图2-3所示。
智能手机终端 51单片机控制终端 LCD液晶显示 HC-05蓝牙模块
4路继电器家电开关 图2-3方案三系统框图
图2-3为所选设计方案三的硬件设计框图,采用此方案进行设计具有控制方便灵活,不用额外携带控制设备即可实现家用电器的开启关闭的操作,同时蓝牙遥控具有密码匹配在操作安全性上有很好的保证,同时又不需要缉拿相应的通信费用。
6
基于单片机的蓝牙家电开关控制系统设计论文
2.2 系统设计方案的选择
通过以上三种方案的比较和分析论证,在当今人们追求生活便利作为主要目的的环境下,方案一虽然成本相对低廉,但是由于受制于安全性和操作的便利性,决定了以此方案为基础的设计不能很好的得到市场的认可,因而在三种设计方案进行对比后,首先排除了方案一。方案二和方案三是目前家电开关无线控制系统最好的两种方案,两种方案各有千秋,方案三相比方案二开发难度低,开发周期短,推广相对容易,方案二由于需要借助于移动通信网络进行远程控制,因而需要收取一定的通信资费,同时一单手机停机会造成无法遥控控制的情况。鉴于以上三种方案的对比,本文最终选择方案三作为整个系统的设计方案。
7
基于单片机的蓝牙家电开关控制系统设计论文
第三章 蓝牙家电开关控制系统硬件设计
3.1电源管理系统设计
系统电源设计是整个设计开始前,首先要解决的问题,一个电源设计的好坏直接决定整个设计的成败,一个系统电源的设计不仅要考虑系统的电压是否达到系统的要求,还要考虑系统电源的功耗问题,如果电源输出带载能力不足,会造成系统工作不稳的情况出现,同时电源设计还要考虑到滤波和散热问题。 3.1.1电源管理系统方案选择
结合所学电路基础知识,通过查找相关资料和可行性论证,系统电源电路可通过以下方案来实现系统对电源性能要求的指标,各方案介绍如下所述。
方案一:直接采用干电池供电,目前市场上干电池多为单节1.5V,如果要满足单片机对工作电压的要求,需要3-4节干电池串联后给系统来供电,采用干电池供电优点是:体积小移动方便,当电池电量不足时候容易更换,不足之处是续航能力较差,电量较低的时候会出现功耗不足,造成系统工作不稳定的情况出现,综上采用干电池给系统供电不是一个完美的设计方案。
方案二:采用电脑usb接口给系统供电,由于电脑usb接口输出电压为直流5V电压,可以满足单片机对工作电压的要求,同时程序调试需要采用电脑软件编程下载,采用usb给系统供电也较为方便,usb供电外围电路相对简单,设计成本较低,不足之处是usb端口驱动能力较弱,如果设备扩展功能较多的话,usb输出的电流将达不到系统对功耗的要求,采用usb作为整个系统的电源输出不利于系统后期功能的扩展。
方案三:采用开关电源给系统供电,开关电源效率高,功耗足,完全可以满足系统对电源功耗的要求,不足之处是开关电源电路设计较为复杂,设计成本较高,由于mos管处于高频工作状态下,系统高频干扰较难处理,高频干扰容易对单片机造成干扰,同时开关电源散热较难处理。
方案四:采用直流电源同时增加LDO电源管理芯片进行系统的稳压,由于系统单片机需要直流5V电压供电,HC-05蓝牙模块需要3.3V直流电源供电,因而系统采用单一的电源不能同时满足单片机和蓝牙模块的电压需求,系统电源管理电路需要增加5V和3.3V的电压管理芯片,系统采用直流9V供电,5V电压输出采用LM7805稳压芯片稳压后输出给单片机及板上的5V电压系统供电,3.3V的电压采用RT9193-3.3V稳压输
8
基于单片机的蓝牙家电开关控制系统设计论文
出给系统的HC-05蓝牙模块供电。
鉴于以上几种电源管理方案的综合比较,系统采用方案四作为整个系统的电源管理方案设计。
3.1.2电源管理系统电路设计
系统电源管理系统电路主要包括5V稳压输出电路,5V转3.3V稳压电路,电源滤波电路和电源输出指示电路。系统9V转直流5V电压部分电路如图3-1所示,5V转3.3V稳压电路如图3-2所示。
图3-1系统电源管理电路
图3-2 系统电源管理电路
图3-1为系统5V输出电压管理电路,其中J1为DC005电源输入接口,用于链接DC9V直流电源,SW为系统电源开关,用于控制整个系统的电源的开启与关闭,C0为电解电容,一般取值在220uf到680uf之间,此 电解电容是用于滤除电源线上存在的高频干扰,U1为三端稳压芯片LM7805,LM7805输入电压范围在7-16V情况下,稳定输出直流5V电压,输出稳定度在5V正负0.05mv的波动内变化,能够很好的保证单片机系统电压的稳定性,电容C1和C2分别用于滤除输出电压上存下的低频干扰和高频干扰,LED为电源指示灯,当系统电源输出正常的情况下LED灯点亮,电阻R1为1K阻值的限流电阻,
9
基于单片机的蓝牙家电开关控制系统设计论文
保证LED在允许的工作电流下工作,避免LED被电流过高造成的损坏。
图3-2为系统5V转3.3V电源管理电路,VCC为5V电压输入,C1为滤波电容,U5为RT9193-3.3V稳压芯片,U5的第5脚为3.3V电压输出,C13和C14为输出电压滤波电容,分别用于滤除高频和低频干扰,C12为LDO电源芯片的启动电容。
3.2 HC-05蓝牙通信系统设计
3.2.1蓝牙型号的选取及论证
目前市场上主流的蓝牙为2.0的蓝牙模块,同时市场上基于安卓系统的蓝牙手机也均采用蓝牙2.0作为蓝牙通信设备,目前只有苹果操作系统的手机和个别的高端手机上面采用蓝牙4.0的蓝牙接口,考虑到通用性和兼容性,系统采用标准的蓝牙2.0模块作为系统蓝牙的设计方案。
常用的蓝牙2.0标准的模块有HC-05和HC-06两种,下面通过对两种蓝牙模块的介绍和对比论证,选择其中一款蓝牙模块作为系统的蓝牙通信设计方案。
方案一:采用HC-05蓝牙模块,HC-05蓝牙模块是一款高性能的蓝牙主从一体串口通信模块,它可以和多种带蓝牙功能的电脑、手机、PAD等智能终端进行配对,该模块支持非常宽的波特率范围:4800-1382400,并且可兼容5V和3.3V单片机系统,使用方便连接灵活具有较高的性价比,同时HC-05为工业级产品,性能稳定、可靠性较高。
方案二:采用HC-06蓝牙模块,HC-06蓝牙为从设备,他可以与其它2.0标准的蓝牙设备之间进行通信,但是它只能作为从设备,没法充当主设备来使用,同时HC-05为普通消费级别的芯片,在可靠性和稳定性上比HC-05稍差一些,优点是价格相比HC-05较低,在一些低端的应用场合已经对成本控制要求较高的场合应用较为普及。
通过对上述两种方案的比较,由于系统蓝牙通信作为整个系统中至关重要的一个环节,充分考虑到稳定度的要求,系统最终采用HC-05蓝牙模块作为系统蓝牙通信设计的方案选择。
3.2.2蓝牙通信电路设计
系统蓝牙通信电路采用HC-05模块作为核心,加以外围电路完成系统蓝牙通信电路的设计,蓝牙部分电路设计如图3-3所示。
10
基于单片机的蓝牙家电开关控制系统设计论文
图3-3 HC-05通信模块电路图
如图3-3所示,U6为系统蓝牙通信模块HC-05模块,二极管D5、D6和电阻R10、R11组成电平转换电路以保证系统可以同时在5V和3.3V的电压下工作,D7为蓝牙模块工作状态指示灯,其工作状态有以下三种:一,在模块上电的同时把BS-KEY引脚设置为高电平(或接到VCC)此时D7以亮一秒灭一秒的频率慢闪,模块进入AT状态,此时波特率为固定的38400。二,在模块上电的同时把BS-KEY引脚设置为低电平(或接地),此时D7以一秒闪烁2次的频率快闪,表示模块进入可配对状态,如果此时再将BS-KEY引脚电平置高,模块会进入AT状态,但是D7的闪烁频率不变。三,模块配对成功,此时D7双闪,一次闪2下,2秒闪一次。系统有了D7指示灯就能够很直观的判断模块的当前状态,方便使用。 3.2.3蓝牙模块功能测试
蓝牙模块电路设计焊接好后,为了保证模块能够正常使用,首先要测试一下蓝牙模块收发功能是否正常,具体测试过程如下所述。
首先HC-05模块通过usb转TTL模块连接到电脑串口,连接方式如图3-4所示。
图3-4蓝牙模块与TTL模块接线方式图
HC-05模块出厂设置为从模式,所以发送AT+ROLE?得到的返回值为+ROLE:0,发送
11
基于单片机的蓝牙家电开关控制系统设计论文
AT+ROLE=1即可设置模块为主机,若返回值为OK应答则模块设置成功,注意串口调试助手要勾选发送新行,这样就能自动发送回车了,具体操作界面如图3-5所示。
图3-5蓝牙模块测试界面图
3.2.4蓝牙模块与手机蓝牙之间的设置与匹配
统HC-05蓝牙模块设置为从设备,手机蓝牙为主设备,当手机安装好蓝牙串口助手后,打开蓝牙调试助手界面,搜索蓝牙设备,然后选择键盘模式,设置键盘指令即可,具体操作过程可以参考图3-6。
12
基于单片机的蓝牙家电开关控制系统设计论文
图3-6蓝牙配对操作演示过程图
13
基于单片机的蓝牙家电开关控制系统设计论文
3.3 单片机最小系统设计
3.3.1系统单片机型号的选择与论证
单片机为整个系统的控制核心,选择一款合适的单片机对整个系统设计的成功与否起着至关重要的作用,目前市场上单片机种类型号千差万别,从基础的8位单片机到高端的64位单片机,价格从几元到上百元不等,如此众多的单片机,如何才能选择一款适合本设计的型号呢?首先要从设计的功能上着手,由于系统功能相对较少,只是实现与GSM模块的通信以及继电器控制指令的发出,因而不需要选择引脚多的太高端的单片机;其次要考虑到设计的成本要求,目前市场上8位单片机相比16位以上单片机具有很好的价格优势,考虑到8位单片机完全能够达到设计的功能要求,因而本设计首选单片机是8位单片机;最后还需要考虑到单片机在设计过程中程序编译调试的可操作性以及实用性,鉴于以上各种原因考虑,本设计最终选择市场上较为普及的8位单片机作为系统的单片机,具体型号选择宏晶科技生产的STC89C52单片机。 3.3.2系统单片机最小系统电路设计
单片机最小系统电路为整个系统的控制核心,用于控制这个系统的正常运行,单片机最小系统电路主要有STC89C52单片机、晶振电路、复位电路组成,此部分电路图如图3-7所示。
14
基于单片机的蓝牙家电开关控制系统设计论文
图3-7 单片机最小系统电路图
系统主控电路由单片机、时钟振荡电路与复位电路组成。STC89C52中有一个构成内部振荡器的高增益反相放大器,引脚XTAL1和 XTAL2分别是该放大器的输入和输出端,用于外接晶体振荡器,Y1为11.0592M的晶体振荡器,选择11.0592M是为了便于计算单片机运行的周期,Y1两端的电容 C4,C5 接在放大器的反馈回路中构成并联振荡电路。电容C4和C5应选择瓷片电容,至于点热闹过容值的大小没有严格的限定,只是电容容量的大小会轻微影响振荡频率的高低、振荡器工作的稳定性、起振的难易程度及温度的稳定性。如果使用石英晶体,推荐电容使用30pF士l0pF。
STC89C52单片机为高电平复位使能,在单片机最小系统电路设计中需要保证上电的时候能够复位单片机,同时当系统运行 过程中出现出现跑飞或者进入死循环的时候能够通过相应的按键实现单片机的复位,因而单片机复位需要有上电复位和按键复位两种复位方式,复位电路设计如图3-1所示,其中 S2为复位按键。上电复位的工作原理为:通电时,电容两端相当于短路,于是RST引脚上为高电平,然后电源通过电阻对电容C3充电,RST端电压慢慢下降,降到一定程度,即为低电平,单片机开始正常工作;按键复位的工作原理为:当S1被按下后,电容C3迅速放电,使RST引脚为高电平,从而实现复位。当S1弹起后,电源通过10KΩ的电阻R3放电,电平变为低电平,复位停止。 3.3.3系统单片机最小系统电路测试
单片机最小系统电路设计完成后,首先要验证一下最小系统电路是否能够工作,首先要保证晶振正常起震,检测晶振起震可以用示波器观察晶振引脚的输出波形,观察是否有震荡波形输出,如果晶振起震,最小系统基本就可以工作了,然后单片机置入相应的IO 端口控制程序,此时可以控制一个简单的LED灯的亮灭来验证程序是否正常运行。除此之外还有验证最小系统的复位电路是否能够起到正常复位的功能。
3.4 家电控制电路设计
系统家电控制电路采用4路继电器控制实现,4路继电器分别控制空调开关、冰箱开关、电视开关以及大门的开关。继电器控制电路采用弱电控制强电的工作原理,单片机通过控制继电器的断开和吸合来控制外接家电的通断,具体控制电路如图3-8所示。
15
基于单片机的蓝牙家电开关控制系统设计论文
图3-8系统家电控制电路图
如图3-8所示,P14-P17分别接到单片机的IO口上,当单片机输出低电平的时候继电器吸合,外部接家电的开关吸合接通,家电启动工作;当单片机输出高电平的时候三极管断开,继电器外部开关断开,外接的家电停止工作。考虑到实际的可操作性,以及能够直观的分辨出继电器开发的接通和断开,外部家电采用LED灯的亮灭来替代,当对应家电的LED灯点亮代表对应家电电源接通,家电处于工作状态,当对应的LED灯熄灭代表对应的家电电源开关断开,家电停止工作。
3.5 系统显示电路设计
方案一 数码管显示。
数码管是一种半导体发光器件,其基本单元是发光二极管。数码管按段数分为七段数码管和八段数码管,八段数码管比七段数码管多一个发光二极管单元(多一个小数点显示);按能显示多少个“8”可分为1位、2位、4位等等数码管;按发光二极管单元连接方式分为共阳极数码管和共阴极数码管。共阳数码管是指将所有发光二极管的阳极接到一起形成公共阳极(COM)的数码管。共阴数码管是指将所有发光二极管的阴极接到一起形成公共阴极(COM)的数码管。共阴数码管在应用时应将公共极COM接到地线GND上,当某一字段发光二极管的阳极为高电平时,相应字段就点亮。当某一字段的阳极为 低电平时,相应字段就不亮。采用数码管显示效果亮度高、显示清晰、使用电压低、寿命长、价格低廉等诸多特点,不足是信息显示内容有限,当显示内容为字符时显示效果
16
基于单片机的蓝牙家电开关控制系统设计论文
不如字符型液晶显示器。
方案二 LCD液晶显示。
采用点阵字符型 LCD 液晶显示,液晶显示模块具有体积小、功耗低、显示内容丰 富等特点,现在字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件,但采用LCD液晶显示会造成设计成本增加。
综合方案一与方案二的优缺点,考虑到为了提高显示效果,系统最终采用方案二做系统的显示器件,系统选用LCD12864作为显示部分。LCD12864液晶显示电路如图3-9所示。
图3-9系统显示器件电路图
17
基于单片机的蓝牙家电开关控制系统设计论文
第四章 蓝牙家电开关控制系统软件设计
4.1系统软件编程环境介绍
系统软件设计采用C语言编程,编译环境为Keil。
Keil c51 是美国Keil Software 公司出品的51 系列兼容单片机C 语言软件开发系统,和汇编相比,C 在功能上、结构性、可读性、可维护性上有明显的优势,因而易学易用。
Keil c51 软件提供丰富的库函数和功能强大的集成开发调试工具,全Windows 界面。另外重要的一点,只要看一下编译后生成的汇编代码,就能体会到Keil c51 生成的目标代码效率非常之高,多数语句生成的汇编代码很紧凑,容易理解。在开发大型软件时更能体现高级语言的优势。
Keil C51 可以完成编辑、编译、连接、调试、仿真等整个开发流程。开发人员可用IDE 本身或其它编辑器编辑C 或汇编源文件,然后分别有C51 及A51 编辑器编译连接生成单片机可执行的二进制文件(.HEX),然后通过单片机的烧写软件将HEX 文件烧入单片机内。软件主要三个方面:一是初始化系统;二是数据采集;三是数据处理并进行显示。这三个方面的操作分别在主程序中来进行。程序采用模块化的结构,这样程序结构清楚,易编程和易读性好,也便于调试和修改。
4.2系统主程序流程图
系统主程序主要包括系统的初始化、蓝牙串口通信、开关状态的显示以及信号的输出控制等,系统主程序流程图如图4-1所示。
18
基于单片机的蓝牙家电开关控制系统设计论文
Y
将冰箱状态翻转 Y 将空调状态翻转 Y 将电视状态翻转 Y 将灯泡状态翻转 数据 N 是A? 数据 是B? N 数据 是C? N 数据 是D? N Y 蓝牙是否接收到数据? N 处理家电状态 显示在液晶上 初始化液晶LCD12864、 初始化串口模块 启动 图4-1 系统主程序流程下图
系统主程序流程如图4-1所示,当系统上电后首先完成各个组件的初始化,一个系统的初始化是程序运行必不可少的环节,系统初始化部分主要包括:单片机初始化、液晶显示才初始化、蓝牙串口模块初始化、控制信号电平的初始化等;初始化完成以后系统首先要启动蓝牙串口通信模块,保证蓝牙模块和手机蓝牙控制终端完成匹配。单片机通过串口通信的方式实现和蓝牙模块的通信,单片机对蓝牙模块接收到的指令进行解析
19
基于单片机的蓝牙家电开关控制系统设计论文
然后输出控制指令到继电器开关,从而实现对家电开关的控制;LCD液晶对4路家电开关的开启和关闭状态进行显示,便于直观的测试。
4.3系统蓝牙通信模块子程序
系统蓝牙通信模块子程序主要完成手机蓝牙指令的接收以及和单片机直接的数据通信等,此部分程序的完成是整个系统软件设计成功与否的关键所在。图4-2为系统蓝牙通信子程序流程图。
开始 开机启动蓝牙模块 未匹配指示状态灯 判断是否与手机蓝N 牙终端匹配成功? 完成匹配,切换匹配成功指示 灯状态 判断是否接收到 机蓝牙终端发送 手的指令? 通过串行通信把数据传输到单片机
图4-2系统蓝牙通信子程序流程图
20
基于单片机的蓝牙家电开关控制系统设计论文
第五章 系统的组装与调试
5.1系统的组装与焊接
元件在安装时,注意事项如下:
1) 为避免因元器件发热而减弱铜箔对基板的附着力,并防止元器件的裸露铜盘与导线短路,安装时元器件之间间距要保持1~2mm。
2) 装配时,应该先安装那些需要机械固定元器件,在此装置中如稳压管、中心芯片插座。
3) 各种元器件的安装,应该使它们的标记(用色码或字符标注的数值,精度等)朝上面或易于是辨认的方向,并注意标记的读书方向一致 (从左到右或从上到下)。 2. 元件在焊接时,应注意以下几个方面:
在元器件焊接之前应该先用纱布将元器件的引脚打磨一遍,这样可以将元件引脚氧化的部分去除掉,以便于焊接;在焊接过程中还要注意焊锡的量要得当,过多可能造成电路短路,过少有可能造成虚焊;元器件焊完后,给发热量大的元器件装上散热片,这用有利于散热增加系统的稳定;最后可以在板子的四个角上安装四个铜柱,一方面可以增加整个结构的美观,另一方面也可以使避免电路板放在导电体上发生短路的危险。
通过以上步骤,一个完整的电路硬件部分就制作完成了,这时可以再检查一下是否有元器件漏焊、焊错的情况,以确保电路的正确。
5.2系统的调试
电路板实物做完以后,接下来的工作就是调试。这是理论指导实践最重要的一步。调试工作需要很好的耐心。所以在调试过程中必须保持冷静的头脑,较强的电路分析能力。一个系统的调试需要软硬件结合调试。 在软硬件结合调试的过程中应注意以下问题:
1、首先先不要插芯片,要先测量一下各点的电压,尤其是单片机工作电压,蓝牙模块电路工作电压,在保证模块工作电压正常的前提下再安插主要先芯片,不然会烧坏芯片或者模块造成不可挽回的损失;
2、测试过程中液晶屏幕不亮,经检查是液晶背光调节的问题,接上背光后问题解决; 3、在手工焊接调试时还出现了P0口忘记接上拉电阻造成系统显示器工作不正常。 4、系统工作之前首先要对蓝牙模块进行测试,保证蓝牙模块能够实现正常的指令收发功能。
21
基于单片机的蓝牙家电开关控制系统设计论文
5.3系统的功能测试与检验
蓝牙遥控测试主要完成4路继电器的开启和关闭,为了直观的看出测试结果,每路继电器输出开关上接一个LED指示灯,通过观察对应继电器输出的LED灯的亮灭来测试,具体测试过程如下所述。
手机蓝牙指令“A”控制第一路继电器的的开启和关闭,手机蓝牙发送指令“A”一次继电器1吸合,LED1点亮,再次发送指令“A”继电器1断开,LED1熄灭。
手机蓝牙指令“B”控制第一路继电器的的开启和关闭,手机蓝牙发送指令“B”一次继电器2吸合,LED2点亮,再次发送指令“B”继电器2断开,LED2熄灭。
手机蓝牙指令“C”控制第一路继电器的的开启和关闭,手机蓝牙发送指令“C”一次继电器3吸合,LED3点亮,再次发送指令“C”继电器3断开,LED3熄灭。
手机蓝牙指令“D”控制第一路继电器的的开启和关闭,手机蓝牙发送指令“D”一次继电器4吸合,LED4点亮,再次发送指令“D”继电器4断开,LED4熄灭。
22
基于单片机的蓝牙家电开关控制系统设计论文
总结
通过这次毕业设计的制作,巩固了我在大学4年里学过的知识,尤其是单片机和C语言编程方面的知识,同时也提高了单片机编程的能力,获得了软件调试的经验,并且也了解到了其它相关领域的知识,不论是对今后的工作还是学习都有着极大的帮助。
此次设计完成的作品主要有如下功能和特点:
1、 系统能够实现通过手机蓝牙完成4路家用电器开关的遥控控制;
2、 系统可以通过外置显示终端实时显示4路开关的开启和关闭状态,显示终端可 以方便直观的观察到控制指令的接收和解析是否正确,便于功能的调试。
3、 整个系统具有功耗低、操作方便、性能稳定等诸多优点,具有良好 的应用和推广价值。
同时由于时间仓促,自己经验不足,在理论方面也相应存在缺陷,在整个系统的设计过程中也存在着一些问题,现总结如下:
1、电子电路的设计中对各种影响因素的考虑不够完全,比如在对系统电源部分的处理不够完善,早期系统工作不是很稳定。
2、没有扩展更多电路,如室内环境监测功能,通讯接口电路与上位机(PC机)进行通讯,上位机显示功能从而将大量的商品数据存于上位机,然后通过串口或并口通讯与系统相连,达到远距离监控的目的。
3、对各种实用芯片价格了解不够,在选择上有欠缺,如所选的显示终端价格较贵,从而使设计成本有所提高。
通过此次远程家电开关控制系统的设计和总结对我今后的学习和工作带来了积极的影响。
23
基于单片机的蓝牙家电开关控制系统设计论文
参考文献
[1] 李朝青.单片机原理及接口技术[M].北京:北京航空航天大学出版社,2005. [2] 康华光.电子技术基础模拟部分(第五版) [M].北京:高等教育出版社, 2005. [3] 阎石.数字电子技术基础(第四版)[M].北京:高等教育出版社,2005. [4] 白延敏.51单片机典型系统开发实例精讲[M].北京:电子工业出版社,2009. [5] 张齐,杜群贵. 单片机应用系统设计技术[M]. 北京:电子工业出版社,2007.
[6] 杨金岩等. 8051单片机数据传输接口扩展技术与应用实例[M].北京:人民邮电出版社,2005. [7] 求是科技.单片机通信技术与工程实践[M].北京:人民邮电出版社,2005. [8] 郭永贞主编. 数字电子技术[M]. 西安电子科技大学出版社,2000. [9] 李广弟. 单片机基础[M].北京:北京航空航天大学出版社,2001. [10] 张洪润. 电子线路与电子技术[M].清华大学出版社[M],2005. [11] 张齐,杜群贵. 单片机应用系统设计技术[M].电子工业出版社,2004. [12] Julian W. Gamder, Intelligent Data Acquisition System B, 2005,4:109-115. [13] Dejie Song, Boxue Tan, Wenfeng Liu. Application of Wireless Communication in Temperature Measurement [J]. Berlin Heidelberg: Springer-Verlag,2011,175(1): 428—433. [14] Xingrui Liu and Guohong Gao. Temperature Monitoring System Based on AT89C51 [J]. Berlin Heidelberg: Springer-Verlag,2011,105(1): 601—605.
24
基于单片机的蓝牙家电开关控制系统设计论文
附录I 系统硬件实物图
25
基于单片机的蓝牙家电开关控制系统设计论文
附录II 系统电路图
26
基于单片机的蓝牙家电开关控制系统设计论文
附录III 系统源程序
#include \"main.h\"
#include \"LCD12864.h\" #include \"uart.h\"
//定义变量
//**************************************************** //主函数
//**************************************************** void main() { LCD12864_Reset(); //初始化液晶 LCD12864_HAIZI_SET(); //设置为普通模式
Relay1 = Relay2 = Relay3 = Relay4 = 0; //初始化设置为0,不吸合 Delay_ms(100); Uart_Init(); while(1) {
Relay1 = Flag_Relay1; Relay2 = Flag_Relay2; Relay3 = Flag_Relay3; Relay4 = Flag_Relay4; if(Flag_Relay1 == 1) {
LCD12864_NoWaitIdle_COM_Write(0x80); //设置指针 LCD12864_write_word(\"冰箱状态:开\"); } else {
LCD12864_NoWaitIdle_COM_Write(0x80); //设置指针 LCD12864_write_word(\"冰箱状态:关\"); }
if(Flag_Relay2 == 1) {
LCD12864_NoWaitIdle_COM_Write(0x90); //设置指针 LCD12864_write_word(\"空调状态:开\"); } else {
LCD12864_NoWaitIdle_COM_Write(0x90); //设置指针 LCD12864_write_word(\"空调状态:关\"); }
if(Flag_Relay3 == 1) {
LCD12864_NoWaitIdle_COM_Write(0x88); //设置指针 LCD12864_write_word(\"电视状态:开\"); } else
27
基于单片机的蓝牙家电开关控制系统设计论文
{
LCD12864_NoWaitIdle_COM_Write(0x88); LCD12864_write_word(\"电视状态:关\"); }
if(Flag_Relay4 == 1) {
LCD12864_NoWaitIdle_COM_Write(0x98); LCD12864_write_word(\"灯泡状态:开\"); } else {
LCD12864_NoWaitIdle_COM_Write(0x98); LCD12864_write_word(\"灯泡状态:关\"); } } }
//**************************************************** //MS延时函数(12M晶振下测试)
//**************************************************** void Delay_ms(unsigned int n) { unsigned int i,j; for(i=0;i //unsigned char RX_Buffer[30]; unsigned char Num = 0; bit Flag_Relay1 = 0; bit Flag_Relay2 = 0; bit Flag_Relay3 = 0; bit Flag_Relay4 = 0; unsigned char temp = 0; void Uart_Init() { SCON = 0X50; //UART方式1;8位UART REN = 1; //不允许串行口接收数据 PCON = 0x00; //SMOD=0;波特率不加倍 TMOD = 0x20; //T1方式2,用于产生波特率 TH1 = 0xFD; //装初值 TL1 = 0xFD; TR1 = 1; //启动定时器1 EA = 1; //打开全局中断控制 ES = 1; //串行口中断 } void UartPrintf(unsigned char *p) //发送字符串 { while(*p) { SBUF=*(p++); while(TI==0) { ; //设置指针 //设置指针 //设置指针 28 基于单片机的蓝牙家电开关控制系统设计论文 ; ; }; TI=0; } } void UartPrintASCII(unsigned char c) //发送一个字符 { TI=0; SBUF=c; while(TI==0); TI=0; } void RECEIVE_DATA(void) interrupt 4 using 1 { if(RI == 1) { temp = SBUF; if(temp == 'A') { Flag_Relay1 = !Flag_Relay1; UartPrintf(\"Receive A\"); } else if(temp == 'B') { Flag_Relay2 = !Flag_Relay2; UartPrintf(\"Receive B\"); } else if(temp == 'C') { Flag_Relay3 = !Flag_Relay3; UartPrintf(\"Receive C\"); } else if(temp == 'D') { Flag_Relay4 = !Flag_Relay4; UartPrintf(\"Receive D\"); } RI = 0; } } //串口中断 29 因篇幅问题不能全部显示,请点此查看更多更全内容