优秀毕业设计精品公交报站器设计_第1页
优秀毕业设计精品公交报站器设计_第2页
优秀毕业设计精品公交报站器设计_第3页
优秀毕业设计精品公交报站器设计_第4页
优秀毕业设计精品公交报站器设计_第5页
已阅读5页,还剩34页未读 继续免费阅读

下载本文档

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

文档简介

1、公交报站器设计【摘要】系统硬件以at89c51单片机作为控制中心,结合isd1700语音芯片的多段语音录放功能和lcd1602液晶显示模块,采用spi模式,单片机主要通过四线(sclk,mosi,miso,/ss)spi协议对isd1700进行串行通信,从而实现录音,放音,擦除等操作。通过手动键盘,识别语音播放地址,驱动语音播放站名并控制lcd1602显示站名。该公交车报站器结构简单,使用灵活,功能稳定,音质自然、清晰,无论对于社会或者科研也有一定的价值。【关键字】51单片机,isd1700,公交报站器1概述1.1 课题研究的背景及意义随着我国城市建设的发展,对城市服务行业的服务质量要求也越来

2、越高。在私家车越来越多的今天,公交车仍然是人们出行的首选,因为公交车具有方便、快捷、车票便宜等优点。公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响服务的质量。公交车服务质量它代表了一个城市交通发展的水平。随着我国各大城市公交公司的人员精减,目前各公交公司都在每辆公交车上只配备了一个司机,进行无人售票。这在相当大的程度上免除了乘务人员沿途报站的麻烦,给许多不熟悉公交线路的乘客带来了方便。随着电子技术的不断发展,单片机技术的日益成熟,和多媒体技术的普遍应用,使得公交车语音报站器服务更加完善。本系统就是把单片机技术应用到公交车语音报站器上,方便乘客,使乘客在移动客车里感受到科技带

3、来的乐趣,使公交车的管理方便、快捷、效率高10。1.2 报站器的动态发展趋势随着科学技术的日益发展和进步,公共汽车行驶在现代文明程度高的市区,醒目和减少乘务人员劳动强度的电子报站器,电子显示路牌,无人售票装置,前后电视监视系统等新技术的采用也将越来越普及。gps(global positioning system)全球定位系统在各种行业,特别是车辆监控与全球定位系统中有广泛的应用。 公交车报站器直接影响到公交车的服务质量,在公交事业中占有举足轻重的地位。目前公交报站有三种方式,一种是利用gps全球卫星定位系统的公交车报站系统,目前美国部分城市投入使用,国内也有此类产品的研制开发,其功能强大,系

4、统稳定,但其投资昂贵,尤其是一些中小城市无法承受。目前我国部分城市采用手动电子报站和人工报站的方式,而它们都离不开司务人员,加大司乘人员的工作强度。手动电子报站一般由司机或者乘务员控制,经常出现错报,误报的情况,城市公共交通是市民出行的主要交通工具之一。提供舒适,安全、便捷的乘车环境,对于公交企业来说,不仅是应尽的责任,亦是不断追求的目标9。1.3 设计的主要目标任务本课题要求设计一公交车自动报站系统,以实现公交车的语音自动报站,即在进站、出站时候自动播报语音提示信息及服务用语。本设计要求利用 at89c51 作为主控芯片完成主控电路的设计,辅助电路要求包括电源电路,录音电路,放音电路,液晶显

5、示电路。单片机通过程序的设计,可以通过按键控制语音芯片和液晶显示,例如:按下rec按键实现语音的录制,play按键实现录音的播放,erase按键实现擦除,fwd1实现快进控制,vol1实现音量控制,ft1实现模式的控制等等。 1.4方案的选择公交车自动报站系统的设计主要是进站、出站自动播报站名及服务用语,准确、及时。公交车站自动报站器的设计,以 at89c51 为主控芯片,对外来脉冲计数,结合语音芯片 isd1700 输出语音,lcd1602显示站名。使用 at89c51 作为主控制芯片,通过控制报站时刻,完全无需人工介入,选用的语音芯片是美国isd 公司的isd1700,该芯片与其它语音芯片

