《基于STM32的多功能数字时钟设计》12000字_第1页
《基于STM32的多功能数字时钟设计》12000字_第2页
《基于STM32的多功能数字时钟设计》12000字_第3页
《基于STM32的多功能数字时钟设计》12000字_第4页
《基于STM32的多功能数字时钟设计》12000字_第5页
已阅读5页,还剩28页未读 继续免费阅读

下载本文档

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

文档简介

[20]。组件的调用和基本操作被写入固件库的通用子功能中,为复杂的硬件操作实现了功能封装,这使程序编写者能够获得更高的透明度,不用顾及底层设计。在以51单片机为代表的8位机由于硬件系统相对简单,通常可以采用直接配置寄存器的方式来进行应用开发;而32位处理器内核系统复杂,外设资源比较丰富,如果应用系统仍旧采用传统的寄存器设计方式,直接操作寄存器来控制外围设备,操作困难、可移植性差,不太可能适应较为复杂的工程应用。意法半导体官方提供的技术,即基于固件库的技术思想提供了新思路用以解决以上的问题。程序编写者按照CMSIS标准(CortexMicrocontrollerSoftwareInterfaceStandard)构建工程以实现具体任务要求,利用固件库提供的函数等,应用和改造相关函数以实现对单片机内部寄存器的操作,运用了透明化的思想,让程序编写者不用再在底层设计知根知底,只需要参照固件库进行函数的调用即可达到相同的功能设计,有力缓解了程序编写者的压力。本文结合本次设计,首先介绍库函数中主要涉及的定时器和LCD显示驱动的基本结构和工作原理,在此基础上利用现有库函数进行系统构建和功能设计,操作方便,易于检查。4.2主程序主程序负责把控各个模块运行的先后顺序,确保关键功能模块顺序执行或者并发执行,从而保证整个系统运行稳定。首先对控制系统和对应外围模块等进行初始化,随后时钟计数和温度检测同步进行。利用定时器来进行同步操作,进行温度检测、按键检测、检测闹钟等功能。最后再通过TFTLCD显示屏幕进行时间显示,闹铃设置显示。主程序的主要流程如下图4-1所示:图4SEQ图\*ARABIC\s11主程序流程图4.3温度检测系统设计设计使用DS18B20进行温度检测。DS18B20是单总线设备,需要严格的信号时序以确保数据格式正确。DS18B20具有六种信号类型:复位脉冲,响应脉冲,写0,写1,读0和读1。所有这些信号(响应脉冲除外)均由微控制器同步。并且发送字节低位在前的命令和数据用以通信。复位脉冲和应答脉冲先初始化序列,然后开始进行通信。微控制器输出低电平,保持480us低电平时间,随后产生RESET脉冲。接着微控制器释放总线,47K的上拉电阻将单总线拉高,随后软件延时15~60us,微控制器进入Rx模式。接着DS18B20拉低总线100~240us,以产生低电平应答脉冲。写时序写时序包括写0时序和写1时序。写1时序:微控制器输出低电平,2~3us延时后,微控制器释放总线,再进行50us延时。写0时序:微控制器输出低电平,40~50us延时后,然后微控制器释放总线,延时5us,微控制器写入数据。读时序DS18B20传输数据前,需要微控制器发出读时序信号。所以,在微控制器发出读数据指令后,马上产生读时序,以便DS18B20能够传输数据给微控制器。所有读时序至少需要50~60us的延迟时间,且在2次独立的读时序之间至少需要1~2us的延时,由微控制器发起读时序。微控制器在读时序期间必须释放总线,并且在时序起始后的15us之内采样状态。典型的读时序过程为:微控制器输出低电平延时2us,然后微控制器转入输入模式延时12us,然后读取单总线当前的电平,然后延时50us。微控制器获取详细的温度数据流程如下图4-2所示。获取温度数据后得到实际温度如公式4-1所示,其中变量Realtmp为实际温度值,data为所获取的数据值。图4SEQ图\*ARABIC\s12DS18B20读取数据流程图Rea

