智能公交车报站系统0602A_第1页
智能公交车报站系统0602A_第2页
智能公交车报站系统0602A_第3页
智能公交车报站系统0602A_第4页
智能公交车报站系统0602A_第5页
已阅读5页,还剩21页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

智能公交车报站系统作者姓名:姚伟奇专业班级:电气二班指导教师:李琳琳摘要随着时代的进步,公交车已经成为一般工薪族和学生族出门必须的交通工具。公交车的开展程度也是衡量一个城市兴旺程度的表现。我国总理温家宝说:优先开展城市公共交通是符合中国实际的城市开展和交通开展的正确战略思想。传统公交车由乘务员人工报站,由于其效率低,效果差,工作强度大,现在已经逐渐被淘汰。本文采用AT89C51系列单片机作为主控CPU,控制ISD4004语音控制电路以及LCD液晶显示作为智能公交车报站系统的主要控制设备,利用89C51单片机作为CPU来进行总体控制,通过语音控制电路进行各种提示语音的播放,同时使用LCD液晶进行显示,实现了公共汽车的语音自动报站以及文字提示的功能,实现了图文、语音一体化协调工作。ISD4004语音系列芯片是美国ISD4004公司推出的产品,具有屡次重复录放,存储时间长,使用时不需扩充存储器,所需外围电路简单等特点。本系统是以C语言来进行软件设计,指令的执行速度快,节省存储空间。为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了,使硬件在软件的控制下协调运作。关键词:AT89C51ISD4004报站系统Abstract:WiththeprogressofTheTimes,thebushasbecomeageneralapplicabilityandstudentsgotothefamilytransportation.Thelevelofdevelopmentofbusmeasuresacity’slevelofcovilizition.OurPrimeMinisterWenJiaBaosaid:Prioritytothedevelopment

ofurbanpublictransport

istherightstrategicideainlinewith

China'sactualdevelopmentof

urbandevelopment

andtransport

proper

