《单片机与接口技术》课程设计-公交车自动报站器的设计.doc_第1页
《单片机与接口技术》课程设计-公交车自动报站器的设计.doc_第2页
《单片机与接口技术》课程设计-公交车自动报站器的设计.doc_第3页
《单片机与接口技术》课程设计-公交车自动报站器的设计.doc_第4页
《单片机与接口技术》课程设计-公交车自动报站器的设计.doc_第5页
已阅读5页,还剩43页未读 继续免费阅读

下载本文档

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

文档简介

物理与电子信息学院课程设计报告书 姓名: 班级: 08电信(本) 学号: 时间: 2010年12月 目录1设计任务和要求22方案论证22.1 方案比较22.1.1 方案一32.1.2 方案二32.2 方案选择43系统硬件设计43.1 主控电路的设计53.1.1 关于AT89C51单片机53.1.2 振荡器电路的设计73.1.3 复位电路的设计93.2 DS1302时钟电路123. 3 DS18B20数字温度传感器133.4 语音输出电路的设计153.4.1 关于语音芯片153.4.2 录音、放音电路的设计203.5 LCD12864液晶显示的设计224 软件设计234.1 主控程序的设计234.2程序清单245 系统测试结果及分析265.1测试方法265.2 测试结果及分析276 结束语与心得体会27参考文献27附录128附录244设计题目公交车自动报站器的设计设计要求 设计一种基于以AT89S52单片机和语音芯片ISD4004为核心公交车自动报站系统。LCD12864液晶显示时间以及车内的温度,实时显示年、月、日、星期、时、分、秒,采用按键式实现时钟对表和快慢调整。同时,每到一站会有语音提示和标语提示。设计过程 摘要: 本次课程设计以实现公交车的语音自动报站,即在进站、出站时候自动播报语音提示信息及服务用语,同时利用LCD电路进行汉字显示。本设计要求利用AT89C52作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、汉字点阵显示电路、时钟电路、电源电路等。本系统使用了专门的时钟芯片DS1302,读出其时间在LCD12864上显示,并能通过按键对其进行调时和校准。温度使用DS18B20数字温度传感器,以显示车内的温度。语音芯片使用ISD4004-8MP,ISD4004-8MP是使用很广泛的语音芯片。该芯片具有很强大的功能,可容纳300个站点信息和8分钟语音广告信息。关键字:AT89S52单片机、DS1302,LCD12864,DS18B20,公交报站1.设计任务和要求(1) 应用AT89S52单片机设计单片机实现对DS1302和DS18B20以及语音芯片ISD4004的控制(2) . 选用LCD12864显示,实时显示年、月、日、星期、时、分、秒,采用按键式实现时钟对表和快慢调整;(3) 硬件设计部分,根据设计的任务选定合适的单片机,根据控制对象设计接口电路。设计的单元电路必须有工作原理,器件的作用,分析和计算过程;(4) 软件设计部分,根据电路工作过程,画出软件流程图,根据流程图编写相应的程序,进行调试并打印程序清单;(5) 原理图设计部分,根据所确定的设计电路,利用Protel99se和Protues工具软件绘制电路原理图。2.方案论证2.1 方案比较2.1.1 方案一语音芯片控制信号脉冲计数CPU控制输出显示放音电路脉冲检测公交车自动报站器的设计,对车轮轴的转角的脉冲进行计数,将计数值与预置值对比,即可确定报站时刻,达到准确自动的目的。以AT89C52为主控芯片,对外来脉冲计数,结合语音芯片ISD4004输出语音。系统由脉冲检测、脉冲计数、CPU控制、控制信号、语音芯片、输出显示等组成。原理框图如图2.1所示。 图2.1 方案1原理框图(1) 脉冲检测:该系统关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的 环境中运行,故采用可靠的霍尔元件DN6848作为信号的采集装置,再经光电耦合器4N25输入给单片机。(2) 脉冲计数:光电耦合器的信号进入C51后,采用中断方式对脉冲计数。外部晶振12MHz。(3)CPU控制:程序中将计数值于预置值进行比较,判断是否到站,当到站时就输出信号控制语言芯片进行报站。(4)控制按键:用于手动控制、手动调整、预置值的输入等(5) 语言芯片:由专用语音芯片ISD4004组成,可擦写,便于在不同公交线上使用。(6)输出显示:LCD液晶汉字显示。(7)预置存储:采用两种方式存储,一种是在烧写器上将数据写入,另一种是在车上,单片机处于输入状态,车辆行驶一遍,将站与站之间的脉冲数写入片内。2.1.2 方案二利用8051单片机作为CPU来进行总体控制,当汽车到达某站时,汽车司机通过键盘来控制本系统进行工作,并且,系统将使用状态指示电路,向司机指示出当前的行驶方向及站号(如与实际方向不符,司机可通过键盘来调整)。原理图框图如图2.2所示。语音合成电路8051小系统LED点阵显示电路语音输入输出电路键盘状态指示电路 图2.2方案二原理框图本系统使用8051作为CPU,由CPU来控制语音合成芯片TC8830AF,使其工作在CPU控制模式下。当系统进行语音再生时,由CPU控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。CPU同时通过程序读取汉字信息,送入LED点阵显示电路来进行汉字提示。当系统进行语音录制时,语音信号通过语音输入电路输入给语音合成电路中的语音合成芯片,由语音合成芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。2.2 方案选择将方案一与方案二进行比较,方案二是采用8051单片机控制,通过键盘来控制报站时刻,并不完全符合设计的要求,它仍然需要操作员员手动控制,所以本课题决定选用方案一,它使用AT89C51作为主控制芯片,通过对里程的计数来控制报站时刻,完全无需人工介入,选用的语音芯片是美国ISD公司的ISD4004,该芯片与其它语音芯片相比较,其语音音质好,录放时间长。3.系统硬件设计公交车报站系统主要由四个部分组成,即主控电路、时钟电路、语音电路以及LCD液晶汉字显示电路。各部分电路的设计在本章中做了详细的说明。3.1 主控电路的设计3.1.1 关于AT89C51单片机AT89C51单片机的结构框图如图3.1所示。它主要由下面几个部分组成:1个8位中央处理单元(CPU)、片内Flash存储器、片内RAM、4个8位的双向可寻址I/O口、1个全双工UART(通用异步接收发送器)的串行接口、2个16位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。在AT89C单片机结构中,最显著的特点是内部含有Flash存储器,而在其他方面的结构,则和Inter公司的8051的结构没有太大的区别。CPU中断控制振荡器片内Flash存储器总线控制片内RAM4I/O端口ETC定时器1定时器0串行端口外部中断P0 P2 P1 P3地址/数据TXD RXD计数器输入图3.1 AT89C51单片机的结构框图(1)主要性能与MCS-51 兼容;4K字节可编程闪烁存储器; 1000次写/擦循环;数据保留时间10年;全静态工作:0Hz-24Hz;三级程序存储器锁定;128*8位内部RAM;32可编程I/O线;两个16位定时器/计数器; 6个中断源;可编程串行通道;片内振荡器和时钟电路另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式空闲方式(Idle Mode)和掉电方式(Power Down Mode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一个硬件复位为止。(2)引脚功能说明AT89C51引脚图如图3.2所示。图3.2 AT89C51引脚图VCC:供电电压。VSS:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8个TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的低八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。P3口也可作为AT89C51的一些特殊功能口,口管脚备选功能:P3.0 RXD(串行输入口);P3.1 TXD(串行输出口);P3.2 /INT0(外部中断0);P3.3 /INT1(外部中断1);P3.4 T0(记时器0外部输入); P3.5 T1(记时器1外部输入); P3.6 /WR(外部数据存储器写选通);P3.7 /RD(外部数据存储器读选通);P3口同时为闪烁编程和编程校验接收一些控制信号。RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。/PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。/EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。.XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡器的输出。3.1.2 振荡器电路的设计89系列单片机的内部振荡器电路如图3.3所示,由一个单级反相器组成。XTAL1为反相器的输入,XTAL2为反相器的输出。可以利用它内部的振荡器产生时钟,只要在XTAL1和XTAL2引脚上外接一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器,如图3.5示,此方法称为内部方式。另一种使用方法如图3.4示,由外部时钟源提供一个时钟信号到XTAL1端输入,而XTAL2端浮空。在组成一个单片机应用系统时,多数采用图3.5所示的方法,这种方式的结构紧凑,成本低廉,可靠性高。振荡器的等效电路如图3.5上部所示。在图中给出了外接元件,即外接晶体及电容C1,C2,并组成并联谐振电路。在电路中,对电容C1和C2的值要求不是很严格,如果用高质的晶振,则不管频率为多少,C1,C2通常都选择30pF。有时,在某些应用场合,为了降低成本,晶体振荡器可用陶瓷振荡器代替。如果使用陶瓷振荡器,则电容C1,C2的值取47pF。XTAL2XTAL1内部定时/PD400D1D2Q1RfQ2VCCQ3Q4图3.3 AT89C51单片机内部振荡器电路XTAL2XTAL1GNDNCCMOS门外部振荡信号图3.4 外部时钟接法XTAL1XTAL289系列单片机GND内部定时VCC/PDRf石英晶体或陶瓷振荡器C1C2 图3.5 片内振荡器等效电路通常,在单片机中对所使用的振荡晶体的参数要求:ESR(等效串联电阻):根据所需频率按图366选取。C0(并联电容):最大7.0pF。CL(负载电容):30pF+3pF。其误差及温度变化的范围要按系统的要求来确定。6005004003002001000 4 8 12 16 图3-6 ESR与频率的关系曲线在本设计中,采用的是内部方式,即如图3.5所示,在XTAL1和XTAL2引脚上外接一个12MHZ的晶振及两个30pF的电容组成。3.1.3 复位电路的设计89系列单片机与其他微处理器一样,在启动的时候都需要复位,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如RST引脚上有一个高电平并维持2个机器周期(24个振荡周期),则CPU就可以响应并将系统复位。复位时序如图3.7所示,因外部的复位信号是与内部时钟异步的,所以在每个机器周期的S5P2都对RST引脚上的状态采样。当在RST端采样到“1”信号且该信号维持19个振荡周期以后,将ALE和/PSEN接成高电平 ,使器件复位。在RST端电压变低后,经过1-2个机器周期后退出复位状态,重新启动时钟,并恢复ALE和/PSEN的状态。如果在系统复位期间将ALE和/PSEN引脚拉成低电平,则会引起芯片进入不定状态。| S5 | S6 | S1 | S2 | S3 | S4 | S5 | S6 | S1 | S2 | S3 | S4 | S5 | S6 | S1 | S2 | S3 |RST:INST ADDR INST ADDR INST ADDR INST ADDR INST ADDR INSTALE:/PSEN:P0:11振荡周期19振荡周期图3.7 内部复位定时时序(1) 手动复位手动复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源VCC之间接一个按钮。当人为按下按钮时,则VCC的+5V电平就会直接加到RST端。由于人的动作很快也会使按钮保持接通达数十毫秒,所以,保证能满足复位的时间要求。手动复位的电路如图3.8所示。Vcc AT89C51RST GND8.2k10uF+Vcc 图3.8 手动复位电路(2) 上电复位AT89C51的上电复位电路如图3.9所示,只要在RST复位输入引脚上接一电容至VCC端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1uF。上电复位的过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的高电平信号必须维持足够长的时间。上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。在图3.8的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“1”态。如果系统在上电时得不到有效的复位,则在程序计数器PC中将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。VccAT89C51RST8.2k10uF+VccGND 图3.9 上电复位电路(3) 复位后寄存器的状态当系统复位时,内部寄存器的状态如表3.1所列,即在SFRS中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余的寄存器全部清0,端口锁存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。内部RAM的状态不受复位的影响,在系统上电时,RAM的内容是不定的。在本设计中复位电路采用的是手动复位,即如图3.8所示。表3.1各特殊功能寄存器的复位值专用寄存器复位值专用寄存器复位值PC0000HTCON00HACC00HB00HPSW00HSP07HDPTR0000HP0-P3FFHIP00000BIE000000BTMOD00HTH000HTL000HTH100HTL100HSCON00HSBUF不定PCON(CHMOS)00000B3.2 DS1302时钟电路时钟芯片DS1302与外围电路的连接:与MCS-51单片机的接口是由3条线来完成的,AT89S52单片机的P1.0与时钟芯片的数据传输端I/O相连,P1.1用来作为DS1302输入时钟SCLK控制端,P1.2控制DS1302的复位输入端RST。DS1302的X1和X2管脚外接标DS1302的复位引脚通过把输入驱动置高电平来启动所有的数据传送。 输入有两种功能:首先,接通控制逻辑,允许地址命令序列送入移位寄存器;其次,提供了终止单字节或多字节数据的传送手段。当为高电平时,所有的数据传送被初始化,允许对DS1302进行操作。如果在传送过程中置为低电平,则会终止此次数据传送,并且I/O引脚变为高阻态。上电运行时,在Vcc2.5V之前,必须保持低电平。只有在SCLK为低电平时,才能将RST置为高电平。电路图如图3.10所示。图3.10数字钟总原理图3. 3 DS18B20数字温度传感器DS18B20 数字温度传感器是DALLAS 公司生产的1Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计。(1)DS18B20 产品的特点只要求一个I/O 口即可实现通信;在DS18B20 中的每个器件上都有独一无二的序列号;实际应用中不需要外部任何元器件即可实现测温。测量温度范围在55 到125之间; 在-10 +85范围内误差为5;数字温度计的分辨率用户可以从9 位到12 位选择。将12位的 温度值转换为数字量所需时间不超过750ms;内部有温度上、下限告警设置。(2)DS18B20 详细引脚功能描述DS18B20引脚分布图如图3.11。图3.11 DS18B20引脚分布图 GND 地信号;DQ数据输入出引脚。开漏单总线接口引脚。当被用在寄生电源下,此引脚可以向器件提供电源;漏极开路, 常太下高电平. 通常要求外接一个约5k的上拉电阻;VDD可选择的VDD 引脚,电压范围:35.5V; 当工作于寄生电源时,此引脚必须接地。(3)DS18B20存储器结构图 图3.12 DS18B20存储器结构图暂存储器的头两个字节为测得温度信息的低位和高位字节; 第3, 4字节是TH和TL的易失性拷贝, 在每次电复位时都会被刷新;第5字节是配置寄存器的易失性拷贝, 同样在电复位时被刷新;第9字节是前面8个字节的CRC检验值.配置寄存器的命令内容如表3.2。 表3.2 配置寄存器的命令内容0R1R011111 MSB LSB其中R0和R1是温度值分辨率位, 按表3.3进行配置.默认出厂设置是R1R0 = 11,即12位.表3.3 温度值分辨率配置表R1R0分辨率最大转换时间(ms)009bit93.75(tconv/8)0110bit183.50(tconv/4)1011bit375(tconv/2)1112bit750 (tconv)4种分辨率对应的温度分辨率为0.5, 0.25, 0.125, 0.0625(即最低一位代表的温度值),12位分辨率时的两个温度字节的具体格式如表3.4.表3.4. 12位分辨率时的两个温度字节的具体格式低字节: 232221202-12-22-32-4高字节: SSSSS262524其中高字节前5位都是符号位S, 若分辨率低于12位时, 相应地使最低为0,如: 当分辨率为10位时, 低字节为: 232221202-12-200高字节不变。一些温度与转换后输出的数字参照如表3.5。温度数字输出换成16进制+12500000111 1101000007D0H+8500000101 010100000550H+25.062500000001 100100010191H+10.12500000000 1010001000A2H+0.500000000 000010000008H000000000 000000000000H-0.511111111 11111000FFF8H-10.12511111111 01011110FFE5H-25.062511111110 01101111FF6FH-5511111100 10010000FC90H表3.5 温度值转换配置表3.4 语音输出电路的设计3.4.1 关于语音芯片(1) ISDWinbond语音芯片概述美国ISD(Information Storsge Devices)公司是专业研制和生产先进的半导体语音芯片的著名厂家和领导者,其开发的高密度“多级”存储方法称作“ChipCorder”的专业技术,可以在一个存储单元存储256级的不同电平,即存储相同信息仅需要用传统存储技术1/8的存储空间。该公司与1998年12月被台湾华邦(Winbond)并购,1990年改名为WECA(Winbond Electronic Corpration American),但保留其ISD名称和标识,这个合并将把ISD公司领先的信息存储、语音录放技术和强大的用户群与Winbond公司的高效率的制造能力和分布于全时间的营销能力结合起来。ISD系列语音芯片有ISD1100系列、ISD1200系列、ISD1400系列、ISD2500系列、ISD4000系列和ISD5000系列几种。ISD1100系列中有10s和12s的单片声音录放器件ISD1110和ISD1112。ISD1200系列中有10s和12s的单片声音录放器件ISD1210和ISD1212。ISD1400系列中有16s和20s的单片声音录放器件ISD1416和ISD1620。ISD1800系列中有8s、10s、12s和16s的单片单段声音录放器件ISD1810。ISD2500系列中有32s、40s、48s、64s和60s、75s、90s、120s的单片声音录放器件ISD2532、ISD2540、ISD2548、ISD2564和ISD2560、ISD2575、ISD2590、ISD120。ISD4000系列中有120s、150s、180s和240s的单片声音录放器件ISD4001、ISD4002、ISD4003和ISD4004。ISD5000系列中有4min、5min、6min和8min的单片声音录放器件ISD5008。其中ISD1100系列、ISD1200系列和ISD1400系列都是独立使用;ISD2500系列是手动切换或则与微控制器兼容,放音时可以用边沿或电平进行触发;ISD4000系列、ISD5000系列都带有微控制器SPI或Microwire串行接口。(2)语音芯片ISD4004ISD4000系列单片声音录放器件是用CMOS工艺实现的高语音质量、3V工作电压的集成电路芯片,特别适用于移动电话和各种便携式产品。按录放时间又分ISD4002、ISD4003和ISD4004三个子系列。片内集成有振荡器、抗混叠滤波器、平滑滤波器、自动静音电路、音频放大器和高密度多级Flash存储阵列。这个系列的新片要求用于微处理器或微控制器系列,通过串行外围接口SPI或Microwire串行接口进行寻址和控制。录音数据被存放方法是通过ISD的多级存储专利技术实现的,用声音和声频信号的自然形式直接存放在故态存储器中,从而提供高质量回放语音的保真度。ISD4004的主要性能及其特点 :单片实现声音录放功能;采用单一3V工作电压;低功耗:典型的录音工作电流为25mA;典型的放音工作电流为15mA,典型待机节能状态电流为1uA;单片录放时间为8min、10min、12min和16min;高质量自然的声音/音频回放;自动静音电路可以在无声状态时消除背景噪音;不需要考虑实现算法;具有微控制器SPI或Microwire串行接口;可以对多段信息寻址控制;可以通过SPI或Microwire控制寄存器控制功耗;语音数据断电不丢失,可以保存100年;允许反复录音10万次;片上带有时钟源;有PDIP、SOIC、TSOP和CSP多种封装形式;使用温度范围有商业用扩展型和工业用两种可供选择:商业品扩展型:-20+70,工业品:-40+85。ISD4004.外部引脚及其说明:电源 (VCCA,VCCD):为使噪声最小,芯片的模拟和数字电路使用不同的电源总线,并且分别引到外封装的不同管脚上,模拟和数字电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件;地线(VSSA,VSSD):芯片内部的模拟和数字电路也使用不同的地线;同相模拟输入(ANA IN+): 这是录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰峰值32mV,耦合电容和本端的3K电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰峰值16mV,为ISD33000系列相同;反相模拟输入(ANA IN-):差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰峰值16mV;音频输出(AUD OUT):提供音频输出,可驱动5K的负载;片选(SS):此端为低,即向该ISD4004芯片发送指令,两条指令之间为高电平;串行输入(MOSI):此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,供ISD输入;。串行输出(MISO):ISD的串行输出端。ISD未选中时,本端呈高阻态;串行时钟(SCLK):ISD的时钟输入端,由主控制器产生,用于同步MOSI和MISO的数据传输。数据在SCLK上升沿锁存到ISD,在下降沿移出ISD;中断(/INT):本端为漏极开路输出。ISD在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取。OVF标志-指示ISD的录、放操作已到达存储器的未尾。EOM标志-只在放音中检测到内部的EOM标志时,此状态位才置;行地址时钟(RAC):漏极开路输出。每个RAC周期表示ISD存储器的操作进行了一行(ISD4004系列中的存贮器共2400行)。该信号175ms保持高电平,低电平为25ms。快进模式下,RAC的218.75s是高电平,31.25s为低电平。该端可用于存储管理技术;外部时钟(XCLK):本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 +1%内。商业级芯片在整个温度和电压范围内, 频率变化在+2.25%内。工业级芯片在整个温度和电压范围内,频率变化在-6/+4%内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟(如前表所列)。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接地时钟时,此端必须接地;自动静噪(AMCAP):当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于养活无信号(静音)时的噪声。通常本端对地接1mF的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1mF的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。图3.13 ISD4004引脚图极限参数:支流电源电压范围(VccVss):-0.3+0.7V;输入电压范围(所有引脚):(Vss-0.3V)(Vcc+0.3V);输入电压范围(所有引脚,输入电流不超过20mA):(Vss-1.0V)(Vcc+1.0V);输入电压范围(MOSI、SCLK、INT、RAC、SS引脚,输入电流不超过20mA):(Vss-1.0V)5.5V;结温:+150;存储温度范围(Tstg):-65+150;引脚焊接温度(10s):+300; 串行外围接口SPI;ISD4004SPI串行接口协议:ISD4004SPI的串行操作是通过SPI串行接口实现的,SPI串行接口协议:数据传输协议设定微控制器SPI的移位寄存器是有串行时钟SCLK的下降沿驱动。而对ISD4004数据输入是由MOSI引脚上的上升沿驱动,数据输出是由MISO引脚上的下降沿驱动;所有串行数据传送都是由/SS引脚上的下降沿开始;在所有串行通信期间,/SS引脚上都保持低电平,而在两条指令之间保持高电平;数据输入由时钟的上升沿驱动,数据输出由时钟的下降沿驱动;录音和放音操作的初始化是通过把/SS引脚为低电平使能芯片,把操作码和地址串行输入;输入操作码和地址的格式如:和;每个由EOM或溢出产生的结果信号都将产生中断,包括报文周期插入周期。当下一次初始化SPI周期时,中断将被清除;当中断数据被移位移出MISO引脚时,控制和地址数据就同时被移进MOSI引脚。需要注意的是,移入的数据与当前系统的操作是一致的。有可能在同一个SPI周期读中断数据和启动一个新的操作;任何一个操作都是从RUN位被置1开始,由RUN位清零结束;所有的操作都是有/SS的上升沿开始;SPI控制寄存器用于各个期间功能的控制,这些控制包括放音、录音、报文插入、上电和掉电、启动和停止操作以及忽略地址指针等。ISD4004SPI是控制寄存器:N控制寄存器:用于控制操作。当其为1时,启动操作;当其为0时,停止操作。/控制寄存器:用于选择放音和录音操作。当其为1时选择放音操作;当其为0时,选择录音操作。MC控制寄存器:用语控制报文插入功能。当其为1时,允许报文插入;当其为0时,关闭报文插入功能;PU控制寄存器:用于主电源控制。当其为1时,控制上电;当其为0时,掉电进入节能状态;IAB控制寄存器:忽略地址控制位。当其为1时,忽略输入地址寄存器的内容A9-A0/A15-A0。当其为0时,使用在操作上使用的输入地址寄存器的内容A9-A0/A15-A0。当IAB被清0时,放音或录音操作就从地址A9-A0/A15-A0开始。为了连续放音或录音,IAB应该在相应行结束前变为1,否则将会从同一行的地址处重复操作。存储器管理时,RAC(行地址时钟)引脚和IAB可以用来绕着存储器分段移动;P9-P0/P15-P0:行指针寄存器的输出;A9-A0/A15-A0:输入地址寄存器。MOSIC4 C3 C2 C1 C0 A15 A14 A13 A12 A11 A10 A9 A8 A7 A6 A5 A4 A3 A2 A1 A0报文插入(MC)忽略的地址(IAB)上电(PU)放音/录音(P/R)运行MISOOVF EOM P0 P1 P2 P3 P4 P5 P6 P7 P8 P9 P10 P11 P12 P13 P14 P15 0 0 0 0 0 0图3.14 SPI端口及其相关控制位示意图3.4.2 录音、放音电路的设计ISD4004声音录放器件的采样频率为6.4kHz,它单片录放时间有8min、10min、12min和16min几种,其采用内置非易失性FLASH存储器,这种快擦写存储器断电不会丢失数据,所以保存数据不需要耗电。典型的被存储信息可以保存时间高达100年,同一个存储单元可以反复被录音10万次。(1)功放电路的设计ISD4004芯片的音频输出引脚AUD OUT可以驱动一个5k的负载,当器件上电后,该引脚输出的电源为1.2V。本设计中选用的放大器是LM386,LM386是为低电压应用设计的音频功率放大器,其工作电压为6V,最大失真度为0.2,功率频响为20100kHz。功放电路连线图如图3.15所示。图3.15 功放电路由于功率放大器LM386要接+6V电压,因此还需要一个电压变换电路将24V电压变换成+6V的电压。这里选用的是芯片LM317。LM331是三端可调式集成稳压器,其电路结构和外接元件如图3.15所示。它的内部电路有比较放大器、偏置电路(图中未画出)、恒流源电路和带隙基准电压等,它的公共端改接到输出端,器件本身无接地端。所以消耗的电流都从输出端流出,内部的基准电压(约1.2V)接至比较放大器的同相端和调整端之间。若接上外部的调整电阻R1、R2后,输出电压为 (3.2) LM317的=1.2V,=50uA,由于调整端电流 ,故可以忽略,所以上式化简为 (3.3) 基准电压比较放大器调整管VrefIVbTI1IadjI2+-ViVoadj+R1R2图3.16 三端可调试集成稳压器结构图电压变换电路连线图如图3.17所示。图3.17 电压变换电路(2) 录音电路的设计Vcc连线图如图3.18所示,MIC是麦克风,即语音信号的输入端,输出的模拟语音信号经过三极管组成的放大器放大后加到ISD4004语音芯片的ANA IN-反向模拟输入端。 图3.18 录音电路3.5 LCD12864液晶显示的设计FYD12864-0402B是一种具有4位/8位并行、2线或3线串行多种接口方式,内部含有国标一级、二级简体中文字库的点阵图形液晶显示模块;其显示分辨率为12864, 内置8192个16*16点汉字,和128个16*8点ASCII字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示84行1616点阵的汉字. 也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。其基本特性:低电源电压(VDD:+3.0-+5.5V);显示分辨率:12864点;内置汉字字库,提供8192个1616点阵汉字(简繁体可选);内置 128个168点阵字符;2MHZ时钟频率;显示方式:STN、半透、正显;驱动方式:1/32DUTY,1/5BIAS;视角方向:6点;背光方式:侧部高亮白色LED,功耗仅为普通LED的1/51/10;通讯方式:串行、并口可选;内置DC-DC转换电路,无需外加负压;无需片选信号,简化软件设计;工作温度: 0 - +55 ,存储温度: -20 - +60 。 图3.19 LCD12864方框图4 软件设计4.1 主控程序的设计流程图如图4.1所示 图4.1 整体流程图首先,设备上电以后,程序开始运行。进入主函数后,开始对系统的一些初始化。初始化完成以后,因为在被系统的设计中,我们是利用外部中断来进行计数来模拟汽车车轮前进的圈数。当我们计数值没有到达,则我们应该返回,如果在这个时候我们按下了复位键,这是程序也的返回。当我们计数的值到达以后,我们这个时候可以调用语言报站程序,使喇叭发出声音,同时LCD12864上显示相应的信息。提醒乘客站点已到。如果语音报站程序执行完毕以后,程序自然返回到开始出,在重新执行。4.2语音报站子程序设计 图4.2 语音报站程序流程 从上面的程序流程图可以看到,首先是ISD4004芯片的一些初始化,当芯片初始化完成以后,如果外部中断产生,则count开始加一工作,每加一次则对count进行比较一次,如果与设定的值相等,则playbit和playcount会有不同的值,然后程序会根据playcount的值进入相应的子程序中调用语音报站程序,从而实现每到一站进行语音提示。当结束语音报站程序后,程序结束,又一次进入就绪状态,等待下一次的中断和count的计数值来判断执行相应的程序。4.3调整时间子程序设计 图4.3 时间调整流程一 从上图可以看到,调整时分秒的流程很简单,主要是要注意时分秒的范围大小,时的大小是从023,而分秒的范围是059.如果我们按下了调整键,当我们按下时间加一键时,相应的位置上时间将会加一,同样的当我们按下减一键时,相应位置上的时间也会减一。当我们按下复位键时,所以的时间将复位。 图4.4 时间调整流程二 从上图可以看到,调整年月日星期的流程,主要是要注意年月日星期的范围大小。如果我们按下了调整键,当我们按下时间加一键时,相应的位置上时间将会加一,同样的当我们按下减一键时,相应位置上的时间也会减一。比如我们时间调整正好在星期的位置上,当我们按下S1键时,我们可以看到星期加一,当我们按下S2键的时候,我们可以看到星期减一。同样的,对于年月日也是同样的调整,当我们按下复位键时,所以的时间将复位。 整个系统的主要程序的流程如上面几个程序流程图所示,而程序的清单见附录1。5 系统测试结果及分析5.1测试方法 首先准备好一个5v的直流电源,为本系统加上电源。一上电,可以看到LCD12864液晶上会显示年,月,日,星期,时,分,秒以及温度值。同时也可以看到时钟在走。这个时候我们按下时钟调整键,进行时钟的调整。调整完时钟以后,可以用学生卡穿过光耦合器,每5次为一组,当做完一组时,可以听到语音报站的声音。说明测试成功。5.2 测试结果及分析 系统加上电源,我们可以看到了LCD12864液晶上会显示年,月,日,星期,时,分,秒以及温度值。同时也可以看到时钟在走。这个时候我们按下时钟调整键,进行时钟的调整。测试后可以正确的调整时钟。调整完时钟以后,我们用学生卡穿过光耦合器,每5次为一组,当做完一组时,听到了语音报站的声音,说明测试成功。测试图片如附录2。6 结束语与心得体会通过本次设计,使我对单片机的了解有了更加深一步,我发现只有动手做才会孰能技巧,还有对材料的整理和理解。这次设计运用到的知识很多方面,尤其是单片机,像AT89S52,引脚多,硬件内部线路接通,所以用起来很方便,还有DS1302芯片,温度传感器DS18B20,语音芯片ISD4004与单片机之间的连接以及如

温馨提示

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

评论

0/150

提交评论