6、相比较,其语音音质好,录放时间长。cpu控制:当到站时就输出信号控制语言芯片进行报站。控制按键:用于手动控制、手动调整语言芯片:由专用语音芯片isd1700 组成,可擦写,便于在不同公交线上使用。液晶显示:lcd1602外围电路配置简单,价格便宜,具有很高的性价比。1.5 设计总体思路公交车报站器系统主要由8个部分组成,即单片机模块、语音芯片、录音电路以及放音电路,电源模块,振荡电路,复位电路,液晶显示电路。单片机用于控制语音芯片进行放音和录音,电源用于提供单片机和语音芯片的工作电压。振荡电路提供给单片机工作所需的时钟信号。如图1-1图1-1 系统设计思路2硬件的选取2.1 51单片机模块本设

7、计选用双列直插的at89c51芯片,它提供以下标准功能:4k字节flash闪速存储器,128字节内部ram,32个i/o口线,两个16位定时/计数器,一个5向量两级中断结构,一个全双工串行通信口,片内振荡器及时钟电路。最显著的特点是内部含有 flash 存储器。at89c51单片机主要接口有:微处理器与扩展器件的接口;微处理器与键盘、显示模块的接口;微处理器与输出幅值调节电路的接口。at89c51 单片机的结构框图如图2-1 所示。另外,at89c51 是用静态逻辑来设计的,其工作频率可下降到0hz,并提供两种可用软件来选择的省电方式空闲方式(idle mode)和掉电方式(power dow

8、n mode)。在空闲方式中,cpu 停止工作,而ram、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作使一切功能都暂停,故只保存片内ram中的内容,直到下一个硬件复位为止。 图2-1 at89c51 单片机的结构框图2.1.1 主要性能指标 1. 与mcs-51 兼容 2. 4k字节可编程闪烁存储器寿命:1000 次写/擦循环,数据保留时间:10年 3. 全静态工作:0hz-24hz 4. 三级程序存储器锁定 5. 128*8 位内部ram 6. 32 可编程i/o 线 7. 两个16 位定时器/计数器8. 6 个中断源9. 可编程串行通道 10. 片内振荡器和

9、时钟电路1 2.1.2 引脚功能说明及功能at89c51芯片引脚图如图2-2。图2-2 at89c51芯片引脚图p3 口也可作为at89c51 的一些特殊功能口,如表2-1所示:表2-1引脚功能p3.0rxd(串行输入口)p3.1txd(串行输出口)p3.2/int0(外部中断0输入口)p3.3/int1(外部中断1输入口)p3.4t0(定时器0外部输入口)p3.5t1(定时器1外部输入口)p3.6/wr(写选通输出口)p3.7/rd(读选通输出口)2.1.3电源与晶振引脚xtal1:片内高增益方向放大器的输入端,接外部石英晶体和电容的一端。若使用外部输入时钟,该引脚必须接地xtal2:片内高

10、增益方向放大器的输出端,接外部石英晶体和电容的另一端。若使用外部输入时钟,该引脚作为外部输入时钟的输入端。vcc:供电电压。gnd:接地1。2.2 isd1700语音芯片isd1700系列芯片是华邦公司新推出的单片优质语音录放芯片,该芯片提供多项新功能, 包括内置专利的多信息管理系统, 新信息提示 (valert)双运作模式(独立&嵌入式),以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能4。isd1700芯片引脚图如图2-3。图2-3 isd1700芯片引脚图2.2.1 管脚说明2表2-2管脚名称管脚功 能

