基于单片机的公交车自动报站系统设计与实现

2013-09-12 01:50
微处理机 2013年6期
关键词:中断录音公交车

聂 茹

(华南理工大学广州学院电子信息工程学院,广州 510800)

1 引言

随着我国城市建设的发展,公交车已成为人们的主要交通工具,公交车的服务质量代表了一个城市交通发展的水平。如今由售票员人工售票,报站的公交车已经基本没有了,无人售票公交车在街头逐渐多起来了,语音报站器也被广泛使用,这在相当大程度上免除了乘务人员沿途报站的麻烦,给许多不熟悉公交线路的乘客带来了方便。随着单片机技术的日益成熟,多媒体技术的普通应用,公交车语音报站器系统的服务得到进一步完善。

在结合单片机和公交车报站器特点的基础上,设计了一种基于单片机STC89C52来控制语音芯片ISD4004进行公交车语音报站,并通过LCD1602来显示当前实时情况的公交车自动报站系统。该公交车报站器系统结构简单,音质清晰,可以在各种公交车上提供及时报站服务,具有很强的实用性。

2 系统功能

公交车自动报站系统的主要功能如下:

(1)不同公交线路站名的输入和更换。

(2)实现完整手动播报一条公交线路的站名,包括上行线路与下行线路。

(3)进行语音播报,使报站器更人性化。

(4)可以在LED显示屏上显示时间、日期、报站信息、提示语和广告。

(5)利用汽车后门的打开与关闭实现对当前站名的播报和下一站的预报,当播报出错时还可以利用调试按钮对播报系统进行调试。

3 系统硬件设计

本系统硬件部分主要包括MCU微处理控制器单元、LCD液晶显示模块、语音芯片、功放、按键控制、红外电路模块、温度测试模块、实时时钟电路、晶振电路、电源模块等电路。

3.1 系统结构图

系统结构图如图1所示。

图1 系统结构图

3.2 系统主要硬件部分实现

系统以STC89C52单片机为CPU进行系统搭建,它是宏晶科技推出的新一代高速、低功耗、超强抗干扰的单片机,具有8K可编程Flash存储器,512字节RAM,32位I/O口线,指令代码完全兼容传统8051[1]。

系统利用液晶1602模块进行显示。LCD1602是一种用5×7点阵图形来显示字符的液晶显示器模块,它显示的容量为2行16个字。它的显示内容丰富、体积小、美观和易于控制都是本设计选择它作为显示模块的原因。常以I/O口方式进行读写访问,在该设计中,我们使用P0口直接驱动1602,由P2.0、P2.1、P2.2 这3 个引脚做控制端。

语音芯片采用 ISD4004。美国 ISD公司的ISD4004芯片是一种功能非常强大的语音芯片[2],它的录放时间为8至16分钟,而本公交车系统的录音时间长,采用ISD4004利于每个站台的录音和报站。另外在控制上,ISD4004可以直接通过地址方式查询录音信息并通过扬声器报放录音信息。最后也是最重要的,ISD4004具有录音结束标志,当录音结束后,单片机可以通过读取该标志产生中断信号,使CE、PD置高电平,从而控制ISD4004进入不工作节能状态。

红外无线控制电路,由发射和接收两大部分组成,应用编/解码专用集成电路芯片来进行控制操作。发射部分包括键盘矩阵、编码调制、LED红外发送器;接收部分包括光、电转换放大器、解调、解码电路。

实时时钟模块采用DS1302时钟芯片实现。DS1302是美国DALLAS公司推出的一种高性能、低功耗、带RAM的实时时钟电路[3],它可以对年、月、日、星期、时、分、秒计时,DS1302与单片机之间用同步串行的方式进行通信,用RST(复位)、I/O(数据线)、SCLK(串行时钟)这三个接口线进行连接。

温度传感模块采用单总线数字温度传感器DS18B20,单总线即只有一根数据线,系统中的数据交换,控制都由这根线完成。DALLAS公司的DS18B20是这样一种独特的温度传感器,它只需一个接口引脚即可通信,可用数据线供电,并具备多点测温能力[4]。DS18B20具有测温系统简单、测温精度高、连接方便、占用口线少等优点[5],本设计在P3.3悬挂该温度传感器。

按键控制模块使用简单的独立式按键来控制报站信息,同时设置系统在不同功能下单个按键的功能也随之不同。按键采用重复使用功能,这使系统看起来较简便,控制简单,设计新颖。

4 系统软件设计

系统的软件设计包括中断服务程序、录音/放音控制程序、红外遥控解码程序及主程序的设计。

4.1 中断服务程序

在CPU工作的同时,它也在查询INTO是否有中断信号(低电平有效)产生。当检查到有中断信号时,CPU发出让显示器和ISD4004工作的控制信号,把接收到的站牌信息显示并播报出来,播报结束后,系统返回到相应的主程序。图2为本设计使用的中断服务程序流程图。

图2 中断服务流程图

4.2 录音/放音控制程序

如果有按键按下,电路将执行该按键指向的工作程序。有放音键,停止键,加一,减一键以及特殊语键。在待机状态下,如果放音键首次被按下,程序将首先判断是去还是回(公交车路径一般是既去又回的),并点亮相应的指示灯。自动读出第一站的放音内容,站号显示1。如果不是首次按下,程序则首先判断当前站号,并以该站号为依据获得存放该站放音内容的首地址。调用放音子程序,读入前面获得的本站放音内容首地址,开始放音。每一句放音完毕后,ISD4004的中断引脚(25脚)会自动送一低电平信号。在硬件设计中,该引脚与单片机的P3.3连接。因此,会引起一次中断,在中断子程序中会有一个计数器记录中断次数,从而判断何时一站结束,站号加一并刷新显示。加一键按下后则使程序放音内容转向下一站,减一键则使程序放音内容转向上一站,相应的站号显示也将随之刷新。特殊语键按下后,程序转向执行特殊语放音(比如拐弯请注意等语句)。停止键被按下将中止当前的放音状态。

4.3 主程序流程图

系统的主程序设计是用来控制整个系统运行的时序工作状态,因此,完善的程序设计是本设计的重点内容。图4是本设计使用的主程序设计流程图。

图3 录音/放音程序流程图

图4 主程序流程图

5 结 束 语

以STC89C52单片机为核心设计公交车自动报站系统。系统经过实际调试,可以正常运行,音质清晰,在各种公交车上都可以提供及时报站服务,具有很强的实用性。

[1]刘维红,谭永超.基于STC89C52单片机的电子时钟研究[J].机电产品开发与创新,2012(9):57-58.

[2]靖大同,吴向前,司志泽.基于ISD4004芯片的电梯智能语音系统的设计[J].电子世界,2012(11):35-36.

[3]裘昌利,金美善,杨坤.串行时钟芯片DS1302在单片机系统中的应用[J].现代教育科学,2010(1):96-97.

[4]何慧娟,何芝仙,赵转哲.基于DS18B20的单片机温控系统[J].科技信息,2008(13):149-150.

[5]王琪,朱光衡.一种基于DS18B20的单点测温方法的研究[J].科技传播,2011(17):223-224.

猜你喜欢
中断录音公交车
你们认识吗
Funny Phonics
funny phonics
Listen and Choose
Listen and Color
拒绝公交车上的打扰
基于FPGA的中断控制器设计*
Linux中断线程化分析及中断延时测试
跟踪导练(二)(5)
公交车上