养殖 - 种植 - 加工 - 创业 - 骗局 - 问答 - 百科 - 节气 - 民俗 - 手机版
您的当前位置: 致富创业网 > 创业大全 > 开店创业 > 公交车报站系统

公交车报站系统

来源:开店创业 时间:2020-06-15 点击:

 州 学 院 单片机课程设计报告

  公车语音报站器设计

  院

 系

 机械与船舶海洋工程 学院

 专

 业

 过程控制自动化

 学

 生

 班

 级

 201 13 3 级 级 1 13 33 3 班

 姓

 名

 刘良新

 学

 号

 1 1 305402313

 指导教师单位

 钦州学院

 指导教师姓名

 张晓培

 指导教师职称

 2016 6 年 年 1 11 月

  公交语音报站设计

 自动化专业 2013 级

 刘良新 指导教师

 张晓培 摘要:本课程设计就是采用一种用单片机控制语音芯片进行公交车语音自动报站的方法。整个系统硬件设计包括键盘电路、复位电路、显示驱动电路、显示电路、内存扩展电路模块。利用 AT89C52 作为控制器,通过 ISD4004 语音芯片建立语音信息库,形成变化多样的语音信息,利用其功放播放语音信息以及提示语音,同时运用 LCD12864 进行站数显示。当公交车到达某站点,用键盘控制本系统工作,通过语音电路输出语音信息和提示,同时站数信息在 12864 上显示。本系统很大程度上提高公交车报站的准确性,可靠性。提高了公交系统的服务质量。促进城市经济发展和交通变化的和谐发展 关键词:

 公交语音报站,AT89C52 单片机,ISD4004 语音芯片,LCD12864

  设计目的: : 本课程设计的目的是通过指导学生循序渐进地独立完成单片机的设计任务,加深学生对理论知识的理解,有效地提高了学生的动手能力,独立分析问题、解决问题能力,协调能力和创造性思维能力。着重提高学生在单片机应用方面的实践技能,树立严谨的科学作风,培养学生综合运用理论知识解决实际问题的能力。学生通过单片机的设计、安装、调试、整理资料等环节,初步掌握工程设计方法和组织实践的基本技能,逐步熟悉开展科学实践的程序和方法。

 目录

 绪论……………………………………………………………………1

 1. 设计的主要目标任务………………………………………………1

 2. 方案设计……………………………………………………………2

 1 2.1 基本原理…………………………………………………….…2

 2 2.2 系统框图…………………………………………………….…2

 3. 主要电路介绍………………………………………………………3

 1 3.1 主控电路简介……………………………………………….…3

 3.1.1 关于 2 AT89C52 单片机………………………………………3

 2 3.1.1.1 AT89C52 主要性能参数……………………………….…3

 3.1.1.2 引脚功能说明……………………………………………3

 3.1.2 振荡器电路设计……………………………………………6

 3.1.3 复位电路的设计……………………………………………7

 3.2 语音模块电路简介……………………………………………7

 4 3.2.1 ISD4004 芯片内部逻辑结构…………………………….…8

 4 3.2.2 ISD4004 芯片引脚描述………………………………….…8

 4 3.2.3 ISD4004 芯片的使用说明……………………………….…9

 4 3.2.4 ISD4004 与外围设备的连接…………………………...…12

 3.3 显示模块电路简介…….…………………………...………..13

 3.4 按键电路简介……………………………………………..…14

 4. 程序控制……………………………………………………..……14

 4.1 主程序流程图……………………………………………..…14

 5. 总结………………………………………………………..………15

 参考文献…………………………………………………………..…15

 附录………………………………………………………........….....16

  绪论

 随着科学技术的日益发展和进步, 无人售票公交车在街头多起来了,语音报站器也被广泛使用,这在相当大的程度上免除了乘务人员沿途报站的麻烦,给许多不熟悉公交线路的乘客带来了方便。公共汽车行驶在现代文明程度高的市区,它是一道流动的风景线,因而对整车外形乃至色彩都有更高的要求。作为公交汽车还要有醒目和减少乘务人员强度的电子报站器,电子显示路牌,无人售票装置,前后电视监视系统等新技术的采用也将越来越普及。

  目前,公交车自动报站主要有以下几种方式:一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与站点坐标相比较,当车辆驶入站点一定距离范围内时,不用人工干预,系统自动报站;另一种是利用无线射频识别(Radio Frequency Identification)技术,在每一个公交站台设置一个具有唯一 ID 的射频发射器,采用间歇工作方式发射信号,当公交车即将到达车站时,车载系统接收到站信号并解码出站台的 ID 号,由单片机控制自动播放对应站台编号的报站语音;还有一种是对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定报站时刻,达到准确报站的目的。然而,这三种方式都不太适合乡镇的发展现状。第一种设备造价过高,定位精度也难以达到要求;第二种站台建设投入较大,站点一旦变更,射频发射装置即须移动,较为麻烦;第三种需要公交线路严格固定,稍有改变,报站就难以准确。为此,本文试图设计一种既方便易行又经济实惠的公交车自动报站系统。

 本设计采用人工按键的操作方式公交车手动报站器,弥补传统人工报站必须有司机或乘务员口头报站的落后方式,实现公交车对站名的语音提示和文字显示功能,为市民提供更人性化,更完善的服务。当公交车到达某一站时,司机或乘务人员只需按动按键,就可以使单片机控制语音模块对站名进行语音提示,并控制显示模组在液晶屏上显示。系统由一片八位单片机,一个语音模块,一个液晶模组,一块稳压芯片,若干电阻电容和与非门等组成。经过本课题的研究,我们得到了一种公交车报站的低成本解决方案。

 

 1.设计的主要目标任务

 设计的主要目标本课题要求设计一公交车语音报站系统,具备 8 个或以上的站点,按下相应按键就播放相应的语音,并通过液晶屏幕显示所在站点的信息。以实现公交车的语音报站,即在到站时候司机按下按键自动播报语音提示信息及,同时利用 LCD 显示电路进行汉字显示。同时系统需具有可操作性和兼容系,即在使用过程中,对不同的公交线路能够很方便的进行设定。本设计要求利用AT89C52 作为主控芯片完成主控电路的设计,辅助电路要求包括语音电路、显示电路、按键模块电路等 2.方案设计 2.1 基本原理

 本系统使用八位单片机作为控制器件。当系统进行语音再生时,单片机控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。同时,单片机通过程序读取文字信息,送入液晶显示模组来进行站名的显示。当汽车到达某站时,司机或乘务人员通过键盘来控制系统进行工作。而且,系统具有根据公交车的行驶方向确定报站顺序的功能(司机或乘务人员可以通过按键来控制)。当系统进行语音录制时,语音信号通过语音录入电路送给语音合成电路中的语音芯片,由语音芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。

 2.2 系统框图

 系统组成结构

  3.主要电路介绍 3.1 主控电路简介 微控制器选择目前市场上常用的 Intel 生产的 AT89C52 单片机作为主控芯片,同时, AT89C52 系统还需要外接晶振和复位电路。

 1 3.1.1 关于 2 AT89C52 单片机

 AT89C52提供以下标准功能:8k字节FLASH闪速存储器,256字节内部RAM,32个 I/O 口线,3 个 16 位定时/计数器,一个 6 向量两级中断结构,一个全双工串行通信口,片内震荡器及时钟电路。同时,AT89C52 可降至 OHZ 的静态逻辑操作,并支持两种软件可选的节点工作模式。空闲方式停止 CPU 工作,但允许 RAM,定时/计数器,串行口及中断系统继续工作。掉电方式保存 RAM 中的内容,但震荡器停止工作并禁止其他所有部件工作直到下一个部件复位。

 2 3.1.1.1 AT89C52 主要性能参数

  AT89C52 单片机与 MCS-51 产品指令和引脚兼容,内部含有 8K 字节可擦写FALSH 闪存,1000 次擦写周期。同时具有全静态操作:OHZ-24MHZ,三级加密程序存储器,256×8 字节内部 RAM,32 个可编程 I/O 口线,3 个 15 位定时/计数器,8 个中断源,可编程串行 UART 通道的功能部件。

 3.1.1.2 引脚功能说明

 引脚图如下图图所示:

 功能说明如下:

 1

 VCC:电源电压

  2

 GND:地 3

 P0 口:P0 口是一组 8 位漏极开路型双向 I/O 口,也即地址/数据总线复用口。作为输出口用时,每位能吸收电流的方式驱动 8 个 TTL 逻辑门电路,对端口 P0 写“1”时,可作为高阻抗输入端用。在访问外部数据存储器或程序存储器时,这组口线分时转换地址(低 8 位)和数据总线复用,在访问期间激活内部上拉电阻。在 Flash 编程时,P0 口接收指令字节,而在程序校验时,输出指令字节,校验时,要求外接上拉电阻。

 4

 P1 口:P1 是一个带内部上拉电阻的 8 位双向 I/O 口, P1 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口。作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。与 AT89C51 不同之处是,P1.0 和 P1.1 还可分别作为定时/计数器 2 的外部计数输入(P1.0/T2)和输入(P1.1/T2EX),参见表 2.1。Flash 编程和程序校验期间,P1 接收低 8 位地址。

 表 3-1 P1.0 和 P1.1 的第二功能 引脚号 功能特性 P1.0 T2(定时/计数器 2 外部计数脉冲输入),时钟输出 P1.1 T2EX(定时/计数 2 捕获、重装载触发和方向控制)

 5

 P2 口:P2 是一个带有内部上拉电阻的 8 位双向 I/O 口,P2 的输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对端口 P2 写“1”,通过内部的上拉电阻把端口拉到高电平,此时可作输入口,作输入口使用时,因为内部存在上拉电阻,某个引脚被外部信号拉低时会输出一个电流(IIL)。在访问外部程序存储器或 16 位地址的外部数据存储器(例如执行 MOVX @DPTR 指令)时,P2 口送出高 8 位地址数据。在访问 8 位地址的外部数据存储器(如执行MOVX @RI 指令)时,P2 口输出 P2 锁存器的内容。Flash 编程或校验时,P2亦接收高位地址和一些控制信号。

 6

 P3 口:P3 口是一组带有内部上拉电阻的 8 位双向 I/O 口。P3 口输出缓冲级可驱动(吸收或输出电流)4 个 TTL 逻辑门电路。对 P3 口写入“1”时,它们被内部上拉电阻拉高并可作为输入端口。此时,被外部拉低的 P3 口将用上拉电阻输出电流(IIL)。P3 口除了作为一般的 I/O 口线外,更重要的用途是它的第二功能,如表 2.2 所示,此外,P3 口还接收一些用于 Flash 闪速存储器编程和程序校验的控制信号。

 表 3-2 P3 口第二功能

  7

 RST:复位输入。当振荡器工作时,RST 引脚出现两个机器周期以上高电平将使单片机复位。

 8

 ALE/PROG:

 当访问外部程序存储器或数据存储器时,ALE(地址锁存允许)输出脉冲用于锁存地址的低 8 位字节。一般情况下,ALE 仍以时钟振荡频率的 1/6 输出固定的脉冲信号,因此它可对外输出时钟或用于定时目的。要注意的是:每当访问外部数据存储器时将跳过一个 ALE 脉冲。对 Flash 存储器编程期间,该引脚还用于输入编程脉冲(PROG)。如有必要,可通过对特殊功能寄存器(SFR)区中的 8EH 单元的 D0 位置位,可禁止 ALE 操作。该位置位后,只有一条 MOVX 和 MOVC 指令才能将 ALE 激活。此外,该引脚会被微弱拉高,单片机执行外部程序时,应设置 ALE 禁止位无效。

 9

 PSEN:程序储存允许(PSEN)输出是外部程序存储器的读选通信号,当AT89C52 由外部程序存储器取指令(或数据)时,每个机器周期两次 PSEN 有效,即输出两个脉冲。在此期间,当访问外部数据存储器,将跳过两次 PSEN 信号。

 ·EA/VPP:外部访问允许。欲使 CPU 仅访问外部程序存储器(地址为 0000H—FFFFH),EA 端必须保持低电平(接地)。需注意的是:如果加密位 LB1 被编程,复位时内部会锁存 EA 端状态。如 EA 端为高电平(接 Vcc 端),CPU 则执行内部程序存储器中的指令。Flash 存储器编程时,该引脚加上+12V 的编程允许电源 Vpp,当然这必须是该器件是使用 12V 编程电压 Vpp。

 ·XTAL1:振荡器反相放大器的及内部时钟发生器的输入端。

 ·XTAL2:振荡器反相放大器的输出端。

 3.1.2 振荡器电路的设计

  89 系列单片机的内部振荡器电路如图所示,由一个单级反相器组成。XTAL1为反相器的输入,XTAL2 为反相器的输出。可以利用它内部的振荡器产生时钟,只要在 XTAL1 和 XTAL2 引脚上外接一个晶体及电容组成的并联谐振电路,便构成一个完整的振荡信号发生器。

  单片机内部振荡器电路 3 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 引脚拉成低电平,则会引起芯片进入不定状态。

 3.2 语音模块电路简介 ISD4004 系列语音芯片工作电压为+3V,单片录放时间 8 到 16 分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片采用 CMOS 技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存储陈列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI 或 Microwire)送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存储在片内闪烁存储器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和金属声。采样频率可以是 4.0,5.3,6.4 或 8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于闪烁存储器中,可在断电情况下保存一百年(典型值),可反复录音十万次。

 3.2.1 4 ISD4004 芯片内部逻辑结构

  3.2.2

 4 ISD4004 芯片引脚描述

  1)电源(VCCD,VCCA)

 芯片内部数字电路电源正极引脚和模拟电路电源正极引脚。为使噪声最小,芯片的数字电路和模拟电路使用不同的电源供电,并且分别引到外封装的不同管脚上,数字和模拟电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。

  2)地线(VSSD,VSSA)

 芯片内部数字电路电源地线和模拟电路电源地线引脚。芯片的数字电路和模拟电路也要使用不同的地线。

 3)同相模拟输入(ANA IN+)

 录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰-峰值 32mV,耦合电容和本端的 3KΩ电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰-峰值 16mV。

 4)反相模拟输入(ANA IN-)

 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰-峰值 16mV。

  5)音频输出(AUD OUT)

 提供音频输出,可驱动 5KΩ的负载。

  6)片选(SS)此端为低,即向 ISD4004 芯片发送指令,两条指令之间为高电平。

 7)串行输入(MOSI)

 此端为串行输入端,主控制器应在串行时钟上升沿之前半个周期将数据放到本端,以供输入。

  8)串行输出(MISO)

 此端为串行输出端,芯片未被选中时,本端呈高阻态。

 9)串行时钟(SCLK)

 时钟输入端,由主控制器产生,用于同步 MOSI 和 MISO 的数据传输。数据在 SCLK 上升沿锁存到芯片,在下降沿移出芯片。

 10)中断()

 本端为漏极开路输出。芯片在任何操作(包括快进)中检测到 EOM或 OVF 时,本端变低并保持。中断状态在下一个 SPI 周期开始时清除。中断状态也可用 RINT 指令读取(OVF 标志指示芯片的录/放操作已到达存储器的末尾;EOM标志只在放音中检测到内部的 EOM 标志时,此状态位才置 1)。

  11)行地址时钟(RAC)

 漏极开路输出。每个 RAC 周期表示芯片存储器的操作进行了一行(ISD4004 系列中的存储器共 2400 行)。该信号保持高电平 175ms,低电平 25ms。快进模式下,RAC 218.75μs 是高电平,31.25μs 为低电平。该端可用于存储管理技术。

 12)外部时钟(XCLK)

 本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在 1%以内。商业级芯片在整个温度和电压范围内, 频率变化在 2.25%以内。工业级芯片在整个温度和电压范围内,频率变化在 4%以内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接时钟时,此端必须接地。

 13)自动静噪(AM CAP)

 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于滤除无信号(静音)时的噪声。通常本端对地接 1µF 的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减 6dB[7]。1µF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接 VCCA 则禁止自动静噪。

 ISD4004 芯片实物图

  ISD4004 芯片引脚图

  4 3.2.3 ISD4004 芯片使用说明

  1)串行外设接口 ISD4000 系列语音芯片工作于 SPI 串行接口。SPI 协议是一个同步串行数据传输协议,设定微控制器的 SPI 移位寄存器在 SCLK 的下降沿将数据送至 MISO 引脚。以 ISD4004 为例,协议的具体内容如下:

  ①所有串行数据传输开始于下降沿。

 ②在传输期间必须保持低电平,在两条指令之间则保持高电平。

 ③数据在时钟上升沿移入,在下降沿移出。

 ④变低,输入指令和地址后,ISD4004 才能开始录/放操作。

  ⑤指令格式是(八位控制码)加(十六位地址码)。

 ⑥ISD4004 的任何操作如果遇到 EOM 或 OVF,则产生一个中断,该中断状态在下一个 SPI 周期开始时被清除。

  ⑦使用“读”指令使中断状态位移出 ISD4004 的 MISO 引脚时,控制及地址 数据也应同步从 MOSI 端移入。因此,要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个 SPI 周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。⑧所有操作在运行位(RUN)置 1时开始,置 0 时结束。

 ⑨所有指令都在 SS 端上升沿开始执行。

  2)信息快进

 用户不必知道信息的确切地址就能快进跳过一条信息。信息快进只用于放音模式,放音速度是正常的 1600 倍,遇到 EOM 后停止,然后内部地址计数器 1,指向下一条信息的开始处。

  3)上电顺序

 器件延时 TPUD(8KHz采样时,约为 25ms)后才能开始操作。因此,用户发完上电指令后,必须等待TPUD,才能发出下一条操作指令。

 例如,从 00 处放音,应遵循如下时序:

  ①发 POWER UP 命令;

  ②等待 TPUD(上电延时);

 ③发地址值为 00 的 SET PLAY 命令;

  ④发 PLAY 命令。

  器件会从 00 地址开始放音,当出现 EOM 时,立即中断,停止放音。

 如果从 00 处录音,则按以下时序:

  ①发 POWER UP 指令;

  ②等待 TPUD(上电延时);

  ③发 POWER UP 命令;

  ④等待 2 倍 TPUD;

 ⑤发地址值为 00 的 SET REC 命令;

  ⑥发 REC 命令。

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

 4)指令码

  5)SPI 端口的控制位 6)SPI 控制寄存器

  SPI 控制寄存器控制器件的每个功能,如录音、放音、信息检索(快进)、上电/掉电、开始/停止操作、忽略地址指针等。

  注:IAB 置 0 时,录/放操作从 A9~A0 地址开始 为了能连贯地录/放到后续的存储空间,在操作到达该行末之前,应发出第二个 SPI 指令将 IAB 置 1,否则器件会在同一地址上反复循环。这个特点对语音提示功能很有用。RAC 引脚和 IAB 位可用于信息管理。SPI 端口简单框图如图所示:

  ISD4004 的 SPI 端口

 4 3.2.4 ISD4004 与外围设备的连接

 语音芯片 ISD4004 主要与三部分外围设备连接,即单片机控制电路、语音录入电路和语音播放电路。单片机的 P1.0、P1.1 和 P1.2 引脚接独立按键,控制语音芯片的放音过程;P1.3 引脚经电阻与控制外部语音录入和语音播放电路接通与否的三极管的基极相连;P1.4 引脚接片选端 SS,控制 ISD4004 选通与否;P1.5引脚接串行输入 MOSI,经此读入放音地址;P1.7 引脚接串行时钟 SCLK;两芯片中断口相连,以收发中断信号。同相模拟输入(ANA IN+)和反相模拟输入(ANA IN-)与录音电路相连,通过话筒录制各站信息存储于芯片内部以供播放时应用。音频功率放大器 LM386 驱动音箱组成放音电路,与音频输出端(AUD OUT)相连。另外,发光二极管接于电源通路,可以显示语音芯片工作情况。

 ISD4004 与外围设备的连接电路图 3.3 显示模块电路简介 带中文字库的 128X64 是一种具有 4 位/8 位并行、2 线或 3 线串行多种接口方式,内部含有国标一级、二级简体 中文字库的点阵图形液晶显示模块;其显示分辨率为 128×64,内置 8192 个16*16 点汉字,和 128 个 16*8 点 ASCII 字符集.利用该模块灵活的接口方式和简单、方便的操作指令,可构成全中文人机交互图形界面。可以显示 8×4 行 16×16 点阵的汉字.也可完成图形显示.低电压低功耗是其又一显著特点。由该模块构成的液晶显示方案与同类型的图形点阵液晶显示模块相比,不论硬件电路结构或显示程序都要简洁得多,且该模块的价格也略低于相同点阵的图形液晶模块。

 3.3.1 引脚功能说明 管脚号 管脚名称 电平 管脚功能描述 1 VSS 0V 电源地 2 VCC 3.0+5V 电源正 3 V0 - 对比度(亮度)调整 4 RS(CS)

 H/L RS=“H”,表示 DB7——DB0 为显示数据 RS=“L”,表示 DB7——DB0 为显示指令数据 5 R/W(SID) H/L R/W=“H”,E=“H”,数据被读到DB7——DB0 R/W=“L”,E=“H→L”, DB7——DB0 的数据被写到 IR 或 DR 6 E(SCLK) H/L 使能信号 7 DB0 H/L 三态数据线 8 DB1 H/L 三态数据线 9 DB2 H/L 三态数据线 10 DB3 H/L 三态数据线 11 DB4 H/L 三态数据线 12 DB5 H/L 三态数据线 13 DB6 H/L 三态数据线 14 DB7 H/L 三态数据线 *注释 1:如在实际应用中仅使用并口通讯模式,可将 PSB 接固定高电平,也可以将模块上的 J8 和“VCC”用焊锡短接。

 *注释 2:模块内部接有上电复位电路,因此在不需要经常复位的场合可将该端悬空。

  *注释 3:如背光和模块共用一个电源,可以将模块上的 JA、JK 用焊锡短接。

 3.4 按键电路简介 键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。键盘可分为编码键盘和非编码键盘两种类型。前者能自动识别按下的键并产生相应代码,以并行或串行方式发送给 CPU。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。后者则通过软件来确定按键并计算键值。这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用。

 4.程序控制 4.1 主程序流程图 主程序流程图从宏观方面说开始对所有程序初始化,在行车到站停车时,单片机判断是否有触发电路,如果就开始报站,同时液晶显示到站信息。如果没有则不报站。

 15 PSB H/L H:8 位或 4 位并口方式,L:串口方式(见注释 1)

 16 NC - 空脚 17 /RESET H/L 复位端,低电平有效(见注释 2)

 18 VOUT - LCD 驱动电压输出端 19 A VDD 背光源正端(+5V)(见注释 3)

 20 K VSS 背光源负端(见注释 3)

 

  5.总结

 该系统实现了公交车报站功能。本系统功能强大,成本低,系统稳定,语音音质好,很好的实现了车辆报站的自动化,具有很强的实用性。系统选用 ISD4004语音芯片,它的录音数据被存放方法是通过 ISD 多级存储专利技术实现的,用声音和声频信号的自然形式直接存放在故态存储器,从而提供高质量回放语音的保真度,使得该系统与其他语音报站系统相比较,语音质量较好。另外,本设计仍然存在的许多的不足之处,比如它在报站时刻上不能十分的精确,存在一定的误差。这些问题都需要在今后的研究工作中加以改进,使系统更完善,更好的为人们服务。

  通过本次设计,我不仅学习到了 MCS-51 系列单片机的知识,更拓展了自己的视野,培养了自己的学习能力。这些进步对以后的工作学习肯定会有很大的帮助。当然,由于设计的时间较短,加之对单片机知识比较陌生,设计之中还有很多不足的地方需要改进,真诚希望尊敬的老师和前辈斧正!

 参考文献 [1]姜涛. 公交车信息管理系统的设计与实现[D].山东大学,2010. [2]张建华,高守玮,杨建国. ISD4004 语音芯片在语音报站器中的应用[J]. 电子技术应用,2003,08:70-72. [3]冯志慧,许利军,薛鹏涛,翁梅,余华,周志强. 一种基于单片机控制 ISD4004 语音芯片应用电路[J]. 微计算机信息,2003,07:55-56. [4]张晓东,计玉芳,蒯申红,徐宇宝. 基于 ISD4004 智能语音提示系统设计[J]. 皖西学院学报,2008,02:69-71. [5]王俊. 基于单片机的公交车报站器的设计[J]. 科技经济市场,2008,06:22-23.

 附录 1 #include<reg52.h> #include"st7565.h" #include "isd4004.h" sbit K1 = P1^4; //对应按钮 K1 void Delay10ms(unsigned int c); unsigned char Key_Scan(); unsigned char KEY=0; void main() {

 uchar i = 128;

 unsigned char

 keyNum;

 Lcd12864_Init();

 Lcd12864_ClearScreen();

  while (1)

 {

 keyNum = Key_Scan();

 //扫描键盘

 if (keyNum==1)

 {

  Lcd12864_ClearScreen();

 Delay10ms(15);

  //误差 0us

  switch (KEY)

  { case 1:Lcd12864_Write16CnCHAR(0, 1," 了 到 城 学 大 ");Delay10ms(5); ISD4004_PlayBack(0);break;

 case 2:Lcd12864_Write16CnCHAR(0, 1,"了到道大帆扬

  ");ISD4004_PlayBack(10);break;

 case 3:Lcd12864_Write16CnCHAR(0, 1," 了 到 站 南 车 汽");ISD4004_PlayBack(20);break;

 case 4:Lcd12864_Write16CnCHAR(0, 1," 了 到 场 市 东 城");ISD4004_PlayBack(31);break;

 case 5:Lcd12864_Write16CnCHAR(0, 1,"了到校农"); ISD4004_PlayBack(41); break;

 case 6:Lcd12864_Write16CnCHAR(0, 1," 了 到 园 花 小");ISD4004_PlayBack(51);break;

 case 7:Lcd12864_Write16CnCHAR(0, 1,"了到港井沙");ISD4004_PlayBack(60); break;

 case 8:Lcd12864_Write16CnCHAR(0, 1," 了 到 桥 大 江 钦");ISD4004_PlayBack(71);break;

 }

  }

  } }

  void Delay10ms(unsigned int c)

  //误差 0us {

  unsigned char a,b;

  for(;c>0;c--)

  for(b=38;b>0;b--)

  for(a=130;a>0;a--); }

 unsigned char Key_Scan() {

 unsigned char keyValue = 0 , i; //保存键值

 //--检测按键 1--//

 if (K1==0)

 //检测按键 K1 是否按下

 {

  Delay10ms(1); //消除抖动

 if (K1==0) //再次检测按键是否按下

  {

 keyValue = 1;

 i = 0;

 while ((i<50) && (K1==0))

 //检测按键是否松开

 {

  Delay10ms(1);

  i++;

 }

  KEY++;

  if(KEY>8)

  KEY=1;

 } }

  return keyValue;

  //将读取到键值的值返回 }

  附录 2

 

推荐访问:公交车 报站 系统

致富创业网 www.csyzzm.com

Copyright © 2002-2018 . 致富创业网 版权所有 湘ICP备12008529号-1

Top