11、vccd1数字电路电源/led2led指示信号输出/reset3芯片复位miso4spi接口的串行输出。isd1700 在sclk 下降沿之前的半个周期将数据放置在 miso 端。数据在 sclk 的下降沿时移出mosi5spi接口的数据输入端口。 主控制芯片在 sclk 上升沿之前的半个周期将数据放置在 mosi 端。 数据在 sclk上升沿被锁存在芯片内。此管脚在空闲时,应该被拉高sclk6spi接口的时钟。由主控制芯片产生,并且被用来同步芯片mosi和miso端各自的数据输入和输出。此管脚空闲时,必须拉高。/ss7为低时,选择该芯片成为当前被控制设备并且开启 spi接口。空闲时,需要拉高

12、vssa8模拟地anain9芯片录音或直通时,辅助的模拟输入。需要一个交流耦合电容(典型值为0.1uf) , 并且输入信号的幅值不能超出1.0vpp。apc寄存器的d3可以决定analn信号被立刻录制到存储器中,与mic信号混合被录制到存储器中,或者被缓存到喇叭端并经由直通线路从aud/aux输出。mic+10麦克风输入+mic-11麦克风输入-vssp2 12负极 pwm 喇叭驱动器地sp-13喇叭输出-vccp14pwm喇叭驱动器电源sp+15喇叭输出+vssp116正极 pwm 喇叭驱动器地aud/aux17辅助输出,决定于apc寄存器的d7,用来输出一个aud或aux输出。aud是一个

13、单端电流输出,而auxout是一个单端电压输出。他们能够被用来驱动一个外部扬声器。出厂默认设置为aud。apc寄存器的d9可以使其掉电。agc18自动增益控制/vol19音量控制rosc20振荡电阻rosc用一个电阻连接到地,决定芯片的采样频率vcca21模拟电路电源/ft22在独立芯片模式下,当 ft 一直为低,analn 直通线路被激活。analn 信号被立刻从 analn 经由音量控制线路发射到喇叭以及 aud/aux 输出。d0所控制。该管脚有一个内部上拉设备和一个内部防抖动设计,当在 spi 模式下,spi无视这个输入,而且直通线路被 apc 寄存器的,允许使用按键开关来控制开始和结

14、束。/play23播放控制端/rec24录音控制端/erase25擦除控制端。/fwd26快进控制端rdy /int27一个开路输出。ready(独立模式)该管脚在录音,放音,擦除和快进操作时保持为低,保持为高时进入空闲状态interrupt(spi 模式) 在完成 spi 命令后,会产生一个低信号的中断。一旦中断消除,该脚变回为高。vssd28数字地2.2.2 isd1700具有以下特点:·可录、放音十万次,存储内容可以断电保留一百年。 ·两种控制方式,两种录音输入方式,两种放音输出方式 ·可处理多达 255 段以上信息 ·有丰富多样的工作状态提示 &

15、#183;多种采样频率对应多种录放时间 ·音质好,电压范围宽,应用灵活,价廉物美22.2.3 isd1700的电特性: ·工作电压:2.4v-5.5v,最高不能超过6v ·静态电流:0.5 - 1 a ·工作电流:20ma 用户可利用震荡电阻来自定芯片的采样频率,从而决定芯片的录放时间和录放音质。表2-3为 isd1700系列芯片的参数表:表2-3采样率isd1730isd1740isd1750isd1760isd1790isd17120isd1715012khz20secs26secs33secs40secs60secs80secs100secs8kh

16、z30secs40secs50secs60secs90secs120secs150secs6.4khz37secs50secs62secs75secs112secs150secs187secs5.3khz45secs60secs75secs90secs135secs181secs226secs4khz60secs80secs100secs120secs180secs240secs300 secs 而芯片的采样率可以通过外部振荡电阻来调节如表2-4: 表2-4采样频率12khz8khz6.4khz5.3khz4khz振荡电阻60k80k100k120k160k2.2.4内部寄存器1. 状态寄存器

