《公交车报站器毕业设计.doc》由会员分享,可在线阅读,更多相关《公交车报站器毕业设计.doc(36页珍藏版)》请在三一办公上搜索。
1、摘 要随着城市交通的快速发展,公交汽车为外出的人们提供了方便快捷的服务。而公交汽车的报站共识直接影响其服务的质量。传统报站方式是由乘务人员进行人工报站,该方式因其效果太差和工作程度太大,在很多大城市已经被淘汰。近年来,微机技术与各种语音芯片相结合,即可完成语音的合成技术,使得公交车报站器的实现成为可能,从而为市民提供了更加人性化得服务。公交应用系统带给公交企的将不仅是形象的提升,也是效益的增长。本文介绍了一种公交车报站器的系统设计原理,提出了以61单片机为核心,通过4*4键盘获取外部指示以控制SPR4096语音芯片电路以及LCD显示的硬件设计和软件设计方案。该系统语音音质好,功能强,成本很低,
2、是提供公交服务的一种较好的手段。本文首先介绍了SPCE061A的基本原理和开发方法,讨论了控制模块、显示系统和存储系统的总体设计思想和实现方案,并且详细阐述了硬件系统和软件系统的设计。硬件系统包括电源电路、控制电路、信息存储电路、显示电路、语音资源存储电路等;硬件驱动程序由开发系统提供的汇编语言库函数来实现。经过调试和仿真运行,使系统最终达到了课题设计的要求。关键词:单片机,语音处理,LCD显示,SPR4096AbstractWith the rapid development of urban traffic, transit buses out for people with a quic
3、k and convenient services. But the consensus transit buses stops directly affects its quality of service. Traditional way is by the crew stops artificial stops for its effect, this way poor and working level too big, in many big cities have been eliminated. In recent years, with various pronunciatio
4、n chip microcomputer technology, can complete combined speech synthesis technology, makes the realization of bus stops device becomes possible, and thus for citizens to provide a more humanized service. Bus application system will not only bring bus enterprises, but also is of image promotion of gro
5、wth. Benefit This paper introduces a kind of bus stops the system design principle, is put forward to 61 single chip, through 4 * 4 keyboard access external SPR4096 pronunciation chip instruction to control circuit and LCD display hardware design and software design. This system voice timbre, the fu
6、nction is strong, very low cost, is to provide the bus service is a good method. This paper firstly introduces the basic principle and development SPCE061A methods are discussed in control module, display systems and storage system design thinking and realize the overall solution, and illustrates th
7、e hardware and software system design. Hardware systems include power supply circuit, control circuit and information storage circuit, display circuit, speech resources storage circuit, etc.; Hardware driver by the development of the system provided assembler language library function to realize. Af
8、ter testing and simulation operation, the system finally achieved the topic design requirements. Key Words:MCU; Speech Processing; LCD display;SPR4096目 录摘 要IABSTRACTII1 引言12 SPCE061A单片机简介23 系统方案63.1 系统设计要求63.2 方案论证63.3 系统硬件方案73.4 系统工作原理84 系统硬件设计94.1板电路设计94.2板模块电路分析94.2.1电源电路模块分析94.2.2音频输出电路模块分析104.3
9、 MSGL12864液晶显示屏概述124.4 键盘电路设计124.5 SPR4096存储模块135 系统软件设计145.1 SPCE061A的指令系统和集成开发环境IDE145.1.1 指令系统155.1.2 指令格式与寻址方式165.2系统程序和模块流程设计17结 论26致 谢27参考文献28附录291 引言1.1课题背景及研究意义 在当今社会,即使在私家车越来越多的今天,公交车仍然是人们出行的首选,因为公交车具有方便、快捷、车票便宜等优点。本设计即是设计出一款基于凌阳SPCE061A单片机的公交车报站器,着重研究了SPCE061A单片机的语音播放和时间设置模块的程序编写。在公交车报站器的设
10、计方案中,通过PC机将所要播报的站名和服务语录制成WAVE文件并压缩,然后添加到所建立的工程中的语音资源索引表中,同时将这些站名和服务语烧录到外扩的SPR4096模组中,再通过获取不同的键值来播报站名和服务语,在LED显示模组上时间和日期,通过设置键来更改时间和日期。通过本系统软件的控制,实现了公交车报站器的语音播报和时间、日期的显示和设置功能。通过PC机等设备录制需要播放的语音资源,将录制好的语音资源烧写到SPR4096 FLASH存储器中,然后根据键盘执行对应的报站等功能,并且在液晶屏上显示对应信息。采用键控结构。1.2国内外概况随着城市交通的快速发展,公交汽车为外出的人们提供了方便快捷的
11、服务。而公交汽车的报站共识直接影响其服务的质量。传统报站方式是由乘务人员进行人工报站,该方式因其效果太差和工作程度太大,在很多大城市已经被淘汰。近年来,微机技术与各种语音芯片相结合,即可完成语音的合成技术,使得公交车报站器的实现成为可能,从而为市民提供了更加人性化得服务。公交应用系统带给公交企的将不仅是形象的提升,也是效益的增长。单片机的问世和飞速发展掀起了计算机工程应用领域的一场新革命,使计算机技术冲破了实验室和机房的界限,广泛地应用于工业控制系统、数据采集系统、自动测试系统、网络通信系统、智能仪表和接口以及各类功能模块等广阔领域。单片机应用系统已经成为实现许多控制系统的常规性工具。随着计算
12、机科学和微电子集成技术的飞速发展,单片机自身也在不断地向高层次和更大规模发展。由于单片机应用系统的高可靠性,软、硬件的高利用系数,优异的性价比,使它的应用范围有传统的过程控制,逐步进入数值处理、数字信号处理以及图象处理等高技术领域。1.3本课题所要达到的预期目的在单片机应用系统中,常常需要将检测到的连续变化的模拟量,如温度、压力、流量、转速、声音、光亮等转换成数字信号才能用单片机中进行处理。这种将模拟量转换成数字量的过程即是A/D转换。许多新型的单片机已经在片内集成了许多A/D和D/A转换器及PWM输出,这样就大大简化了外围电路和编程工作。在这方面,SPCE061A做得很好。ADC的结构及工作
13、原理:nSP单片机的内部集成了一个10位的A/D转换器,它采用逐次逼近式原理实现模/数转换。nSP中的ADC由以下几部分组成:10位数/模转换器DAC0、10位数据缓存器DAR0、逐次逼近寄存器SAR、比较器COMP以及ADC控制寄存器。其输入信号有两个通道:一个由LINE_IN通道输入;另一个由MIC_IN通道输入。MIC_IN一般用于麦克风通道输入,对较弱的信号一般经音频放大器AGC(Automation Gain Control)自动增益控制放大后再进行A/D转换。 2 SPCE061A单片机简介SPCE061A是一款性价比很高的十六位单片机,它采用高性能的nSP内核,具有丰富的硬件资源
14、,并集成了ICE(在线仿真接口),可以直接利用该接口对芯片进行下载(烧写)、仿真、调试等操作。SPCE061A在存储器资源方面内嵌了32K的FLASH ROM,且SPCE061A的外围功能模块丰富。SPCE061A能在2.6V-3.6V工作电压范围内工作,时钟频率为0.32MHz-49.152MHz,较高的工作速度使其能快速处理复杂的数字信号,因而大大地拓宽了其应用领域。SPCE061A内嵌2KB SRAM和32KB的FLASH ROM,有32位可编程的多功能I/O端口;两个16位定时器/计数器;32768Hz实时时钟;低电压复位/监测功能;8通道10位模-数转换输入功能并具有内置自动增益控制
15、功能的麦克风输入方式;双通道10位DAC方式的音频输出功能。其特性参数表如下:表2.1 SPCE061A特性参数表工作电压(CPU)VDD 3.03.6V,(I/O)VDDH为VDD5.5VCPU工作频率0.3246.152MHz数据存储器2K Word SRAM程序存储器32K Word FLASH-RomI/O端口2组16位可编程输入/输出端口中断14个中断源,FIQ和IRQ两个中断优先级定时器/计数器两组16位可编程定时器/计数器端口模/数转换器7共通道10位电压ADC和单通道10位声音ADC数/模转换器2过10位DAC输出通道UART一个全双工通用异步串行接口SIO一个同步串行设备接口
16、节电功能具备弱振方式和睡眠方式WatchDog功能具备清除时间周期为0.75s的看门狗其他功能低电压复位、低电压监测、保密功能等SPCE061A的内部模块主要分为:CPU、存储模块、定时器/计数器、ADC、I/O接口、电源电路模块、音频电路。SPCE061A单片机的内部结构如图2.1所示。图2.1 SPCE061A的内部结构图SPCE061A单片机具有一套易学易用且效率较高的指令系统和一个使用方便的集成开发环境。此开发环境支持C语言,可以实现C语言与汇编语言的互相调用,并且提供了用于语音录放的库函数。只要了解了库函数的使用方法,就能很容易地完成语音录放,所有这些都大大方便了软件开发。在单片机应
17、用系统中,常常需要将检测到的连续变化的模拟量,如温度、压力、流量、转速、声音、光亮等转换成数字信号才能用单片机中进行处理。这种将模拟量转换成数字量的过程即是A/D转换。许多新型的单片机已经在片内集成了许多A/D和D/A转换器及PWM输出,这样就大大简化了外围电路和编程工作。在这方面,SPCE061A做得很好。ADC的结构及工作原理:unSP单片机的内部集成了一个10位的A/D转换器,它采用逐次逼近式原理实现模/数转换。unSP中的ADC由以下几部分组成:10位数/模转换器DAC0、10位数据缓存器DAR0、逐次逼近寄存器SAR、比较器COMP以及ADC控制寄存器。其输入信号有两个通道:一个由L
18、INE_IN通道输入;另一个由MIC_IN通道输入。MIC_IN一般用于麦克风通道输入,对较弱的信号一般经音频放大器AGC(Automation Gain Control)自动增益控制放大后再进行A/D转换。具体控制参数如表2.2所示。表2.2 A/D转换中的量化和编码B15B14B13 B3B2B1B0控制功能描述Read_muxFALL-Channel_sel1-10位模/数转换未完成-0-10位模/数转换完成-000模拟信号电压通过MICINO输入-001模拟信号电压通过MICIN1输入-010模拟信号电压通过MICIN2输入-011模拟信号电压通过MICIN3输入-100模拟信号电压通
19、过MICIN4输入-101模拟信号电压通过MICIN5输入-110模拟信号电压通过MICIN6输入-111模拟信号电压通过MICIN7输入SPCE061A内嵌了最新的16位微处理器nSP。它内含有8个寄存器:4个通用寄存器R1R4,1个程序计数器PC,1个堆栈指针SP,1个基址指针BP和1个段寄存器SR。通用寄存器R3和R4结合形成一个32位寄存器MR,MR可被用作乘法运算和内积运算的目标寄存器。此外,SPCE061A有3个FIQ中断和14个IRQ中断,并且带有一个由指令BREAK控制的软中断。 nSP不仅可以进行加、减等基本算术运算和逻辑运算,还可以完成用于数字信号处理的乘法运算和内积运算。
20、CPU及其外围的基本模块构成SPCE061A的最小系统。外围基本模块包括:晶振输入模块(OSC)、锁相环外围电路(PLL)、复位电路(RESET)、指示灯(LED)等。 SPCE061A芯片内部集成了ICE(在线仿真接口),PC机通过Probe(在线调试器)或EZ_Probe(简易下载线)与61板相连,就可以方便地完成程序的下载、调试等。61板为Probe和EZ_Probe各自提供了一组接口,可通过S5跳线来选择使用的接口类型。ICE电路框图如图2.3。图2.3 ICE电路框图3 系统方案3.1 系统设计要求要求设计一个操作友好且成本很低的公交车报站器,具体要求如下: 可以存放较多的服务用语和
21、广告词(10 条以上) ; 要求操作简单,每站只需按一次键即可播报全部报站内容(前方将要到达的站名,上下车提示服务用语) ; 要求具有跳站、上行、下行切换控制功能; 要求语音播报具有 16 档音量调节功能; 要求站牌信息及服务信息等都能通过液晶屏显示出来; 时间、日历播报、显示和调整功能。3.2 方案论证 方案一:根据设计要求,选用 MCS51 单片机作为主控芯片,外部扩展适当大小的RAM组成最小系统。为存储语音资源,在51单片机外围配备一块 K9F1208 FLASH 芯片,作为存储器,另外再外扩一片专用语音处理芯片。考虑到 MCS51 的 I/O口资源较少,在外部使用专用接口芯片 8279
22、管理键盘、显示器件。框图如图 3.1:图3.1 方案一系统框图方案二:根据设计要求,选用 SPCE061A单片机作为主控芯片,由于这颗芯片是 SOC ,使用较少的外围器件就能实现最小系统。SPCE061A 芯片集成 A/D、D/A 功能,配合语音函数库可以实现语音功能。外围扩展键盘、显示器件,扩展 SPR4096 FLASH芯片存储语音资源。框图如图3.2:图3.2 方案二系统框图方案二与方案一相比具有较大优势。SPCE061A单片机是 SOC 的,只需使用较少的外围器件即可组成最小系统,大大降低了系统的复杂性,提高了稳定性。SPCE061A外扩SPR4096 FLASH作为语音资源存储芯片,
23、由于两者都具有 SIO接口,使得程序设计大大简化。SPR4096 是 4Mbit 的 NOR FLASH,可以存储设计要求的语音资源,而三星的 K9F1208是大容量的 NAND FLASH,在存储空间上严重浪费,而且 NAND FLASH 在操作起来比较复杂,增加了开发难度。 3.3 系统硬件方案方案一和方案二进行比较后,最后选择方案二作为系统硬件方案,该方案主要包括 SPCE061A 精简开发板、SPR4096 FLASH 存储芯片、44 键盘、12864液晶显示屏。SPCE061A是整个设计的核心控制器件,负责控制液晶屏输出,键盘信息的采集输入和语音资源的播报。液晶屏和 44 键盘主要用
24、作人机交互, 显示报站器的信息,同时利用 16 个按键实现不同的操作。根据设计要求,规划系统硬件结构如图3.3:图3.3 系统硬件结构图其中,SID、SCLK分别为12864液晶显示器的串行数据输入端和时钟输入端,IOB01与SPR4096的SCK和SDA相连接,IOB815与4*4键盘相连接。各键盘的功能作用分配如下:KEY1: “起步” ,用于起步语音提示控制; KEY2: “到站” ,用于到站语音提示控制; KEY3: “上” ,用于跳站和对设置的内容进行递增; KEY4: “下” ,用于跳站和对设置的内容进行递减; KEY5: “行向” ,用于播报行向; KEY6: “音量” ,用于音
25、量控制; KEY7: “时间日历” 用于播报时间日历和对时间、日历的设置进行控制; KEY8: “设置” ,用于行向、时间和日历的设置状态的控制;KEY9: “切换行向” ,用于行向控制; KEY10-15:用于宣传语和广告词的播放控制;3.4 系统工作原理 通过PC机等设备录制需要播放的语音资源,将录制好的语音资源烧写到SPR4096 FLASH存储器中,然后根据键盘执行对应的报站等功能,并且在液晶屏上显示对应信息。采用键控结构。4 系统硬件设计4.1 61板电路设计61 板电路设计主要是完成 SPCE061A 单片机的最小系统设计, 电源设计和 SPCE061A 的 D/A外扩功率器件设计
26、,如图 4.1:图 4.1 61板整体电路图4.2 61板模块电路分析4.2.1电源电路模块分析:整个系统由三节电池供电,电池盒提供的5V直流电压经过SPY0029后稳压到3.3V后再给系统供电(因为SPCE061A单片机的工作电压位3.3V)。SPY0029是凌阳公司设计的电压调整IC,采用CMOS工艺,具有静态电流低、驱动能力强、线性调整出色等特点。图中的VDDH3为61单片机I/O口的参考电压,如果跳线口J5接1、2,则I/O口的高电平为电池盒供电电平;如果跳线口J5接2、3,则I/O口高电平为3.3V。VDDP为PLL锁相环电源,接SPCE061A的7脚;VDD和VDDA分别为数字电源
27、与模拟电源,分别接SPCE061A的15脚和36脚;AVSS1是模拟地,接SPCE061A的24脚;VSS是数字地,接SPCE061A的38脚; AVSS2接音频输出电路的AVSS2。图4.2 61板电源电路图4.2.2音频输出电路模块分析:SPCE061A内置2路10位精度的DAC,只需要外接功放电路即可完成语音的播放。如图2.5,图中的SPY0030是一款音频驱动放大芯片,可以工作在2.46V范围内(两节电池即可工作)由于它的便携性而有着广泛的实际应用。SPCE061A的音频输出采用双通道数模转换DAC方式,即数字信号通过10位DAC转换成3mA驱动的电流模拟信号输出。语音提示输出直接采用
28、DAC通道,经信号放大后,由SPEAKER(扬声器)输出。图4.3 音频输出电路原理图4.3 MSGL12864液晶显示屏概述MSGL12864是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个1616点汉字,和128个168点ASCII字符集。利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字,也可完成图形显示。低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都
29、要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。MSGL12864是使用HD61202及其兼容控制驱动器作为列驱动器,同时使用HD61203作为行驱动器的液晶模块。由于HD61203不与CPU发生联系,只要提供电源就能产生行驱动信号和各种同步信号。在MSGL12864中,两片HD61202及其兼容控制驱动器的ADC均接高电平,RST也接高电平,这样在使用MSGL12864时就不必再考虑这两个引脚的作用。/CSA跟HD61202(1)的CS1相连;/CSB跟HD61202(2)的CS1相连,因此/CSA、/CSB选通组合信号为/CSA,/CSB =01 选通(1),/CSA,/CSB=
30、10选通(2)。对于MSGL12864,只要供给GND、Vcc和V0即可,HD61202和HD61203所需的电源将由模块内部电路在Vcc和V0、GND的作用下产生。4.3.2外接管脚及说明这里所用到的管脚一共是11个,下面简单介绍下各个管脚的功能: VSS:电源地 VDD:+5.0V的电源电压 V0:液晶显示器驱动电压 D/I:当D/I=“H”,表示DB7DB0为显示数据当D/I=“L”,表示DB7DB0为显示指令数据 R/W:当R/W=“H”,E=“H”,数据被读到DB7DB0当R/W=“L”,E=“HL”,数据被写到IR或DR E:当R/W=“L”,E信号下降沿,锁存DB7DB0当R/W
31、=“H”,E=“H”,DDRAM数据读到DB7DB0 DB7DB0:数据线 CSA:当为H时,选择芯片(右半屏)信号 CSB:当为H时,选择芯片(左半屏)信号 /RST:复位信号,低电平复位4.3.3液晶模块与SPCE061A的连接图4.4 键盘电路设计44 键盘可直接与 SPCE061A的 I/O端口连接。其电路原理图如下:图 4.6键盘输入电路 表4.4 键盘各按键功能表按键公交车报站状态时间设置状态S0逐次播放上行各站提示语,每按一次按顺序播放一个无效S1逐次播放下行各站提示语,每按一次按顺序播放一个 无效S2播放警告用语“车辆拐弯,请注意安全”无效S3播放提示语“车上有老弱病残孕乘客,
32、请让座”无效S4播放娱乐音乐或广告无效S5进入设置时间状态设置切换S6显示在时间/日期/年之间切换增加S7打开或关闭数码管减小 4.5 SPR4096存储模块SPR4096是一个高性能的4M-bit(512K8-bit)FLASH,分为256个扇区(Sector),每个扇区为2KB。SPR4096还内置了一个4K8bit的SRAM。SPR4096内置了一个总线存储器接口和一个串行接口,它允许单片机通过8bit并行模式或者1bit串行模式访问FLASH/SRAM存储区。本设计使用串行模式,串行接口的工作频率可达5MHz.有两个电源输入端VDDI和VDDQ.VDDI是给内部FLASH和控制逻辑供电
33、的;VDDQ是专门为I/O供电的。最大读电流为2mA。SPR4096按串行接口模式工作,要把CF2CF0 均接高电平。CF7为低电平时选中FLASH,高电平时选中SRAM. 图4.4是SPR4096与单片机的硬件连接图。SPR4096 的SCK接SPCE061A的IOB0,SDA接 SPCE061A的IOB1。CF0CF2 接高电平,CF7 接低电平,选中FLASH。 图4.4 SPR4096电路图5 系统软件设计5.1 SPCE061A的指令系统和集成开发环境IDE同硬件设计一样,软件设计也是分模块进行的。主要包括以下部分的程序:主程序、音频输出子程序、液晶屏显示子程序、存储子程序、按键扫描
34、子程序。各子程序由主程序(main.c)调用,组成一个整体。为了能够体现设计的思路,每个功能都将从原理、所用函数以及程序流程图几个方面分别介绍。在进行系统的软件设计之前,必须熟悉单片机的指令系统和开发环境。在此先对SPCE061A的指令系统与集成开发环境作一个简单的介绍。5.1.1 指令系统在介绍指令格式指令系统以前,把描述指令等一些符号的意义先做如下简单的介绍。RD:目的寄存器或目的存储器指针Rs:源寄存器或源存储器指针;IM6 IM16:6位 16位立即数;A6 A16存储器6位16位常量;Rx-Ry:序列寄存器,X Y为序列号1为最低7为最高;MR:由R4 R3 组成的32位结果寄存器(
35、R4为高字组 R3为低字组);+ - * :加减求补操作符记号;& | :逻辑与 或 异或操作符记号;+ -:指针单位字增量减量操作符;:寄存器间接寻址标志;:任选项;C:进位位;D:非零页数据段寻址标志;/:注释符;#:算术或逻辑操作符;():寄存器或存储单元中的数据;5.1.2 指令格式与寻址方式 指令的格式SPCE061A指令的组成格式不是以字节为单位,而是以16位的字为一个单位,有单字指令和双字指令两种格式,结构较为紧凑。根据操作数的数目又可区分出0、1、2、3四种格式。其指令可分为5大类:数据传送类指令;算术运算类指令;逻辑操作类指令;控制转移及设置指令。伪指令 寻址方式寻址方式象语
36、言中的方言,在不同地方的要表达同一个意思可能会通过不同的腔调,也就是对不同的地点的操作数完成同一类操作可能需用不同的寻址方式。寻址方式包括:立即数寻址:在这种寻址方式中指令格式中包含了操作数,可以立即参与指令规定的操作,所以此操作数被称为立即数。立即数有两种6位(范围0X00-0X3F)和16位(范围0X0000-0XFFFF)。寄存器寻址:这种寻址方式中,操作数存放在某工作寄存器中,也叫寄存器直接寻址。直接寻址:直接寻址就是在指令格式中直接给出了存放操作数的存储器地址,以供寻址取数或者存放数据。在书写指令的时候,直接寻址地址需要括起来,以表明是存储器操作数。直接寻址有三种方式。分别是6位地址
37、直接寻址 16为地址直接寻址和22位地址直接寻址。寄存器间接寻址:寄存器间接寻址就是在指令格式中指定某一寄存器,其中存放的是操作数地址的地址,即操作数的地址是由寄存器间接提供的。由于寄存器是存放在存储单元中,故在书写指令时,所用寄存器需要用括起来,其格式为D:R。当省略D时R指向零页存储单元。D不省略时,由R和段寄存器SR中的数据段DS共同指向存储单元,其中DS的值决定了存储器的页码。变址寻址:在这种寻址方式中,先对基址指针寄存器BP和6位立即数求和,即BP+IM6,算出有效的地址然后在从该地址处取操作数(注意的使用)。PC相对寻址:PC相对寻址只要用于转移指令中,指令执行时检测段寄存器SR中
38、标志段的各标志位,作为程序转移的条件。若满足则转移到与PC相关的地址上。相对偏移量为有符号的6位二进制数即跳转的范围限制在63个字。PC相对寻址用于访问程序存储区。是否具有对高级语言HLL的支持已成为衡量微控制器性能的标准之一。显然,与汇编级上的编程相比在HLL平台上编程,代码清晰易读,易维护易形成模块化,便于重复使用而增加代码的开发效率,因此具有诸多优势。在HLL中又因为C的可移植性最佳所以成为首选。因此,支持C语言几乎是所有微控制器设计的一项基本的要求,用C语言编程的优点有寄存器分配、数据类型等由编译器管理, 编程及调试的时间减少,大大缩短开发周期,明显增加软件可读性,便于改进和扩充。而S
39、PCE061A指令的设计就着重考虑了对C语言的支持。用C语言可以很方便地对SPCE061A进行编程。凌阳公司提供了一种支持凌阳16位单片机系列的集成开发环境,即nSP IDE。其界面如图5.1。它支持汇编语言和C语言混合编程进行程序开发,它同时集程序的编辑、编译、链接、调试以及仿真等功能为一体,具有友好的交互界面、下拉菜单、快捷键和快速访问命令列表,使编程调试工作更加方便和高效。我们采用的是IDE2.0.0版。图5.1 nSP IDE界面图5.2系统程序和模块流程设计系统主程序设计流程图如图5.2,开机后系统进行按键扫描,判断键值后进入相应的功能,执行完毕后返回继续判断键值。主程序是用C语言编
40、写的,是整个软件系统的核心所在。它是在各个子程序模块编好以后再根据设计要求编制的。 图5.2 程序设计流程图(1)键盘扫描模块: 键盘扫描子程序流程图如图5.3所示。图5.3 键盘扫描子程序流程图键盘采用的是44键盘。用其中十个数字键作站名选择,可以键入手动信号更改显示电路、语音电路所指示的站名。另外,如果为了增加一些电路功能,可在报站的同时插入一些广告语音、礼貌语音以及对乘客的提示语音等,实现插入语音的放音需键入信号。键盘扫描的原理为:先从IOB1215输出高电平,再从IOB811读回状态值,如果有键按下,相应“行”对应的位就会被置为高电平,得到“行”位置;马上进入“列”扫描,先从IOB12
41、输出一个高电平,再从IOB811读回值,判断是否为高电平,是,则得到“列”位置,否则扫描第二“列”,如此类推,通过“行”位置和“列”位置得到确定按键位置。通过编码,返回键值。(2)设置模块:设置模块流程图如图5.4,开始(液晶屏显示SET,表示报站器进入设置状态)-开始3秒定时,进行键扫描-判断3秒定时是否到了(如果到了,则返回值;如果没到则判断键值是否有效,如果无效则返回值,如果有效则按下5键进行行向切换,按下7键后,液晶屏闪动显示时间/日历,进入时间/日历调节状态。通过按上下键进行调解。然后返回进行重新扫描)。为了防止误操作,在设置模块里设定一个3秒的定时,在3秒的定时里只有允许的几个键按
42、下才会执行相应的操作,其他键无效。程序自动记录最后一次按键时间,如果3秒内没有按键操作,自动保存设置,退出。图5.4 设置模块子程序流程图(3)音量调整模块: 音量调整子程序流程如图5.5:图5.5 音量调整子程序流程图S480的语音压缩格式提供16级的音量调节,15为最高级,音量最大;0是最低级,静音。通过调用API函数,可以很方便的改变系统的主音量。(4)行向调整模块行向调整子程序流程图如图5.6所示。图5.6 行向调整子程序流程图(5)时间、日历调整模块时间、日历调整模块子程序流程图如图5.7。图5.7 时间、日历调整子程序流程图(6)播报模块: SACM_S480具有两种播放方式,自动
43、播放方式和非自动播放方式。两种播放方式的区别在于取语音数据的方式不同。在自动方式,语音播放函数可以自动的从内部FLASH中取出数据,而非自动播放方式,用户必须一个字的取得语音数据。非自动方式可以从外部存储设备取得语音数据,这里采用非自动播放方式。S480 非自动播放方式流程图如图 5.8所示:图5.8 S480非自动方式播放程序流程图(7)IRQ5_2HZ 模块: IRQ5_2Hz 中断服务流程图如图 5.9 所示:图 5.9 IRQ5_2Hz 中断服务流程图SPCE061A具有精确的时基信号发生器,时基发生器通过分频产生2Hz、4Hz等时基信号,可以实现精确的计时,从而实现时钟和万年历功能。
44、 (8)液晶显示模块液晶显示程序流程图如图5.10图5.10 液晶显示程序流程图结 论经过反复的调试和改进,通过最后的测试,公交车报站器在减少外围器件,成本大大降低的情况下,系统的运行的稳定性还有很大程度的提高;各种提示语音正常播放,声音清晰;时间、日历可以正常设置、显示和播报。公交车报站器给乘客和司机提供了方便。SPCE061A的结构特点及其相关的开发平台,为我们开发带语音特色的产品带来了方便,公交车报站器是SPCE061A的一个基本应用,体现了SPCE061A的多种资源对产品开发的极大支持,同时体现了其独特的语音特色和显示功能。但是由于存储容量限制,功能不够齐全。利用61板的其他功能模块可
45、以实现更多的功能。使用扩展存储器来增加存储容量,以增加更多的路线和服务用语;使用LCD显示模块和点阵显示模块,显示站名和服务语。使用串口通信模块,实现报站器与计算机进行通信,实现资料更新。此外,通过此次毕业设计,我深刻地感觉到,只有理论与实践相结合才能真正意义上地掌握书本上的知识,才能增强自己的动手能力,才能锻炼科研思维、提高科研能力。致 谢为期一个学期的毕业设计已接近尾声了,我的大学生生活也即将画上一个圆满的句号。在此,对曾经在设计中给予我极大的帮助以及支持的马老师,还有同学们表示深深地感谢。本论文是在马老师的悉心指导、鼓励和支持下完成的。在设计过程中,马老师给予了我莫大的帮助与启迪。俗话说万事开头难,是老师从设计的选题、结构、内容、甚至是编排格式上都给予我悉心的指导,提出了宝贵意见,让我走出了迈向成功的一大步。而且在设计过程中老师一直对我们的整体框图和单元电路的设计进行指导,对我存在的问题和思维上的误区加以指正,在此一隅,我要衷心的感谢我们的马老师,谢谢老师的谆谆教诲。与此同时还要衷心感谢教研室的