口及使能端。P1^0~P1^2接时钟电路DS1302。P2^3接脉冲检测电路。P3口接语音电路。
2.1语音播放电路(ISD1730)
2.1.1语音播放电路的管脚图如图2-2所示:总共有28个管脚。通过STC89C51单片机控制ISD1730语音芯片的录放,并用单片机对录放时间的设定和控制。 ISD1730 芯片提供了多项新功能,包括内置专利的多信 息管理系统,新信息提示,双运作模式,以及可定制的信 息操作指示音效。芯片内部包含有自动增益控制、麦克风 前置扩大器、扬声器驱动线路、振荡器与内存等的全方位 整合系统功能。此芯片的性能特点是:
1) 可录、放音十万次,存储内容可以断电保留一百年。 2) 两种控制方式,两种录音输入方式,两种放音输出方式。 3) 可处理多达255 段以上信息。
4) 有丰富多样的工作状态提示。
5) 多种采样频率对应多种录放时间。 图2-2 ISD1730管脚图 6) 音质好,电压范围宽,应用灵活,价廉物美。 2.1.2 与单片机的连接
图2-3 接口图
如图2-3所示图中的4-7脚和单片机P3口相连,此时P3口做基本的输入输出单片机通过P3.0来控制此芯片成为当前被控制设备并且开启 SPI 接口,此端口为低电时平有效。SPI(13脚,15脚)为喇叭输出脚。MISO(4脚):SPI 接口的串行输出端口, SCLK 下降沿之前的半个周期将数据放置在 MISO 端,数据在 SCLK 的下降沿时移出,此时语音通过喇叭进行播放。MOSI(5脚):SPI 接口的数据输入端口。主控制芯片在 SCLK 上升沿
6
之前的半个周期将数据放置在 MOSI 端。数据在 SCLK 上升沿被锁存在芯片内。此管脚在空闲时,应该被拉高。SCLK(6脚):接口时钟管脚,单片机通过此管脚来同步MISO和MOSI端各自的数据输入输出,此管脚空闲时,必须拉高。当REC(24脚)接地时通过MIC(10脚、11脚)接麦克风进行语音信息的录入。
2.2液晶显示电路(LCD1602):
2.2.1 字符型液晶显示是一种专门用于显示字 母、数字、符号等点阵式LCD,本设计采用的 是LCD1602-LM032L型液晶显示器如图2-4 所示,其外形尺寸为80×36×14,单5V供电, 由左到右共14个引脚. LCD1602分两行显示, 每行可显示多达16个字符。本设计在LCD1602 第一行固定显示时间,第二行显示欢迎语并在车 辆到站时显示本站站名和下一站站名。在车辆离站
时再次显示欢迎语。 图2-4 管脚图 2.2.2 与单片机的连接
如图2-5所示芯片(D0-D7)为其数据口和单片机 P0口相接,此时单片机P0口做基本的输入输出 功能,因为P0口具有地址/数据复用的功能所以 在当基本的输入输出时需要接上拉电阻。芯片的 使能端以及读/写端寄存器的选择端接到P2^0~P2^2。 单片机通过P0^0对芯片进行控制,当E端由高电 平跳变成低电平时,液晶模块执行命令,低电平时 写入数据。RW为读写信号线,高电平时进行读操 作,低电平时进行写操作。当RS和RW共同为低 电平时可以写入指令或者显示地址,当RS为低电 平RW为高电平时可以读忙信号,当RS为高电平
RW为低电平时可以写入数据。 图2-5接口图
2.3时钟电路(DS1302):
2.3.1 DS1302时钟芯片可以工作于24小时模式或AM/PM的12 小时模式。其内部包含了10个小时寄存器和31字节RAM,这 些寄存器和RAM用来存放各种时间数据。在使用时,可以对芯 片的当前时间进行设定。如图2-6所示芯片共有8个管脚采用了 简单的I2C三线通信方式,便于节省芯片和与之接口的微处理 器管脚。芯片有着2.0~5.5V的宽供电电压范围,在5V供电时
其接口与TTL电平兼容;并且功耗很低,在2.0V供电时仅耗 图2-6 管脚图 300nA的电流。实时时钟可提供秒、分、时、日、星期、月和年,一个月小于31日时可自
7
动调整,包括闰年,有效至2100年。可采用12h或24h方式计时,采用双电源(主电源和备用电 源)供电,可设置备用电源充电方式,同时提供了对后背电源进 行涓细电流充电的能力。主要性能:(1)31字节RAM存储时间数据。(2)2.0~5V供电。(3)支持单字节传输模式和突发式传输模式。(4)8针DIP封装和SOIC封装。(5)3线接口,简单易用。(6)兼容TTL电平。(7)操作温度-40~+85°C。 2.3.2 与单片机的连接
如图2-7所示DS1302与单片机的连接 仅需要3条线,即SCLK、I/O、RST、。 Vcc2在单电源与电池供电的系统中提供 低电源并提供低功率的电池备份。Vcc2 在双电源系统中提供主电源,在这种 运行方式下Vcc1连接带备份电源,以 便在没有主电源的情况下能保存时间 信息以及数据。DS1302由两者中的较 大者供电。当Vcc2大于Vcc1+0.2V时, Vcc2给DS1302供电。当Vcc2小于 Vcc1时,DS1302由Vcc1供电[15]。 RST接在P1.2上,此引脚为高电位时, 选中此芯片,可对其进行操作。串行数 据线I/O与串行时钟线SCLK分别接在 P1.0和P1.2上,所有的单片机地址、命
令及数据均通过这两条线传输。 图2-7 接口图
2.4脉冲检测电路:
如图2-8所示本设计的关键是对转轴所转过的圈数进行计数,考虑到车辆将在复杂的环境中运行,而霍尔元件具有耐震动,不怕灰尘、油污、水汽及盐雾等的污染或腐蚀的优点,故采用可靠的霍尔元件DN6848作为信号采集装置,采集公交车车轴转数。再经过光电耦合器4N25输入给单片机。光电耦合器的电流传输比为10%~250%,响应时间小于10ms,把霍尔元件集成的开关按预定位置有规律地布置在物体上,当车轴转动经过它时,可以从测量电路上测得脉冲信号。根据脉冲信号列可以传感出该运动物体的位移。再通过光电耦合器是一种电信号的耦合器件,它一般是将发光二极管和光敏三极管的光路耦合在一起,输入信号加于发光二极管上,输出信号由光敏三极管输出,送入单片机的P2^3进行检测。
图2-8 脉冲电路图
8
2、 软件设计
3.1流程图 如图3-1所示为系统的总体流程图,系统运行时先对所有芯片进行初始化,然后通过对DS1302时钟芯片进行控制读取时钟芯片的系统时间并将时间显示在显示芯片LCD1602液晶显示屏的第一行,并使时间一直显示。然后车子启动在液晶显示屏上显示欢迎语通过车轮的转动单片机对脉冲电路进行检测并计数,在和系统中的预定值进行比较,判断其是否达到预定值,如果达到预定值则读取预先储 存的站名信息然后通过语音芯片ISD 1730进行播放并提示, 然后将站名 通过LCD1602进行显示如果对脉冲计 数判断未达到预定值则返回到脉冲计 数在进行继续计数当计数达到预定值 时就进行相应的操作最后执行完在返 回脉冲计数来进行下一站的是否到达 进行判断并执行相应的操作。一直到 最后一站整个系统执行完毕再一次执 行初始化进行第二次循环。
如图3-2所示为语音芯片ISD1730
对脉冲计数 的录音流程图,首先通过控制选定 录音存放的地址,然后设定控制字的 命令,然后判断录音时相对应的按键 是否按下如果检测到按键按下则开始 录音操作,录音完毕返回。如果相对 是否到预设 否 的按键未按下则返回继续进行判断 值? 如图3-3所示为ISD1730的放音流程 图当系统要进行放音操作时通过 是 单片机对其进行相应的控制 然后读取所播放语音的地址 然后进行其控制字的控制, 之后芯片进行自动播放语音 信息。然后返回,播放语音 完成。
返回 图3-1 总流程图 图3-1 总流程图
9
开始 系统初始化 显示时间 直到相对应的按键按下然后进行录音。
语音播报当前站点并显示 显示下一站点播报
开始 开始 送录音地址 送放音地址 送录音控制字 送放音控制字 判断按键状 否 态?
是 开始录音
图3-2 录音流程图
图3-4 显示流程图
写指令子程序 调用忙子程序 清屏 调用延时子程序 写指令子程序 写指令子程序 调用延时子程序 设定方向及位移 开始 调用延时子程序 自动放音 返回 图3-3播放流程图 返回 启动写入数据 读写线置0 启动使能控制线 传输数据 调用延时子程序 返回 如图3-4所示为显示芯片LCD1602的显示流程图,当其需要显示信息时先调用一段延时子程序(这里如果不调用延时子程显示屏则无发显示)然后调用LCD的写指令子程序,完毕之后清屏再次调用写指令子程序和延时子程序,然后设定写入的方向以及写入的位移之后再次执行写指令子程序,又一次调用延时,所有的写操作准备做完之后,调用其忙子程序检测其是否可以进行写入,启动写数据操作指令,将读写线置0使其可以进行写操作,启动使能控
10
公交车自动报站系统课程设计



