《基于单片机的多功能雾化器的设计与实现.docx》由会员分享,可在线阅读,更多相关《基于单片机的多功能雾化器的设计与实现.docx(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、摘要随着空气受到一定污染的环境下,空气中的灰尘,杂质,PM2.5会损坏人体的健康。并且人体的皮肤在干燥的环境下会感到干痒和不适。本设计是基于CMS89F6385B单片机的多功能智能雾化器,通过单片机控制超声波装置雾化片以2.4MHZ的频率使水面产生雾化现象,并控制风扇将雾化的水汽均匀的扩散开来。单片机整体设计系统还包涵LED三色氛围灯,暖白灯,蓝牙模块,独立控制按键,LF0038KALE红外接收,LED指示灯,蜂鸣器和工作过程中自我安全保护检测等多功能设计。在使用单片机控制雾化片产生雾化增加空气湿度的同时,还可以通过红外遥控器或独立按键来操控系统LED三色氛围灯,使其发出不同颜色的灯光效果,还
2、可以手机连接蓝牙,连接上后系统内置音响可以播放自己喜欢的音乐。从而达到在调节周围空气湿度的同时,还可以多功能选择的调节灯光,音乐等周边环境氛围。测试研究表明效果显著,具有一定的研发前景。关键词:空气污染 单片机系统 雾化现象 空气湿度 多功能设计AbstractAs the air is polluted to some extent, the dust, impurities and PM2.5 in the air will damage human health. And the human skin in a dry environment will feel dry itch and
3、 discomfort. This design is based on the cms89f6385b single-chip microcomputer multi-functional intelligent atomizer, through the single-chip microcomputer control ultrasonic device atomization sheet with the frequency of 2.4MHz to produce the atomization phenomenon on the water surface, and control
4、 the fan to evenly spread the atomized water vapor. The whole design system of single chip microcomputer also includes multifunctional design, such as LED three-color atmosphere light, warm white light, Bluetooth module, independent control button, lf0038kale infrared receiving, LED indicator light,
5、 buzzer and self-protection detection in working process. When the single chip microcomputer is used to control the atomization piece to produce atomization and increase the air humidity, the system led three-color atmosphere lamp can also be controlled by infrared remote controller or independent b
6、utton to produce different color lighting effects, and the mobile phone can be connected with Bluetooth, and the built-in sound of the system can play your favorite music when connected. So as to adjust the surrounding air humidity and adjust the surrounding environment atmosphere such as lighting,
7、music and so on. The test research shows that the effect is remarkable and has a certain research and development prospect.Key words:Air pollution Microcomputer system Atomization Air humidity目录第一章 绪论11.1研究背景与意义11.2研究内容11.3设计研究任务及要求11.4论文架构安排21.5本章小结2第二章 系统设计方案32.1系统方案设计与选择32.2系统总体设计方案32.2.1系统整体设计思路
8、32.2.2系统总体架构框图42.2.3系统的软件开发环境42.3本章小结6第三章 硬件电路设计与介绍73.1雾化片电路设计73.2电源电路设计83.3 风扇和蜂鸣器电路设计93.4三色RGB和暖白灯电路设计103.5自我安全检测电路设计113.5.1检水模块电路113.5.2电流检测模块电路133.5.3温度与开短路保护模块电路133.6 蓝牙电路设计153.7按键板模块163.7.1按键与指示灯模块163.7.2红外接收器电路163.8本章小结17第四章 系统软件设计184.1初始化与驱动硬件软件模块194.2 雾化片电路的驱动与软件设计原理214.3风扇与蜂鸣器的软件设计原理224.3.
9、1风扇软件设计224.3.2蜂鸣器软件设计224.4暖白灯与RGB驱动与软件设计原理234.5自我安全检测软件设计原理254.5.1温度开路短路采集安全保护264.5.2检水安全保护264.6蓝牙模块软件的设计与原理274.6.1蓝牙模块读写程序设计274.6.2蓝牙模块运用流程294.7按键板软件设计原理294.7.1红外软件设计与原理294.7.2按键LED指示灯软件设计304.8本章小结31第五章 系统功能介绍325.1按键控制功能325.2红外遥控器控制功能335.3自动响应功能345.4本章小结34结论35参考文献36致谢37附录一38附录二40附录三41广东东软学院本科生毕业设计(
10、论文)第一章 绪论1.1研究背景与意义 我国经济快速增长,是离不开重工业,制造业等的扶持。在这些企业的扶持下我国得到的是经济快速发展,但是俗话说“有得必有失”,我们失去的是好的生态环境。目前在许多城市都存在空气质量差,PM2.5浓度超标等等空气污染问题。随着经济的发展,电子技术也迎来了高速发展得“春天”。特别在服务家庭生活得电子技术得技术越发成熟,市面上出现不少关于智能家居得单品,如小米得智能扫地机,多功能门锁,智能窗帘等等智能家居单品。越来越多智能单品可以改变人民的生活环境和居住条件。多功能雾化器就可以解决当前我国居住空气环境差,空气干燥等环境问题,智能雾化器以超声波换能得方法由单片机控制产
11、生高频率震动,使纯净水得水面产生雾化现象,再由单片机控制得风扇将雾化得水汽均匀得吹出到空气中。在不断的雾化过程里,智能雾化器周围得空气会保持这一定得湿度和减低空气中的PM2.5。并且智能雾化器还带有三色LED灯,蓝牙,遥控红外控制等等智能功能。LED三色灯可以调为氛围灯状态,使整个房间的灯光环境截然不同。在一定距离可以红外遥控智能雾化器和手机连接蓝牙播放喜欢的音乐调节整个空间的声音氛围。雾化现象使周围环境保持一定的湿度,不仅可以在一定条件下还可以抑制环境中细菌和病菌的滋生,防止人体呼吸道受细菌和病菌感染出现不适,清洁空气对人体有益得作用,还可以在一定湿度下,对家里的家居起到一定的保护作用。当向
12、智能雾化器纯净水中滴入特制的“清香精油”后,当发生雾化现象时可以给一定范围内的空气消毒。1.2研究内容本次设计主要以CMS89F6385B芯片为系统控制核心,在控制超声波装置雾化片形成雾化现象为基础功能的同时,加入了蓝牙模块,红外接收模块,独立按键控制,LEC三色氛围灯,自我安全检测保护等等功能。通过硬件与软件相结合达到设计的要求与目的。本文主要介绍基于单片机的多功能智能雾化器系统的工作原理,硬件设计思路,软件架构逻辑以及整体功能的展示与介绍。整体系统设计采用了单片机技术,蓝牙通信技术,红外接收技术等对CMS89F6385B芯片,蓝牙模块,红外接收模块等等其他功能模块的控制和编程驱动和最后的整
13、体系统调试。1.3设计研究任务及要求本论文设计以增湿空气,调节周边环境氛围为目标,基于单片机整体控制系统为基础,预期此设计可以实现以下几个任务从而达到设计要求:(1)通过控制,可以使风扇工作和超声波装置雾化片在一定的频率下工作,使水面产生雾化现象。从而达到在一定范围内的空气中的水分比例得到提升,达到增湿的效果。(2)通过蓝牙无线通讯的原理,可以实现蓝牙与手机/平板连接,设计系统内置扬声器可以播放音乐。(3)利用红外接收原理实现,在一定范围内通过遥控器可以远程控制设备工作状态。(4)利用芯片脉冲宽度调制PWM通道,控制三色RGB灯,显示出不同灯的颜色,多种工作方式。从而达到调节周边灯光环境的氛围
14、。(5)利用芯片运算放大器和AD通道,时刻检测着工作是否处在安全状态,当出现工作状态异常时,会自动响应相关操作。从而确保设备不会损坏和设备一直处于安全的工作环境。1.4论文架构安排本论文第一章主要介绍改课题的研究背景和需要达到的要求,从第一章你可以了解到该课题的意义和想要达到的目的,并且可以初步对雾化器有一定的概念。第二章主要是系统芯片的选型和整体设计方案,这一章节你可以初步宏观的了解到该系统的整体设计思路,对本设计的需要实现的功能有一个初步的了解。第三章和第四章建议看者按照功能模块相互结合来看,第三章主要简介硬件的设计和相关器件的作用,相对应的第四章软件的设计会与第三章硬件的设计有很大的关联
15、,需要结合来看才更加深入的了解软件和硬件设计的意义。同时第三和第四章也为本论文的重中之重,不仅可以让你了解到每个模块功能是如何实现,还讲解了设计硬件,软件的整体过程。第五章是对整体功能设计的控制简介,这一章节主要是向读者从按键板出发,如何操控本设计的所有功能,同时也介绍到系统本身自行触发的功能。可以让读者整体了解每个功能如何操作。1.5本章小结本章介绍了本课题研究前景和研究方向,宏观的介绍了一下智能家居之一的智能雾化器的应用前景和市场情况。然后根据需求,提出本设计需要达到的目标和设计的要求。并且介绍了本论文的架构安排,让读者清楚如何更好的阅读本论文。第二章 系统设计方案2.1系统方案设计与选择
16、芯片作为整个系统的“心脏”,芯片的选用尤其重要。本系统主要是以控制超声波装置雾化片来使水面产生雾化现象从而来对周围空气增湿为基础功能,调节周围声光氛围等为扩展功能的多功能智能雾化器设备。所以芯片的选用需要考虑到方方面面的问题。方案一:89C51是作为电子信息工程专业接触最多的一款传统的芯片,在校期间也是也89C51为教学题材,进行一系列的实验。所以用89C51来作为本系统的主控芯片不仅有大量资料可以提供我们参考,还有需要开源程序提供我们编写。可以很快实现本次系统的设计。方案二:中微公司生产的CMS89F6385B芯片,是一款新型芯片,不单止在价格上便宜,封装体积小,而且内部有众多集成模块提供使
17、用,如:比较器,串口,看门狗,脉冲宽度调制PWM输出,高精度12为ADC,内置64字节EEPROM可以重复擦写100万次。而且在雾化器方面已经有许多厂家投入使用该芯片。综合以上考虑,本系统设计特点便携和轻小,如果使用现有的51芯片封装太大,如果重新购买在成本上也是一个问题,其次51单片机是一款比较老的芯片,在校期间也是学习该芯片,如果毕业设计依旧使用该芯片没有很好的可以检验自己本身对单片机设计的理解,从这两个方面考虑就决定不使用89C51作为本次系统的核心控制芯片。然而中微公司的CMS89F6385B是一款新的芯片,工作原理和集成模块与51单片机类似,却又有不同,而且体积小,十分符合雾化器体积
18、小,便携的特点。综上所述,我们将采用方案二,让CMS89F6385B作为本次设计的核心控制芯片。2.2系统总体设计方案2.2.1系统整体设计思路使用CMS89F6385B芯片作为主控芯片有许多的优点,想要充分利用好该芯片每个部分就要先构思基础功能,然后扩展功能,最后思考使用者的体验。基础功能上是利用超声波装置雾化片,在电感电容等等元器件的扶持下稳定产生震动,并且控制其震动频率。从而使水面产生雾化现象,改变周边空气的湿度。其次在改变湿度的同时,扩展增加其可以改变周围灯光环境,声音环境的功能,所以添加了三色RGB氛围灯,蓝牙音箱等模块,从而可以使用户通过控制多功能雾化器的灯光和蓝牙选择自己喜欢的灯
19、光颜色和播放自己喜欢的音乐的前提下,改变周围灯光和声音环境。最后功能再多,如果不梳理好,优化好,用户使用起来不仅有些功能没有用到,而且还会给客户一种使用起来繁琐的感觉。所以从用户使用角度出发,本设计不仅有三分独立的按键,支持长按和短按,而且还有四个LED指示灯,可以体现现在设备状态,最后还加入红外遥控功能,这样一来就大大提升了用户的体验感。2.2.2系统总体架构框图图2-1 系统架构框图2.2.3系统的软件开发环境本系统设计过程中主要用到两个软件。一个是硬件方面的Altium Designer软件,Altium Designer对于不管是对于电子设计的工程师,还是初入电子专业的学生来说都是一款
20、必修的软件,该软件设计电路,设计PCB方面的功能十分强大。基本可以满足所有设计技术要求,并且操作简单。所以本次设计在硬件方面基本都是使用Altium Designer软件来设计。软件方面,中微公司对于自身生产的芯片都有专门的编译器和烧录器,如下图所示,CMS_IDE编译软件功能上结合了电子信息工程刚开始接触C语音所学的Keil和C-Fee 5软件十分相似。功能上CMS_IDE可以编译C和汇编两种编程语音,在建立新工程文件时需要选择编译芯片和一些属性。图2-2 CMS_IDE软件界面CMS_IDE软件和Keil软件一样也提供在线编程烧录的CMS ICE6仿真器硬件图2-3所示,可以在编辑好程序后
21、,如果程序员想直接进行调试所编辑的程序在硬件运行是否正常时,就可以直接在CMS_IDE软件上使用仿真器来烧录程序进硬件进行测试。图2-3 CMS_ICE6硬件外观图当然CMS_IDE编译完后会生成一个后缀为.CMS的烧录文件。使用CMS Writer专门烧录软件(图2-4)就可以实现文件烧录,保护原程序。以上所述,本次整体的软件方面的相关设计主要用到CMS_IDE编译软件。图2-4 CMS Writer烧录软件2.3本章小结本章从整体介绍了设计方案和每个模块的硬件大概设计安排,介绍了本系统芯片选型方案。并且从需要达到的功能出发,设计本系统所需的硬件模块有哪些。并且根据设计的模块,画了一个系统架
22、构框图,从而让读者更加清晰本系统一共设计了多少个模块。并且介绍了本系统软件部分的选择和应用。第三章 硬件电路设计与介绍图3-1 硬件电路总设计图多功能雾化器硬件总原理图如上图3-1。本章就会从每个模块出发,按照功能实现的流程一一讲解每个模块硬件设计的意义和一些器件的使用。3.1雾化片电路设计图3-2 雾化片驱动电路图雾化片工作原理就是利用电容三点式产生的振荡电路,产生的振荡电路与雾化片振荡频率一致的驱动电路,将驱动电路电压接在雾化片上,雾化片会产生振荡能量。并且通过单片机控制输入电压的大小,从而控制雾化片的振荡幅度。根据工作原理,将雾化片接在一个电容三点式的震荡电路上如上图,芯片PE3(第一引
23、脚)接同一基片上的两只相同的三极管-MMDTX436DW三极管的一端,从而芯片通过利用引脚输出脉冲宽度调制PWM信号来驱动雾化片的电容三点式电路。雾化片一端接24V电压,另外一端接在电容三点式的震荡电路上的BU406三极管的基级。当芯片引脚输出一个5V的高电平时经过MMDTX436DW三极管后被放大到24V电压,单片机通过控制引脚输出脉冲宽度调制PWM的高低占空比从而来控制雾化片的震动强度。当同一周期,单片机PE3脚输出的高电平占空比越大,那么雾化片震动的幅度就越强,反之。在PCB板子的封装上,雾化片的插座我选用白色的2P插座,这样容易与风扇,电源,蓝牙扬声器插座混淆,方便我们快速辨认那一部分
24、是喷雾电路。3.2电源电路设计图3-3 电源电路作为整个设备的核心动力来源,电源电路输出电压是否稳定是对于整个电路都有一个很大的影响。图3-3的78L05是一个固定的电压三端集成稳压器,78L05采用美国国家半导体微型SMD封装技术,输出电压容差在整个温度范围内的5%,其内部电流限制和热关断的特性可以很好的处理过载的情况。如内置热过载保护CUIT接管防止IC过热,起到保护IC一定的作用。可以输出电压为5.0V,6.2V,12V等等。可使用与很多应用场合。3.3 风扇和蜂鸣器电路设计图3-4 风扇与蜂鸣器电路本设计利用到的风扇是由东莞市奇凌电子科技有限公司生产型号为BF5015L12S的风扇,该
25、风扇的工作电压为12V(8.014.0V),当接在24V电路时,在风扇的正极接了一个RF1大电阻来减低风扇的电压,使其工作电压稳定在12V。风扇一端接在MMBTRC105SS三极管,该三极管内置R1,R2两个电阻,其中R1为串联在基极上的电阻,主要作用为将输入电压转换为电流,使晶体管工作更稳定。R2为并联在基极与发射极之间的电阻,主要用来吸收、降低从输入端进来的漏电流和噪声等作用。三极管的基级接了单片机RC0脚(第十三引脚),单片机通过输出高低电平从而来控制风扇的开关,电路如上图所示。蜂鸣器则采用工作频率为4KHZ,单片机通过程序模拟脉冲宽度调制PWM输出,当单片机输出周期为250us,高电平
26、占为125us,低电平占为125us时,刚好模拟输出频率为4KHZ的信号来驱动蜂鸣器。3.4三色RGB和暖白灯电路设计图3-5 RGB与暖白灯电路暖白LED和RGB_LED两则虽然都是LED但是体现出来的灯光效果截然不同,暖白LED与我们普遍灯光一样,通电后LED发出亮白光。起到照明的作用,灯光与很多手电筒和台灯大致相同。而RGB_LED灯显示出来的灯光效果就丰富的多了。图3-6 RGB色谱如RGB色谱图3-6所示,RGB灯是根据红绿蓝三色原理为工作原理,红绿蓝三种颜色的单色发光体集成在一个小面积的LED灯,三种颜色可以单独控制,通过分别控制三种颜色的灯的关照强度,从而显示出各种各样的色彩。图
27、3-5电路图中12个暖白灯一端接着24V的工作电压,一端接着2N551三极管和单片机的RC4(第十四引脚),单片机通过输出高低电平给三极管的基极,从而控制暖白灯的开关。而6个RGB_LED灯一端接着24V工作电压,一端接着ULN2001DS。其中ULN2001DS是一个单片高电压,高电流的达林顿晶体管整列集成电路。该晶体管由3组NPN达林顿管组成。它的高压输出特性和阴极钳位二极管可以转换感应负载。单个达林顿对的集电极电力路为250mA,选用其原因是ULN2001D的特点为输入和各种逻辑类型兼容,最高工作电压可以达到50V,可以单个输出250mA的额定集电极电流,广泛用作于灯驱动器,逻辑驱动器,
28、继电器驱动器等等。3.5自我安全检测电路设计系统的工作是否处于安全状态尤为重要,智能雾化器系统平均工作时间可以达到4小时,6小时。如果保证不缺水的状态下,可能工作时间会达到几年直到机器各个部件老化。一般常用的是加水一次后,工作到无水。这个过程长达4个小时左右。如果系统没有安全检测,那么当工作状态出现异常时,没有一个及时的反应,那么整个系统损坏会特别严重。如缺水时,如果不及时关机,雾化片会很容易就损坏,所以一个系统能时刻检测着自身工作状态,有异常会自动响应,这样才是智能家居的出发点,如果人为关机,既不太现实,又与设计脱节。3.5.1检水模块电路图3-7 检水模块电路安全检测之一的检水模块电路如上
29、图3-7所示。雾化片工作时,当水箱的水已经耗尽,系统会及时作出相关响应。雾化片正常有水工作时电压,检水部分反馈到单片机的OPA0-(25引脚)电压是大于0.5V,如下图。图3-8 雾化片正常工作OPA0-引脚电压图然而当雾化片缺水时,电压的值会减低,有一部分周期8.2ms期间减低到0.5V以下。通过该硬件设计,利用检水部分反馈回来给单片机的电压,再利用单片机内部的运算放大器就可以区分当前雾化片的工作环境是否缺水,缺水时OPA0-引脚电压,如下图。图3-9 雾化片缺水工作OPA0-引脚电压图3.5.2电流检测模块电路图3-10 电流采集电路检测电流安全模块电路图如上;主要原理是单片机时刻检测着雾
30、化片的工作电流。当RA1,RA2电阻阻值不变时,通过RA1和RA2电流越大,则电压越大。单片机通过AN9通道接在RA1一端,通过检测该点电压从而通过单片机的内部的模数转换器(ADC)将模拟输入信号转换为一个12位的二进制。并将该结果保存在 ADC结果寄存器(ADRESL 和 ADRESH)中。通过上面第三章3.1的雾化片电路说到,利用单片机RE3(第一引脚)软件模拟输出脉冲宽度调制PWM来控制雾化片工作震动的强度,从而来控制整体电路电流,所以利用检测到的电流的值,通过软件从而来控制RE3(第一引脚)输出的脉冲宽度调制的占空比。从而使雾化片可以在我们设定的范围内工作。通过这一原理可以达到控制雾化
31、片的工作状态,从而控制雾化现象,当雾化片震动强度小,则雾化的水分就少反之。这样就可以实现大雾档,小雾档,细微的调节雾化片产生的雾化量,从而可以根据个人情况和外部环境来定制功能。3.5.3温度与开短路保护模块电路过热处理是一个系统设计的重中之重,如果系统工作时出现异常,导致无法及时散热,那么就会十分危险,轻则整个设计电路板损坏,不能正常使用。严重的话还会发生火灾。所以一个系统的设计除了散热要处理好,是否有过热保护也是十分重要。图3-11 温度短路开路检测电路整个系统方面,我们不仅给功率管转上大的散热片,在第三章3.3中讲到的风扇电路里,系统设计的风扇巧妙利用结构,在吹出雾的同时,风扇后还对着散热
32、片,这样一来充分利用系统资源,而且大大的提升了散热效果。图3-12 热敏电阻曲线图如图3-11电路中过热检测主要采用NTC-OWC-503F-3950热敏电阻,该电阻特性当温度越高,该阻值越低如图3-12所示。通过单片机AN0(第二引脚)通道和上面3.5.2电流采集电路一样,共用模数转换器(ADC)来检测电流,从而检测工作环境下的功率管温度。当超过我们设定的温度最大值,则系统马上响应,自动处理。保护系统的同时,及时解除安全隐患。开路和短路保护是进一步加强确定系统过热保护正常运作,单片机AN0(第二引脚)通道检测热敏电阻是否正常,如果热敏电阻处于开路,则输入电压24V直接接在单片机上,如果是短路
33、该电压为零。单片机就是通过检测该通道下0VX24V这段工作电压是否正常从而来保护系统工作时的安全。3.6 蓝牙电路设计图3-13 蓝牙模块电路本系统蓝牙模块选用的DYD-D-3864-A蓝牙模块,D-3864-A蓝牙模块为无线音频数据传输产品,高效率的单声道声无线传输方案,模块提供了高品质的音质和兼容性,整体性能更优化。宽电压输入,可直接驱动喇叭输出。只需要把模块接入整体系统如上图所示,就可以快捷地实现音乐的无线传输。图3-14 蓝牙模块PCB图该蓝牙模块工作电压为24V,工作电流150mA,最远无线传输范围大于10米。扬声器输出功率为3W,所以蓝牙模块接了一个24V动作电压,音频输出端接了3
34、W的扬声器,单片机的SCL(第二十二引脚)和SDA(第二十三引脚)分别连接蓝牙模块的I2C_CLK和I2C_DAT用作数据的读写。3.7按键板模块3.7.1按键与指示灯模块图3-15 按键与指示灯电路图本系统在操作设计方面,提供了三个实体按键和四个LED指示灯。三个按键如图3-15所示。按键逻辑分别是短按:开关定时,喷雾档位,灯光效果;长按:切换下一首歌曲,开关蓝牙,调节灯光亮度。还有四个LED指示灯,分别代表着当前机器设定的工作时间:on,定时1小时,定时3小时,定时4小时,提示现在设备工作定时时间。按键一端接着地,一端与LED共用一个单片机引脚,当按下按键时,改引脚作为输入,其余时间引脚作
35、为LED灯的输出。由于按下按键时间很短基本是毫秒的关闭时间,利用人的眼睛看光有残影的原理,所以按按键的一瞬间,LED细小的变化使用者是发觉不出来。所以LED与按键共用是不冲突的。3.7.2红外接收器电路如下图3-16电路中系统采用了LF0038KALE红外接收头,LF0038KALE 内含高速高灵敏度 PIN 光电二极管和低功耗、高增益前置放大 IC,采用环氧树脂塑封半球型封装设计,工作电压为2.75.5V,低功耗,长距离接收,而且抗干扰能力强,广泛用于视听器材,家庭电器等其他红外线遥控产品。图3-16 红外接收电路该LF0038KALE红外接收头电路一端接5V工作电压,一端接地,输出端接单片
36、机的RE0(第八引脚),红外接收到的信号转为电平信号输出给单片机RE0脚,单片机接收到信号后再做相对应的处理,从而达到在一定的距离里,通过红外遥控器操控整个设备的功能。3.8本章小结第三章为本论文最为重要的部分之一,该章节从需要实现的功能出发,介绍了每个模块的设计意义和相关器件的应用与选型意义。本章包含了本设计的所有硬件设计原理,通过本章读者可以很清晰了解到本系统的硬件设计每一个模块是如何通过硬件而实现的。第四章 系统软件设计图4-1 软件总设计函数图本系统中软件部分采用了模块化的设计处理方法,把每个重要功能模块分别处理,每个模块处理的方式独立,却又相互关联和相互辅助的关系。本系统有九大模块如
37、图4-1所示,分别是主函数,初始化函数,中断函数,时序函数,工作处理函数,ADC采集函数,按键函数,蓝牙处理函数,红外接收函数。每个模块处理的函数,定义的数据都包含在一个GlobalHeadFiles.H文件上,每个模块都包含另外模块定义的函数可以随时调用。本节将会与上面所需的硬件相对应,来说明每个软件模块的用处和如何实现上面所需的功能。4.1初始化与驱动硬件软件模块图4-2 初始化函数流程图SysInit.C初始化函数流程如上图所示,在Main函数进入while(1)循环前就进入初始化函数,首先将初始化芯片内部寄存器和设置IO口,从而驱动各个部分的硬件,使其每个模块正常工作。1. 中断控制寄
38、存器INTCON(0BH)置零,禁止所有中断的发生。2. 设置振荡器控制OSCCON寄存器,芯片有内部RC振荡和外部XT振荡提供选用,本系统中选用的是内部RC振荡,所以将OSCCON寄存器置为0X71,设置振荡为8MHZ。3. 将预分频器OPTION_REG置零,初始化预分频器。4. 调用GpioInit()函数:(1) 定义各个IO口的状态,根据上面硬件电路的设计与要求功能设置IO口的输入,输出状态。如将雾化片连接的RC0引脚设置为输出,检测电流RB3引脚设置为输入。(2) 设置PORTA上拉电阻寄存器WPUA(18EH), 每个 PORTA 引脚都有可单独配置的内部弱上拉。控制位 WPUA
39、使能或禁止每个弱上拉。当将端口引脚配置为输出时,其弱上拉会自动切断。同理也设置PORTB 上拉电阻寄存器 WPUB(95H)。(3) 禁止LED使能LCD/LED 功能的 SEG 口的设置等等其他IO口寄存器的初始化与设置。5. 调用AdInit()函数,初始化模数转换器(ADC),将上面硬件介绍到的检测原理,电流检测(AN9)与温度检测(AN0)的初始AN通道选择电流AN9通道。6. 调用定义参数初始化RamInit()函数,初始化开机时灯的亮度参数,灯光闪烁参数,开机雾化档位参数等等。7. 调用Pwm10Init(),Pwm8Init()初始化函数,设置PWM模式相关寄存器,使PWM 模式
40、在 CCPx 引脚上产生脉宽调制信号,PWM有自己独立的周期计数器,通过设置寄存器确定占空比、周期和分辨率:(1) 在CCP1CON寄存器选择PWM模块。(2) 在PWMCON寄存器设置预分频为4。(3) 设置周期数据寄存器的值为0Xfe。(4) 设置CYC1EN的 PWM1的周期计数器使能位为1。(5) 通过设置由公式一,二可以计算出自己设置的脉宽调制PWM的周期和占空比。公式一:PWM周期=(PWMxCYC)*4*1FSYS*(PWMxCNT预分频)公式二:PWM占空比= (CCPRxL:CCPxCON5:4)/(4*(PWMxCYC+1) )8. 设置定时2,本系统主要利用到定时器2,所
41、以设置定时器2可以得到我们最重要的一个中断函数。(1) 我们将首先设置外设中断允许寄存器 PIE1(8CH),允许TMR2定时器2与8位周期定时器PR2匹配中断。(2) TIMER2 模块的输入时钟是系统指令时钟(8MHZ/4)。时钟被输入到 TIMER2 预分频器,设置分频比为:。(3) 将8位周期定时器PR2设置为250,因为预分频器的输出随后用于使 TMR2 寄存器递增。TMR2 将从 00h 开始递增直至与 PR2 中的值250h匹配。(4) 当匹配发生时,TMR2 在下一递增周期被复位为 00h,TIMER2 后分频器递增。则得到一个定时器2的中断,由(8MHZ/4)= 2MHZ =
42、 0.5us。定时器2计时一次,从00h到上面设置的PR2 = 250h一共计时250次将产生一次计时中断则0.5us * 250h = 125us。其中TMR2IF 为其中断的标志。9. 使能中断,允许所有未被屏蔽的外设中断。4.2 雾化片电路的驱动与软件设计原理图4-3 雾化片输出PWM流程图由硬件介绍可知,当雾化片引脚RE3一直输出高电平时,雾化片振荡的幅度会越大,这样会导致雾化现象时,水面上的雾太多,风扇不能均匀吹出,而且该引脚一直输出高电平时电路的电流也会越大。所以软件里要设置模拟脉宽调制PWM输出,控制高电平的占空比,从而控制雾化现象的大小,从而达到可以控制雾化量。在软件中如4-3
43、流程图所示,通过设置uiAtomizePwm为高电平的占空比,上面初始化所设置的定时器2中断,控制每125us就uiAtomizePwmCnt+从而确定高电平的占空比和低电平的占空比。而AtomizePwmRate则可以控制一个周期的时间。通过软件的模拟,只要我们设定好uiAtomizePwm参数的值就可以实现大雾档,小雾档的输出,再加上定时器2的计时,可以实现间隙15s开喷雾,15s关喷雾和设备定时1h.3h.6h的功能。4.3风扇与蜂鸣器的软件设计原理4.3.1风扇软件设计图 4-4 风扇软件流程图通过上面的硬件设计,软件控制逻辑如图4-4所示,风扇主要通过定义的#define PoFan
44、 RC0的PoFan标记开控制三极管从而控制风扇的开关,当PoFan = 1时则单片机RC0输出高电平,风扇转动反之。然而在整个程序里由fgFan定义的参数标记来判断开关。4.3.2蜂鸣器软件设计由于本系统硬件设计用到的是4KHZ蜂鸣器,控制流程逻辑如下图4-5所示将蜂鸣器#define PoBuzz RA1的PoBuzz放在上面所述的定时器2中断函数里面,然后每125us不断取反,则会产生周期T=250us,高电平125us,低电平125us的软件模拟输出脉冲宽度调制PWM来驱动蜂鸣器。换算可得刚好符合蜂鸣器的频率f = 1/T = 1/250us = 4KHZ。再加自定义的fgBuzzON
45、参数来控制蜂鸣器的开关,当fgBuzzON=1时蜂鸣器响。图4-5 蜂鸣器流程图由于本设计利用到的蜂鸣器做声音提示,所以蜂鸣器响的次数和响的时间都频繁利用到。所以我们通过定义ucBuzzType来控制蜂鸣器响的次数,即当ucBuzzType=2时,蜂鸣器响两声如此类推。还有蜂鸣器响超过两次时的间隔时间,所以我们通过定义ucBuzzDYTime参数来控制时间。具体程序流程如上图4-4所示。通过该软件设计,我们可以通过直接设置ucBuzzType和ucBuzzDYTime来驱动蜂鸣器响的次数和间隔时间,大大提升了编写软件效率和程序移植效率。4.4暖白灯与RGB驱动与软件设计原理本系统在控制灯光上利
46、用的是单片机内置的两个脉宽调制PWM1,PWM2分别控制RGB灯的红色和绿色两个颜色,然而蓝色是需要通过软件模拟输出脉宽调制,原理都是一样,都是通过控制脉宽调制的占空比从而来控制三种颜色的亮度,从而来混合成各种各样的颜色。其每个颜色的可调范围0,255,即三种颜色每个颜色可以有256种亮度可以调节,三种颜色结合起来256*256*256=167968768种颜色可以调节,只要设置设定程序的ucTagBlueLed,ucTagRedLed,ucTagGreenLed三个颜色标记值来控制三个颜色的占空比,就可以调节各种各样的颜色。图4-6 灯光效果转换流程图其中关于颜色之间的转换逻辑通过图4-6可
47、以看出,我利用ucRgbType参数来标记着当前灯光显示的模式,切换也是通过改变ucRgbType的值从而来确定下一个灯光模式的显示。最为特点的是渐变模式和蜡烛灯模式,渐变模式和蜡烛灯模式是通过等比加减的办法来显示,将三种颜色按照已经设定好的值的比例,在自动切换下一个过程中颜色时,也是按照设定好的比例,等比的变化,从而在颜色与颜色之间的切换不会显的突兀,不自然。该办法也使用于各种的灯光自动切换调节。灯光显示效果可以在附录一查看。4.5自我安全检测软件设计原理图4-7 AD检测数据流程图关于自我安全检测方面,主要采用芯片内置的模数转换ADC模块,由上面硬件所诉,温度检测,开路,短路和电流检测都是
48、利用ADC模块,只是AN通道不一样。所以我采用分别采集的方法来切换的采集温度和电流。如图4-7利用在前面的初始化函数,将ADC模块相关的寄存器和定义的参数和AN通道都做了一个初始化,当需要采集时首先设置AD控制寄存器 ADCON0,然后GODONE转换状态位需要一个“0”-“1”-“0”跳变,当启动后,通过跳变最后检测GODONE状态位是否为“0”,则可以确定是否AD采集已完成。完成后AD采集的值会在数据寄存器高位 ADRESH/L两个高低四位寄存器内,最后将采集的数据分别对应位置赋值给参数uiAdcBuf。则已经完成了一次AD采集。4.5.1温度开路短路采集安全保护图4-8 温度开路短路程序流程图在上面所述的AD采集函数return回来的uiAdcBuf在安全保护函数中,当