17、sr0是两字节数据,由miso返回。它包括5个状态位 (d4:d0)以及11个地址位(a10:a0)状态寄存器d7d6d5d4d3d2d1d0a2a1a0inteompufullcmd_errd15d14d13d12d11d10d9d8a10a9a8a7a6a5a4a32. 状态寄存器sr1 d7d6d5d4d3d2d1d0se1se2se3se4recplayereserdy2.3lcd1602模块在本系统中用液晶显示模块显示公交站名,液晶显示模块具有体积小,功耗低,显示内容丰富,超薄轻巧等优点,目前字符型液晶显示模块已经是单片机应用设计中最常用的信息显示器件。2.3.1 lcd1602的简

18、介:lcd1602液晶显示模块,它可以显示两行,每行16个字符,采用+5v电源供电,外围电路简单,价格便宜,具有较高的性价比。lcd1602的引脚如图2-4:图2-4 lcd1602引脚图2.3.2 lcd1602的引脚功能如表2-5 7 表2-5引脚符号功能说明1vss电源地2vdd接电源(+5v)3v0(vee)液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会产生“鬼影”,使用时可以通过一个10k的电位器调整对比度)。4rsrs为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。5r/wr/w为读写信号线,高电平(1)时进行读操作,低电平(0

19、)时进行写操作。都为低电平时可以写入指令或者显示地址,当rs为高电平,r/w为低电平时可以写入数据。6ee(或en)端为使能(enable)端,下降沿使能。7db0底4位三态、 双向数据总线 0位(最低位)8db1底4位三态、 双向数据总线 1位9db2底4位三态、 双向数据总线 2位10db3底4位三态、 双向数据总线 3位11db4高4位三态、 双向数据总线 4位12db5高4位三态、 双向数据总线 5位13db6高4位三态、 双向数据总线 6位14db7高4位三态、 双向数据总线 7位(最高位)(也是busy flag)15leda背光+5v16ledk背光地2.3.3 lcd1602控

20、制指令1.清屏指令rsr/wdb7db6db5db4db3db2db1db00000000001功能:<1> 清除液晶显示器,即将ddram的内容全部填入"空白"的ascii码20h;            <2> 光标归位,即将光标撤回液晶显示屏的左上方;            <3> 将地址计数器(

21、ac)的值设为0。2显示开关控制rsr/wdb7db6db5db4db3db2db1db00000001dcb功能:设置显示,光标及闪烁开,关其中:d表示显示:1为开,0为关;c表示光标:1为开,0为关b表示闪烁:1为开,0为关3.光标,画面移动rsr/wdb7db6db5db4db3db2db1db0000001s/cr/l*功能:光标,画面移动,不影响ddram其中:s/c=1,画面平移一个字符位s/c=0,光标平移一个字符位r/l=1:右移;r/l=0:左移4功能设置:rsr/wdb7db6db5db4db3db2db1db000001dlnf*功能:工作方式设置其中:dl=1,8位数据

22、接口;dl=0四位数据接口; n=1,两行显示;n=0,一行显示;f=1,5 10点阵字符;f=0,5 7点阵字符2.3.4 读写控制时序rsrwe功能00下降沿写指令代码01高电平读忙标志和ac码10下降沿写数据11高电平读数据3硬件电路3.1单片机模块51单片机是整个电路的核心器件,外加晶振11.0592m电路及产生高电平的复位电路构成单片机的最小系统。复位电路能使整个系统的进行复位操作,让系统使用起来更加方便,硬件更加简洁。通过扫描和按键可以实现:a)录音跳线插在“rec”一侧是录音状态,按住“an”键不放,右侧指示灯亮即可对着板上话筒讲话录音,松键时录音停止并形成一段。再按则录下一段。

23、按“stop”键为复位,再录音时又从第一段开始;录音方式可选择mic录音b)放音  跳线插在“play”一侧是放音状态,按一下“an”键即播放一段,一段结束后自动停止放音,再按“an”则播放下一段。播放完最后一段后,再按下“an”键会继续播放第一段语音。按“stop”键为复位,再放音时又从第一段开始。c)芯片抹音长按“stop”3秒以上,右侧led灯会闪烁3下,并且1700芯片内所有语音内容将被擦除。 51单片机模块电路图如图3-1所示图3-1 51单片机模块电路图从图3.1中可以看出1和isd1700之间的连接。单片机的p1.4p1.6引脚接按键,控制报站器工作过程中录音

