版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第1章绪论1.1课题研究背景21世纪是数字技术飞速发展的时代,在快速数字化发展的时代,微控制器起着极其重要的作用。在电子时钟基础上,针对电铃系统的研究开发是当前所处的信息时代的迫切需要。它在人们的生活中几乎随处可见,在很多种地方都有应用。因此,不仅社会迫切需要电铃系统及周边的发展,人民也毅然需要。伴随着不断增长的社会信息交换需求和高新技术的逐步发展,电铃系统已经发展起来并投放市场以得到广泛使用。但是人类对科学技术文明的发展追求是亘古不变的,对电铃系统的需求及要求也在不断提高。在社会发展的初期,人们就学会计时,但是没有详细的解决办法,就通过日出而作日落而息来进行计时。后来随着社会的发展与文明逐渐进步,人们研究出了日晷,将日晷分为相同的间隔,通过太阳照在上面的影子来进行计时。随着工业革命的出现,机械表成为人们计时的工具,能够更为准确的记录时间,但是由于机械钟表随着年月的磨损经常造成不准确的情况。科技不断发展,随着计算机的发展,单片机的发展也逐步成熟,人们将单片机运用与电铃中,解决了机械电铃不准确问题。电铃漂亮,功能多样化,如各种各样的优点,具有广阔的市场前景。1.2国内外发展状况1.2.1国内发展状况电铃在我国发展虽然时间比较短,但是所取得的成功还是比较显著的。我国在计算机方面的发展起初比较缓慢,导致我国与发达国家具有一定的差距。因为研究电铃系统的基础在于单片机的发展,所以单片机在我国的发展状况也代表了电铃系统在我国的发展。1900年代开始,中国微控制器和微处理器跟从着时代前进的步伐,不断提高自身科学技术的发展,与之相应的,单片机的实际应用也慢慢变得更加成熟。它的发展也先后经历了4位、8位、16位和32位四个阶段。在发展的过程,实际上是处理器的发展改变了人们的生活、学习、医疗、军事等各个方面,许多领域也开始运用到了单片机,比如:节能设备、医疗设备、生活用品等等。我国一直发展科学技术,因此单片机在我国受到了很大的重视,发展和研究都进入到了一个全新的局面,伴随工业越来越进入信息化时代,科技创新能力要求越来越高,工业4.0时代的飞速到来,工业生产中对于单片机使用也越来越严格,当然这些年来控制理论和电子技术方面的革新力度越来越大,人们向往更加成熟的单片机控制系统,所以对于它的要求也逐渐追求控制力高,体积小,功能完备。故而,传统使用的单片机跟不上高技术的发展。近年来,我国单片机应用系统的研究发展迅速,但与欧美国家相比仍有一定差距。在日常生活中,打铃系统随处可见,但是正因为其随处可见,导致人们常常忽略其发展创新。电铃系统本身涉及到技术不算过于复杂,但是因为其功能的必要性,要求此系统的可靠性为第一要素,而且对时间精度的要求也非常之高。基于打铃系统的重要性,我国很早就出现了打铃系统:由一个空心大铃铛和小铁锤组成,配备专门的人员按着时间,当时间到时进行锤子敲铃。这就是最早出现的打铃系统,由于这种打铃系统是由人来手动控制,所以存在很大的弊端,例如打铃人不能精确的控制打铃时间,打铃人由于自身的原因忘记打铃等等原因造成打铃不及时或打铃缺漏,对人们的生产或生活带来很多麻烦。虽然这种原始的打铃系统简单,但是造价低廉,到现在还有部分山区贫苦地区仍在采用这种铃声系统。正是基于这些原因,我国对打铃系统的发展投入比较少,对它的研究调查也缺少,所以进行相关的研究发展是非常有必要的。根据资料查找,泰州职业学院的王书杰曾做过电铃系统方面的研究,他研究了一款基于校园网络的自动打铃系统,此打铃系统采用的主控芯片为ATMEL生产的AT89C51,DS1302作为外部的时钟基准,联网芯片为ENC28J60。此系统的控制逻辑为:将打铃的时间信息存储到单片机内部,根据这个信息与网络时间进行比较从而打铃。该系统虽有效的对电铃系统进行创新,但是其没有使用专用的时间信道,如果校园网遭到向时钟服务器发包被拦截复写返回、网络不通等故障,就会对打铃系统造成严重的干扰故障,而且该系统没有考虑铃声的选择,只能选择自带的铃声,其使用的单片机功耗也较高,也没有系统独立脱机工作的功能。阜阳职业技术学院的刘志云也对电铃系统做过研究,他设计的方案是使用Zigbee无线网络作为时钟的时间通道,但是没有时间校准的主服务器,只能手动调整当前时间,而且Zigbee网络价格较高。1.2.2国外发展状况国外对于电铃系统的研究也鲜有,所以在这仅仅对电铃系统的控制芯片进行研究。美国是最早设计基于单片机的电铃系统的国家,阿特梅尔公司(简称ATMEL)是世界上最早的生产单片机芯片的公司,在那时生产的单片机是8位的单片机,特点是低电压和高性能。这种单片机的存储器只拥有2KB的空间,此外还有128bytes的随机存储数据存储器,虽然该技术放在今天略有落伍,但是开创了单片机技术的先河,而且在采用了当时最先进的存储技术——高密度、非易失性存储技术。该单片机不只是拥有先进的存储技术,还采用了行业标准的MCS-51指令系统,具备了当时性能比较优异的内置CPU和闪存单元。自上世纪70年代末,就出现了最早的单片机技术,单片机技术走过了SCM、MCU和SOC三个技术发展的关键阶段。单片机发展和电铃系统的发展关系也是密切相连的。1.3研究意义工作、学习、休息和参加各种社会实践活动是人们日常生活的必要,正是因为人类有着这些社会活动,使人们的生活环环相扣有条理且丰富多彩。应该说,电铃系统的提示功能与人类的各种行为和活动密切相关,所以电铃系统的功能是体现出来的。很多人在生活中,因为太过专心于工作而记不得其他的时间,进而导致重要的计划和安排被耽误了,对自己或他人造成了无法弥补的损失,让他们悔恨不已。一个良好的时间观念想要形成,我们就需要钟系统来提醒我们所有的时间。此外,电铃系统逐渐融入了人们的日常生活,成为了在获取生活便利时很重要的一部分,在家庭、车站、机场、办公室等公共场所都有着大范围应用,给人们的各种社会活动都带来了很大的方便。目前投入生产的电铃系统大多功能齐全,但价格昂贵,控制芯片能耗高,存在安全漏洞,不支持远程或脱机工作,周边扩展功能缺失等问题。另一方面,由于电铃系统非常简单和常见,使其市场需求很高,而且也有很大一批传统打铃设备需要淘汰换新,所以就要求其价格要相对便宜,要具有很高的性价比,生产成本也是需要考虑的一部分,因此非常适合日常使用。随着人们工作速度的加快,时间对于人们来说是十分的宝贵,时间不准确实会造成大错,因此对计时的准确性有了更高的要求。随着社会的发展,电子产品逐渐替代了机械产品,而且在美观程度优于机械产品,在准确性能上也高于机械产品,所以机械产品逐渐退出了时代发展的潮流。电子技术飞速发展,几乎渗透到了生活的点点滴滴中,有利的推动了社会的发展。对于现阶段的单片机来说,已经是高性能单片机的时代,低功耗、小体积、大容量、高性能这些优点显示单片机非常适合于设计电铃系统,设计的意义主要在于解决现实存在的问题,扩大其研究,实现社会多方面的应用,此电铃系统的设计就有了重要的意义。1.4需求分析当今社会是一个快速高效的社会,时间就是金钱,所以人们对时间的准确把握和分配非常重要。伴随着单片机技术持续发展创新,社会各个行业都被现代电子产品所渗透,电子产品应用技术几乎覆盖了人们所能想到的所有领域。与此同时,相关产品对于时间测量精度的要求变得越来越高,其应用范围也更加广泛。这就要求时钟系统在时间显示方面必须做的更好,要更加方便,更为准确,这样,研究人员就需要不断设计和开发新的时钟系统,还要加一些其他的实用性强的功能。因此,时钟系统的精确计时等用途对于人们的生活和工作具有重要的现实意义。所以对电铃系统进行研究有着非常现实的意义。二十一世纪,数字化飞速发展,而单片机作为电铃系统的控制核心,在其中也扮演了很重要的一部分角色,单片机的发展大大改进了人们的生活。单片机初期的时候,由于工艺简单,所以设计的形式也比较简单。到了低性能单片机时代,片内RAM、ROM容量仍较小。目前我们所处的是高性能单片机时代,单片机的性能比较高,应用的范围比较广泛。单片机与电铃系统的结合发展与研究也成为必然趋势,电子电铃系统无论是美观性还是准确性上都具有优势,适用于学校、家庭、企业等,方便准确统一定时,实际上电铃系统到现在已经不仅仅是用来提示时间,在各种场合就要求它可以承载更多的功能,所以选择研究该项目有很大的必要性。由于社会的不断发展,对于信息的交换和高新技术的发展的需求在不断增加,促使了电铃的研究成为了刚需,现代的电铃系统正在向精度高、功能多、功耗低、体积小等方面发展前进,为电铃系统投入市场并得到广泛应用提供了必要条件。本次设计正是基于这种设计方向,以单片机为控制核心,设计制作一个符合指标要求的电铃系统。
第2章整体设计方案传统的打铃系统一般采用每个打铃区域布设独立的喇叭,通过长长的导线连接到控制台,通过控制台完全控制所有的喇叭打铃,这就需要很大的成本来布线,而且需要一个很大的功放来满足喇叭的需要,但功放的功率增大与成本增加为指数上升,这也大大增加了系统的成本。而且打铃系统仅仅支持打铃,并不具备其他的周边功能,使得系统的可用性大大降低。如上所述,这种传统打铃系统方案存在很多问题,为了解决上述问题,本设计采用Stm32单片机做核心控制器,利用2.4G无线WIFI实现通信,通过上位机设计的界面,控制单片机实现时间、温度、湿度以及打铃。在无法连接到上位机的情况下,本系统还可以实现脱机工作,辅助键盘、显示装置,设置相应的数字实现上述变量的设置,TF记忆卡的功能是存储提前下载好的音乐铃声,实现音乐打铃。系统设计框图如图2-1所示。图2-1系统框图2.1设计主要内容现在,大部分精度较高的计时工具都是基于石英晶体振荡器的基础上产生。正是因为使用石英技术的时钟系统的产生,使得它们拥有比较好的计时精度,稳定性和易用性也很不错,不需要频繁去调试它们。为了减少时间显示错误,没有选用指针显示器,而是采用了OLED显示器。本设计可以显示年、月、日以及小时、分钟和秒,显示比较精确,还可以用作手动时间的校准的参考。想要进行一个电子产品的设计,首先我们必须了解它要实现的功能,并在查找其资料的基础上进行研究创新,并对其市场需求进行分析,确定其是否要增加除了主功能外的其他附加功能。本电铃系统最基本的功能是上位机控制,校时,振铃和脱机工作,根据文献资料研究和市场分析,增加的附加产品功能为铃声音乐可选,环境温湿度上传和显示。本次设计的基于单片机的电铃系统采用的单片机是Stm32单片机、时钟模块采用的是DS3231、采用了JZ-TRIG实现用音乐铃声来作为打铃提示声音,显示数字采用的液晶显示屏。程序采用C语言(单片机程序)和C#(上位机程序)来实现,主要包括系统main主程序、上位机UART串口程序,上位机串口连接程序,系统键盘输入程序、系统OLED显示程序、系统音乐铃声触发程序和系统I2C通信程序等。本设计的基于单片机的电铃系统以秒为系统时间单位计数,在OLED显示屏上实时显示当前下位机内的时、分、秒时间。其中秒和分采用60制,小时采用24制。可通过上位机一键或通过按键实现时钟复位、分、秒、时、年、月、日校正和打铃时间设置的功能。2.2研究方法设计一个电子产品,首先要查阅文献资料,进行市场分析调研,了解它能实现的具体功能,并将其按照功能的重要程度完整的排列出来,对每个功能进行独立的调试和测试,最后将其整合成一个整体。电铃系统最基本的功能是实现定时。本文设计的数字电铃系统可以实现校时和定时功能,在电子钟的基础上增加了电动自动定时功能,并设计了四个按键来进行脱机操作。硬件设计非常简单,包括:Stm32F103C8T6最小单片机系统、按键电路、3W喇叭、OLED12864显示屏、DH11传感器、JZ-TRIG音乐铃声、LC12S2.4G无线模块和DS3231时钟模块。单片机采用的Stm32F103C8T6芯片,它不需要扩展程序内存。原理图和电路设计也很简单,使用了AltiumDesigner21,将测量各个模块的实际尺寸和引脚间距及排列顺序,将每个元件的单独进行原理图绘制和PCB封装,然后将自制库文件导入到工程里,就可以进行原理图设计和PCB设计了。因为下位机脱机操作只需要四个按钮,所以使用了四颗独立的按键,使设计更简单。OLED时间显示器显示字符,可以实现时间,校准操作和时间显示等功能。其中,秒和分是60基,小时是24基。通过按键可实现年、月、日、分、秒、时的精确校准,可以切换显示时间界面和打铃设置界面。2.3元件选择2.3.1主控芯片选择 方案一:主控芯片采用AT89C51型号,该单片机是自带4KB的FLASH(为FPEROM),低压高性能的8位CMOS微处理器,该型号为ATMEL公司生产制造,具备32个I/O接口,16位定时/计数器两个,256Bits的RAM,同时该单片机还具有一个全双工串行通讯口,内置振荡器和时钟,断电后可以自动保存RAM内的程序,保证上电继续工作,且可以已0hz的静态逻辑操作。 方案二:主控芯片采用MSP430型号,该单片机为Ti(德州仪器)于96年开始推出的一款微处理器,该单片机具有RISC(精简指令集),是一款16位的处理器,具备丰富的寻址方式和片内资源。该系列单片机具有多种型号、多种封装可选,其中33X系列的型号具备足够的I/O接口,丰富的总线接口等外围硬件资源。 方案三:主控芯片采用Stm32型号,该单片机为意法半导体(STMicroelectronics)专为要求高性能、低成本和低功耗的产品需求而设计的,该型号具备多种类型系列,选择丰富,具备最大容量512K的闪存,具备多种多样的通信串口协议,比如UART,CAN,I2C等,内核最高可达72兆赫兹,且该单片机功耗低。 根据上述方案,方案一虽然成本符合系统的要求,但不支持各种总线接口,且功耗较大,顾不考虑,方案二芯片虽然性能达到系统要求,且总线接口丰富,但是只有33X系列符合要求,但33x系列价格昂贵,不符合系统要求。考虑到本系统的性能、功耗、成本等综合要求,选择了方案三Stm32系列的控制器芯片,具体选型为Stm32F103C8T6,后文将进行具体介绍。2.3.2时钟芯片选择 方案一:时钟芯片采用内部的定时器来模拟时钟,通过设定定时器溢出时间来模拟1秒,优点是方便,不需要额外的外部设备,无需任何成本,通过硬件定时器来确定秒,精度较高。 方案二:采用外部时钟DS1302,该模块为美国公司DALLAS推出的实时时钟,该时钟自带RAM,高性能低功耗,接口比较简单,价格低,使用也很方便,工作电压压差达到3.5V,最大支持5.5V的输入,电源兼容性好,使用3线和处理器进行数据通信,具备电池电源供电,直接供电两种模式,并可根据输入自动切换。 方案三:采用外部时钟DS3231,模块内部嵌入内置补偿晶振,支持温度自补偿,精度高,支持I2C总线通讯,也包含备用电池供电功能,根据输入电压自行切换电源模式,自带的闹钟寄存器可以存放闹钟信息,自动闰年补偿,24/12小时格式切换等功能。 根据上述方案,方案一虽然无成本,但出现问题几率高,断电无法保存当前系统的时间,只能重新校准,故不采用。方案二经过实际测试,时钟精度尚可,但受制于温度影响极大,且精度也取决于外部电容,导致系统要经常校正时间,不符合系统可长时间脱机工作的要求。根据实际测试结果及资料分析,方案三采用的DS3231时间精度最高,可支持系统长时间脱机工作而无需校准,顾采用DS3231外部时钟模块。2.3.3显示选择 方案一:采用LCD12864作为电铃系统的脱机工作显示,具备2线或3线,4位或8位多种数据传输模式,分辨率为128x64,开发程序简洁方便,也可用作图案显示等,价格较同分辨率的点阵图形液晶显示要便宜不少。 方案二:采用OLED12864作为本系统的脱机工作显示和设置,该屏幕自身可发光,具备高对比度的显示,分辨率也为128x64,但具备更小的尺寸数据,显示功耗低,亮度也高,而且该屏幕还支持两种通讯协议,分别为I2C和SPI。 根据上述方案,方案一采用的LCD12864,该屏幕自身无法发光,需要一整块背光照射,功耗大,且体积很大,显示效果不细腻,不符合本系统长时间脱机工作的要求。方案二采用的OLED12864,对比LCD12864显示效果细腻清晰,可以分区控制亮起,功耗低,体积小巧,且支持SPI通信协议,不与DS3231争抢I2C接口,完全满足本系统的需要,所有最终选择的是OLED12864。
第3章硬件系统设计3.1单片机在选择单片机的时候考虑了多种单片机的类型,并最终选择了Stm32F103C8T6,这是32位的以ARMCortex-M为内核的Stm32系列的微控制器,这款由ST厂商研发出的Stm32系列单片机,可以说是性价比极高,而且它的功能非常的强大。该单片机内部为ARMCortex-M3内核,这款内核性能高,功耗低,对嵌入式应用专门做了许多项功能优化,同时支持大量优秀的外围器件:双12位ADC仅仅只有1μs的延迟,UART串口通讯速度高达4兆位每秒,SPI总线速率达到18兆位每秒等等,在功耗和集成度方面也具备一流的水准,由于该单片机具备简单的结构,为其专门开发的工具也是极易使用的,这些方面使其在各行各业中都能看到它的身影。选用它的原因是因为它的各方面表现都十分突出,性能比较好、价格便宜、整体损耗值较小。因此在它的基础上设计的微控制器具有很好的整体表现,在本次设计中选用的就是该系列下的一个子产品作为主要的核心内容—Stm32F103C8T6。3.1.1Stm32F103C8T6单片机引脚根据本系统功能的设计需求,选用的微控制器Stm32F103C8T6在系统中的原理图和引脚定义如图3-1所示。图3-1Stm32F103C8T6单片机原理图及引脚定义3.1.2Stm32F103C8T6单片机最小系统简介Stm32F103C8T6封装是LQFP48-48引脚小外形四方扁平封装外形。Stm32F103C8T6是一个集成电路,芯体尺寸为32位,程序存储器的容量为64KB,工作电压为2V~3.6V,工作温度则是-40°C-85°C。3.1.3核心板单片机通过引脚接口内嵌于核心板,核心板上面集成了单片机的最小系统;核心板通过直插排针又置于开发板底板之上;开发板于底板通过排针相连。实体核心板图片如下图3-2所示。图3-2核心板3.2时钟模块3.2.1时钟模块应用由于DS3231时钟芯片具有RTC时钟器件,所以一般应用于之中的制作或者需要计时的工程当中。用户需要能够访问其内部寄存器以获得当前时间,包括当前时间的年、月、日、时、分和秒值,并且通常输出时钟脉冲的第二周期。图3-3时钟模块正面图3-4时钟模块背面3.2.2时钟模块引脚根据本系统的设计要求,采用的DS3231时钟模块的在本系统中原理图与引脚定义如下图3-5所示。其中该模块的备用电源为不可充电式电池提供,顾不做赘述。其中3.3V为本模块的电源引脚,外接系统的VCC供电电源,GND为电源地,与系统共地连接,SDA和SCL为与系统进行通讯的数据线接口,分别为串行数据输入输出和串行时钟输入。图3-5DS3231原理图及引脚定义3.2.3时钟模块原理时钟模块的原理是要结合内部结构图来进行解释,内部结构图如下图3-6所示。图3-6DS3231内部结构图DS3231时钟芯片结构:DS3231的主要是8个模块共同组成,4个功能组分别是:TCXO、电源控制、RTC以及按钮复位,以下介绍其主要功能:1、DS3231的内部寄存器及功能DS3231的寄存器地址为00h到12h的任意位置,都是用来存储小时,分钟,秒和警报设置以及日期等诸多信息。当访问存储器多个字节的时候,如若其地址在RAM空间的最后才到12h,它就会被纠缠,随后会自动被定位到最开始的地方。当对DS3231的时间信息和日历信息进行初始化或者其他设置时,则要通过读取相应的寄存器来进行。内部寄存器在更新时可能会发生异常的错误,而用户辅助缓冲区就是用来防止可能发生的异常错误的。当正在读取日历寄存器和时间寄存器时,任何引导条件下或在寄存器指针重新到达零时,用户缓冲区会和内部寄存器处于同步状态,会根据这些辅助寄存器来进行时间信息的读取,同时让时钟长期处于工作状态。这样操作,可以在读取操作期间更新主寄存器时,不用重新对该寄存器进行读取。就拿控制寄存器(地址为0EH)举例,它可以对实时的时间,闹钟和方波输出进行控制。各bit定义见表3-1。表3-1bit定义表BT7BT6BT5BT4BT3BT2BT1BT0EOSCBBSQWCOWRS2RS1NTCNA2LEA1LE00011100表3-2RS1、RS2的逻辑值与方波输出频率的关系表RS2RS1SQUARE-WAVEOUTPUTFAREQUENCY001Hz011.024KHz104.096KHz118.192KHz2、DS3231的复位按钮DS3231有一种功能是连接到RST输出引脚的按钮开关。如果DS3231在复位周期里不存在,就会一直追踪下降沿信号(RST)。若检测到发生跳变的边沿信号,就会通过拉低RST信号来使DS3231完成开关去抖。在内部计时器达到了指定期限以后,DS3231就又会继续监管RST信号。RST还可以被用来指示电源故障报警条件。在VCC小于VPF的时候,会产生一个报警信号,代表内部电源出现了故障,这时候模块会将RST引脚制下拉到低电平。当VPF水平低于VCC的时候。RST会保持低电平信号,这个时间约250ms(tREC),这样就可以稳定DS3231的供电电源。如果在加载VCC后,DS3231的振荡器没有正常工作,就会立即跳过tREC状态,RST立即就跳转成高电平。3、DS3231的传输功能DS3231上的I2C总线上输送信息的数据包全部都是9位的,如果具体化就是8个数据位,剩下的为数据应答位,占1位。在数据产生交换的时候,有时间开始和结束的状态位,并采用接收器来响应接受数据。应答则是ACK在第9个时间限内里,拉低SDA来完成应答状态。若接收器在某个时钟周期把SDA提高,那么就会发送NACK信号来告知发送器。如果因为某些原因,接收器不能一次收到足够多的信息,这就需要在末尾字节的后面发出一些NACK信号来传输给发送器件暂停发信息数据的信号,必须先发送信息相关的MSB。DS3231与I2C总线数据的双向传输为DS3231用两向的数据线SDA与时钟线SCL同外界接入的I2C通讯设备交换信息,根据这样的时间顺序关系可以看出,DS3231操作模式能分成两种:写操作和读操作。3.3OLED12864液晶显示屏本设计使用OLED12864作为显示装置,显示本设计电铃系统的系统界面,界面设计了时间、温度、湿度等,对当时环境参数进行显示。3.3.1OLED12864液晶显示屏介绍OLED全称有机发光二极管,是一种显示点可以自发光的器件,每一个像素点可以自发光,不需要在显示器背部添加高亮度背光,更加省电。屏幕耗电根据显示内容所定,显示的内容越少耗电量越少。此外屏幕是单色无灰度的,没有其他的颜色的区别每一个点没有灰度的变化,只能是点亮或者熄灭。屏幕发光点排列成阵列形成了显示区。OLED12864显示屏的像素大小是128×64,每行和每列的显示通过驱动来实现。其中每行的显示与主设备无关,只要接上电源就可以产生所需要的信号来源。在每列都包含当前存储信息容量较大的硬件,显示屏上面每个小点是处于何种状态取决于相对应的存储硬件里面的数据。存储的数据信息可以控制显示屏上每个像素的状态,直接决定了是否可以显示内容。OLED的实物图如下图3-9所示。图3-7OLED12864实物图3.3.2OLED12864液晶显示屏模块接口定义OLED自身是一个玻璃薄片,在其下方引出FFC排线,排线的末端是镀金的金属焊点,焊点就是屏幕外的接口,一共有三十个,也就是30个焊点,刚好与原理图中的OLED内部原理图相对应,每一个接口以及接口上要连接什么外围电路,均需要参考详细的手册。其中30个焊脚主要是为了实现焊接电容、电阻、电源、协议设置等功能。而七个引脚是为了于核心板相连接;对于引脚的作用如下表4-3所示。表3-3引脚作用表引脚名称功能GND电源地VCC电源正(3~5.5V)D0OLED的D0脚,在SPI通信中为时钟管脚D1OLED的D1脚,在SPI通信中为数据管脚RESOLED的RES脚,用来复位(低电平复位)DSSPI数据命令选择脚CSOLEDSPI片选、低电平有效不用必须接地3.3.4OLED12864液晶显示屏原理将屏幕划分区块,每一小块为8行、8列,每8行为一组,纵向一共八组,横向一共16组,这样便于更好的成行成列的显示。本系统使用的显示屏原理图和引脚定义见图3-10。图3-8OLED12864原理图及引脚定义3.4按键本次设计的电铃系统具有脱机工作模式,所以就要求本系统可以自行调节年、月、日、时、分、秒还有显示温度、湿度。独立按键是一种常用的人机交互装置,相对来说较为简单,实际按键则是一个非自锁的开关,当触点被按下时,电路导通,此时单片机会通过GPIO端口检测电路的高低电平,并以此来判断按键是否已经按下,不过由于按下的瞬间,触点的状态并不稳定,它的状态在通断之间不停的转换,如果不进行按键消抖的话,直接检测会检测出很多不同的信号,导致单片机会多次判断按键按下。可以从两个方面进行按键去抖,一个是硬件消抖,在按键的两端并联进去一个电容,电容有瞬时充放电作用,通过这个作用可以稳定瞬间的触点产生的高频震荡电流,但只是通过电容消抖仍然不够稳定的,某些时候还是有不止一次的判定。因此使用方法二:软件延时消抖,这种去抖方式是在检测到按键按下后,在暂时的延时后,再进行按键有没有按下的判断,若还在按下的状态,就进行按键按下的相应操作,若是检测到按键没有按下的信号,就不会进行后续程序操作,这个短暂的延时时间就是按键按下进行高频震荡的时间。这种软件消抖能够准确的检测到按键状态,因此本系统的按键消抖就采用这种软件消抖。该系统使用独立的键来形成独立的键盘。独立键盘每一个按键都是独立的,而且也会单独连接进数据输入线。独立键盘配置灵活,硬件结构也比较简单,不过每个按钮都需要占用接口线。如果按钮数量较大,接口线就会占用很多,因此不适合用于过多的按钮。基于本设计要实现的功能,采用了四颗独立按键组成独立式键盘,分别用于时间调节和设置打铃时刻的目的。3.3V电压通过按键按下进入到单片机内,从而使单片机IO口检测结果是高电平,而单片机通过对端口的电平变化的循环检测来判断哪个按键被按下。本系统采用按键原理图及引脚定义如下图3-11所示。图3-9key原理图及引脚定义3.5LC12S无线串口模块上位机通过LC12S(图3-11)无线模块与单片机进行通信,实现数据的收发,该模块契合Stm32单片机串口的模式,实现较好的上下位机通信,引脚参数见表3-4。图3-10LC12S正、反面图LC12S的最大特性是免开发,运用2.4G的SOC技术,半双工通信,抗干扰的能力很强接收和发送数据是不用切换的,实现传输的协议是透明的,因此调试所用的时间非常短。128个频道可用,使用无需申请,工作频率可设置,可进行频分复用,互不干扰,小体积SMD封装,无需天线,安装也很方便,方便用户的使用,用户不需要知道复杂的无线通讯知识就可以完成通信产品的开发。LC12S串口设置,它进入了设置状态,指示灯会亮。本设计采用两个LC12S模块进行通信,其中上位机的LC12S通过USB转TTL电路连接到电脑上的USB接口,通过上位机软件进行电脑串口连接,由于主从双方的LC12S的波特率必须一致才能有效传递数据,在串口通信的过程中,传输距离长度和波特率大小成正相关,9600波特率为最常用的传输波特率,传输距离相对较远,所以本设计上位机和下位机通讯的波特率设置成9600。下位机的LC12S直接与Stm32的串口相连接,通讯波特率也设置为9600。这样上位机和下位机就可通过LC12S进行数据通信。本系统采用的模块原理图和引脚定义见图3-12。图3-11LC12S原理图及引脚定义表3-4引脚作用表引脚引脚名称引脚功能描述1VCC电源电源(接2.2-3.6V)典型3.3V2RXT数据输出串口通信数据接受3TXD数据输入串口通信数据发送4SET设置位低电平使能参数,高电平透传模式,悬空为高电平5CS休眠低电平工作,高电平休眠模式,悬空为高电平6GND电源接地3.6音乐铃声音乐打铃采用的是JZ-TRIGMp3模块,将记忆卡中的音乐载入该模块,可以实现音乐铃声的自由切换,该模块外置喇叭接口和音箱接口,但二者共用一个输出口,所以这两个输出口同时只能一个进行工作。此模块还具有一个T焊点,对于此焊点也有两个特别的功能模式:T焊点没有被焊接即触发以此播放一次后就停止,在该模式下为单曲不循环模式;T焊点焊接后,即触发一次后一直播放当前歌曲,此时模式为单曲循环模式。该模块供电也有要求,即电压不可高于5.5V,自带的功放输出时喇叭的功率不能超过3W,使用3W输出时要加散热片对功放进行冷却。根据本设计的功能要求,本次此模块的T焊点没有被焊接。此外这个模块设置了9个可以直接触发的端口,A1~A9这9根排针可以与铃声一一对应,分别为1-9首铃声,根据放入TF卡的文件命名来确定,文件命名格式为00X.mp3(X为阿拉伯数字)。触发方式为:播放第X首铃声,向AX口提供一个低电平,低电平可以是接地,也可以是0V,还可以用IO口触发来提供。本模块还可以通过编码方式进行触发,本设计中,把A10端口进行接地操作,模块通电之后就为是编码模式,在该模式下编码端口对应为A1~A5,编码信息见表3-4。本系统使用的原理图及引脚图见图3-13。图3-12JZ-TRIGMp3模块表3-5铃声编码表(省略)铃声号A1A2A3A4A5触发铃声101111第一首210111第二首300111第三首411011第四首501011第五首….…3100000第三十一首图3-13JZ-TRIG原理图及引脚定义3.7温湿度模块 温湿度检测模块采用的奥松电子有限公司推出的DHT11温湿度模块,这款数字温湿度传感器为一款复合传感器,采用了奥松电子专用的数字采集技术,包含的已校准数字信号输出可靠,稳定性高。该模块内部包含的湿度模块为电阻式的,测量范围为20%~90%,精度能够达到±5%。测温模块为NTC测温,测量范围为0~50摄氏度,精度为±1摄氏度。 该器件采用的数据传输接口为新型的单总线接口,该总线接口既能单线传输数据,也能传输时钟信号,而且支持双向传输,硬件开销小,总线维护方便且易于扩展,功耗低,抗干扰能力强等优点。 基于以上优点,本系统采用其作为检测环境温湿度的模块,以高位先出的顺序来传输以下数据:第一个8位数据为整数湿度数据,紧接着的8位为湿度的小数数据,下一个8位为温度的整数,再8为为温度的小数,最后8位数据作为校验数据。实物图见图3-14。引脚定义见表3-6。本系统采用的原理图及引脚定义见图3-15。图3-14DHT11实物图表3-6引脚说明定义解释VCC电源正(3~5.5V)NC悬空引脚DATA单总线GND电源地图3-15DHT11原理图及引脚定义
第4章软件系统设计4.1程序设计基于上下位机通信的打铃系统软件的设计,包括了总体流程的设计,硬件(主程序)的设计,键盘(子程序)的设计,设计流程如图4-1。 图4-1总程序流程图4.1.2硬件主程序设计主程序的作用是实现系统初始化过程,包括了内部资源、变量、外部设备的初始化以及界面时间设置与状态的显示等各种功能,其中系统流程图如下图4-2所示。图4-2硬件控制主程序流程图4.1.3键盘显示子程序设计1.显示子程序设计键盘将输入的量值送给支路控制器通过显示装置显示出,并且灯单元控制器将反馈到的数字量提供给单片机,也要通过显示装置显示出来。所以根据显示电路,设计出显示子程序流程图及显示子程序,如图4-3。图4-3显示程序流程图显示子程序如下所示://///////私有函数/*检测串口是否设置*/privateboolCheckPortSetting(){if(cbxCOMPort.Text.Trim()=="")returnfalse;if(cbxBaudRate.Text.Trim()=="")returnfalse;if(cbxDataBits.Text.Trim()=="")returnfalse;if(cbxParity.Text.Trim()=="")returnfalse;if(cbxStopBits.Text.Trim()=="")returnfalse;returntrue;}/////////私有函数/*检测发送数据*/privateboolCheckSendData(){if(cbxCOMPort.Text.Trim()=="")returnfalse;returntrue;}/////////私有函数/*设置串口的属性*/privatevoidSetPortProperty(){sp=newSerialPort();sp.PortName=cbxCOMPort.Text.Trim();//串口名称sp.BaudRate=Convert.ToInt32(cbxBaudRate.Text.Trim());//波特率floatf=Convert.ToSingle(cbxStopBits.Text.Trim());//设置停止位if(f==0){sp.StopBits=StopBits.None;}elseif(f==1.5){sp.StopBits=StopBits.OnePointFive;}elseif(f==1){sp.StopBits=StopBits.One;}elseif(f==2){sp.StopBits=StopBits.Two;}else{sp.StopBits=StopBits.One;}sp.DataBits=Convert.ToInt16(cbxDataBits.Text.Trim());//设置数据位strings=cbxParity.Text.Trim();//设置奇偶位if(s=="无"){sp.Parity=Parity.None;}elseif(s=="奇校验"){sp.Parity=Parity.Odd;}elseif(s=="偶校验"){sp.Parity=Parity.Even;}else{sp.Parity=Parity.None;}sp.ReadTimeout=-1;//设置超时读取函数sp.RtsEnable=true;//定义DataReceive事件sp.ReceivedBytesThreshold=1;sp.DataReceived+=newSerialDataReceivedEventHandler(sp_DataReceived);//该方法加载就运行,if(rbnHex.Checked){isHex=true;}else{isHex=false;}}2、键盘子程序设计在键盘电路的要求中,会采用程序不间断的扫描模式进行工作,并使用CPU调用键盘扫描子程序以完成其他任务并在空闲时间处理按键输入要求。当执行按键功能处理程序时,CPU不再响应其他键输入请求。该系统键盘处理程序流程图如图4-4所示。本设计采用软件延迟方法消除抖动。图4-4键盘程序流程图键盘显示子程序如下所示:#include"delay.h"#include"key.h"#include"GPIOXset.h"#definerank1PFout(1)#definerank2PFout(3)#definerank3PFout(5)#definerank4PFout(7)#defineline4PFin(0)#defineline3PFin(2)#defineline2PFin(4)#defineline1PFin(6)/***********************I/O口初始化******************/voidkey_init(void){ RCC->APB2ENR|=1<<7; GPIOouts(5,1,1); RCC->APB2ENR|=1<<7; GPIOouts(5,3,1); RCC->APB2ENR|=1<<7; GPIOouts(5,5,1); RCC->APB2ENR|=1<<7; GPIOouts(5,7,1); RCC->APB2ENR|=1<<7; GPIOins(5,0,1); RCC->APB2ENR|=1<<7; GPIOins(5,2,1); RCC->APB2ENR|=1<<7; GPIOins(5,4,1); RCC->APB2ENR|=1<<7; GPIOins(5,6,1);}4.1.3上位机程序设计上位机部分,通过UART串口与单片机通信,上位机获取当前计算机的时间,转换成数据通过LC12S传送给单片机,单片机接受到后再通过I2C总线传输给DS3231用来精准校时,上位机设置的打铃时间以及铃声编号也通过LC12S传信给单片机,单片机配置成功,此外,还可通过上位机静音按钮或打铃按钮来手动取消打铃或立即打铃。上位机界面如图4-5所示。上位机主要程序见附录3。图4-5上位机界面4.1.4工程设计编译keil是在学习单片机所用到的软件之一,是为了单片机C语言开发所设计的软件。keil将一堆文件有序地组织起来按照先后顺序进行有序的编程最终导出.hex文件并将其写入到单片机中。4.2程序分析在设计程序的时候,我选择了C语言;因为C语言各方面发展比较成熟,C语言是用户常用的底层驱动程序和常用于用户程序编写,优点是容易移植;其中详细的介绍如下:USER包含:
main.c:是主函数,程序开始的地方。
Stm32f10x_
it.c:system_
Stm32f10x.c:、HARDWARE包含:OLED.C:
key.c:BEEP.C:GPIO.c:DS3232.c:、SYSTEM包含:
delay.c:延时函数
sys.c:CORE包含:
core
cm3.c:startup
Stm32f10x_
hd.s:。
Stm32f10x_
gpio.c:、Stm32f10x_
rcc.c:Stm32f10x
usart.c:misc.c:
Stm32f10x
tim.c:
Stm32f10x_
exti.c:
Stm32f10x
adc.c:
Stm32f10x
flash.c:
第5章整体测试分析5.1软件部分测试5.1.1编译运行程序将写好的程序编译运行,点击重新构建文件,程序执行成功,同时生成Hex文件。如图5-1所示为程序执行结果。图5-1程序运行结果5.1.2程序烧写在进行程序的烧写的时候需要将设计好的开发板连接到CH340串口上,再将一端连接到电脑上,在进行操作的时候必须要在设备管理器上看一下是否安装了CH340驱动。在连接好之后,打开FlyMcu开始准备烧写程序。在此之前,
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 脑出血临床症状解析及护理原则
- 华光花园设计软件介绍
- 市场调研方式方法
- 抗原试剂盒的使用方法
- 考研专业选择方法指标
- 哮喘病的临床表现及护理要点
- 有营养的宝宝小班
- 放射科胸部CT检查注意事项
- 家庭康复精细运动训练指南
- 皮肤科普常见病
- 家谱中奶奶的纪传范文
- 夯实基础33课件讲解
- 中学生寝室内务及管理
- 2023全国卷甲卷应用文写作课件高三英语二轮复习
- 恶性肿瘤支持治疗
- 《初中女生的青春期教育》专题课件
- 影视画面分析-镜头课件
- 箱变技术要求
- 闪亮的星星-悦纳自我(说课稿)-一年级心理健康通用版
- GB/T 9740-2008化学试剂蒸发残渣测定通用方法
- GB/T 25098-2010绝缘体带电清洗剂使用导则
评论
0/150
提交评论