于丽丽 郭静静
摘要:日常生活中各单位、高校等都有设置风格迥异的大大小小的静态的地图指示牌,因为没有动态的指引或语音提示,人们往往要花很长的时间来查找目标地点的路线。针对上述问题,以高校校园地图为例,通过设置目标地点LED灯和道路指引LED灯,利用单片机控制目标地的按键来实现快速定位,同时进行语音播放,达到快速查找的目的。
关键词:单片机;动态地图;语音地图;指示牌
中图分类号:TN709 文献标识码:A 文章编号:1009-3044(2019)03-0197-02
道路指示牌在日常生活中随处可见,企事业单位、各类高校校园等都设置了各式各样的大大小小的静态地图或道路指示牌,为外来人员快速预览全局或者指引行走路线。但是人们在预览时不能很快地找到自己的当前所在地以及自己想去的地点。本设计针对上述缺点,通过设置目标地点LED灯、道路指引LED灯、目标地按键,利用单片机控制来实现快速定位当前所在地和目标地的路线,同时跟随语音播放模块,让人们能够快速地在地图指引上找到自己想走的路线。
1 系统总体结构
如图1所示,系统总体结构由单片机控制模块、按键扫描模块、目标地点LED驱动模块、道路LED驱动模块、语音播放模块组成。
单片机控制模块作为整个系统的控制中心,分别连接其他各个模块,控制其他模块工作,实现系统所需功能。按键扫描模块用于检测用户输入的目标地点,并输出给单片机控制模块。目标地点LED驱动模块用于从单片机控制模块接收目标地点各个LED的数据,并驱动目标地点各个LED工作。道路LED驱动模块用于从单片机控制模块接收道路上各个LED的数据,并驱动道路上各个LED工作。语音播放模块从单片机控制模块接收语音播放内容并合成语音播放。
系统工作时,单片机扫描模块接收到用户通过按键扫描模块输入的目标地点后,生成目标地点LED驱动数据、道路LED驱动数据及到达目标地点的语音播放内容,并把数据输出给各个模块,驱动目标地点LED和道路LED,控制语音播放模块播放语音。
2 系统各个模块说明
2.1 单片机控制模块
单片机控制模块选用STC89C58单片机[1],指令代码完全兼容传统8051单片机。系统连接中,由P1口和P3.2口连接按键扫描模块。P3.0和P3.1引脚构成的UART接口连接语音播放模块。P2口连接目标LED驱动模块和道路LED驱动模块。
2.2 按鍵扫描模块
本系统以榆林职业技术学院校园地图为例,根据系统设计需求,实现20个目标地点的功能,因此按键扫描模块设计成4x5的按键扫描模块,每个按键对应一个目标地点,每个按键对应的目标地点基本与实际目标地点的位置对应。采用行选择列数据输出的方式进行按键扫描。行选择分别接P1.0到P1.3接口,列数据输出接P1.4到P1.7及P3.2接口。
2.3 目标地点LED驱动模块
由于LED数量较多,而单片机IO口的数量有限,因此本系统采用74HC595串并转换芯片[2]对IO口进行扩展,满足驱动多个LED的需求。74HC595每片可驱动8个LED灯,可通过级联多片的方式驱动更多LED,每个IO口具有35mA的驱动电流,可直接驱动LED。
74HC595内部主要由移位寄存器和锁存器组成(如图2所示)。SRCLK为移位寄存器时钟触发引脚,SER为数据输入。SRCLK时钟信号为上升沿触发,时钟信号触发时,输入数据由SER引脚移入Bit0,同时所有数据向高位移动一位,最高位Bit7则移到输出引脚OUT。RCLK接到锁存器的锁存时钟,由上升沿触发,当锁存时钟触发时,各个位的移位寄存器输出数据分别锁存到锁存器的输出,驱动各个LED灯,锁存器时钟不变时,锁存器输出数据不随锁存器的输入数据变化。
当有多片74HC595级联时,各片74HC595的移位寄存器时钟SRCLK和锁存器时钟RCLK并联在一起,第1片74HC595的数据输入引脚SER接到单片机数据输出引脚,后一片74HC595的数据输入引脚SER接到前一片的移位寄存器输出引脚OUT进行级联。由于系统设计20个目标地点,因此需级联3片74HC595芯片,最多可提供24路输出,满足20个目标地点的设计需求。
控制LED时,单片机先把LED驱动数据的每一位输出74HC595的数据输入引脚,同时控制移位寄存器时钟移位数据,高位LED数据先输出。当所有LED数据输入到移位寄存器,控制锁存器时钟RCLK锁存数据。
设计LED的驱动电流为15mA,74HC595驱动芯片引脚输出为5V电压,LED自身压降为2V,因此选择限流电阻为200欧,限流电阻和LED串联接到74HC595的输出引脚。
2.4 路上LED驱动模块
路上LED驱动模块电路和目标地点LED驱动模块类似。路上所有LED先按照一定的顺序排列,逐个LED分别接到74HC595芯片的一个输出引脚上,从第1片74HC595芯片的第1个输出开始连接。由于路上LED数量比较多,因此需要比较多的75HC595芯片级联。
路上LED程序设置分2步进行。
第1步,根据目标地点标号,首先查找通向目标地点LED的所有路段编号;其次清空所有路段的缓存数据;最后根据目标地址的路段编号,设置对应路段的缓存数据为1,不在该路段上的数据仍然为0。
第2步,首先清空设置LED数据缓存;其次,根据第1步计算的路段LED数据缓存,对于路径上设置为1的数每隔2位取1位写入到设置为1,其他数据保存为0写入到设置LED数据缓存的相应位置中;然后把LED数据缓存下发到74HC595芯片,高位先发;最后控制74HC595芯片锁存输出,驱动目标地点LED点亮。为了实现流水灯效果,每间隔300ms,根据第1步设置的路段缓存数据,在第2步中设置下一个流水灯的数据。
2.5 语音播放模块
语音播放模块采用科大讯飞的语音合成芯片XFS5152CE[3],XFS5152CE是一款高集成度的语音合成芯片,可实现中文、英文语音合成;并集成了语音编码、解码功能,可支持用户进行录音和播放。如图3所示。语音合成芯片XFS5152CE通过UART接口和单片机通信,单片机按照通信协议把语音播放内容封装成数据包,通过UART接口发送给语音合成芯片,语音合成芯片收到正确的数据包后先应答单片机收到正确的数据包,然后开始语音合成,语音信号通过功放放大后输出给喇叭播放。语音播放完毕,语音合成芯片应答单片机语音播放完毕。
正常通信过程中,单片机发送语音合成数据帧给语音合成芯片后,语音合成芯片校验数据帧无误后应答0x41给单片机,表示收到正确的数据帧。当语音合成播放完毕,语音合成芯片应答0x4F给单片机,表示语音播放完毕,进入空闲状态。
3 单片机处理流程
主处理流程如图4所示。
4 结论
本文设计通过单片机作为控制核心模块,采取设置目标地点按键,利用串并转换芯片74HC595,通过级联的方式实现了目标地点和目标路线上的LED的控制显示,同时加装了语音解读模块,实现了快速预览查找目标位置地点及路线的功能。各高校、企业等可根据需要自行定制本单位的动态语音地图,为外来人员提供便利。
参考文献:
[1] STC89C552系列单片机指南. http://www.stcisp.com/stcmcu-pdf.html
[2] SN74HC595_datasheet. http://www.alldatasheet.com/view.jsp?Searchword=74HC595
[3] XFS5152CE语音合成芯片用户开发指南V1.2. https://wenku.baidu.com/view/8ef6c438df80d4d8d15abe23482fb4daa58 d1db1.html
【通联编辑:张薇】