24、,放音,擦除,停止等操作;p1.0接isd1700的片选引脚/ss,控制isd1700是否选通;1.1接isd1700的串行时钟引脚。p1.2和p1.3接isd1700的串行输出引脚和串行输入引脚miso;0口和p2.0p2.2控制外围显示电路,在报站器工作过程中显示当前的站号;单片机通过四个口控制isd1700进行工作,在spi命令输入到isd1700前,spi端口的状态应该保持如下状态: /ss=high,sclk=high mosi=low。spi的时序如图3-2图3-2 spi的时序3.2 isd1700语音模块主控单片机主要通过四线(sclk,mosi,miso,/ss)spi协议对

25、isd1700进行串行通信。isd1700作为从机,几乎所有的操作都可以通过这个spi协议来完成。为了兼容独立按键模式,一些spi命令:play,rec,erase,fwd,reset和global_erase的运行类似于相应的独立按键模式的操作。允许用户指定录音、放音和擦除的开始和结束地址。语音模块电路图如图3-3所示 图3-3 语音模块电路图在isd1700的引脚上有vol、play、rec、erase、fwd、f/t等功能按键,分别对应于1700芯片的音量调节、放音、录音、擦除、快进、复位等操作。 录音操作:按下rec键,左侧led点亮时录音,松开即停止录音,led熄灭; 放音操作:按一

26、下play键,即播放当前段的声音,左侧led闪烁,当前段播放完毕自动停止,led熄灭;快进操作:按一下fwd 按钮将/fwd 端拉低,会启动快进操作。快进操作用来将播放指针移向下一段语音信息。当播放指针到达最后一段语音处时,再次快进,指针会返回到第一段语音。当下降沿来到/fwd 端时,快进操作还要决定于芯片当时的状态: 1)如果芯片在掉电状态并且当前播放指针的位置不在最后一段,那么指针会前进一段,到达下一段语音处。 2)如果芯片在掉电状态并且当前播放指针的位置在最后一段,那么指针会返回到第一段语音处。 3)如果芯片正在播放一段语音(非最后一段),那么此时放音停止,播放指针前进到下一段,紧接着播

27、放新的语音。 4) 如果芯片正在播放最一段语音,那么此时,放音停止,播放指针返回到第一段语音,紧接着播放第一段语音。擦除操作分为单段擦除和全体擦除两种擦除方式。1)单个擦除: 只有第一段或最后一段语音可以被单个擦除。点按一下erase 健将/erase 管脚拉低,这时具体的擦除情况要看播放指针的状态: 如果芯片空闲并且播放指针指向第一段语音,则会删除第一段语音,播放指针指向新的第一段语音(执行擦除操作前的第二段)如果芯片空闲并且播放指针指向最后一段语音,则会删除最后一段语音,播放指针指向新的最后一段语音(执行擦除操作前的倒数第二段) 如果芯片空闲并且播放指针指向没有指向第一或最后一段语音,则不

28、会删除任何语音,播放指针也不会被改变 如果芯片当前正在播放第一段或最后一段语音,点按下erase键会删除当前语音。 2)全体擦除: 当按下erase 键将/erase 管脚电平拉低超过2.5 秒钟, 会触发全体擦除操作,删除全部语音信息。 复位操作: 如果用reset控制此管脚,建议/reset管脚与地之间连接一个0.1f电容。当/reset被触发,芯片将播放指针和录音指针都放置在最后一段语音信息的位置。 音量操作: 点按一下vol键将/vol管脚拉低会改变音量大小。每按一下,音量会减小一档,再到达最小档后再按的话,会增加音量直到最大档,如此循环。总共有8个音量档供用户选择,每一档会改变4db

