61单片机公交车报站系统设计中的应用文档格式.docx
- 文档编号:22869788
- 上传时间:2023-02-05
- 格式:DOCX
- 页数:21
- 大小:336.92KB
61单片机公交车报站系统设计中的应用文档格式.docx
《61单片机公交车报站系统设计中的应用文档格式.docx》由会员分享,可在线阅读,更多相关《61单片机公交车报站系统设计中的应用文档格式.docx(21页珍藏版)》请在冰豆网上搜索。
3.6语音压缩11
第四章系统设计12
4.1系统设计12
4.2主控板模块13
4.2.1硬件设计13
4.2.2SPR模组模块14
4.2.3SPR模组电路分析14
4.3软件设计15
4.3.1LED显示模组模块18
4.3.2语音压缩18
语音播放的实现19
结论20
参考文献21
前言
现在公共汽车成为城市人们出行的必选交通工具面临的问题是乘客们能够如何及时让乘客知道已到达的车站并及时做好下车的准备,途中会经过哪些车站。
需要提醒乘客注意的情况,这时解决的办法就是利用公交车报站器播放语音,警示乘客。
现如今,公交车仍然是人们出行的首选,因为公交车具有方便、快捷、车票便宜等优点。
传统的公交车报站主要由售票员报站,一些人为的和不确定因素越来越多,另外,随着无人售票车逐渐增多,公交车报站器就越显得重要了。
此设计用凌阳SPCE061A单片机,SPR4096存储器与LED键盘显示模组制作一个简易的公交车报站器。
本设计模拟现实中的公交车报站系统实现报站及显示时间等功能。
先给出了模拟公交车报站器的选题背景和设计方案,然后对凌阳十六位单片机开发系统61板和SPCE061A芯片作了简单的介绍和归纳,并且指出了在实际应用中它与MCS-51系列单片机的主要区别。
再次详细地介绍了系统设计过程中要用到的各种模块包括:
主控板模块、SPR模组模块、LED显示模组模块,的工作原理和主要功能以及语音压缩的方法和过程。
根据自己的设计过程,并分别说明了它们的系统资源与基本功能。
最后详细地介绍了系统设计过程中各种模块硬件设计和软件设计的实现过程.
第一章设计背景与系统方案设计
1.1设计背景
随着大规模集成电路技术的发展,将CPU、RAM、ROM、定时器/计数器以及输入/输出(I/O)接口电路等主要计算机部件集成在一块集成电路芯片上构成单片机成为一种趋势,可以说单片机已经基本上具备了微机系统的功能,因此单片机在今后的计算机硬件领域中具有不可替代作用,其发展前景是非常看好的.单片机的应用范围是非常广泛的:
1.用于科学计算2.用于管理工作中的数据处理3.用于过程控制等领域。
在实现器件的自动化、智能化中,语音控制是其中的一项重要应用技术。
此次设计我们将用16位单片机SPCE061A芯片来设计一款模拟公交车报站器,利用SPR模组存储语音资源,实现公交车模拟报站功能。
此设计的目的在于通过此次设计能初步将所学到的单片机理论知识能得到实践,锻炼一下自己的实践和动手能力,为踏入社会做好准备,同时在实践中学习更多的理论知识。
1.2设计方案的提出
通过对凌阳SPCE061A单片机的仔细研读,了解了其系统丰富的内部资源,在此基础上加之对凌阳设计资料之设计方案的参考,我们总结了两种设计方案如下:
方案一:
根据设计要求,选用MCS51单片机作为主控芯片,外部适当的扩展RAM组成最小系统。
在外围扩展K9F1208FLASH芯片作为存储语音资源的存储器,外扩专用语音处理芯片。
考虑到MCS51的I/O口资源,在外部使用专用8279芯片管理键盘、显示器件。
框图如图1-1所示:
图1-1方案一系统框图
方案二:
根据设计要求,选用SPCE061A单片机作为主控芯片,SPCE061A芯片集成A/D、D/A功能,配合语音函数库可以实现语音功能。
外围扩展键盘、显示器件,扩展SPR4096FLASH芯片存储语音资源。
由于这颗芯片使用较少的外围器件就能实现最小系统,本次毕业设计即是采用了方案2,框图如图1-2所示:
图1-2方案二系统框图
第二章凌阳单片机简介
外围扩展键盘、显示器件,扩展SPR4096FLASH芯片存储语音资源
系统以SPCE061A为核心,可以划分为键盘输入、数码管显示、SPR4096资源存储与61板语音播放等部分,硬件框图如图所示,硬件模块连线图如图所示。
61板作为整个系统的核心控制,并且负责语音的输出。
SPR模组_4096作为语音资源的存储介质。
该模组配备SPR4096芯片可以存储512K(byte)的数据资源。
LED键盘显示模组作为时间显示与用户输出设备。
图2-1硬件模块框图
2.1凌阳单片机SPCE061A简介
凌阳科技研发的SPCE061A是一款性能很高的十六位单片机。
它具有丰富的硬件资源,可以直接利用该借口对芯片进行下载(烧写)、仿真、调试操作。
“61”板是以16位单片机SPCE061A为核心的精简开发-仿真-实验板,它除了具备单片机最小系统电路外还具备电源电路、音频电路(含MIC音频输入电路和DAC音频输出电路)、复位电路等,而且体积小,功能强,具有DSP功能和语音处理功能,并且采用3节1.5V电池(或者5V稳压电源)供电,方便随身携带[1]。
61板的主要特点是:
简单、易学、实用、集成度高。
它采用的是精简指令集,它的指令系统中共有41条指令,指令功能简单,便于学习和掌握。
(有关61板的工作原理和详细功能,我们将在第三章“主控板模块”中进行详细介绍。
)
第三章系统主要模块
三种硬件模块分别为控制公交车报站的主控板模块(即SPCE061A板)、存储语音资源的SPR模组模块和实现公交车报站功能和在数码管上显示时间日器等功能的LED显示模组。
3.1主控板模块
主控板模块就是61板模块,在第二章对61板已经有了一个简单的介绍,在这里我们将对61板的工作原理和功能进行详细地介绍。
3.1.1SPCE061A芯片简介
在认识61板之前,首先我们对61板上的主控芯片SPCE061A进行简单的介绍和了解。
SPCE061A是凌阳科技研发生产的高性能的一款十六位单片机,使用它可以非常方便灵活的实现语音的录放功能,该芯片拥有8路10位精度的ADC,其中一路为音频转换通道。
这为实现语音录入提供了方便的硬件条件。
另外凌阳十六位单片机具有易学易用的效率较高的一套指令系统和集成开发环境(unSPIDE)。
在此环境中,支持标准C语言,可以实现C语言与凌阳汇编语言的互相调用,并且,提供了语音录放的库函数,只要了解库函数的使用,就会很容易完成语音录放,这些都为软件开发提供了方便的条件。
3.2芯片特性简介
SPCE061A性能简介:
●16位u’nSP微处理器
●工作电压(CPU)VDD为3.0~3.6V,(I/O)VDDH为3.0~5.5V
●CPU时钟:
0.32~49.152MHz
●内置2K字SRAM
●内置32K字FLASH
●可编程音频处理
●晶体振荡器
●系统处于备用状态下(时钟处于停止状态),耗电仅为2uA/3.6V
3.3SPCE061A精简开发板
“61板”是SPCE061AEMUBOARD的简称,是以凌阳16位单片机SPCE061A为核心的精简开发仿真实验板,是电子设计爱好者开发系统或做硬件实验时广泛采用的一款高性能简易开发装置。
61板除了具备单片机最小系统电路外,还包括有电源电路、音频电路(含MIC音频输入部分和DAC音频输出部分)、复位电路等,采用电池供电,方便学生随身携带。
使学生在掌握软件的同时,熟悉单片机硬件的设计制作,锻炼学生的动手能力,也为单片机学习者和开发者创造了一个良好的学习条件和开发新产品的机会。
61板上有调试器接口(Probe接口)以及下载线(EZ_Probe)接口,分别可接凌阳科技的在线调试器、简易下载线,配合凌阳十六位单片机软件开发工具unSPIDE,可方便地在板上实现程序的下载、编译和在线仿真调试[1]。
61板上的主要功能模块如下[2]:
Ø
SPCE061A单片机最小系统外围电路模块;
电源输入模块;
音频电路(包含MIC输入、DAC音频功放输出)模块;
按键模块;
I/O端口接口模块;
调试、下载接口模块。
61板实物图如图所示:
图3-161板实物图
3.4SPR模组模块
3.4.1主要功能
SPR芯片分为两种:
该芯片的作用是存储语音资源。
SPR模组是凌阳科技公司针对存储器芯片SPR_4096/SPR_1024开发的简易烧写器。
该烧写器配合PC机ResWriter工具,通过EZ_probe下载线,完成对SPR_4096/SPR_1024存储芯片的擦除、写入、校验等功能。
并且在SPR模组上留有与SPCE061A单片机的接口,可以实现SPR模组与SPCE061A单片机组成的系统。
SPR模组预留两个接口,一个接口是EZ-probe,这是在使用ResWriter工具对SPR4096/1024进行烧写时连接使用的,另一个是10PIN的排线,主要提供电源以及与SPCE061A连接使用。
SPR_4096/1024结构框图如图所示:
图3-2SPR_4096/1024结构框图
3.5LED显示模组模块
LED显示模组在实现公交车的报站功能和现实日期时间功能上起着非常重要的作用。
预置信息的输入和采集信息的显示是采用配套的LED键盘模组来实现的,该模组具有6位数码管显示,显示范围大。
采用动态显示技术节约端口资源,另有8位的LED显示(发光二极管)可作为指示灯使用;
具有8个按键输入,可作为独立的8按键输入,也可作为2*4的阵列键盘使用;
同时为了调试的方便,模组还配置了一路模拟电压信号发生器,可以十分方便地实现A/D转换调试。
3.5.1主要功能
⏹6位数码管与8个发光二极管的显示功能。
⏹8个按键,可通过跳线选择为1*8模式和2*4模式。
⏹一个可变电阻,可调整出0-VDD的电压输出。
结构框图
图3-3结构框图
6位数码管与8个发光二极管的显示功能。
LED电路原理图
LED键盘显示模组电路原理图如图所示:
图3-4LED键盘显示模组电路原理图
LED显示模组实物图如图所示:
3-5LED键盘显示模组实物图
3.6语音压缩
语音压缩在设计公交车报站系统时是一个必不可少的过程。
语音资源存储器SPR模组只支持二进制语音文件,所以我们在向SPR模组烧录语音资源时,必须事先用语音压缩工具将录好的语音资源压缩成二进制语音文件,然后再通过语音烧写工具ResWriter将二进制的语音文件烧录到语音存储器SPR模组中。
第四章系统设计
4.1系统设计
报站系统可以完整地播放一条公交线路的站名。
可以在显示屏上显示当前的时间,具有时间日期的设置功能,还可以播放广告。
下面是系统的设计流程图:
图4-1系统设计流程图
测试61板是否能正常使用,测试流程图如图所示:
流程图如下:
图4-2测试流程图
左边窗口为工作区域窗口用来显示文件的目录,右边窗口为编辑窗口,当我们要定义或是编写程序时,就在此窗口中进行,下面窗口为输出窗口,用来显示运行调试的结果,当程序运行有错误时,错误就会在此窗口中清晰地显示。
在本设计中,实现公交车报站功能和显示时间日期等功能的主程序和子程序的定义、编写、调试、编译及程序的下载,都是在此环境下完成的.
4.2主控板模块
4.2.1硬件设计
主控板模块主要由电源板电路模块、音频输入MIC电路和音频输出DAC电路等功能模块组成。
电源板电路
是电源部分的电路,4.5V直流电压经过SPY0029后产生3.3V电压,从而给整个系统供电。
图4-3电源电路图
音频输入电路MIC电路
图4-4音频输入电路图
此部分为MIC起到了将外部音频输入到凌阳芯片中的作用,其工作原理如下:
麦克风相当于一个可变电阻串联到电路中,C11、C12将麦克风的阻值变换耦合输入到SPCE061A的对应引脚MICP(麦克风差动输入正端),MICN(麦克风差动输入负端),从而完成了音频的输入。
4.2.2SPR模组模块
SPR模组是针对语音资源存储芯片SPR_4096/1024芯片开发的建议语音烧写器。
它的作用是存储语音资源,然后通过主控板的语音处理功能和录放功能将相应的语音资源播放出来。
4.2.3SPR模组电路分析
sPR模组_4096硬件原理图如图4-5所示
图4-5SPR_4096硬件原理图
SPR模组_4096的硬件电路主要分成3大部分:
第一部分:
ResWriter工具对SPR_4096/SPR_1024进行烧写的硬件,
分电路主要起到控制SCK、SDA信号的作用,通过74HC244可以控制SDA信号的通与断,这样可以使用ResWriter工具发出符合烧写芯片的时序信号,完成对芯片的擦除、写入与校验功能。
第二部分:
SPR_4096的工作电路,
此部分工作电路是为了使SPR_4096存储器工作的外围电路,通过SCK与SDA与外界相连。
第三部分:
SPR1024的工作电路,
4.3软件设计
图4-6设计流程图
下载到主控板即61板上的程序是系统设计的主函数程序,主程序是用C语言编程,文件名为main.c,主函数程序如下:
while
(1)
{
if(uiDisp==0)//显示时间
{
DIG_Set(1,0);
DIG_Set(2,0);
DIG_Set(3,Data[uiHour_H]);
DIG_Set(4,Data[uiHour_L]);
DIG_Set(5,Data[uiMinite_H]);
DIG_Set(6,Data[uiMinite_L]);
}
if(uiDisp==1)//显示月日
DIG_Set(1,Data[uiMonth_H]);
DIG_Set(2,Data[uiMonth_L]);
DIG_Set(3,0x0077);
DIG_Set(4,Data[uiDay_H]);
DIG_Set(5,Data[uiDay_L]);
DIG_Set(6,0x007f);
uiKey=Key_Get();
//得到键值,扫建程序在128Hz中断中调用
switch(uiKey)
caseKEY1:
uiA2000_S480=0;
//选择S480放音,在中断FIQ
uiKey=0;
if(uiflag<
1)
{
uiKey1_Count++;
NextStation(uiKey1_Count);
//播放提示下一站***
uiflag=1;
}
else
uiflag=0;
ComingStation(uiKey1_Count);
//****站到了***
if(uiKey1_Count==16)
uiKey1_Count=0;
//如果是终点站,重新初始化
break;
caseKEY2:
if(uiflag==0)
uiKey2_Count--;
NextStation(uiKey2_Count);
ComingStation(uiKey2_Count);
if(uiKey2_Count==0)
uiKey2_Count=16;
caseKEY3:
PlaySnd_S480(65,3);
//播放提示语,车在运行中,请做好扶稳
caseKEY4:
PlaySnd_S480(67,3);
//请让座
caseKEY5:
//广告或娱乐
uiA2000_S480=1;
PlaySnd_A2000(70,3);
caseKEY6:
g_4Hz_On=1;
//进入4Hz中断代码,实现闪烁效果
uiSetflag++;
Set_Time();
//设置时间
caseKEY7:
uiDisp++;
//切换显示时间/月日/年
if(uiDisp==3)
uiDisp=0;
if(uiDisp==0)
uiTemp=*P_INT_Ctrl_New;
//打开2Hz中断,显示秒针
uiTemp|=C_IRQ5_2Hz;
*P_INT_Ctrl_New=uiTemp;
//关闭2Hz中断,不显示秒针
uiTemp&
=0xfffb;
uiTemp=*P_IOB_Buffer;
*P_IOB_Data=uiTemp;
}
此部分工作电路是为了使SPR1024存储器工作的外围电路,通过SCK与SDA与外界相连。
另外,SPR模组_4096还有其他接口电路,
上图最左边的电路是SPR4096片内FLASH与片内SRAM的选择端(关于SPR4096存储器的详细情况,请参考下文或参考SPR4096数据手册),当MEM选择与地短接时使用的是SPR4096的片内FLASH,当MEM选择与电源短接时使用的是SPR4096的片内SRAM。
4.3.1LED显示模组模块
在设计公交车报站器的过程中,LED显示模组在实现公交车报站功能上起着很重要的作用。
LED显示模组的8个按键K1-K8,每个按键都对应着相应的功能。
LED键盘显示模组的八个按键K1—K8的功能实现以及在数码管上显示日期时间的功能,实现这些功能的程序都包含在主函数程序main.c中。
K6按键起到设置时间的功能,当设置时间时,K6按键还可以在年、月、日以及时间之间相互切换,当我们需要设置当前时间时,我们要按K7和K8按键进行操作,K7按键表示向上调整,K8按键表示向下调整。
具体流程图如图4-7所示:
图4-7设置流程图
4.3.2语音压缩
在语音处理方面采用了凌阳科技的sacmv26e.lib函数库完成语音播放功能,只需要调用几条函数就可以播放语音。
主函数流程图如图所示:
在主函数中完成SPR4096的初始化、键盘、显示的初始化,并且进行显示时间与播报公交车报站的站点,然后进入循环根据键盘的值执行相关的操作。
语音播放的实现
由于语音资源存储在外廓的存储器SPR_4096上面,要实现语音播放必须采用手动方式。
需要获得语音资源,关键解决语音资源的起始地址,然后通过读取函数获得语音资源。
函数流程图如图4-8所示:
图4-8语音资源获得函数流程图
结论
经过将近两个月的努力,我的毕业设计终于完成了。
在设计公交车报站器的过程中,我遇到了很多的困难,比如程序的编写和调试等等,这些细节都必须认真并且要经过一点点的学习,一点一点的积累,才能完成这些过程。
平常在大学里自己动手的机会很有限,所以说一个完整的设计对于我个人来说是一次巨大的挑战和考验,经过我的勤奋努力和指导老师的正确指导,还有实验室提供的各种有利条件,给我的设计带来很大的帮助,为我的顺利完成公交车报站器的设计打下良好的基础。
我为我最终能够成功地完成公交车报站器的设计而感到高兴。
在取得进步的同时
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 61 单片机 公交车 报站 系统 设计 中的 应用