4.4时钟系统设计4.4.1时钟系统初始化时钟系统采用单片机STM32内部的RTC,RTC模块和时钟配置系统(RCC_BDCR寄存器)位于STM32单片机的后备区域。两个寄存器能保证单片机在系统重置和待机模式唤醒后,RTC的寄存器的设置和存储时间能够保持不变。单片机在复位系统后,需要自动禁止访问备份寄存器和RTC,以防止数据意外写入备份区域(BKP),造成读入脏数据;系统在设置时间之前,必须先取消备份区域(BKP)的写保护,再进行对备份区域的写入。如图4-3所示,两个主要部分组成了RTC,其中第一部分为APB1接口,用来和APB1总线相连,APB1总线时钟驱动APB1接口。RTC单元还包含一组16位寄存器,微控制器可通过APB1总线对其进行读写操作。另一部分(RTC内核)由一组可编程计数器组成,分为两个主要模块。第一个模块是RTC的预分频器模块,RTC预分频器模块包含一个20位可编程分频器(RTC预分频器),可以对其进行编程以生成1秒的RTC时间脉冲TR_CLK。如果将RTC_CR寄存器中对应的位置1,则RTC会在每个TRCLK周期中都会产生一个中断。第二个模块是32位可编程计数器,用于设置当前的系统时间,这个以秒为单位的计数器可以记录4万秒,作为本次设计足以够用。图4SEQ图\*ARABIC\s13RTC框图在初始时间设置中,最重要的寄存器是计数器寄存器RTC_CNT,该寄存器由2个16位的寄存器RTC_CNTH和RTC_CNTL组成,分别负责高低位,总共32位,用来记录当前的准确秒钟值。以1970年为基点,通过得到具体的秒钟值,即可通过基点来计算得到具体的年份月份和日期。RTC工作的配置步骤一般如下:激活电源和备份区域的时钟取消备份区域写保护权限开启外部低速振荡器,开放备份区域选择RTC时钟设置RTC的分频,以及配置RTC时钟更新配置,设置RTC中断分组编写中断服务函数具体流程图如图4-4所示,通过图中的流程可以对微控制器中的RTC进行准确的配置,配置初始时间,以及保证断电后不丢失数据,完成对RTC的初始化。图4SEQ图\*ARABIC\s14RTC初始化设置流程图4.4.2时间计算软件设计中变量Timecount获取了RTC计数的秒钟数,即可通过下面公式得出具体的天数。Day=得到具体的天数后,从1970年开始计数,随后进行闰年的排查,最后可以得到准确的年份月份和日期,其流程图如图4-5所示。之后通过以下的公式即可获得具体的小时分钟和秒钟,从而通过所计数的秒钟值获得准确的时间。temp=TimCalendaCalendaCalenda图4SEQ图\*ARABIC\s15时钟年月日计算流程图4.4.3闹钟设置闹钟设置通过键盘来切换时间设置界面和闹钟设置界面,设置闹钟时间,利用STM32中的BKP备份寄存器来存储闹钟所设的小时和分钟,当断电后仍然存在微控制器中,上电时,单片机通过BKP寄存器来恢复闹钟具体设置。并且通过单片机内部的定时器中断来做到实时扫描并发执行,每500ms扫描一次当前时间是否与所设闹钟时间相匹配。当时间匹配时,微控制器驱动蜂鸣器电路,蜂鸣器开始蜂鸣。4.4.4时间设置当设置时间时,通过键盘进行实时时钟设置,按键KEY_UP进行模式的切换,KEY1和KEY2分别对小时和分钟的加减作用。设置好后直接对RTC_CNT寄存器进行写入,完成实时更新时间的功能。流程图如下图4-6所示:图4SEQ图\*ARABIC\s16时间设置流程图4.5显示系统设计本文采用TFTLCD屏幕作为显示,用于显示字符和数字。其中TFTLCD显示的具体流程如下所示:初始化STM32F103ZET6与TFTLCD屏幕相连接的I/O口在STM32中,所有的I/O口在使用前,必须对其进行初始化。先将微控制器与TFTLCD模块连接的I/O口进行初始化,同时本文采用STM32的FSMC功能来进行IO调控,相比于传统的I/O调控更为简便。初始化TFTLCD模块初始化序列,就是向TFTLCD控制器写入一系列的设置值,一般TFTLCD供应商会提供给客户初始化序列,直接使用初始化序列来进行TFTLCD模块的初始化。屏幕显示字符串和数字屏幕显示字符的主要流程是,设置字符的初始坐标,然后对TFTLCD显示屏幕发送GRAM指令,最后写入GRAM来实现。通过多次使用这个流程,就可以要显示一连串的字符/数字。本文设计一个函数来实现连串的数字/字符的显示。只需要在程序编写过程中调用该函数,对函数输入所需的数字或者字符串,就可以实现连串数字/字符的显示了。图4SEQ图\*ARABIC\s17TFTLCD处理流程图4.6本章小结本章将软件部分分为不同的程序,着重讲解主程序以及不同子程序的主要功能、原理以及流程图,通过讲解这些部分得以了解本设计的软件设计核心思想以及功能。本章着重讲解了STM32单片机内部RTC时钟的初始化流程和用法,以及DS18B20的初始化流程以及实际温度转换流程。