29、。复位操作会将音量档放在默认位置,即最大音量。 ft直通操作:将/ft管脚与gnd短接,持续保持在低电平会启动直通模式。出厂设定的是在芯片空闲状态,直通操作会将语音从analn端直接通往喇叭端或aud输出口。 在录音期间开启ft功能, 会同时录下analn进入的语音信号2。 以下是isd1700独立按键模式的流程图如图3-4图3-4 isd1700独立按键模式的流程图3.3电源模块电源模块主要为单片机和语音模块,液晶显示模块输入电压,可以输出+5v或者-+12v的电压,本系统主要的输入电压用的是+5v。变压器产生15v左右的辅助交流电,辅助电源的输入端电源由15v变压器的辅助线圈提供,经过整流

30、桥d整流后经电容c1滤成平稳的直流电作为三端稳压器lm7812的输入电源,同时lm7805的输入电源直接由lm7812输出端经过电容c3滤波后得到平稳的幅值为12v直流电提供,其输出电压通过电容c4进行滤波输出+5v的直流电。三端稳压器7805、7812产生所需的电源电压以供集成芯片和单片机使用。电源模块原理图如图3-5所示。图中发光二极管为lm7805正常工作指示信号。图3-5电源原理图3.4 放音电路isd1700芯片的连接还有音频信号输出引脚/aux,喇叭输出(sp+、sp-),此外,由于isd1700的工作电压为2.4v-5.5v,而单片机所需供电电压为,因此需要采用变压电路得到5电压

31、供isd1700使用。aud/aux:辅助输出。aud是一个单端电流输出,而auxout是一个单端电压输出。它们能够被用来驱动一个外部扬声器。喇叭输出(sp+、sp-):这对输出端能驱动 16以上的喇叭。单端使用时必须在输出端和喇叭间接耦合电容,而双端输出既不用电容又能将功率提高。录音时,它们都呈高阻态;节电模式下,它们保持为低电平。isd1700芯片的sp+、sp-端一定不要直接接地,只能接扬声器或者悬空。如图3-6图3-6 放音电路3.5录音电路本系统话筒信号耦合电容与连接micref端到模拟地的电容要相同。mic-:外接话筒通过串联电容耦合到此端。耦合电容值和此端的 4.7k输入阻抗决定

32、了芯片频带的低频截止点。mic+:此端是前置放大器的反向输入。当以差分形式连接话筒时,可减小噪声,提高共模抑制比。如图3-7图3-7 录音电路3.6振荡电路单片机的工作是在统一的脉冲控制下的进行的。这个脉冲就是由单片机控制器的时钟电路发出的,即时钟电路用于产生单片机工作所需的时钟信号。单片机本身就是一个复杂的同步时序电路,为了保证同步工作方式的实现,电路应在唯一的时钟信号控制下严格地按时序进行工作。时钟电路用于产生单片机工作的时钟信号。而时钟电路又各分为两种,即内部时钟方式和外部时钟方式。本系统采用内部时钟方式此种方式时,单片机内接一个高增益反向放大器构成内部振荡器。引脚xtal1和xtal2

33、分别是此放大器的输入端和输出端。同时在xtal1和xtal2两端跨接晶体或陶瓷谐振器构成稳定的自激振荡器,其发出的脉冲信号直接送入到内部时钟发生器。电容c21和c22通常选择为(30或10)pf左右;外接陶瓷谐振器时则选为47pf左右。电容c21和 c22对频率有微调作用。为了减少寄生电容,更好地保证振荡器可靠地工作,谐振器和电容应安装得与单片机芯片尽可能的近。内部时钟发生器实际上是一个二分频的触发器,该二分频为单片机提供一个二相的时钟信号即相位信号1(p1)和相位信号2(p2),驱动cpu产生执行指令功能的机器周期。这里我们采用的是12mhz晶振,也就时说单片机的时钟周期为1/12us,指令

