基于STM32的无线抢答器

2019-10-14 05:18张冉
西部论丛 2019年31期

张冉

摘 要:随着各种竞赛和娱乐活动的出现,抢答器的应用逐渐广泛。为了保证竞赛的公平性和选手抢答的准确性,需要一款工作性能稳定,准确性高的抢答器。本文利用STM32F103RCT6单片机设计了一种八路无线抢答器。以单片机主控,外设部分由输入模块,蓝牙模块,语音播报模块以及LCD屏显示模块构成。本设计分成了数据输入,蓝牙通信和显示三个部分。手机虚拟键盘按键是本设计的输入部分,主持人和选手通过手机虚拟键盘向单片机输入数据,数据通过蓝牙传入到单片机,经其内部处理,在LCD屏以及LED上显示,并通过语音播报。本设计通过Keil软件进行编程,利用实物调试,以软硬件相结合的方式完成设计。经实践证明,此八路无线抢答器不仅设计简单,成本较低且工作稳定,适应性强,具有一定的实用价值。

关键词:STM32; 抢答器; 蓝牙模块

1系统硬件设计

本系统是由STM32,手机虚拟键盘,蓝牙,LCD屏及语音五个模块组成的,通过STM32主控实现了计时,抢答,锁存,显示,语音播报等功能。系统结构图如图1-1示:

2系统软件设计

本课题软件部分的所有程序都是通过C语言在Keil软件上编程的。为了使程序内容的逻辑清晰更容易被理解,我们对其进行了模块化设计。从抢答器的整个系统流程来看,可将其分为串口模块,手机蓝牙通信模块,LCD屏显示模块,倒计时模块以及抢答判断模块。

2.1串口模块

本课题中一共用到了USart1和USart2两个通信串口。USart1是用来连接蓝牙模块的,USart2则连接了语音模块。通过对USart1和USart2中引脚的配置,完成相应的数据传输功能。

2.2手机蓝牙通信

课题中,手机与STM32之间的通信是通过ATK-HC05蓝牙模块实现的。蓝牙自身并不能完成通信功能,只能延伸串口通信功能。在使用蓝牙时,上电后将KEY设置为VCC进入AT指令模式,发送AT+ROLE=0指令将其设置为从机用手机搜索连接蓝牙。[10-12]再发送AT+UART<115200><0><0>将其设置其参数,与串口1匹配。

2.3LCD屏显示

TFT-LCD屏是本课中主要的显示模块,系统的状态,计时,和抢答结果都是由它来显示的。在使用TFT_LCD时,首先要对LCD进行初始化。LCD常用初始化函数有:

绘制字符函数:void Draw_table(u16 width,u16 height,u16 xadd,u16 yadd,const u8 *table,u16 color);

清除固定区域显示函数:void clearArea(u16 width,u16 height,u16 xadd,u16 yadd,u16 color);

2.4抢答数据处理

在选手抢答时,需要锁定抢答成功的选手号。因此在串口数据处理函数void UsartDeal(void)中定义了一个锁定标志位(lock=0时解锁,lock=1时锁定),当进入抢答环节时(sysState==2)进行锁定,只允许一位选手抢答成功。流程图如下:

3实验结果

下图为连接完成的实物图,通过实物检测,验证了本次设计的无线搶答器实现了基本的抢答功能,完成了实验的初衷。

参考文献

[1] 何勉.基于AT89S52单片机控制的八路抢答器的设计与仿真[J].电子技术与软件工程,2019,(04):232-233.