strategicthinking.Duetothemicrocontrollertechnologyandelectronicvoicetechnologyrapidlydevelope.Atpresent,inthebusstops,alsofromthetraditionalartificialstops,graduallychangingintousingthemicrocomputercontrolsystemofbusstopannouncement.ThispaperintroducesthedesignprincipleofanewkindofbusautomaticstopsdisplaysystemandprovidesanewplantocontrolISD4004pronunciationchipandLCDdotmatrixtodisplaychinesecharactersby89C51MCU.ISD4004seriespronunciationchipistheproductsofISDcompany,withthecharactorofrepeatedrecording,longtimestorage,withoutexpandedmemorywhenusingandsimplecircuitoftheperiphery,etc.ThissystembasedonClanguageforsoftwaredesign,theinstructionexecutespeedlyandsavestoragespace.Inordertofacilitateexpansionandchange,thedesignofsoftwareadoptmodularstructure,maketheprogramdesignoflogicalrelationshipmoreconcise,makethehardwareunderthecontrolofthesoftwareoperationharmoniously.Useing89C51asCPUtooverallcontrolandthroughthespeechcontrolcircuittoplayvariouskindspeechhint.Realizingthebusstopsandcharactersofthevoiceoffunction,thetext,voiceintegrationarerealizedcoordinationlytoo.Reducethelaborintensityofsalespersonneldepartment,improvingthequalityofbusservice.Itisakindofnewproductsoftechnologyandfashion.Atthesametime,itgetsridoftraditionalelectronicscreen"line",tomakeitsapplicationbecomemoremarket-oriented.Thecharacteristicsof"flow"showsispraisedhighlybyadvertising.itisakindofnewmedia.Keywords:AT89C51ISD4004Stopannouncementsystems目录第1章前言 41.1论文背景及研究意义 41.2开展趋势 41.3主要研究内容及相应功能 5第2章总体方案 62.1系统总体框架 62.2方案比拟 62.2.1方案一 62.2.2方案二 72.2.3方案三 72.3方案选择 82.4AT89C51介绍 82.4.1AT89C51主要性能参数 92.4.2功能特性概述 92.4.3AT89C51封装模式 102.4.4引脚功能说明 112.5ISD4004语音芯片介绍 132.5.1ISD4004语音芯片概述 132.5.2ISD4004引脚功能说明 142.5.3工作原理与功能特性 16第3章系统硬件电路的设计 203.1电源电路设计 203.2主电路设计 233.3复位电路设计 23时钟震荡器 233.4ISD4004语音录放电路 243.5按键控制电路 25第4章软件局部设计 264.1软件总体设计 264.2软件各模块设计 274.2.1延时子程序 274.2.2ISD4004语音录放程序 284.2.3中断控制程序 304.2.4LED点阵汉字显示程序 31第5章系统调试 325.1常见硬件故障调试 32结束语: 33致谢 34第1章前言1.1论文背景及研究意义公交车为人们的工作、出行提供了方便快捷的效劳,是城市开展、人们出行的重要交通工具之一,而一个公交车报站系统的优劣也决定了人们对公交车的评价的好坏,因此公交车报站系统对于开展城市公交有着重要的意义。传统的公交车采用人工报站的方式,效率低,工作量大,不仅浪费了大量人力物力,而且效果也不好。随着科技的开展,微型计算机已经进入了诸多领域,本文设计的系统采用AT89C51系列单片机,AT89C51是一种带4K字节FLASH存储器〔FPEROM—FlashProgrammableandErasableReadOnlyMemory〕的低电压、高性能CMOS8位微处理器。在一些公交车自动语音报站系统中,广泛采用的是通过使用语音芯片进行设计电路,然后通过MIC录音电路以及功放电路进行语音的录制与播放,同时通过单片机对语音芯片进行相应的选择以及功能的控制,从而完成语音报站。但是由于传统的语音芯片的外围电路比拟复杂,所以实现复杂、易受干扰、不易控制并且精度不高。而ISD4004系列语音芯片,不需复杂的外围电路和A/D转换电路就能直接与单片机完成语音的录制与播放,其优点是实现方便、精度高,可根据不同需要应用于不同场合。基于提高对语音芯片的认识和了解,尤其是对ISD4004系列的深入研究以及其用法与用途,结合实用、可行和典型的原那么而设计了本系统。1.2开展趋势公交车作为一座城市重要的交通工具,给人们提供便捷的出行的同时,也是城市一道亮丽的风景,因此公交车的语音报站对于整个城市的开展有着重要的意义,人性化的报站系统给乘客提供更舒心的效劳。如今,公交车报站系统有几种形式,一种是语音报站系统和LED显示屏的结合,乘客不仅能听到报站的声音,与此同时还能够通过LED显示屏看到播放的信息,这种系统的优点是能看到当前的站位信息。还有一种是全自动报站系统,该系统通过GPS定位系统以及安装在车内的液晶显示屏组成,当公交车到站时,不用司机手动按钮,通过GPS定位确定到站的位置,实现自动语音报站以及显示的功能,这种系统的优点是完全不用司机通过按键来实现,更加人性化,但其造价昂贵,相应的投资也会增加。考虑到便捷和本钱问题,本文涉及到的是利用单片机和语音芯片组成根本的系统,通过司机按键实现相应的功能。1.3主要研究内容及相应功能本系统的主控器是AT89C51单片机辅助电路为ISD4004语音芯片组成的语音电路以及电源电路等,附加驱动电路、按键、等组成,可实现对各种信息的播放,比方到站信息,警示语等。不仅给司机乘务员减轻了压力,而且给乘客提供更直观、人性化的效劳。第2章总体方案2.1系统总体框架系统主要要五大模块组成,包括:CPU、电源、语音、显示局部以及键盘电路,如图2-1.图2-1系统组成图2-1系统组成2.2方案比拟2.2.1方案一公交车语音自动报站器的设计,对车轮轴的转角脉冲进行计数,将计数值与预置值比照,就可以确定报站时刻,最终到达准确自动报站的目的。以AT89C51为主控芯片,对所获得的脉冲进行计数,并结合语音芯片ISD4004输出语音。系主要统由脉冲检测、脉冲计数、CPU控制、控制信号、语音芯片、放音电路、输出显示等组成。原理框图如图2-2所示。图2-2原理框图1.脉冲检测:该系统主要是对轮轴所转过的圈数进行计数,因为车辆运行的环境比拟复杂,故采用霍尔元件DN6848作为信号的采集装置,再经光电耦合器4N25输入给单片机。2.脉冲计数:光电耦合信号进入89C51后,采用中断方式对脉冲计数。外部晶振12MHz。3.CPU控制:程序中将计数值于预置值进行比拟,判断是否到站,如果到站就输出信号控制语言芯片进行报站。4.按键控制:用于手动控制、手动调整、预置值的输入等5.语言芯片:采用ISD4004语音芯片,其主要特点是可擦写,便于在不同公交线上使用。6.输出显示:LED点阵汉字显示。2.2.2方案二第二种方案是利用8031单片机作为CPU来进行总体控制,当公交车到达某站时,汽车司机通过键盘来控制该系统进行相应的报站操作,并且系统将使用状态指示电路,给司机提供出当前的行驶方向以及站名〔假设运行方向与实际方向不符,司机可通过键盘来调整〕。原理图框图如图2-3所示。图2-3原理框图本系统使用8031作为主控CPU,由CPU来控制语音合成芯片TC8830AF,使其工作在CPU控制模式下。由CPU控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,然后再通过语音输出电路,进行相应的语音报站以及提示信息。CPU同时通过写入的程序读取汉字信息,送入LED点阵显示系统来进行信息的汉字提示。当系统进行语音录制时,语音信号通过语音输入电路输入给语音合成电路中的语音合成芯片,通过语音合成芯片进行数据处理,并将生成的数字格式的语音信息存储到语音存储芯片中,以此建立语音库,实现语音报站。2.2.3方案三第三种方案采用的是AT89C51作为主控CPU,附加相应的语音录放电路、语音播报电路、LCD液晶显示电路,按键电路等,组成整个系统。原理框图如图2-3图2-3原理框图该系统语音芯片采用的是ISD4004,其特点是可擦除次数多,掉电保存数据时间长,高品质的音质,可对多段信息进行寻址等。LCD显示用的是LCD1602,可以对其进行两行的显示,工作电压与单片机的工作电压相同,因此不需要再进行电压变换。此系统的优点是造价低,操作简单,由于考虑到价格方面,故有些功能,比方GPS定位等硬件并未安装到本系统中。2.3方案选择通过将方案一与方案二以及方案三进行比拟,方案一使用AT89C51作为主控制芯片,通过对里程的计数来控制报站时刻,优点是无需人工操作,但其对精度要求较高,并且需要较大的本钱投入。方案二是采用的是8031单片机控制,通过键盘来控制公交车报站,8031是intel公司较早的产品,但由于其内部没有程序存储器,实际使用方面已经被市场淘汰,所以本课题决定选用方案三,它使用AT89C51作为主控制芯片,通过按键、LCD液晶显示来显示当前的信息,选用的语音芯片是美国ISD公司的ISD4004,该芯片与其它语音芯片相比拟,其语音音质好,录放时间长。系统由主控器以及电源电路、语音电路、键盘电路等组成,其中主控器采用AT89C51单片机,语音电路中的语音芯片采用ISD4004。2.4AT89C51介绍AT89C51是美国ATMEL公司生产的低电压,高性能CMOS8位单片机,片内含4Kbytes的可反复擦鞋的flash只读存储器和128kbytes的随机数据存储器(RAM),器件采用ATMEL公司的高密度,非易失性存储技术生产,兼容标准MCS-51指令系统,片内置8位中央处理器〔CPU〕和Flash存储单元。在众多的51系列单片机中,要算ATMEL公司的AT89C51、AT89S51更实用,因他不但和8051指令、管脚完全兼容,而且其片内的4K程序存储器是FLASH工艺的,这种工艺的存储器用户可以用电的方式瞬间擦除、改写,一般专为ATMELAT89xx做的编程器均带有这些功能。显而易见,这种单片机对开发设备的要求很低,开发时间也大大缩短。写入单片机内的程序还可以进行加密,这又很好地保护了你的劳动成果。再着,AT89C51、AT89S51目前的售价比8031还低,市场供给也很充足,因此本系统中用到的主控器是性能比拟高的AT89C51单片机。2.4.1AT89C51主要性能参数·与MCS-51兼容·4K字节可编程闪烁存储器·寿命:1000写/擦循环·数据保存时间:10年·全静态工作:0Hz-24MHz·三级程序存储器锁定·128*8位内部RAM·32可编程I/O线·两个16位定时器/计数器·5个中断源·可编程串行通道·低功耗的闲置和掉电模式·片内振荡器和时钟电路2.4.2功能特性概述AT89C51提供以下标准功能:4k字节Flash闪速存储器,128字节内部RAM,32个I/O口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。同时,AT89C51可降至0Hz的静态逻辑操作,并支持两种软件可选的节电工作模式。空闲方式停止CPU的工作,但允许RAM,定时/计数器,串行通信口及中断系统继续工作。掉电方式保存RAM中的内容,但振荡器停止工作并禁止其它所有部件工作直到下一个硬件复位。2.4.3AT89C51封装模式AT89C51有如下几种封装,如图2-4图2-489C51封装图2-489C51封装2.4.4引脚功能说明·Vcc:电源电压·GND:地·P0口:P0口是一组8位漏极开路型双向I/O口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动8个TTL逻辑门电路,对端口写“1”可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址〔低8位〕和数据总线复用,在访问期间激活内部上拉电阻。在FIash编程时,P0口接收指令字节,而在程序校验时,输出指令字节,校验时要求外接上拉电阻。·P1口:P1是一个带内部上拉电阻的8位双向I/O口,P1的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流〔IIL〕。FIash编程和程序校验期间,P1接收低8位地址。·P2口:P2是一个带有内部上拉电阻的8位双向I/O口,P2的输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流〔IIL〕。在访问外部程序存储器或16位地址的外部数据存储器〔例如执行MOVX@DPTR指令〕时,P2口送出高8位地址数据。在访问8位地址的外部数据存储器〔如执行MOVX@RI指令〕时,P2口线上的内容〔也即特殊功能存放器〔SFR〕区中R2存放器的内容〕,在整个访问期间不改变。Flash编程或校验时,P2亦接收高位地址和其它控制信号。·P3口:P3口是一组带有内部上拉电阻的8位双向I/O口。P3口输出缓冲级可驱动〔吸收或输出电流〕4个TTL逻辑门电路。对P3口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。作输入端时,被外部拉低的P3口将用上拉电阻输出电流。除此之外P3口还有很重要的第二功能,如表2-1表2-1P3口第二功能表端口引脚第二功能端口引脚第二功能RXD(P3.0)串行输入口T0(P3.4)定时/计数器0外部输入TXD(P3.1)串行输出口T1(P3.5)定时/计数器1外部输入INT0(P3.2)外中断0WR(P3.6)外部数据存储器写选通INT1(P3.3)外中断1RD(P3.7)外部数据存储器读选通·RST:复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平将使单片机复位。·ALE/PROG:当访问外部程序存储器或数据存储器时,ALE〔地址锁存允许〕输出脉冲用于锁存地址的低8位字节。即使不访问外部存储器,ALE仍以时钟振荡频率的l/6输出固定的正脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个ALE脉冲。对Flash存储器编程期间,该引脚还用于输入编程脉冲〔PROG〕。如有必要,可通过对特殊功能存放器〔SFR〕区中的8EH单元的DO位置位,可禁止ALE操作。该位置位后,只有一条MOVX和MOVC指令ALE才会被激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置ALE无效。·PSEN:程序储存允许〔PSEN〕输出是外部程序存储器的读选通信号,当AT89C51由外部程序存储器取指令〔或数据〕时,每个机器周期两次PSEN有效,即输出两个脉冲。在此期间,当访问外部数据存储器,这两次有效的PSEN信号不出现。·EA/VPP:外部访问允许。欲使CPU仅访问外部程序存储器〔地址为0000H—FFFFH〕,EA端必须保持低电平〔接地〕。需注意的是:如果加密位LB1被编程,复位时内部会锁存EA端状态。如EA端为高电平〔接VCC端〕,CPU那么执行内部程序存储器中的指令。Flash存储器编程时,该引脚加上+12V的编程允许电源Vpp,当然这必须是该器件是使用12V编程电压Vpp。·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。·XTAL2:振荡器反相放大器的输出端。·时钟振荡器:AT89C5l中有一个用于构成内部振荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反应元件的片外石英晶体或陶瓷谐振器一起构成自激振荡器,振荡电路外接石英晶体〔或陶瓷谐振器〕及电容C1、C2接在放大器的反应回路中构成并联振荡电路。对外接电容C1、C2虽然没有十分严格的要求,但电容容量的大小会轻微影响振荡频率的上下、振荡器工作的稳定性、起振的难易程序及温度稳定性,如果使用石英晶体,我们推荐电容使用30pF±10pF,而如使用陶瓷谐振器建议选择40pF±10F。2.5ISD4004语音芯片介绍ISD4004具有8到16分钟的录音时长,工作电压是3V,高品质的录音回放,并且不需要考虑其算法,掉电保存时间可达100年,可反复录音10万次,可对多段信息进行寻址。具体的ISD4004系列的录放时长以及输入采样等数据如表2-2表2-2ISD4004系列芯片录放时长型号时间(min)输入采样〔Hz〕典型带宽(Hz)ISD4004-08883.4ISD4004-10106.42.7ISD4004-12125.32.3ISD4004-161641.72.5.1ISD4004语音芯片概述WINBOND公司的ISD系列语音芯片采用了“直接模拟量存储”(DAST)专利技术,信号无需经过D/A,A/D转换,数字压缩和语音合成等复杂的数字信号处理过程,减少了失真,使其声音存贮效果较以前产品有大幅提高,实际试听主观评价可以到达磁带录音机的水平,是目前市场上录放效果最好的语音电路之一。ISD4004是美国ISD公司制造的一种新款语音芯片。与ISD其它系列语音产品不同的是,ISD4004是一种微控制器“从”设备,而“主”控制器可以是内置有SPI兼容接口的微控制器,也可以用I/O仿真SPI通信协议。ISD4004系列工作电压为3V,单片录放时间为8~16分钟,本系统采用的是8分钟的ISD4004语音芯片,其优点是音质好,适用于移动及其它便携式电子产品中。该芯片采用CMOS技术,内含振荡器、抗混叠滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存贮陈列。芯片的所有操作必须由微控制器控制,操作命令可通过串行通信接口〔SPI或Microwire〕送入。ISD4004采用多电平直接模拟量存储技术,每个采样值直接存贮在片内闪烁存贮器中,因此能非常真实、自然地再现语音、音调和效果声,防止了一般固体录音电路因量化和压缩造成的量化噪声和“金属声”。采样频率可为4.0,5.3,6.4,8.0kHz,频率越低,录放时间越长,音质那么有所下降,片内信息存于闪烁存贮器中,可在断电情况下保存100年〔典型值〕,反复录音10万次。ISD4004语音芯片内部结构如图2-5所示图2-5ISD4004语音芯片内部结构2.5.2ISD4004引脚功能说明图2-6ISD4004芯片结构ISD4004的引脚排列如图1所示,各引脚功能如下:·电源〔VCCA,VCCD〕:为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚小,模拟和数字电源端最好分别走线。尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。·地线〔VSSA,VSSD〕:芯片内部的模拟和数字电路也使用不同的地线。·同相模拟输入〔ANAIN+〕:录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3kΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,与ISD33000系列相同。·反相模拟输入〔ANAIN-〕:差分驱动时,为录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV。·音频输出〔AUDOUT〕:提供音频输出,可驱动5kΩ的负载。·片选〔SS〕:此端为低,即向该ISD4004芯片发送指令,两条指令之间为高电平。·串行输入〔MOSI〕:此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入。·串行输出〔MISO〕:ISD的串行输出端。ISD未选中时,本端呈高阻态。·串行时钟〔SCLK〕:ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD。·中断〔INT〕:本端为漏极开路输出。ISD在任何操作〔包括快进〕中检测到EOM或IVF时,本端变低并保持。中断状态在下一个SPI周期开始时去除。中断状态也可用RINT指令读取。·OVF标志用来指示ISD的录、放操作已到达存储器的末尾。只在放音中检测到内部的EOM标志时,此状态位才置1。·行地址时钟〔RAC〕:漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行〔ISD4004系列中的存贮器共2400行〕。该信号保持高电平的时间为175ms,低电平时间为25ms。在快进模式,RAC可保持高电平218.75μs,低电平31.25μs。该端可用于存储管理技术。2.5.3工作原理与功能特性ISD4004声音录放采用CchipCorder专利技术,即无须A/D转换和压缩就可以直接储存,没有A/D转换误差,在个记录位〔BIT〕可存储250级声音信号,相当于通常的A/D记录的8倍。·SPI〔串行外设接口〕ISD4004工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,该协议假定微控制器的SPI移位存放器在SCLK的下降沿工作,因此对于ISD4004而言,在时钟上升沿将锁存MOSI引脚的数据,而在下降沿那么将数据送至MISO引脚。·SPI接口指令SPI的接口指令如表2-3所列。表2-3SPI的接口指令指令8位控制码操作摘要POWERUP00100XXX<XXXXXXXXXXXXXXXX>上电:等待TPUD后操作可以工作SETPLAY11100XXX<A15~A0>从指定地址开始放音。必须后跟PLAY指令使放音继续PLAY11110XXX<XXXXXXXXXXXXXXX>从当前地址开始录音〔直至EOM或OVF〕SETREC10100XXX<A15~A0>从指定地址开始录音。必须后跟REC指令录音继续REC10110XXX<XXXXXXXXXXXXXXXX>从当前址开始录音〔直至OVF或停止〕SETMC11101XXX<A15~A0>从指定地址开始快,必须后跟MC指令快进继续MC11111XXX<XXXXXXXXXXXXXXXX>停止当前操作STOPWRDN0X01XXXX<XXXXXXXXXXXXXXXX>停止当前操作并掉电RINT0X110XXX<XXXXXXXXXXXXXXXXX>读状态:OVF和EOM·SPI端口的控制位SPI端口控制位如图2-6所示。图2-6SPI端口控制位·SPI控制存放器SPI控制存放器控制器件可以实现如录放、录音、信息检索〔快进〕、上电/掉电、开始和停止操作、忽略地址指针等功能。具体控制位如表2-4所列。表2-4控制存放器功能表位值功能位值功能RUN==10开始停止PU==10上电掉电P/R==10放音录音IAB==10忽略输入地址存放内容使用输入地址存放内容MC==10允许快进禁止快进P15-P0A15-A0行指针存放器输出输入地址存放器当IAB置0时,录、放操作从A9~A0地址开始。为了能连贯地录、放到后续的存储空间,在操作到达该行末之前,应发出第二个SPI指令将IAB置1,否那么器件在同一个地址上将反复循环。这一点对语音提示功能很有用。RAC脚和IAB位可用于信息管理。ISD4004工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,协议假定微控制器的SPI移位存放器在SCLK的下降沿动作,因此对ISD4004MP语音芯片而言,在时钟止升沿锁存MOSI引脚的数据,在下降沿将数据送至MISO引脚。协议的具体内容为:1.所有串行数据传输开始于SS下降沿。2.SS在传输期间必须保持为低电平,在两条指令之间那么保持为高电平。3.数据在时钟上升沿移入,在下降沿移出。4.SS变低,输入指令和地址后,ISD才能开始录放操作。5.指令格式是(8位控制码)加(16位地址码)。6.ISD的任何操作(含快进)如果遇到EOM或OVF,那么产生一个中断,该中断状态在下一个SPI周期开始时被去除。7.使用"读"指令使中断状态位移出ISD的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。8.所有操作在运行位(RUN)置1时开始,置0时结束。9.所有指令都在SS端上升沿开始执行。(一)信息快进用户不必知道信息确实切地址,就能快进跳过一条信息。信息快进只用于放音模式。放音速度是正常的1600倍,遇到EOM后停止,然后内部地址计数器加1,指向下条信息的开始处。〔二〕上电顺序器件延时TPUD(8kHz采样时,约为25毫秒)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出一条操作指令。例如,从00从处发音,应遵循如下时序:

