【基于单片机的数字计时器设计与实现4800字(论文)】_第1页
【基于单片机的数字计时器设计与实现4800字(论文)】_第2页
【基于单片机的数字计时器设计与实现4800字(论文)】_第3页
【基于单片机的数字计时器设计与实现4800字(论文)】_第4页
【基于单片机的数字计时器设计与实现4800字(论文)】_第5页
已阅读5页,还剩7页未读 继续免费阅读

下载本文档

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

文档简介

基于单片机的数字计时器设计与实现摘要:数字计时器是一种高精度的时间计量元件,以抗干扰性强、功能多、外型小巧、价格便宜等特点受到人们青睐。数字计时器作为科学实验中不可或缺的工具,很有研究价值。本文采用C语言作为开发语言,利用STM32单片机作为开发工具对数字计时器进行设计研究。本计时器的计时区间为00.0-99.0秒,能通过LCD显示屏同时显示正计时、倒计时的计时数据,并具有启动、暂停、设置计时时间的功能。关键词:计时器,stm32,倒计时,正计时目录TOC\o"1-3"\h\u18646摘要 128252Abstract 116876目录 27121.绪论 4137581.1背景与意义 49381.1.1课题研究的背景 4202661.1.2课题研究的现实意义 4204311.2研究内容与章节安排 4234592.系统整体设计概述 4105732.1数字计时器的功能设计 4239522.2数字计时器的总体设计 5222553.系统的硬件设计 578193.1单片机核心电路设计 525583.1.1核心芯片的选择 525583.1.2STM32最小系统 512983.2按键电路设计 724903.2.1按键模块整体介绍 7237043.2.2按键电路基本原理 7218723.3显示模块设计 768453.4报警电路设计 8114144.系统的软件设计 952114.1编程语言选择 971494.2keil程序开发环境 9230334.3程序设计 9296464.3.1主程序流程图 10290934.3.2主程序 10119655.实物展示 11119656.总结与展望 1128526.1课题总结 12103775.2课题展望 122618参考文献 121.绪论1.1背景与意义1.1.1课题研究的背景近现代时期,科学的发展日新月异,人们的生产方式也发生了巨大的改变,机械代替手工成为了生产的主力军,时间的精确测量成为了科技社会必然的选择。第三次工业革命以后,电子信息和计算机技术带来了科技的巨大发展,有着“微型计算机”之称的单片机,以其高性价比、成本低廉、功能性强等优点进入人们的视野,被人们广泛应用于家居电器、医疗设备、过程控制、仪器仪表中。计时器模块是单片机最常见的模块之一,数字计时器是一种通过LED或LCD显示数字时间的计时元件,与钟表这些计时工具相比具有更好直观性和更高的精确性,且体积小巧便于携带,同时拥有更长久的使用年限。利用单片机对数字计时器进行设计研究也成了人们竞相追逐的方向。1.1.2课题研究的现实意义随着科学技术的日新月异,未来世界,计时的精确度对工业、军事、通讯、航天等领域至关重要[1]。尤其是航天领域,时间对其有着巨大的影响,2021年,中国的航天航空事业取得了不少震惊世界的成就,“天问一号”、“长征四号”“嫦娥五号”“玉兔二号”,每一项科研都硕果累累。在火箭起飞前,细微的时间误差都会带来不可预估的失败损失,因此,在这种差之毫厘谬以千里的关键场合,传统的机械转表是不能使用的,精度高的数字计时器便成了关键之选。前期,主要采用纯模拟电路、数字电路设计制作数字计时器,但是这样的设计不仅电路复杂而且功能单一。21世纪以来,随着单片机在工业自动化控制、计算机网络通信中的运用,它的优势愈加凸显,利用单片机研制数字计时器,使计时器不仅仅具有计时功能,还拥有显示、定时和自动报时功能,并且这些功能还在日益完善[2]。因此,基于单片机研究数字计时器并扩展数字计时器的功能,具有非常重大的现实意义。1.2研究内容与章节安排本课题研究的主要内容是利用单片机对数字计时器进行设计制作,本文总计六个章节,全文整体的布局如下:第一章是绪论部分,本章深度讨论了基于单片机研究数字计时器的研究背景与意义。第二章是系统的整体设计概述,简述了数字计时器的功能部分以及系统的整体设计。第三章是系统的硬件设计,对系统各个部分的电路设计分别进行阐述。第四章是系统的软件设计,对软件开发工具Keil以及FlyMcu进行介绍以及对主程序进行注释分析。第五章是实物展示,通过和手机中计时器做对比实验,展示该数字计时器的功能。第六章是总结与展望,首先进行实物展示,然后总结设计中得到的收获,对课题下一步的研究提出个人的建议。2.系统整体设计概述2.1数字计时器的功能设计计时器是一种利用特定的原理来测量时间的装置,数字计时器便是其中的一种。本文设计的数字计时器的功能如下:(1)设置的计时区间为0.0-99.0秒,LCD显示屏同时显示当前设置时间、正计时时间、倒计时时间。(2)通过按键可以进行对设置时间值的加、减,每按一下计时值增加或减少1.0秒,按下启动按键,倒计时从设置值开始倒计时,正计时从0.0秒开始计时。(3)如果在计时器工作过程中,按下了加/减键对计时值重新设定,倒计时和正计时将立刻停止并复位。(4)如果在计时器工作过程中,闭合限位开关,计时立即终止,松开限位开关,计时继续进行。(5)在倒计时的最后5秒钟之内,蜂鸣器会发出报警,提醒倒计时即将终止。2.2数字计时器的总体设计本设计由输入、核心控制、显示、报警、检测五个模块构成。设计的结构图见图1:核心控制模块报警模块核心控制模块报警模块显示模块检测模块显示模块检测模块输入模块输入模块图1系统总体结构图整个系统采用STM32单片机作为核心控制器,由单片机采集时钟信号,通过显示模块来输出信号。其中单片机的PA4-PA6口接输入模块,实现按键操作;单片机的PB5-PB15口接显示模块,用来显示要输出的计时值;单片机的PC13、PC14口分别接报警模块和检测模块,实现倒计时结束提醒和电源开关检测。3.系统的硬件设计本设计的硬件电路主要采用基本模块来实现的,以下分别对各个模块进行介绍。3.1单片机核心电路设计3.1.1核心芯片的选择本设计采用STM32F103C8T6作为核心芯片。选择此款芯片是因为此芯片封装体积小,价格和其他STM32系列芯片相比较低,而相比于8位单片机性能更优,初学者在学习了STM32单片机配套课程,上手不会感到吃力,此芯片还具有良好的学习研究意义。3.1.2STM32最小系统STM32单片机最小系统主要包括晶振、电源、复位、调试四大电路部分以及控制芯片,其基本原理如下,原理图见图2.(1)控制芯片——负责运行任务程序及执行相应的控制动作。芯片的引脚图参见图3.(2)晶振电路——为单片机运行提供系统时钟源。晶振是石英晶体构成的,石英晶体之所以能当振荡器,是基于它的压电效应。电阻、晶振、电容构成了STM32的外部时钟电路,它能作用于STM32的内部振荡器使其产生自激振荡,从而为单片机提供正弦信号[3]。晶振电路对STM32单片机的作用就好比如心脏对人的作用一样,单片机执行代码的工作节奏随着时钟的每一次跳动而起伏,时钟振荡频率加快,系统的工作速度也随之加快;时钟振荡频率减缓,系统的工作速度就随之减缓。(3)电源电路——为单片机的运行提供稳定可靠的电源输出。电源电路又包括供电电路和降压电路,供电电路用USB接口连接供电源从而获取高电压,而降压电路将供电源的高电压降为控制芯片稳定工作的低电压。(4)复位电路:STM32能够通过电源、系统、后备域三种方式进行复位。按键复位是系统复位其中的一种。电容和按键开关并联,再串联一个上拉电阻,这样就构成了简单的按键复位电路。其中采用电源是为了实现按键防抖,如果不采用电容,在按键刚刚接触/松开的一刻,电平会发生抖动而引发误动作。(5)调试电路:这个可通过采用SWD或者JTAG的方式来实现。本设计采用了SWD模式,因为它在高速运行条件下比JTAG更具有可靠性。图2STM32最小系统原理图图3STM32F103C8T6引脚图3.2按键电路设计3.2.1按键模块整体介绍输入模块由三个按键和一个限位开关构成,按键通过程序控制来完成数字计时器的启停和计时调整。3键控制设置值的加,2键控制设置值的减,1键控制计时的启动,限位开关控制计时的终止与继续。3.2.2按键电路基本原理轻触开关别名按键开关,是日本人发明的,当时又称敏感型开关。使用时以向下的力按压致使开关闭合,电路接通,当撤销掉向下的压力时开关断开,电路也会随之断开。轻触开关由于体积小巧玲珑、、按下时会发出清脆的响声、种类齐全等多方面的原因,在市场上受到不少生产商和开发者的喜爱。在本设计中,系统的输入是由按键控制的,在按键没按下电路没有闭合之前,单片机引脚的电位为高电平,在按键按下电路闭合之后,单片机引脚的电位则转换为低电平,按键操作控制着高低电平的转换从而实现了手动输入。按键电路的原理图见图4,电路中使用上拉电阻的作用是防抖,保证信号平稳输出。图4按键电路设计图3.3显示模块设计LCD显示器又称液晶显示屏,液晶是一种能透光的特殊材料。液晶显示的分类有很多种,按照其显示方式可分为字符式、点阵式、字段式[4]。本设计中使用的显示方式为字符式,显示模块采用LCD1602作为系统的信号输出面板,只要送信号到对应的管脚就能显示。和LED显示器比较,LCD显示器拥有频闪低、老化慢、清晰度高、可调光等优点,故而成为了单片机设计中的常客。显示模块电路中LCD1602第1引脚和第15引脚外接电源,第2引脚和第15引脚接地,第3引脚接一个蓝白电位器,用来调节显示屏的清晰度,其他引脚分别连接单片机对应的引脚实现数据显示。显示模块电路设计图见图5.图5显示模块电路设计图3.4报警电路设计在单片机应用的设计上,很多方案都会用到蜂鸣器,大部分都是使用蜂鸣器来做提示工作结束和出现故障报警[5]。报警电路中蜂鸣器正极外接5V电源供电,负极连接三极管集电极,三极管的发射极接地,基极串联一个电阻接到单片机的PC13口,电阻起到限流保护,只要单片机控制引脚的电位为高电平,蜂鸣器就会发出报警预告,反之则不报警。具体电路图见图6.图6报警电路设计图4.系统的软件设计4.1编程语言选择软件不仅是设计中的主要组成部分,也是调试过程中的重难点。本设计采用C编程语言。因为C语言编写更为简洁方便,与汇编语言相比还有如下优点:(1)C语言是高级语言中的一种,移植性好,容易维护和修改[6]。(2)C语言有丰富的运算符、数据类型和表达式,程序的适应性和执行性好。(3)C语言更符合人的思维逻辑习惯,容易读懂,更便于开发。(4)C语言可进行模块化编程设计,将编程好的程序加到新的程序中可以减少编程时间。(5)相比于C语言来说,汇编语言的可读性较差。4.2keil程序开发环境本设计中单片机选用Keil作为开发环境,Keil是一款单片机C语言开发软件,可以完成从工程建立、管理、程序编译到连接、调试的一套开发流程。Keil通过一个集成开发环境uVsion将丰富的宏汇编、链接器、库管理组合在一起,提供给用户一个功能强大的仿真调试工具[6]。4.3程序设计4.3.1主程序流程图图7主程序流程图4.3.2主程序主程序是先开始执行的,然后启动初始化程序,初始化后在进行按键扫描,扫描检测完就可以启动计时显示。按键扫描先是检测按键是否按下,加按键如果按下,计时值加一秒,如果没有按下,就检测减按键是否按下,如果按下,计时值减一秒,然后再检测启动键是否按下,按下就启动计时。时间显示是同时显示设置值和当前的正计时数据和倒计时数据。按键扫描模块程序见图8.图8按键模块程序5.实物展示本部分将对数字计时器的实物和功能进行展示,实物图如图9所示。为了验证该数字计时器的功能,本文将采用对照实验,将数字计时器同手机秒表同时启动计时,对比两者之间的误差。先将数字计时器的计时设置值调为最大计时值99秒,参见图10,然后同时启动手机秒表和数字计时器,在计时途中按下快门,记录的图片见图11。由图可见,数字计时器的正计时时间为15.5s,倒计时时间为44.5s,手机秒表中的计时时间为15.24s,两者相差0.26s,由于同时按下的启动键的时机不是很好掌握,存在细微的误差是可以接受的。从上述对照实验中基本可以验证该数字计时器的准确性。 图9数字计时器实物图图10未启动计时前图11对照实验进行中6.总结与展望经过了几个月的研究与调试,我终于完成了数字计时器各个模块的设计工作,本章将对课题研究进行总结与展望。6.1课题总结经过了几个月自学STM32硬件设计、软件编写课程,我最终实现了对数字计时器的设计,达到了预计的期望和效果。通过本次课题的研究,我得到了很多收获,一是复习巩固了以前学习的单片机原理及应用、C语言基础教程,加深了对这两门课程理解应用;二是将知识实用化,成功完成软件仿真和硬件制作。6.2课题展望根据课题要求,本次研究仅仅完成了数字计时器基本的设计要求,由于数字计时器还更多的功能未开发,下一步的研究可以不仅限于计时和定时功能,希望研究者们可以利用STM32强大的拓展功能,进一步加强数字计时器的精度和提供更长的计时区间。参考文献[1]饶子兵.高精度事件计时器研究与

温馨提示

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

评论

0/150

提交评论