基于stm32单片机的数字秒表设计

(整期优先)网络出版时间:2019-02-12
/ 2

基于stm32单片机的数字秒表设计

庞豪杰赖鑫卢

(浙江师范大学工学院浙江金华321004)

摘要:本设计用stm32单片机搭以其它硬件组成数字电子秒表,采用主程序设计,通过数码管显示计时结果。对硬件电路和软件进行设计,并进行仿真测试,结果表明,计时准确,结构简单,稳定性强。

关键词:STM32;单片机;数字秒表

一、研究原理

在刚通电后打开电源开关,使系统初始化,此时计时器显示为00.00.00,按下开关开始计时时,stm32单片机接收到外部中发来的中断请求后,转到开启TIM2定时器。计时是靠TIM2定时器的中断来完成的,TIM2定时器时钟为72Mhz,定时器预分频为72分频,即时钟的72个周期,每1微妙定时器自加1,溢出值设定为999,即从0-999的共1000次,每1毫秒发生一次定时器中断,每当一处定时溢出是就向TIM发出中断请求,实现数据的累加,达到10次就实现进位加一,以此类推,直到实现最大计时23小时59分59.99秒后复位。在定时器工作过程中,外部按下暂停键,信息会传送到TIM2的捕获输入引脚,CPU就收到捕获中断请求执行定时器捕获中断的程序,显示数据,并将数据存到寄存区内。在暂停后,对PA0进行扫描,如果按下就回到主程序,准备开始新的计时。在暂停健被按下时,此时显示时间被存到缓存内,再按下暂停键,再次继续计时时,上次显示的计时时间从缓存区转到最终存储区。在秒表停止计时后扫描查看键PA2,PA2口是高电平,就查看最近的一次计时缓存,是低电平就调用最终缓存区的计时数据查看前面的计时数据。从而实现多次计时和查看前面计时数据的功能。

二、硬件设计设计

成品由硬件电路和软件程序协调合一组成。硬件电路由显示电路、电源电路、控制电路、主控电路等组成。主控电路以STM32为主,显示电路则用1602来作为显示工具。本秒表利用STM32单片机的定时的定时原理,来达到精确计时的目标。开始和暂停的功能靠的是单片机的中断系统。在单片机的几个接口中,PB口为输出口,输出计时数据,列扫描的输出则是安排在PB0-PB4口,三个按钮开关接口为PA0、PA1、PA2,功能依次为开始、暂停、存储和查看前面的计时数据。电路原理图在正确无误的情况下,尽力做到布局合理,美观大方。

2.1按键电路的选择与设计

设计的秒表有4个按键,其中三个是主系统电路控制按键,一个是电源开关。三个主控按键分别是开始、暂停、查看和复位功能键。电源键用来将数据重置,查询键则是用来查询前面的计时数据,三个按键都是低电平有效。当三个主控键每按下电源与单片机的I/O口直接相接,为了限流接了一个10kΩ的电阻作为上拉电阻,使次电流保证在安全范围内。有两个按键是采用捕获输入法,用到TIM2定时器的捕获输入功能。

2.2复位电路的选择与设计

对于复位电路,设计中采用的是高电平复位,就是当复位引脚接到两虚两个高电平时,完成复位操作。但不能持续高电平,因为这样的话,就会不停地执行复位操作,不能进行其他命令。所以单片机要有足够的余量以应付单片机的其他要求,并达到复位后不循环,可继续执行其他操作的要求。复位操作有两种:上电复位、手动复位。上电复位是再接上电源后打开电源开关,系统自动初始化程。它在STM32中是一种上电延时复位,在通电时就启动复位电路完成复位操作,其中延时大概三个机器周期,后面正式开始运行。手动复位则是在运行过程中出现意外死机的情况为单片机复位而设置的。这个时候要两次向复位端发出至少两个连续高电平,单片机接收后可完成复位,重新进入工作程序。2.3系统总电路的设计系统总电路由上述的按键电路,复位电路,还有另外的显示电路组成。将单片机系统电路图和它们合理连接在一起,就是整个秒表的电路图了。

三、软件设计

3.1主程序设计

全程序由主程序,定时中断服务程序组成。主程序是整个程序的主体。运行过程中从主体开始,逐一开始运行,协调运用各个子程序,完成秒表的功能。系统得电复位后进入主程序。第一步是初始化,整个系统都完全从零开始。第二步是完成初始化,进入液晶显示程序。显示程序调用最近的缓存数据。在液晶显示器上动态显示。每调用一次就扫描一次PA1和PA2看复位键有没有请求,有的话就回到主程序再次准备计时。没有就看PA2有没有请求,没有就一直调用,显示当前计时时间。有的话就跳转到调用最近的缓存程序,显示前次的计时时间。在同时,看PA2是否有请求发出,PA2断开后就回到最新的动态计时时间的程序,显示当前计时时间。

3.2中断程序设计

程序设计中有三个中断信号:定时器溢出中断,捕获中断2,捕获中断3。三个中断都在定时器1中断服务程序中,用if语句判别是哪一个中断。当多个中断同时产生时,cpu按顺序处理三个中断,三个中断不会被相互打断,任意一个中断程序执行时,其余中断信号需要本次中断程序执行完成后才会执行。

四、数字电子秒表的安装与调试

按照设计好的实物原理图,买好所需原件后,仔细焊制实物电路板,焊制之前把排版做好,这样焊接后才能让实物更美观,简单明了。实物测试中,打开软件,调用已画好的原理图,选择图中的单片机并选择已经写好的程序文件载入,成功后进行仿真,观测结果,在针对不足加以修改,最终达到设计要求。

五、结束语

在这次的秒表设计中,数字秒表以stm32单片机为主系统,辅以1602液晶显示器、控制按键、电阻、三极管等元器件组成。设计简单,明了,控制清晰明确,性能稳定,程序精简明晰,并且计时精度达到了1ms。虽然这个秒表以单片机位中心控制器,但还有许多其他的知识也需运用其中,根据具体的原件还要独立设计程序,并且与软件相结合达到整个系统的软硬件协调。运用C语言来编写程序,使整个系统程序层次分明简单易懂。

作者简介:

第一作者:庞豪杰(1998—),男,汉族,浙江嘉兴人,学生,本科,浙江师范大学工学院,机电技术教育专业。

第二作者:赖鑫卢(1998—),女,汉族,浙江象山人,学生,本科,浙江师范大学工学院,应用电子技术教育专业。