基于单片机的公交车语音报站录放系统
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的公交车语音报站录放系统
摘要
目前,每辆公交车上只配备一个司机,公交车上大部分都采用投币的购票方式。
如何方便、准确地指示乘客到站成为了当务之急。
虽然随着单片机的出现,早有设计出的语音自动报站器投入使用,但实践证明,只有语音的报站器并不能满足所有乘客的需要,比如在噪音比较大的场合或者聋哑人乘车时,就有可能因听不见语音报站而导致坐过站,为乘客带来不便。
因此,我研制这个具有汉字显示功能和语音输出功能的报站器单片机系统,来解决这个问题。
系统采用单片机作为主要控制部件,根据公交车报站的特点,提出了一种用单片机控制语音芯片进行公交车语音自动报站的方法。
利用STC90C516RD+作为CPU进行总体控制,通过ISD4002语音芯片建立语音信息库,形成变化多样的语音信息,利用Speak喇叭播出站号语音信息以及提示语音信息,同时运用LCD液晶显示器进行相应站点显示。
经调试,系统在公交车进站、出站时能自动播报语音提示信息及服务用语,同时利用LCD进行汉字显示。
【关键词】ISD4002语音芯片;STC90C516RD+单片机;LCD12864液晶
Automatic newspaper station system voice bus based on
Single chip microcomputer
Abstract
At present, every bus only equipped with a driver, the bus most of them adopted the ticket method. How convenient, accurate indication of passenger arrival has become a pressing matter of the moment. Although with MCU, had a station put into use automatic speech designed, but the practice proof, only the voice station reporting device can not meet all the needs of passengers, such as in the noise is relatively large occasions or deaf car, it is possible for inaudible voice station reporting to sit station, inconvenience for passengers. Therefore, I developed the Chinese characters display microcontroller system function and voice output function to stop, to solve the problem.
The system adopts the single-chip microcomputer as the main control unit, according to the characteristics of bus stations, this paper presents a novel method for voice bus stop automated voice chip with MCU control. As the CPU overall control using STC90C516RD+, establishing a voice database through the ISD4002 voice chip, the formation of a variety of speech information, use Speak speaker broadcasting station, voice messaging and voice information, while the use of LCD liquid crystal display for the corresponding display. After debugging, the system can automatically broadcast voice prompt information and services in the bus station, station, using LCD Chinese characters display.
【Key words】ISD4002 voice chip ;STC90C516RD single chip microcomputer ;LCD12864
目录
1 绪论 (1)
1.1课题研究的背景 (1)
1.2公交车报站器近年来的发展现状和趋势 (1)
1.3课题研究的目的和意义 (2)
1.4设计任务 (2)
2 方案设计 (3)
2.1原理 (3)
2.2方案设计 (3)
3 系统的硬件设计电路及原件说明 (5)
3.1MCU控制电路的设计 (5)
3.1.1关于STC90C516RD+单片机 (5)
3.2语音输出电路的设计 (5)
3.2.1关于语音芯片ISD4002 (5)
3.2.2 录音、放音电路的设计 (8)
3.3系统显示电路的设计 (10)
3.3.1关于LCD12864液晶显示 (10)
3.3.2 LCD12864液晶显示器的管脚图及管脚定义 (11)
3.3.3显示电路的原理图 (11)
3.4按键电路的设计 (12)
4 系统软件 (13)
4.1设计思想 (13)
4.2模块程序设计 (13)
4.2.1 软件主流程图 (13)
4.2.2ISD4002语音模块录放音 (16)
4.2.3LCD12864显示 (17)
5 系统调试及测试结果分析 (20)
5.1系统测试 (20)
5.2测试结果分析 (20)
5.2.1 测试环境 (20)
5.2.2测试结果 (20)
6 总结 (22)
参考文献 (23)
致谢 (24)
附录一系统的程序清单 (25)
附录二基于单片机的公交车语音自动报站系统原理图 (30)
附录三基于单片机的公交车语音自动报站系统PCB图 (31)
附录四基于单片机的公交车语音自动报站系统实物图 (32)
1 绪论
随着国家城市建设进程的加快,公交车作为城市的基础设施之一,在保护环境与实惠方面,首选的交通出行方式就是公交车。
大家为了能够快速有效的了解到城市的具体情况,基本上都会选择乘坐公交车这一便利有实惠的通行方式,特别是为外来旅游、出差、就医、求职等这样需要快速了解本城市的基本路线,以及希望能在该城市能灵活通行的人们,为他们提供更加便利的公交系统,提高整个城市公交系统的运作效率,公交的报站系统便随之产生。
这在非常大程度去除乘务员沿途报站的麻烦,减少了公交车的工作人员,减少了劳动力,不仅给许多不熟悉公交线路的乘客带来更大的方便,而且是整个城市生产生活方式的提升。
公交报站系统的全面推广在城市建设的过程中将不单单是形象的提升,效益也是有很大的增长。
1.1课题研究的背景
在现代社会中,对大多数城市居民旅游相关公共交通行业,但在传统的手工报站巴士仍然无法满足所有要求。
主要表现有:(1) 乘车人员的安全隐患:每次报站时都需要由驾驶员对报站器进行操作,此时的司机又要停车和启动车辆,还要操作报站系统,这样会在行驶时有安全问题。
(2) 在行车中报站不准确: 由于司机一整天都在工作,难免会有按错键或忘记按键的时候,这样会让不熟悉路线站点的乘客有下错车的现象。
公交报站语音录放系统的设计主要是为了填补传统人工报站,而且车上必须有乘务人员和司机两个人才能工作的这样一种落后的工作方法,在进站、出站的时候由司机操作报站系统来播报站名以及服务用语,并且可以显示站名等,使得那种听力不好活聋哑的特殊人士也可以顺利的搭乘公交车。
1.2 公交车报站器近年来的发展现状与发展趋势
目前,语音报站器主要有以下几种:(1)一般语音报站器,是由乘务员按动进站和出站按钮报站,以提示下车信息和预报下站站名;(2)门控语音报站器,将开门、关门时转换信号与语音报站器连接,司机在按开、关门时就可以实现自动报站了;(3)无线信标语音报站器,建设复杂,费用高,用户修改站点非常不方便系统维护成本较高;(4)GPS自动语音报站器,次报站器是在公交车上安装GPS自动语音报站器,可以自动识别站点并报告站点信息,由于报站精准,又不需要人工操作,被广泛应用[1]。
综合各方面的情况,我在本次公交车语音录放报站系统的设计中,我采用了第一种的语音报站方法,并对其不恰当的地方进行了调整,使其更加实用,更加便利。
1.3 课题研究的目的与意义
目前公交车报站系统的设计只有语音报站,但是当公交车内的乘客多的时候,声音很嘈杂,语音报站可能不能完全的满足乘客的需求。
而到站台等车这样的时候,就更加忽视了乘客,在恶劣的天气和能见度低,乘客往往不能明确区分车辆到达线,有很多车的问题,,基本现象如下:有的乘客走到机动车的行车道上伸头观望,这样很不安全;而更多的则是一大群一拥而上,公交车的乘车人数还是很多的,这样很容易造成盲目拥挤,秩序混乱的场面。
而且还经常出现乘客坐不到车,耽误坐车时间,这样会在工作生活带来很大的不利,严重的还会出现一些不安全事故。
其次,传统的人工报站方式效果太差。
即由乘务员进行人工报站,这个时候乘务员不仅需要负责售票工作,还要精准的为乘客报站,在每个不同的地方,口音都会有不同,这是一个地方的传统特色,而报站时大多就是用的地方口音,使得外来人员有时候很难听懂报站,从而引起不必要的乘车麻烦。
传统的人工语音报站在当今的时代已经被大多数的城市淘汰了,取而代之的是公交车语音与文字显示于一体报站系统,这样可以弥补了传统人工语音报站的落后的工作方式,为广大市民以及外来城市人员提供了更人性化,更完善的交通服务。
比如说可以通过公交车语音报站,照顾盲人乘客;可以用液晶显示器显示站名,照顾聋哑人等,让每个人在生活中都感受到科技创新给大家在生活中带来的便利,科技的进步是我们人类文明的进步。
1.4 设计任务
本设计结合单片机的特点和公交车报站系统的特点,提出了一种基于单片机STC90C516RD+来控制语音芯片ISD4002进行公交车语音报站,并通过LCD12864液晶来显示当前报站信息。
这次设计过程先是进行硬件电路设计,然后进行软件程序编写。
本系统硬件利用STC90C516RD+作为CPU进行总体控制,通过ISD4002语音芯片建立语音信息库,是的多样语音信息形成,利用Speak 喇叭播出站号语音信息以及提示语音信息,同时运用LCD液晶显示器进行相应站点显示。
公交车语音报站系统的设计使用灵活,性能稳定,而且声音清晰,自然,社会和科学研究存在的价值。
2 方案设计
2.1 原理
公交车报站录放系统的设计主要是有司机按键来进行语音报站。
本系统使用单片机STC90C516RD+作为控制器件。
当系统的语音播放,语音单片机控制语音合成电路读取外部麦克风接收的语音信息,以及合成的语音信号,再通过音频放大电路语音报站。
同时,单片机STC90C516RD+通过程序读取文字信息,送入液晶显示器LCD12864来进行站名的显示。
当系统在语音录制站台信息时,语音信号是通过语音录音电路送给语音合成电路中的语音芯片,在语音芯片ISD4002中进行数据处理,并将生成的数字语音信息存储到该语音芯片的存储芯片当中,建立出语音库。
2.2 方案设计
公交车站报站录放系统的设计,用单片机STC90C516RD+为主控芯片,对外来脉冲计数,结合语音芯片ISD4002语音输出。
系统由脉冲检测、脉冲计数、CPU控制、控制信号、语音芯片、输出显示等组成。
原理框图如图2-1所示。
图2-1 原理框图
(1)脉冲检测:本次系统设计考虑车辆是在复杂的环境中运行,因此是采用DN6848来作为信号的采集装置,然后经过光电耦合器作用输入单片机STC90C516RD+。
(2)脉冲计数:光电耦合器的信号进入单片机C51后,采用中断方式对脉冲计数。
(3)CPU控制:程序中将计数值于预置值进行比较,判断是否到站,当到站时就输出信号控制语言芯片进行报站。
(4)控制按键:在手动控制、手动调整、预置值的输入中操作。
(5)语言芯片:由专用语音芯片ISD4002组成,可擦写,便于在不同公交
线上使用。
外接话筒和音箱组成语音录制和播放电路。
(6)输出显示:文字显示模组采用LCD12864液晶屏作为显示单元,液晶显示器LCD(Liquid Crystal Display)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。
(7)预置存储:采用两种方式存储,一种是在烧写器上将数据写入,另一种是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内。
3 系统的硬件设计电路及元件说明
本章根据系统设计结构图来对每个部分的电路进行分析和说明,重点讲述微控制器STC90C516RD+、语音芯片ISD4002和液晶显示模块LCD12864。
该系统中STC90C516RD+是核心器件,系统的设计原理图如附录二所示。
3.1 MCU控制电路的设计
3.1.1 关于STC90C516RD+单片机
STC90C516RD+系列单片机是一种新一代的高速、低功耗的单片机,它的东西完全兼容了8051系列单片机。
有12时钟/机器周期和6时钟/机器周期两种机器周期可供选择,内部集成MAX810专用复位电路,时钟频率在12MHz以下时,复位脚可直接接地。
STC90C516RD+有:40个引脚,61kBytes Flash 片内程序存储器,128Bytes 的随机存取数据存储器(RAM),32个外部双向输入/输出(I/O)口,5 个中断优先级2 层中断嵌套中断,2 个16 位可编程定时计数器2 个全双工串行通信口,看门狗(WDT)电路,片内时钟振荡器;STC90C516RD+单片机为40 引脚双列直插芯片有四个I/O 口,单片机共有 4 个8 位的I/O ,分别为P1口、P2口、P3口、和P4口这四个接口,并且每一条I/O 线都可以独立地作输出或输入7[2]。
1)STC90C516RD+管脚图如下图3-1所示
图3-1 管脚图
3.2 语音输出电路的设计
3.2.1 关于语音芯片ISD4002
ISD4002芯片的声音录放器件是用CMOS工艺实现的高语音质量、3V工作电压的集成电路芯片。
它们一系列的芯片必须用于微处理器或微控制器系列,通
过串行外围接口SPI或Microwire串行接口进行寻址和控制。
录音的语音数据被存放方法是通过ISD的多级存储专利技术实现的,用声音自然的形式直接存放在故态存储器中,使得使用中能够得到高质量回放语音的保真度。
本设计使用的芯片ISD4002,它的单片录放时间为120 s[3]。
1)ISD4002的主要性能及其特点:
(1)单片实现声音录放功能
(2)采用单一3V工作电压
(3)低功耗:典型的录音工作电流为25mA;典型的放音工作电流为15mA ;典型待机节能状态电流为1uA
(4)单片录放时间为8min、10min、12min和16min
(5)自动静音电路可以在无声状态时消除背景噪音
(6)高质量自然的声音/音频回放
(7)不需要考虑实现算法
(8)当中有微控制器或Microwire串行接口
(9)可以对多段信息寻址控制
(10)可以通过SPI或Microwire控制寄存器控制功耗
(11)语音数据断电都不会丢失,可以保存100年
(12)可以反复录音10万次
(13)片上都带有时钟源
(14)有PDIP、CSP、TSOP与SOIC多种封装形式
2)串行接口SPI
SPI是一种同步串行传输规范,经常作为单片机的外设芯片串行扩展接口。
SPI的4个引脚分别是:从器件选择线(SS)、串行数据输出线(SDO)、串行数据输入线(SDI)和同步串行时钟线(SCK)。
SPI用全双工通信方式同时发送和接收8位数据,工作过程如下图3—2所示,这里的主控制器为型号STC90C516RD+的单片机,语音芯片ISD4002为主工作器件,通过SPI口完成通信控制的过程。
图3-2 SPI的模块框图
ISD4002工作于SPI串行接口。
SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位寄存器在SCLK的下降沿动作。
对ISD4002而言,在时钟上升沿锁存MOSI引脚数据.存下降沿将数据送至MISO引脚。
图3-3 SPI时序
以下是控制寄存器的说明:
(1)N控制寄存器:用于控制操作。
当其为1时,启动操作;当其为0时,停止操作。
(2)/R控制寄存器:用于选择放音和录音操作。
当其为1时选择放音操作;当其为0时,选择录音操作。
(3)MC控制寄存器:用语控制报文插入功能。
当其为1时,允许报文插入;当其为0时,关闭报文插入功能。
(4)PU控制寄存器:用于主电源控制。
当其为1时,控制上电;当其为0时,掉电进入节能状态。
(5)IAB控制寄存器:忽略地址控制位。
当其为1时,忽略输入地址寄存器的内容A9-A0/A15-A0。
(6)P9-P0/P15-P0:行指针寄存器的输出。
(7)A9-A0/A15-A0:输入地址寄存器。
(8)P9-P0/P15-P0:行指针寄存器的输出。
(9)A9-A0/A15-A0:输入地址寄存器。
3.2.2 录音、放音电路的设计
ISD4002是采样频率为6.4kHz的声音录放器,它的单片录放有8分钟、10分钟、12分钟和16分钟这四种录放时间,内置的非挥发性快闪记忆体,快闪记忆体功率不丢失数据,因此数据时不需要消耗的功率,也就不会耗电了。
被存储信息可以保存时间相当之长,可以高达100年,一个存储单元可以反复录音不下10万次。
1)功放电路的设计
ISD4002芯片的音频输出引脚AUD OUT可以驱动一个5K的负载,当器件上电后,该引脚输出的电源为1.2V。
本系统中选用的放大器TDA2822,其中的主要部件是TDA282集成芯片,TDA2822电路的特点如下:
(1)电源电压降到1.8V时仍能正常工作
(2)交越失真和静态电流小
(3)可作桥式或者立体声式功放应用
(4)外围元件少
(5)通道分离度高
(6)开机关机无冲击噪声
音频信号经L-IN、R-IN输入,输入的音频信号经过电位器,电位器是可变电阻的一种,电位器由滑动部分和固定部分组成,改变滑动部分位置就可改变了电压大小,就可以调节音箱音量的大小了。
由于LC串联回路有滤除外来的干扰信号的作用,本设计就采用这个回路以滤除其干扰,然后由电容阻止交流信号的
通过,集成块TDA2822的作用还是最主要的,TDA2822是音频功率放大器。
功放电路连线图如图3-4所示。
图3-4功放电路
2)录音电路的设计
如下图3-5所示,MIC是一个录音口子,即语音信号的输入端口,输出的模拟语音信号经过下图设计的放大器进行放大,然后加到ISD4002语音芯片的ANA IN-反向模拟输入端。
图3-5 录音电路
图3-6为ISD4002与外围设备的连接总图。
图3-6 ISD4002与外围设备的连接总图
3.3 系统显示电路的设计
3.3.1关于LCD12864液晶显示器
本系统所用的是液晶显示器,它简称为LCD。
其特点是功耗低、体积小、使用寿命长。
而本次设计采用LCD12864液晶显示,它每一横向一共有128个可显示点,每一列纵向有64个,显示的所有的点都是发光二极管。
一个汉字是一个非中文字符所占剧的显示面积的两倍。
LCD12864的一些内部存储器:
CGROM(Character Generator ROM):在字形产生时,只是读取数据的存储器。
CGRAM(Character Generator RAM):在字形产生时,可以随机读取的存储器。
DDRAM(Data DisplayRAM):数据显示随机存储器,是将被显示的字符数据存放的存储器。
ICON RAM:图标随机存储器,是将被显示的图标数据存储的地方。
GDRAM(GraphicDynamic RAM):动态图形随机存储器,是供显示的图形存储的存储器。
3.3.2 LCD12864液晶显示器的管脚图及管脚定义
图3-7 LCD12648芯片图
VL引脚:是偏压信号脚。
RS引脚:寄存器选择功能。
当为低电平是选中命令寄存器,反之选中数据寄存器。
RW引脚:读写选择功能。
当低电平时对LCD进行写操作,反之进行读操作。
EN引脚:脉冲信号功能。
在负脉冲时将数据从总线写入LCD或将数据从LCD读出总线。
CS1和CS2引脚:分别对应LCD的两个半屏,高电平时对应半屏可用。
注:每一块12864都分为两个半屏,上下两半或者左右两半,制造工艺使然。
3.3.3显示电路的原理图
LCD12864显示电路原理图如下图3-8所示
图3-8显示电路原理图
3.4 按键电路的设计
本设计中我设计的按键电路,采用四个独立式按键,四个独立式按键k1、k2、k3、k4分别接单片机STC90C516RD+的P3.2口、P3.3口、P2.0口、P2.1口这四个接口。
按键是直接用I/O口线构成的单个按键电路,每个按键单独占用一根I/O口线,每个按键的工作又占用不会其他I/O口线的状态,该按键电路设计图如下图3-9所示
图3-9按键电路图
4 系统软件
4.1 设计思想
软件设计的主要功能是完成公交车语音报站,并且加入了文字显示功能,采用STC90C516RD+单片机作为主控芯片,对ISD4002语音芯片与显示液晶屏LCD12864进行控制,在实现语音报站的同时显示出报站信息,图4-1就是报站系统工作时的显示状态。
按键采用独立按键设计,简单易行且控制方便。
在本次设计中,主要设计了12站,通过四个按键进行控制。
k1键——起始键,k2键——停止键,k3键——录音键,k4键——播放键
图4-1 工作时的显示
4.2 模块程序设计
在本次设计中我针对永州13路公交车,从中取了“湘科院、朝阳公园、柳子庙、东风大桥、零陵楼、博物馆、汽车站、红太阳、商业城、橘园、南津渡、市一中”这12站进行了单边线路的设计。
4.2.1 软件主流程图
系统上电后,液晶显示模块LCD12864与语音模块ISD4002进行初始化,当检测到有按键按下时,跳转到相应的显示程序和语音播放程序并执行,从而实现公交车语音报站与文字显示功能。
软件主流程图如图4-2所示
图4-2 软件主程流图主程序:
void main()
{
......//初化lcd屏和DS4002芯片
while(1)
{
b[0]=b[1];
b[1]=k2;
if(b[0]&&(!b[1]))
{
modle=~modle;
}
b[2]=b[3];
b[3]=k3;
if(b[2]&&(!b[3]))
{
LED1=0;
if(modle)
speech_record();
else
{
record_temp++;
if(record_temp>11)
record_temp=0;
speech_record_10s(record_temp*50);
}
LED1=1;
}
b[4]=b[5];
b[5]=k4;
if(b[4]&&(!b[5]))
{
LED2=0;
if(modle)
speech_play();
else
{
if(flag==0)
{
play_temp++;
if(play_temp>10)
flag=1;
}
else if(flag==1)
{
play_temp--;
if(play_temp<1)
flag=0;
}
if(flag==0)
{
write_com(0X94);
for(i=0;s[play_temp][i];i++)
write_data(s[play_temp][i]);
write_com(0X8C);
for(i=0;s[play_temp+1][i];i++)
write_data(s[play_temp+1][i]);
}
else if(flag==1)
{
write_com(0X94);
for(i=0;s[play_temp][i];i++)
write_data(s[play_temp][i]);
write_com(0X8C);
for(i=0;s[play_temp-1][i];i++)
write_data(s[play_temp-1][i]);
}
speech_play_10s(play_temp*50);
}
LED2=1;
} } }
4.2.2 ISD4002语音模块录放音
在软件设计中,我设置了初始密钥k1,停止按钮k2,记录按键k3,播放按钮k4这四个按钮。
插上电源,按下记录按键k3,指示灯红灯熄灭,语音模块就开始录音。
录好一段语音,当指示灯红灯亮了,此时再按下k3键,开始第二段录音。
如此,便可实现多段录音,当对这次录音不满意时,可以按下k2键,重新录音。
其流程图和代码如下
图4-3语音程序流程图
void ISD4002_play(uint add)
{
SS = 0;
SPI_write((uchar)(add&0X00FF));
SPI_write(((uchar)(add>>8)&0X03)|0XE0);
SS = 1;
}
4.2.3 LCD12864文字显示
将做好的模块电路板接上电源,初始化液晶显示模块LCD12864。
根据写入单片机STC90C516RD+和显示器中的程序,按照数组的次序显示每个站的站名。
图4-4为本次设计的液晶显示LCD12864的程序流程图。
图4-4 LCD12864程序流程图void write_data(uchar date)
{
uchar i,temp = 0XFA;
CS = 1;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
temp = date&0xf0;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
temp = date<<4;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
CS = 0;
CLK = 0;
}
5 系统调试及测试结果分析
5.1 系统调试
1)在软件中设计好各个模块的电路,并正确的连接好电路,接好电路板;
2)编译和调试程序,然后将程序下载到STC90C516RD+单片机中;
3)按下录音键并进行录音,连续录完一段后,按下停止键或等到LED指示灯红灯亮。
然后按下录音键,开始录另外一段音,按停止键停止或等到红灯亮;如此反复12次,将需要的录音片段录好并存放到单元位置;
4)录完音后,按放音键放音,按一次键就播放一段录音;
5)将语音模块和文字显示模块与连接到STC90C516RD+单片机。
然后,让整个过程完美集合,进行最后的调试,公交车语音报站录放系统就正式完成了。
5.2 测试结果分析
5.2.1 测试环境
本次测试过程中,主要是用做好的电路板是外接电源,然后做好语音信号的录取,测试出整个设计的可行性。
本次主要是在KeilC软件上测试,KeilC主要用于程序的编写以及运行。
C 文件可以在KeilC软件中生成目标文件(.OBJ)。
目标文件再生成库文件,也可以与库文件一起经连接定位生成绝对目标文件(.ABS)。
生成的ABS文件再转换成标准的Hex文件,这样再通过STC将程序下载到STC90C516RD+单片机中,进行硬件方面也就是电路板的测试。
STC主要作用于烧录程序。
硬件测试的环境是win7系统。
5.2.2 测试结果
插上电源,先按起始键k1,接着按下k4键开始报站
6 总结
我毕业设计的题目是基于单片机公交车语音报站录放系统,经过几个月的操作,终于完成了设计,使系统实现了语音与文字显示为一体的报站功能。
本系统设计功能非常强,成本又低,语音音质好,系统稳定,很好的实现了车辆报站的语音与文字显示同步进行,使得公交车报站方便了各个层面的人们,特别是对有的特殊人群相当实用。
此次设计的公交车语音报站录放系统的初始值存入单片机内,此时单片机处于输入状态,语音芯片可以自由录放,这种方式在公交车改变路线时便于修改。
本次毕业设计选用的语音芯片为ISD4002,它是通过ISD多级存储专利技术来实现存放录音数据的,用声音和声频信号的自然形式直接存放在故态存储器,从而提供高质量回放语音的保真度,使得该系统与其他语音报站系统相比较,语音清晰度高,质量好。
另外,本次的设计仍旧有许多的不是很完美的地方,这些问题在今后的研究工作中再加以改进,使系统更完善,做到没有什么漏洞,为人们获得更大的方便。
在科技高速发展的今天,公交车在城市交通运输中占有举足轻重的地位,它给人们外出提供了方便快捷的服务,而报站器直接影响到公交车的服务质量,因此,我认为在不久之后,报站器将完全取代传统的人工报站,普遍使用于各大、中、小城市。
附录一系统的程序清单LCD12864的C显示程序:
#include<reg52.h>
#include"lcd12864c.h"
void delay_us(uchar x)
{
while(--x);
}
void write_com(uchar com)
{
uchar i,temp = 0XF8;
CS = 1;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
temp = com&0xf0;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
temp = com<<4;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
CS = 0;
CLK = 0;
}
void write_data(uchar date) {
uchar i,temp = 0XFA;
CS = 1;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
temp = date&0xf0;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
temp = date<<4;
for(i=8;i;i--)
{
CLK = 0;
if(temp&0x80)
SID = 1;
else
SID = 0;
CLK = 1;
temp <<= 1;
delay_us(50);
}
CS = 0;
CLK = 0;
}
void init_12864()
{
PSB = 0;
// 0X30 基本指令集
write_com(0X30);
// 0X0C 开显示,关游标,不反白0X0E开游标,0X0F 开游标,允许反白write_com(0X0C);
// 0X02 设定AC为00,游标归位
write_com(0X02);
// 0X01 清除显示,设定AC为00
write_com(0X01);
write_com(0X80);
}
ISD4002语音程序:
#include<reg52.h>
#include"isd4002.h"
#include"lcd12864c.h"
/*uchar s2[]="录音等待中......";
uchar s3[]="放音等待中......";
uchar s4[]="请继续录音";
uchar s5[]="请继续放音";*/
uint m,n;
uchar k;
void delay_ms(uint i)
{
for(m=0;m<i;m++)。