34、周期为1us。晶体振荡器的频率越高,振荡频率就越高6。如图3-8图3-8 振荡电路3.7复位电路单片机复位电路设计的好坏,直接影响到整个系统工作的可靠性。在完成单片机系统开发,并在实验室调试成功后,在现场却出现了“死机”“程序跑飞”等现象,出现这种情况的主要因素可以分为内因和外因两部分。基本阻容复位电路是最简单的复位电路,利用了电容可以存储电荷的特性,和电阻组成串联网络。只要保证电容充放电的时间常数满足单片机的复位时间要求,就可以形成基本的复位电路。如图所示为基本阻容复位电路。这个复位电路时高电平有效复位电路。如图3-9放电的瞬间reset端的点位和vcc相同,随着充电电流的减少,reset的

35、点位逐渐下降,=rc,这个时间常数一般情况下足以保证完成复位操作。在单片机应用系统工作时,除了进入系统正常的初始化之外,当由于程序运行出错或操作错误使系统处于死锁状态时,为摆脱困境,也需按复位键以重新启动。所以,系统的复位电路必须准确、可靠地工作。单片机的复位都是靠外部电路实现的,在时钟电路工作后,只要在单片机的rst引脚上出现24个时钟振荡脉冲以上的高电平,单片机便实现初始化状态复位。为了保证应用系统可靠地复位,在设计复位电路时,通常使rst保持高电平。只要rst保持高电平,则单片机就循环复位5。图3-9 复位电路3.8液晶显示模块在本系统中单片机控制液晶显示模块的实现,说明:数据线db0d

36、b7连接单片机的p0口,3条控制线分别接p2.0,p2.1,p2.2;电阻r3用来调节液晶显示的对比度,电阻r2用来设置背光的亮度。在电路中用一组16根的排线来连接单片机和液晶显示器。如图3-10图3-10 液晶显示电路4软件实现4.1 设计总体思路电路上电后,首先完成程序的初始化,随后查询按键状态,进入系统待机状态。如果有an按键按下,查询电路中pr标志位状态,如果为pr=0则执行放音操作,否则就执行录音操作。在待机状态下,如果放音,自动读出第一站的放音内容,显示站号。如果不是首次按下,则首先判断当前站号,并以该站号为依据获得存放该站放音内容的首地址;然后调用放音程序,读入前面获得的本站放音

37、内容首地址,开始放音。an键接着按下后,程序放音内容转向下一站;相应的站号显示也将随之刷新;停止键按下,将中止当前的放音,放音状态。停止键按下三秒后,将擦除所有的语音内容。如果是录音的话,该站号为依据获得存放该站录音内容的首地址,然后调用录音程序,录入前面获得的本站录音内容首地址,开始录音。系统流程图如图4-1。如果循环存储体系处于令人满意的状态,那么可以使用play,rec,fwd,reset,erase这些命令,功能类似于1700的独立模式中相应的功能。图4-2为 isd1700相关操作流程图图4-1 系统流程图图4-2 isd1700相关操作流程图4.2 主程序#include &quo

38、t;reg51.h"#define uchar unsigned char #define uint unsigned int#define isd_pu      0x01    /isd芯片上电  #define isd_stop     0x02    /停止当前操作  #define isd_reset     0x03

39、    /isd芯片复位  #define isd_clr_int   0x04    /清除eom标志和中断信号  #define isd_rd_status   0x05   /返回状态寄存器的内容  #define isd_rd_playptr  0x06    /返回状态和放音指针  #define isd_pd

40、0; 0x07     /芯片下电  #define isd_rd_recptr   0x08    /返回状态和录音指针  #define isd_devid        0x09    /读取芯片id  #define isd_play        

41、0x40    /从当前地址放音  #define isd_rec           0x41    /从当前地址录音  #define isd_erase      0x42    /擦除当前段  #define isd_erase_all    

42、;0x43    /擦除所有当前段  #define isd_rd_apc       0x44    /返回状态寄存器和apc  #define isd_wr_nvcfg     0x46   /将apc的内容写非易失存储器  #define isd_ld_nvcfg     