系统调试与结果分析前文通过对单片机以及时钟系统的分析,结合项目需求,设计了多功能数字时钟的方案,并完成了对应的软硬件开发,本章将致力于对已完成的多功能时钟是否完成了应有的功能以及其的稳定性进行验证,测试系统的稳定性、温度准确性和时间准确性进行详细的分析,并有意识的测试系统的盲区。5.1时钟精准度实验5.1.1实验目的测试本次设计时钟系统的精确度和误差值,判断时钟误差值是否处于合理区间之中,是否满足设计需求。5.1.2实验内容以及方法在经过不同的时间段分别来测试时间的准确性,在经过1天、2天、5天、7天以及9天的情况下分别测试机器时间和显示时间的误差。利用测量的数据用于判断本次设计时钟系统的误差值以及准确性。5.1.3测量的结果分析测量结果分析如下表5-1所示,可见表中数据,表中的时间对比由拍照记录得出,表中时间误差均在五秒之内,属于可接受的范围,达到了系统设计的精度要求。表5SEQ表\*ARABIC\s11时钟实验所测得数据天数时间第1天第2天第5天第7天第9天测量时间10:18:2615:11:2317:11:2510:21:2510:21:25实际时间10:18:2815:11:2517:11:2710:21:2710:21:28误差(s)22223图5SEQ图\*ARABIC\s11对时示意图5.2温度精准度实验5.2.1实验目的测试设计的温度检测系统的精确度如何,测量温度与实际温度的误差大小。5.2.2实验方法中国大部分地区平时室温为-10℃到30℃之间,针对这一温度区间进行相应的度数测量,再采用水银温度计进行测量,对比测量温度与实际温度的误差值,从而了解该设计的温度系统的准确性,判断是否满足设计需求。5.2.3实验结果与分析实验数据如表5-2所示,测量温度数据和实际温度数据由DS18B20和水银温度计获得,从表中可知测量温度与实际温度差别不大,误差区间均在1℃以内,成功满足了设计的标准和需要,在中国大部分环境的室温下可以准确测量温度。表5SEQ表\*ARABIC\s12温度精准实验所测得数据拟测量温度(℃)实测0510152025测量温度(℃)2.359.215.62125.2实际温度(℃)25.69.51621.325.7误差(℃)5.3本章小结本章撰写了对多功能数字时钟这一设计进行的实验,其目的是为了测试设计是否达成要求。盖章内容包括了实验目的、方法以及结果。根据实验结果可以得出此次设计满足一般的日常生活使用的情况。

结论嵌入式技术是一项具有广泛应用的前景的技术,广泛运用在自动化、控制工程以及工业应用等领域。本文利用STM32F103ZET6单片机作为主控制器来设计一个多功能数字时钟达到了出其不意的效果。在论文中完成的主要工作包括以后几个方面:1.充分考虑了多功能数字时钟系统结构的基础上,利用ALTIUMDESIGN软件绘制硬件原理图,对其硬件部分进行详细的剖析,各功能模块主要包括:电源模块、控制器模块、温度传感器模块、时钟系统模块。2.在软件设计方面,详细的介绍了设计中涉及的软件方法,结合硬件实际进行了系统的软件模块设计,确保各个模块各司其职、互不干扰。采用了单片机内部的RTC时钟源进行了时钟系统软件层面的设计。3.使用ARM7开发工具KEILMD5进行相关系统设计和相关编程错误的排查,使用了模块化的编程,便于后续维护和代码升级。4.进行了对多功能数字时钟关于时间和温度准确性的测试,详细测试了误差值,均在合理的范围之内。参考文献何立民.嵌入式系统的定义与发展历史[J].单片机与嵌入式系统应用,2004(01):6-8.HungChungWen,ZengShiXuan,LeeChingHung,LiWeiTing.End-to-EndDeepLearningbyMCUImplementation:AnIntelligentGripperforShapeIdentification[J].Sensors,2021,21(3).Yu-JuLin,Chih-FanTan,Chin-YinHuang.IntegrationofLogicControllerwithIoTtoFormaManufacturingEdgeComputingEnvironment:APremise[J].ProcediaManufacturing,2019,39.Physics;FindingsfromRenesasElectronicCorporationinPhysicsReported(RevisitedStudyofFluorineImplantationImpactOnNegativeBiasTemperatureInstabilityforInput/outputDeviceofAutomotiveMicroControllerUnit)[J].JournalofTransportation,2019.Cui,Xiangyu,etal."State‐of‐chargeestimationofpowerlithium‐ionbatteriesbasedonanembeddedmicrocontrolunitusingasquarerootcubatureKalmanfilteratvariousambienttemperatures."InternationalJournalofEnergyResearch43.8(2019):3561-3577.张雄伟、陈亮,曹铁勇.DSP芯片的原理与开发应用.北京:电子工业出版社,2009.孙书鹰,陈志佳,寇超.新一代嵌入式微处理器STM32F103开发与应用[J].微计算机应用,2010,31(12):59-63.吴进,罗忠,冉全.基于ARM的温度测量系统设计与实现[J].湖北第二师范学院学报,2011,000(008):88-90.杨久河.基于DS18B20的多点式无线温度测量仪的设计与

温馨提示

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

评论

0/150

提交评论