1.发POWERUP命令;

2.等待TPUD(上电延时);

3.发地址值为00的SETPLAY命令;4.发PLAY命令。器件会从此00地址开始放音,当出现EOM时,立即中断,停止放音。如果从00处录音,那么按以下时序:

1.发POWERUP命令;

2.等待TPUD(上电延时);

3.发POWERUP命令

4.等待2倍TPUD;

5.发地址值为00的SETREC命令;

6.发REC命令。

器件便从00地址开始录音,一直到出现OVF(存贮器末尾)时,录音停止。

指令表第3章系统硬件电路的设计3.1电源电路设计ISD4004工作时的的工作电压是3V,而AT89C51单片机的工作电压是5V,所以就必须有电源电路,将5V的电压转换成3V的电压供ISD4004语音芯片使用,本电路采用LM317电源电路,输入为5V,输出为3V的一个稳压电路。其原理是利用电容滤波,使语音电路噪声减少,从而能提供比拟稳定的稳压电源。电源电路如图3-1图3-1LM317是美国国家半导体公司的三端可调正稳压器集成电路。LM117/LM317的输出电压范围是1.2V至37V,负载电流最大为1.5A。它的使用非常简单,仅需两个外接电阻来设置输出电压。此外它的线性调整率和负载调整率也比标准的固定稳压器好。LM117/LM317内置有过载保护、平安区保护等多种保护电路。通常LM117/LM317不需要外接电容,除非输入滤波电容到LM117/LM317输入端的连线超过6英寸〔约15厘米〕。使用输出电容能改变瞬态响应。调整端使用滤波电容能得到比标准三端稳压器高的多的纹波抑制比。LM117/LM317能够有许多特殊的用法。比方把调整端悬浮到一个较高的电压上,可以用来调节高达数百伏的电压,只要输入输出压差不超过LM117/LM317的极限就行。当然还要防止输出端短路。还可以把调整端接到一个可编程电压上,实现可编程的电源输出。特性简介:可调整输出电压低到1.2V。保证1.5A输出电流。典型线性调整率0.01%。典型负载调整率0.1%。80dB纹波抑制比。输出短路保护。过流、过热保护。调整管平安工作区保护。标准三端晶体管封装。电压范围:LM117/LM3171.25V至37V连续可调。其封装形式如图3-2所示:图3-2LM317封装管脚如图3-3所示。图3-3LM317引脚分布LM317工作原理:LM317的输入最同电压为30多伏,输出电压1.532V...电流1.5A...不过在用的时候要注意功耗问题...注意散热问题。LM317有三个引脚.一个输入一个输出一个电压调节。输入引脚输入正电压,输出引脚接负载,电压调节引脚一个引脚接电阻(200左右)在输出引脚,另一个接可调电阻(几K)接于地.输入和输出引脚对地要接滤波电容.LM317应用电路图如图3-4:图3-4LM317应用电路图当稳压器离电源滤波器有一定的距离是Cn是必需的Cn对稳定性而言不必要;但改良瞬态响应Vout=1.25V(1+R2/R1)+IadjR2因为Iadj控制在小于100ua,这一项的误差在多数应用钟可忽略。3.2主电路设计主电路由单片机AT89C51作为主控CPU,ISD4004语音芯片组成语音录放电路,从而实现对语音的录制以及播放,显示模块采用的是LCD1602,用于显示当前的站位信息,显示分上下两行,上面一行显示设计者姓名,下面一行显示到站信息。3.3复位电路设计ccccAT89C51RST8.2k10uF+VccGND17图3-589C51复位电路时钟震荡器AT89C51中有一个用于构成内部震荡器的高增益反相放大器,引脚XTAL1和XTAL2分别是该放大器的输入端和输出端。这个放大器与作为反应元件的片外石英晶体或陶瓷谐振器一起构成自然震荡器。外接石英晶体及电容C1,C2接在放大器的反应回路中构成并联震荡电路。对外接电容C1,C2虽然没有十分严格的要求,但电容容量的大小会轻微影响震荡频率的上下、震荡器工作的稳定性、起振的难易程序及温度稳定性。如果使用石英晶体,我们推荐电容使用30PF±10PF,而如果使用陶瓷振荡器建议选择40PF±10PF。用户也可以采用外部时钟。采用外部时钟的电路如图示。这种情况下,外部时钟脉冲接到XTAL1端,即内部时钟发生器的输入端,XTAL2那么悬空。由于外部时钟信号是通过一个2分频触发器后作为内部时钟信号的,所以对外部时钟信号的占空比没有特殊要求,但最小高电平持续时间和最大的低电平持续时间应符合产品技术条件的要求。图3-6内部振荡电路图3-7外部振荡电路3.4ISD4004语音录放电路语音录放电路如下:使用的是ISD4004-8MS以及其外围录放电路,外围电路相当简单。由于其可以进行直接模拟信号的存储,省去了信号模数转换的相关电路,使得信号更加的稳定、录放音质量好。同时单片8至16分钟语音录放,内置微控制器串行通信接口,3V单电源工作,多段信息处理,工作电流25-30mA,维持电流1μA,不耗电信息保存100年(典型值),高质量、自然的语音复原技术,10万次录音周期(典型值),自动静噪功能,片内免调整时钟,可选用外部时钟。利用9014三极管对录制语音进行放大处理,同时通过LM386及喇叭,对输出语音信号进行放大播放,让语音质量以及稳定性更加高。电路图如图3-8所示。图3-8ISD4004语音录放电路3.5按键控制电路利用按键与单片机相关引脚进行连接,我们都知道单片机的引脚在工作状态时无负载时均是高电平,故如果需要进行相关控制,只需其通过按键与地连接,然后通过程序控制,当按键按下时,程序控制其他的引脚上下变化,从而让语音报站以及汉字显示。其中所接按键的接口功能为:P1.0=下一站,P1.1=上一站,P1.2=复位。电路图如图3-9所示。图3-9按键控制电路图本章节主要是对电路的硬件个局部的设计,电路的各局部硬件功能设计根本完成。3.5电路仿真局部用proteus画完硬件电路图之后,接下来的工作就是对硬件电路进行仿真,以验证硬件电路理论上的可行性以及正确性与否,从而为接下来做实物电路作为理论根底。仿真是整个硬件及软件设计的整合,硬件直接表达在仿真画面上,而软件作为系统的精髓那么加载到CPU里面,控制整个系统的运行。仿真用到的仿真软件是proteus,Proteus是世界上著名的EDA工具(仿真软件),从原理图布图、代码调试再到单片机与外围电路的协同仿真,一键切换到PCB设计,真正实现了从概念到产品的完整设计。是目前世界上唯一将电路仿真软件、PCB设计软件和虚拟模型仿真软件三合一的设计平台,其处理器模型支持8051、HC11、PIC10/12/16/18/24/30/DsPIC33、AVR、ARM、8086和MSP430在编译方面,它也支持IAR、Keil和MPLAB等多种编译器。本论文用到的编译器是KEIL,仿真前首先将程序在KEIL里编译生成.HEX文件,然后加载到proteus里面的89C51,从而进行仿真。3.5.1keil软件简介单片机开发中除必要的硬件外,同样离不开软件,我们写的汇编语言源程序要变为CPU可以执行的机器码有两种方法,一种是手工汇编,另一种是机器汇编,目前已极少使用手工汇编的方法了。机器汇编是通过汇编软件将源程序变为机器码,用于MCS-51单片机的汇编软件有早期的A51,随着单片机开发技术的不断开展,从普遍使用汇编语言到逐渐使用高级语言开发,单片机的开发软件也在不断开展,Keil软件是目前最流行开发MCS-51系列单片机的软件,这从近年来各仿真机厂商纷纷宣布全面支持Keil即可看出。Keil提供了包括C编译器、宏汇编、连接器、库管理和一个功能强大的仿真调试器等在内的完整开发方案,通过一个集成开发环境〔uVision〕将这些局部组合在一起。运行Keil软件需要Pentium或以上的CPU,16MB或更多RAM、20M以上空闲的硬盘空间、WIN98、NT、WIN2000、WINXP等操作系统。掌握这一软件的使用对于使用51系列单片机的爱好者来说是十分必要的,如果你使用C语言编程,那么Keil几乎就是你的不二之选〔目前在国内你只能买到该软件、而你买的仿真机也很可能只支持该软件〕,即使不使用C语言而仅用汇编语言编程,其方便易用的集成环境、强大的软件仿真调试工具也会令你事半功倍。3.5.2仿真结果通过KEIL软件的编译生成.HEX文件之后,将.HEX文件加载到89C51中,点击proteus中的play按钮进行仿真。在加载完所需的文件之后,仿真就做出来了。由于proteus中的元件库里没有ISD4004芯片,所以仿真局部只做了系统的显示局部。初始化界面如图3-10,其中LCD第一行显示的是作者的姓名,第二行显示的是下一站到站,当按下P1.0〔下一站〕按钮之后,LCD显示下一站内容,按下P1.1〔上一站〕按钮之后,LCD显示上一站内容,如图3-11,,当按下P1.2〔复位〕按钮之后,LCD复位,显示的是初始界面,也就是图3-10所显示的内容。图3-10初始化界面图3-11下一站第4章软件局部设计4.1软件总体设计基于isd4004的公交车语音报站系统软件设计的主要任务是在总体设计和硬件设计的根底上,确定程序结构、分配单片机内部ROM资源以及语音芯片资源、划分功能模块、主程序和各模块之间程序的设计。本系统用到的软件开发工具是keilc51,编程完成之后把各个模块的子程序结合起来,就构成了一个完整的系统程序,从而实现对单片机、语音芯片以及LCD的初始化设置及相应功能的实现,到达软硬件相结合,实现对语音录放报站以及汉字的显示功能。整个系统程序包括主程序和延时子程序、ISD语音录放程序以及显示程序等几局部。AT89C51单片机提供了按键、显示和ISD4004所需接口。AT89C51作为主控CPU用于接收和发送电平信号,并将相应指令传给ISD4004,同时又监控ISD4004的中断输出。当开关闭合时,读取ISD4004的状态存放器,从而根据OVF和EOM的状态进行相应的处理。当OVF=1,即存储器溢出时,那么不管当前为何种状态均将ISD4004的地址置零,并继续运行原指令;当EOM=1时,当前状态只可能为放音或快进,假设为快进那么置为放音态,并继续运行。如此设计便实现了循环录放的功能,同时在快进时,自动停止在下一个语音段开始处,并继续放音。流程图如图4-1所示。图4-1主程序流程图主程序主要调用了4个子程序,分别是延时子程序、ISD4004语音录放程序、LCD显示子程序、中断控制程序等。4.2软件各模块设计延时子程序为了精确的控制单总线接口的特殊时序要求,那么延时函数是相当关键的,延时函数是所有读控制和写控制的组成局部以及显示时延时用到的函数。下面是us的延时(12M)子程序和ms的延时(12M)子程序。voiddelay1(void){int16i;for(i=0;i<50;i++);}voiddelay(unsignedinttime)//延时n微秒{while(time!=0){time--;}}voiddelayms(unsignedcharg){/*延时gms*/unsignedchari,j; for(i=0;i<g;i++){ for(j=0;j<121;j++){;}}}4.2.2ISD4004语音录放程序程序流程图如图4-2所示:图4-2语音录放程序流程图//***********************************//入口:放音位置的上下位//放音程序//功能:从指定位置放音//***********************************voidplay(unsignedcharadl,unsignedcharadh){unsignedcharovflog;while(AN==0){;}isd_setplay(adl,adh);//发送setplay指令,从0x0000地址开始放音do{isd_play();//发送放音指令delay(20);while(ISD_INT==1)//等待放音完毕的EOM中断信号{;}LED2=1;isd_stop();//放音完毕,发送stop指令if(ovflog==chk_isdovf())//检查芯片是否溢出,如溢出那么停止放音,芯片复位break;while(AN==1)//等待AN键再次按下{if(STOP==0)break;if(AN==0)delayms(20);}}while(AN==0);//An键再次按下,播放下一段语音}4.2.3中断控制程序中断定时控制程序,对LED点阵动态扫描进行控制,同时也对汉字显示进行中断控制,让汉字可以按照从右至左的顺序进行滚动显示。/*

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

最新文档

评论

0/150

提交评论