43、0x47   /将nvcfg的内容装入apc中  #define isd_fwd          0x48   /将放音指针指向下一段语音起始地址  #define isd_chk_mem      0x49   /检测环形存储  #define isd_extclk  

44、60;    0x4a    /使能外部时钟  #define isd_set_play     0x80   /按指定地址放音  #define isd_set_rec      0x81    /按指定地址录音  #define isd_set_erase   &#

45、160;0x82 /按指定地址擦除#define isd_wr_apc2      0x65    /将<d11:d0>写入apc寄存器,并由<d2:d0>控制音量/sr0_l 0 1 2 3 4 5 6 7 /   cmd_err   full     pu    eom    int   &

46、#160; a0 a1 a2 /sr0_h 8 9 10 11 12 13 14 15 /a3 a4 a5 a6 a7 a8 a9 a10 /sr1 0 1 2 3 4 5 6 7 /     rdy    erase    play    rec     se1     se2    &

47、#160;se3    se4 /apc 0 1 2 3 4 5 6 7 /   vol0 vol1  vol2 mon_in mix_in  se_edit  spi_ft  aud/a ux(aud线路输出,aux直接驱动喇叭) /apc 8  9 10 11 /   pwm_spk  pu_ao  valert  eom_en(在setpla

48、y模式下,置1遇到eom则结束,否则继续播放)/*isd1700状态寄存器及各个标志位定义*/ unsigned char bdata sr0_l; / sr0 寄存器unsigned char bdata sr0_h; unsigned char bdata sr1; / sr1 寄存器unsigned char apcl=0,apch=0; / apc寄存器unsigned char playaddl=0,playaddh=0; / 放音指针低位,高位 unsigned char recaddl=0,recaddh=0; / 录音指针低位,高位 sbit cmd=sr0_l0; / spi

49、 指令错误标志位 sbit full=sr0_l1; / 芯片存储空间满标志sbit pu=sr0_l2; /上电标志位sbit eom=sr0_l3; / eom 标志位 sbit int=sr0_l4; / 操作完成标志位sbit rdy=sr10; / 准备接收指令标志位sbit erase=sr11; /擦除标志位sbit play=sr12; / 播放标志位sbit rec=sr13; / 录音标志位/*标志位定义*/ uchar bdata flag;sbit pr_flag=flag1; / 放音/录音标志位:0=放音,1=录音sbit erase_flag=flag4; sbi

50、t stop_flag=flag7;/*端口定义*/sbit ss=p10;sbit sck=p11;sbit mosi=p12;sbit miso=p13;sbit switch_pr=p14; /play=0;rec=1;sbit key_stop= p15; sbit key_an= p16;sbit led= p17;/* 函数原型: void cpu_init(void)功 能: cpu及系统变量初始化 */void cpu_init(void) p0=p1=p2=p3=0xff; tmod=0x01; / 定时器初始化 ea=0; / 关闭中断 flag=0; / 标志位归0 le

51、d=1;/*函数原型:void isd_init(void);功 能:系统初始化*/void isd_init(void) uchar i=2; clrint(); ss=1; isd_chk_mem(); sclk=1; isd_wr_apc2(0x40,0x04); /直通关闭 mosi=0; isd_rd_apc(void); do do isd_rd_status();isd_pu(); / 上电 while(rdy=0); delay(50); doled=0; isd_rd_status(); / 读取状态 delay(300) while(cmd|(!pu); /再次发送 led=1;上电指令 sp无效 delay(300);id=rd_devid();/读取芯片id i-;while(i>0); /* * 函数原型: void isdwork (void) * 功 能:对isd1700进行的相关操作*/ void isdwork (void)uchar i; switch (flag) case 0x00: /放音 / isd_clr_int(); doisd_rd_status(); while(rdy=0); /isd_chk_mem(); 空间检查 delay(10); isd_play(); del

温馨提示

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

最新文档

评论

0/150

提交评论