公交车语音报站系统的设计

更新时间:2024-07-05 09:10:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

山东大学 毕 业 设 计(论 文)

题目 公交车语音报站系统的设计

学生姓名: 指导教师:

自动化工程 学院 电气工程及其自动化 专业 六 班

2012年 5 月 17 日

青岛理工大学毕业设计(论文)

摘 要

本设计主要解决如何方便、准确地指示乘客到站的问题,具有模拟人声进行报站和预报站,对所报站数和站名进行文字显示和站名语音信息录放及站名选择控制等功能。系统包括微控制器模块,语音录放电路,站数、站名显示模组,键盘接口电路,复位电路及电源等。系统使用51单片机来控制语音合成芯片和液晶显示模组。语音合成芯片ISD4004,采用模拟数据半导体存储器直接存储的专利技术,即将模拟语音数据直接写入单个存储单元,不需经过A/D、D/A转换,因此能够较好地真实再现语音的自然效果,避免了一般固体语音电路因为量化和压缩造成的量化噪声和失真现象。配合液晶屏显示,就使得该报站系统更加实用。

关键字:单片机,语音提示,文字显示,公交报站

I

青岛理工大学毕业设计(论文)

ABSTRACT

The design mainly solve the problem of how to easily and accurately indicate that passengers arriving. It has the function of analog voice reporting and forecasting station on the text display ,reporting number and station name ,and voice information recording and station name selection control. The system includes micro-controller module, voice recording and playback circuitry, station number, station name display modules, interface circuit of the keyboard, reset circuit and power supply. The system uses 51 Single-chip Microcomputer to control speech synthesis chip and liquid crystal display module. Speech synthesis chip ISD4004 adopts the patented technology for semiconductor memory directly simulated data storage of analog voice, that analog voice data is written directly to the individual storage units, not through A/D and D/A conversion, so we can receive the natural emergence of better voice effects and avoid the quantization of noise and distortion caused by the quantization and compression in the generally solid voice circuit. Besides, LCD makes the reporting system more practical.

KEY WORDS:Single-chip Microcomputer, Audio Prompt, Character Display, Bus-Stop Auto-Announce

II

青岛理工大学毕业设计(论文)

目 录

摘 要.............................................................................................................................. I ABSTRACT .................................................................................................................. II 第一章 绪论.................................................................................................................. 1 第二章 方案设计.......................................................................................................... 2

2.1 原理.................................................................................................................. 2 2.2 框图.................................................................................................................. 2 2.3 简介.................................................................................................................. 3 第三章 硬件设计.......................................................................................................... 4

3.1 微控制器.......................................................................................................... 4

3.1.1 复位........................................................................................................ 4 3.1.2 晶振........................................................................................................ 4 3.1.3 存储器.................................................................................................... 5 3.2 语音提示.......................................................................................................... 7

3.2.1 内部结构................................................................................................ 7 3.2.2引脚描述................................................................................................. 7 3.2.3 操作规则................................................................................................ 9 3.2.4 ISD4004与外围设备的连接 ............................................................... 12 3.3 文字显示........................................................................................................ 14

3.3.1 组成结构.............................................................................................. 14 3.3.2 引脚功能.............................................................................................. 15 3.3.3 液晶模组与单片机的连接.................................................................. 16 3.4 键盘接口........................................................................................................ 16

3.4.1 按键的确认.......................................................................................... 16 3.4.2 重键与连击的处理.............................................................................. 17 3.4.3 按键防抖动技术.................................................................................. 17 3.5 电源................................................................................................................ 20

3.5.1 芯片介绍.............................................................................................. 21 3.5.2 稳压电路.............................................................................................. 22

第四章 软件设计........................................................................................................ 24

4.1 语音提示应用实现........................................................................................ 24

4.1.1 放音程序.............................................................................................. 24 4.1.2 录音程序.............................................................................................. 25 4.2 文字显示应用实现........................................................................................ 26 4.3 键盘接口应用实现........................................................................................ 27 第五章 结论................................................................................................................ 28 致 谢............................................................................................................................ 29 参考文献...................................................................................................................... 30 附录一 系统原理图.................................................................................................... 31 附录二 语音提示参考程序........................................................................................ 32 附录三 文字显示参考程序........................................................................................ 37 附录四 键盘接口参考程序........................................................................................ 41

III

青岛理工大学毕业设计(论文)

第一章 绪论

随着国民经济的持续发展和各级政府对县域经济的高度关注,乡镇的城市化正在全国如火如荼地展开,基础设施得到了突飞猛进的发展。在这个过程中,乘坐公交车逐步取代了以前落后的出行方式,成为广大城乡人民短途出行的首选。近年来城市公交事业迅速发展,以前靠售票员报站的方式已经不能满足实际需要,很多大中城市都在推广实行无人售票。在广大乡镇,公交车如何实现自动报站还缺乏人们的重视。

目前,公交车自动报站主要有以下几种方式:一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与站点坐标相比较,当车辆驶入站点一定距离范围内时,不用人工干预,系统自动报站;另一种是利用无线射频识别(Radio Frequency Identification)技术,在每一个公交站台设置一个具有唯一ID的射频发射器,采用间歇工作方式发射信号,当公交车即将到达车站时,车载系统接收到站信号并解码出站台的ID号,由单片机控制自动播放对应站台编号的报站语音;还有一种是对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定报站时刻,达到准确报站的目的。

然而,这三种方式都不太适合乡镇的发展现状。第一种设备造价过高,定位精度也难以达到要求;第二种站台建设投入较大,站点一旦变更,射频发射装置即须移动,较为麻烦;第三种需要公交线路严格固定,稍有改变,报站就难以准确。为此,本文试图设计一种既方便易行又经济实惠的公交车自动报站系统。

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

1

青岛理工大学毕业设计(论文)

第二章 方案设计

2.1 原理

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

2.2 框图

晶振 语音提示模块 单 复位 文字显示模组 片 机 键盘接口电路 存储器 电源 图2.1 系统组成结构

2

青岛理工大学毕业设计(论文)

2.3 简介

为了降低控制仪器成本并减小体积,系统采用了Intel生产的8031单片机作为主控芯片。8031内部没有程序存储器,需要外部扩展存储器,选用一片8KB UVEPROM存储器芯片2764就可以满足应用要求。同时,8031还需要外接晶振和复位电路。

语音提示模块选用ISD4004系列语音芯片,外接话筒和音箱组成语音录制和播放电路。其中,音箱由音频功率放大器LM386驱动。

音箱 放音 驱动 音频功率放大器 语音芯片 录音 控制 话筒 电源 单片机 图2.2 语音提示模块组成结构

文字显示模组采用12864液晶屏作为显示单元,其驱动芯片为带有中文字库的ST7920控制器系列。模组使用ST7920作为控制器和行驱动器,同时使用ST7921作为列驱动器。与单片机的连接,我们采用并行间接访问方式。

键盘接口电路采用独立按键设计,通过触发器来消除按键抖动。

电源采用LM2576作为稳压器件,将公交车上的+24V直流电压转变为+5V直流电压。LM2576是NS生产的3A电流输出降压开关型稳压集成芯片,能够较好地解决LM7805因输入电压过高而发热量较大的问题。

3

青岛理工大学毕业设计(论文)

第三章 硬件设计

3.1 微控制器

1980年,Intel推出了MCS-51系列高性能八位单片机。与MCS-48系列相比,51单片机无论在CPU功能还是存储容量以及特殊功能部件性能上都要高出一筹。典型产品为8031,其内部资源分配和性能如下:八位CPU、寻址能力为64K,128字节RAM、无ROM,四个八位I/O接口电路,一个串行全双工异步接口,五个中断源和两个中断优先级。 3.1.1 复位

复位电源线(RST)可以使8031处于复位(即初始化)工作状态。通常,8031的复位有自动上电复位和人工按钮复位两种。在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路等也需要复位。因此,我们需要一个包括上电和按钮复位在内的系统同步复位电路。 3.1.2 晶振

片内晶振电路输入线(XTAL1和XTAL2)用来外接石英晶振和微调电容,即用来连接8031片内OSC的定时反馈回路。石英晶振起振后,能在XYAL2线上输入一个3V左右的正弦波,使得8031片内的OSC电路按与石英晶振相同的频率自激振荡。为了使8031和外部存储器同步从而可靠工作,8031的访存时间必须大于所用外部存储器的最大存取时间。Intel 2764的读出时间为200~450ns,然而,从8031向外部存储器发出地址码和读写信号到从P0口选通读出数据或保存写入数据所需要的时间,至少需要两个时钟周期以上。所以,我们选取振荡器频率为4MHz。

4

青岛理工大学毕业设计(论文)

图3.1 单片机晶振和复位电路

3.1.3 存储器

8031片内无程序存储器,需要外接片外存储器。Intel 2764是一种+5V的8KB紫外线可擦除只读存储器,采用HMOS工艺制成,标准存取时间为250ns。现分四个方面介绍如下:

(1)内部结构 2764采用双译码编程方式,A12~A0上的地址信号经X和Y译码后,在X选择线和Y选择线上产生选择信号,选中存储阵列中相应地址的存储单元工作,并在控制电路的控制下对所选中的存储单元进行读操作(或编程写操作),从存储单元读出的八位二进制信息经输出缓冲器输出到数据线O7~O0上。在编程方式下,O7~O0上的编程信息在控制电路的控制下写入存储阵列的相应存储单元。

(2)引脚功能 2764是28引脚的UVEPROM,其引脚功能分述如下: ①地址输入线A12~A0 2764的存储容量为8KB,故按照地址线条数和存储容量的关系,共13条地址线,编号为A12~A0。2764的地址线应和8031的P2和P0口相接,用于传送单片机送来的地址编码信号,其中A12为最高位。

②数据线O7~O0 双向数据总线,O7为最高位。在正常工作时,O7~O0用于传送从2764中读出的数据或程序代码;在编程方式时用于传送需要写入的编程代码(即程序的机器码)。

5

青岛理工大学毕业设计(论文)

③控制线 片选输入线CE用于控制本芯片是否工作,若给CE上加一个高电平,则本片不工作;若给CE上加一个低电平,则选中本片工作。编程输入线若给PGM输入一个PGM用于控制2764处于正常工作状态还是编程/校验状态,

TTL高电平,则2764处于正常工作状态;若给PGM输入一个50ms宽的负脉冲,则2764配合VPP引脚上的21V高电压可以处于编程状态。允许输入线OE也是一条由用户控制的输入线,若给OE线上输入一个TTL高电平,则数据线O7~O0处于高祖状态;若给OE线上输入一个TTL低电平,则O7~O0处于读出状态。

④其他引脚线 VCC为+5V电源输入线;GND为直流地线;VPP为编程电源输入线,当他接+5V时,2764处于正常工作状态,当VPP接21V电压是,2764处于编程/校验状态。

(3)擦除特性 2764存储阵列中的信息可以采用紫外光擦除,擦除后存储的代码为全“1”。

(4)工作方式和编程 正常工作方式是指2764在应用系统中的工作方式,常分为读出和维持两种工作状态;编程方式是指给2764写入程序时的工作方式,又可分为编程、禁止编程和校验三种工作状态。

图3.2 程序存储器的扩展

6

青岛理工大学毕业设计(论文)

3.2 语音提示

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

图3.3 ISD4004的内部结构

3.2.2引脚描述

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

7

青岛理工大学毕业设计(论文)

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

图3.4 ISD4004芯片引脚

(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)中断(INT) 本端为漏极开路输出。芯片在任何操作(包括快进)中检测到EOM或OVF时,本端变低并保持。中断状态在下一个SPI周期开始时清除。中断状态也可用RINT指令读取(OVF标志指示芯片的录/放操8

青岛理工大学毕业设计(论文)

作已到达存储器的末尾;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。1μF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。 3.2.3 操作规则

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

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

②SS在传输期间必须保持低电平,在两条指令之间则保持高电平。 ③数据在时钟上升沿移入,在下降沿移出。

④SS变低,输入指令和地址后,ISD4004才能开始录/放操作。 ⑤指令格式是(八位控制码)加(十六位地址码)。

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

9

青岛理工大学毕业设计(论文)

⑦使用“读”指令使中断状态位移出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)指令码

表3.1 ISD4004的指令码

指令 POWERUP SETPLAY PLAY 控制码 00100xxx 11100xxx 11110xxx 操作 上电:等待TPUD后可以工作 从指定地址开始放音 从当前地址开始放音 10

青岛理工大学毕业设计(论文)

SETREC REC SETMC MC STOP STOPWRDN RINT 10100xxx 10110xxx 11101xxx 11111xxx 0x110xxx 0x01xxxx 0x110xxx 从指定地址开始录音 从当前地址开始录音 从当前地址开始快进 执行快进,直到EOM 停止当前操作 停止当前操作并掉电 读状态OVF和EOM 注:快进只能在放音操作开始时选择。 (5)SPI端口的控制位

MISOOVF EOM P0~P15 0 0 0 0 0 0 MOSI C4 C3 C2 C1 C0 X X X A15~A0 快进模式 操作是否使用指令地址 电源控制 录/放模式 允许/禁止操作 图3.5 ISD4004的SPI控制位

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

表3.2 ISD4004的SPI控制寄存器

控制位 值 RUN 1 0 P/R 1 0 MC 1 0 功能 允许/禁止操作 开始 停止 录/放模式 放音 录音 快进模式 允许 禁止 控制位 值 PU 1 0 IAB 1 0 P15-P0 A15-A0 功能 电源控制 上电 掉电 是否使用指令地址 忽略输入地址寄存器内容 使用输入地址寄存器内容 行指针寄存器输出 输入地址寄存器 11

青岛理工大学毕业设计(论文)

注:IAB置0时,录/放操作从A9~A0地址开始。

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

C4~C0 MOSI X X X 输入移位寄存器 A15~A0 当IAB=0时 加载到行计数器 选择逻辑字节 行计数器 P15~P0 MISO OVF EOM 输出移位寄存器

图3.6 ISD4004的SPI端口

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)相连。另外,发光二极管接于电源通路,可以显示语音芯片工作情况。

12

青岛理工大学毕业设计(论文)

图3.7 ISD4004与外围设备的连接

13

青岛理工大学毕业设计(论文)

3.3 文字显示

液晶显示器LCD(Liquid Crystal Display)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。另外,LCD在大小和形状上更加灵活,接口简单,不但可以显示数字、字符,而且可以显示文字和图形。

字符和数字的简单显示,不能满足图形曲线和文字显示的要求。点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及文字,并且可以实现屏幕上下左右滚动、动画、分区开窗口、反转、闪烁等功能,用途十分广泛。现在,随着液晶技术的突破,液晶显示器的质量有了很大的提高,品种也在不断推陈出新,不但有各种规模的黑白液晶显示器,还有绚丽多彩的彩色液晶显示器。在点阵式液晶显示器中,把控制驱动电路与液晶点阵集成在一起,组成一个显示模组,可与八位微处理器接口直接连接,不但使用方便,而且价格也比较便宜。

TH12864液晶显示模组是128×64点阵的文字图形型液晶显示模组,内置国标GB2312码简体中文字库(16×16点阵)、ASCII码字符集(8×16点阵)和64×256点阵显示RAM(GDRAM绘图区域);可与CPU直接接口,提供两种界面来连接微处理机(八位并行及串行连接方式);具有光标显示、画面移位和睡眠模式等多种功能。 3.3.1 组成结构

图3.8 液晶模组的组成结构

TH12864使用ST7920作为行驱动器,同时使用ST7921作为列驱动器。液晶显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。

14

青岛理工大学毕业设计(论文)

由于TH12864液晶显示器是一种带有输出驱动的完整的液晶显示器,八位微处理器可直接与其相连,对液晶屏进行行、列驱动。 3.3.2 引脚功能

TH12864液晶显示器有20个管脚,分电源线、数据线和控制线。其详细功能如下:

(1)电源部分

VDD 电源正极,通常接+5V。

VSS 电源负极,接-5V。为了简化电路,可直接接地。

V0 电源控制端,用来调节显示屏灰度。调节该端的电压,可以改变显示屏字符、图形的颜色深浅。 (2)数据线

DB0~DB7 数据总线,双向。 (3)控制信号

PSB 并口/串口选择信号,接高电平时选择并口,接低电平时选择串口。模块上一般都有跳线方式将其接高或接低,用户可以不处理(事先须声明是用并口还是串口);也可以选择不在模块上处理,而由用户自己选择并口还是串口。

RS(CS) 寄存器选择信号,高电平时为数据操作,低电平时为写指令或读状态(串行方式下为片选信号,低电平有效)。

R/W(SID) 读/写选择信号,高电平为读选通,低电平为写选通(串行方式下作数据线使用)。

E(SCLK) 读/写使能信号,在E的下降沿,数据被锁存(写)入ST7921;在E为高电平期间,数据被读出(串行方式下作时钟输入)。

RST 复位信号,低电平有效。当其有效时,关闭液晶显示,使显示起始行为0。可与单片机相连,由单片机控制;也可直接接VDD,使之不起作用。

BLA 背光源正极(LED+5V)。 BLK 背光源负极(LED0V)。

15

青岛理工大学毕业设计(论文)

3.3.3 液晶模组与单片机的连接

图3.9 液晶模组与单片机的连接

3.4 键盘接口

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

键盘是计算机应用系统中一个重要的组成部分,设计时必须解决下述一些问题。

3.4.1 按键的确认

键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,例如高电平表示断开,低电平表示闭合。所以,通过检测电平状态(高或低),便可确定按键是否已被按下。

为了缩小整个系统的规模,简化硬件线路,我们希望设置最少量的按键,获得更多的操作控制功能。

16

青岛理工大学毕业设计(论文)

3.4.2 重键与连击的处理

实际按键操作中,若无意中同时或先后按下两个以上的键,系统确认哪个键操作是有效的,完全由设计者的意志决定。如视按下时间最长者为有效键,或认为最先按下的键为当前按键,也可以将最后释放的键看成是输入键。不过微型计算机控制系统毕竟资源有限。交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则(若系统没有复合键,当然应该另当别论)。

有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,即重键的情况。为了排除重键的影响,编制程序时,可以将键的释放作为按键的结束。等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。

3.4.3 按键防抖动技术

键盘,作为向系统提供操作人员的干预命令的接口,以其特定的按键序列代表着各种确定的操作命令。所以,准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。

多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。由于机械触点的弹性作用,一个按键开关在闭合及断开的瞬间必然伴随有一连串的抖动。抖动过程的长短由按键的机械特性决定,一般为10~20ms。

为了使CPU对一次按键动作只确认一次,必须排除抖动的影响,可以从硬件及软件两个方面着手解决。 (1)硬件防抖动技术

通过硬件电路消除按键过程中抖动的影响是一种广为才用的措施。这种做法,工作可靠,且节省机时。下面介绍两种硬件防抖动电路。

①滤波防抖动电路

利用RC积分电路对干扰脉冲的吸收作用,选择好电路的时间常数,就能在按键抖动信号通过此滤波电路时,消除抖动的影响。

17

青岛理工大学毕业设计(论文)

图3.10 滤波防抖动电路

当键K未按下时,电容C两端电压均为0,非门输出为1。当K按下时,由于C两端电压不可能产生突变。尽管在触点接触过程中可能出现抖动,只要适当选取R1、R2和C的值,即可保证电容C两端的充电电压波动不超过非门的开启电压(TTL为0.8V),非门的输出将维持高点平。同理,当触点K断开时,由于电容C经过电阻R2放电,C两端的放电电压波动不会超过非门的关闭电压,因此,非门的输出也不会改变。总之,只要R1、R2和C的时间常数选取得当,确保电容C由稳态电压充电到开启电压,或放电到关闭电压的延迟时间等于或大于10ms,该电路就能消除抖动的影响。

②双稳态防抖动电路

用两个与非门构成一个RS触发器,即可构成双稳态防抖动电路。

图3.11 双稳态防抖动电路

设按键K未按下时,键K与键A端(ON)接通。此时,RS触发器的Q端为高电平1,致使Q端为低电平0。此信号引致1#与非门的输入端,将其锁住,使其固定输出为1。每当开关K被按动时,由于机械开关具有弹性,在A端将

18

青岛理工大学毕业设计(论文)

形成一连串的抖动波形。而Q端在K到达B端之前始终为0。这时,无论A处出现怎样的电压(0或1),Q端恒为1.只有当K到达B端,使B端为0,RS触发器产生翻转,Q变为高电平,导致Q降为0,并锁住门2,使其输出恒为1。此时,即使B处出现抖动波形,也不会影响Q端的输出,从而保证Q端恒为0。同理,在释放键的过程中,只要一接通A,Q端就升为1。只要开关K不再与B端接触,双稳态电路的输出将维持不变。

图3.12 键盘接口电路

19

青岛理工大学毕业设计(论文)

在键盘接口中,开关S0接P1.0口,控制语音播放和文字显示;开关S1接P1.1口,控制提示顺序;开关S2接P1.2口,用来跳过某站的提示,以实现播放过程的微调。

(2)软件防抖动方法

若采用硬件防抖动电路,则N个键就必须配有N个防抖动电路。因此,当键的个数比较多时,硬件防抖动将无法胜任。在这种情况下,可以采用软件的方法进行防抖动。当第一次检测到有键按下时,先用软件延时(10~20ms),而后再确认该键电平是否仍维持闭合状态电平。若保持闭合状态电平,则确认此键确已按下,从而消除了抖动的影响。

3.5 电源

嵌入式控制系统一般都需要一个稳定的工作电压才能可靠工作。我们多习惯采用线性稳压器件(如78xx系列三端稳压器件)来调节和稳定电压,将较高的直流电压转变为单片机所需的工作电压。这种线性稳压电源的线性调整工作方式在工作中会产生较大的热损失(数值为压降U×负荷I),其工作效率仅为30%~50%;加之在高粉尘等恶劣环境下,我们往往将嵌入式控制系统置于密闭容器内,加剧了单片机的恶劣工况,使系统的稳定性变得更差。

开关电源调节器件则以完全导通或关断的方式工作,工作时要么是大电流流过低导通电压的开关管,要么是完全截止无电流流过。所以,开关稳压电源的功耗极低,平均工作效率可达70%~90%。在相同压降的条件下,开关电源调节器件与线性稳压器件相比热损失小很多。因此,开关稳压电源可以大大减少散热片体积和印刷电路板的面积,甚至在大多数情况下不需要加装散热片,从而减少了对单片机工作环境的有害影响。

采用开关稳压电源来替代线性稳压电源为单片机供电的另一个优势是:开关管的高频通断特性以及串联滤波电感的使用对来自电源的高频干扰具有较强的抑制作用。此外,由于开关稳压电源热损失的减少,设计时我们还可提高稳压电源的输入电压,使用一片LM2576就可以将公交车上的+24V直流电压转化为+5V直流电压,而不需要考虑芯片过分发热的问题。

LM2576开关稳压集成芯片是线性三端稳压器件(如78xx系列三端稳压器件)的替代品,具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,从而为单片机的可靠、稳定工作提供了强有力的保证。

20

青岛理工大学毕业设计(论文)

3.5.1 芯片介绍

LM2576是NS生产的3A电流输出降压开关型稳压集成芯片,内含固定频率振荡器(52kHz)和基准稳压器(1.23V),并具有完善的保护电路,包括电流限制及热关断电路等,只需极少的外围器件便可构成高效稳压电路。它提供有3.3V(-3.3)、5V(-5.0)、12V(-12)、15V(-15)及可调(-ADJ)等多个电压档次产品。此外,该芯片还提供了工作状态的外部控制引脚。

LM2576开关稳压集成芯片的主要特性如下: (1)最大输出电流 3A

(2)最高输入电压 LM2576为40V,LM2576HV为60V (3)输出电压 3.3V、5V、12V、15V和ADJ(可调)等可选 (4)振动频率 52kHz

(5)转换效率 75%~88%(不同电压输出时的效率不同) (6)控制方式 PWM

(7)工作温度范围 -40℃~+125℃

(8)工作模式 低功耗/正常两种模式可外部控制 (9)工作模式控制 TTL电平兼容

(10)所需外部元件 仅四个(不可调)或六个(可调) (11)器件保护 热关断及电流限制 (12)封装形式 TO-220或TO-263 LM2576的内部框图如下图所示:

图3.13 LM2576的内部结构

该框图的引脚定义对应于五脚TO-220封装形式。LM2576内部包含52kHz振荡器、1.23V基准稳压电路、热关断电路、电流限制电路、放大器、比较器及内部稳压电路等。为了产生不同的输出电压,通常将比较器的负端接基准电压(1.23V),正端接分压电阻网络,这样可根据输出电压的不同选定不同的阻值,其中R1=1kΩ(可调-ADJ时开路),R2分别为1.7 kΩ(3.3V)、3.1 kΩ(5V)、

21

青岛理工大学毕业设计(论文)

8.84 kΩ(12V)、11.3 kΩ(15V)和0(-ADJ),上述电阻依据型号不同已在芯片内部做了精确调整,因而无需使用者考虑。将输出电压分压电阻网络的输出同内部基准稳压值1.23V进行比较,若电压有偏差,则可用放大器控制内部振荡器的输出占空比,从而使输出电压保持稳定。由框图及芯片特性可以看出,以LM2576为核心的开关稳压电源完全可以取代三端稳压器件构成单片机稳压电源。

现就引脚功能描述如下:

(1)VIN 输入电压端,为减小输入瞬态电压和给调节器提供开关电流,此管脚应接旁路电容CIN;

(2)OUTPUT 稳压输出端,输出高电压为(VIN-VSAT),输出低电压为-0.5V;

(3)GND 电路地; (4)FEEDBACK 反馈端;

(5)ON/OFF 控制端,高电平有效,待机静态电流仅为75μA。 3.5.2 稳压电路

图3.14 由LM2576组成的稳压电路

由LM2576构成的基本稳压电路仅需四个外围器件:

(1)储能电感L1的选择要根据LM2576的输出电压、最大输入电压、最大负载电流等参数选择。首先,依据如下公式计算出微秒常数(ET):

ET=(VIN - VOUT)×VOUT/ VIN×1000/f

上式中,VIN是LM2576的最大输入电压,VOUT是LM2576的输出电压,f是LM2576的工作振荡频率值(52kHz)。ET确定之后,就可参照相应的电压、微秒常数和负载电流曲线来查找所需的电感值了。

(2)输入电容CIN一般应大于或等于100μF,安装时要求尽量靠近LM2576的输入引脚,其耐压值应与最大输入电压值相匹配。为了防止在输入端出现大的

22

青岛理工大学毕业设计(论文)

瞬态电压,要选低ESR(等效串联电阻)的铝或钽电容作为旁路电容。还有,当输入电压波动较大,输出电流又较高时,容量一定要选得大些,470μF~1000μF都是可行的选择;电容的电流均方根值至少要为直流负载电流的1/2;基于安全考虑,电容的额定耐压值要为最大输入电压的1.5倍。千万不要选用瓷片电容,以防止造成严重的噪声干扰!

(3)输出电容COUT的值应依据下式进行计算(单位μF):

COUT≥13300 VIN/ VOUT×L

上式中,VIN是LM2576的最大输入电压,VOUT是LM2576的输出电压,L是经计算并查表选出的电感L1的值,其单位是μH。电容COUT耐压值应大于额定输出电压的1.5~2倍。对于5V电压输出而言,推荐使用耐压值为16V的电容器。VIN的选择应考虑交流电压最低跌落值(Vac-min)所对应的LM2576输入电压值及LM2576的最小输入允许电压值Vmin(以5V电压输出为例,该值为8V)。因此,VIN可依据下式计算:

VIN≥(220Vmin/Vac-min)

如果交流电压最低允许跌落30%(Vac-min=154V),LM2576的电压输出为5V(Vmin=8V),则当Vac=220V时,LM2576的输入直流电压应大于11.5V,通常可选为12V。推荐使用低ESR的钽电容,若电容值太大,反而会在某些情况(如负载开路、输入端断开等)下对器件造成损害。COUT用来输出滤波以及提高环路的稳定性。如果电容的ESR太小,就有可能使反馈环路不稳定,导致输出端振荡。这几乎是稳压器的共性,包括低压差线性稳压器等也有这一现象。 (4)续流二极管D1的额定电流值应大于最大负载电流的1.2倍,考虑到负载短路的情况,二极管的额定电流值应大于LM2576的最大电流限制。二极管的反向电压应大于最大输入电压的1.25倍。推荐使用1N582x系列的肖特基二极管,因为此类二极管开关速度快,正向压降低,反向恢复时间短。

此外,还需注意反馈线要远离电感,电路中输入/输出电容、续流二极管、接地端、控制端的连线要尽可能短而粗,最好用地线屏蔽。

23

青岛理工大学毕业设计(论文)

第四章 软件设计

4.1 语音提示应用实现

4.1.1 放音程序

开始 执行上电操作指令(POWER UP)延迟等待(25ms)直到上电结束 上电延迟时间到?Y 执行SET PLAY命令设置播放地址N 执行PLAY命令N INT有效?Y 继续播放下一段?N 执行STOP WRDN命令Y 段间延迟 结束

图4.1 语音芯片放音程序流程图

24

青岛理工大学毕业设计(论文)

4.1.2 录音程序

开始 执行上电操作命令(POWER UP) 执行SET REC命令设置录音地址 延迟等待(25ms)直到上电结束YN 上电延迟时间到? 执行REC命令N INT有效或录音时间到?Y 执行上电操作命令(POWER UP) 执行STOP WRDN命令 延迟二倍上电时间 结束N 上电时间到?Y

图4.2 语音芯片录音程序流程图

25

青岛理工大学毕业设计(论文)

4.2 文字显示应用实现

开始 计算显示RAM地址 文本显示区首地址 设置显示RAM地址 取汉字代码 写入汉字代码 结束 图4.3 文字显示程序流程图

26

青岛理工大学毕业设计(论文)

4.3 键盘接口应用实现

开始 向P1口写一 从P1口读取数据Y 是否有键按下? 延时去抖动N 判断键值 根据键值执行程序

结束图4.4 键盘接口程序流程图

27

青岛理工大学毕业设计(论文)

第五章 结论

本设计是基于单片机的公交车语音文字报站系统,使用8031单片机作为主控制器,通过与语音芯片ISD4004,液晶显示模组TH12864和键盘接口电路的连接完成语音录制、播放和文字显示等功能。文中详细介绍了ISD4004内部结构、各引脚功能、工作原理,TH12864的组成原理、引脚功能和LM2576的功能、原理等。系统其他部分包括人机界面(键盘控制)技术的实现和抗干扰设计等。

通过本次设计,我不仅学习到了MCS-51系列单片机的知识,更拓展了自己的视野,培养了自己的学习能力。这些进步对以后的工作学习肯定会有很大的帮助。

当然,由于设计的时间较短,加之对单片机知识比较陌生,设计之中还有很多不足的地方需要改进,真诚希望尊敬的老师和前辈斧正!

28

青岛理工大学毕业设计(论文)

致 谢

毕业设计终于在的悉心指导下完成了。作为一名即将离开大学校门的学生,我把本次设计看作是大学中的最后一门功课,投入了巨大的时间和精力。设计题目是用单片机实现公交车自动报站。由于在大学中重点学习的是强电方面的知识,仅靠自己的力量完成设计任务的难度是相当大的。在制作设计的过程中,我确实遇到了许多棘手的问题,碰到了很多的困难。但是,这些问题和困难在和同学们的帮助下都被一一解决。

在这段时间里,言传身教,以他广博的知识,敏锐的洞察力,多年的教学和工作经验,在任务完成中给予我很大的帮助。在本次设计中,我不仅学到了很多科学知识和工作方法,而且学到了作为一个研究人员应有的治学态度和为人处世的道理,这一切都将使我终身受益。谨在此向致以崇高的敬意!对给予我支持和帮助的所有同学们表示衷心的感谢!

29

青岛理工大学毕业设计(论文)

参考文献

[1]胡汉才.单片机原理及其接口技术.北京:清华大学出版社,2004 [2]潘新民、王燕芳.微型计算机控制技术.北京:电子工业出版社,2006 [3]康华光.电子技术基础数字部分.北京:高等教育出版社,2002 [4]郭天祥.51单片机C语言教程.北京:电子工业出版社,2009 [5]王东等.基于GPS的公交车自动报站系统的设计.微型机与应,2010 [6]杨烈军.基于RFID的智能公交报站系统.长春理工大学学报,2011 [7]王娟等.公交自动报站系统的设计.自动化技术与应用,2010

[8]Winbond. ISD4004 Series Single-Chip Voice Record/Playback Devices. California: Information Storage Devices, Inc,2000

[9]National Semiconductor. LM2576/LM2576HV Series Step-Down Voltage Regulator. Hong Kong: National Semiconductor Asia Pacific Customer Support Center,2004

30

1234稳压器VCCVCCVCC+LM2576RW110KVINRP01VINFEEDBACK4+CIN100uFCOUT1mF12345678D10KVCCRD161514131211109D0D1D2D3D4D5D6D735GNDON/OFFOUTPUT2L0100uHD肖特基二极管IN5822T1WRT0D0D1D2D3D4D5D6D7MCUVCCLCMR16VCC4.7K274LS00S0SW-SPDT1R17VCC4.7KR18VCC4.7K1274LS00S1SW-SPDT1R19VCCVCCVCCQ1PNP+C118031锁存器74LS373UVEPROM276401234567891011121314151617VDDVOVSSRS(CS)RW(STD)E(SCLK)DB0DB1DB2DB3DB4DB5DB6DB7PSBRSTAK128641U0A3P1.0P1.0P1.1P1.2P1.3P1.4P1.5P1.6P1.7D0D1D2D3D4D5D6D7OELEQ0Q1Q2Q3Q4Q5Q6Q7D0D1D2D3D4D5D6D712345678C1ALE11VCCP10P11P12P13P14P15P16P17P00P01P02P03P04P05P06P073938373635343332D0D1D2D3D4D5D6D7D0D1D2D3D4D5D6D73478131417182569121516191112131516171819D0D1D2D3D4D5D6D7CINTO1312INT1INT0RESC210uFT1T01514A0A1A2A3A4A5A6A7A8A9A10A11A12A0A1A2A3A4A5A6A7A8A9A10A11A12U1A274LS00U2A109876543252421232R08.2RA1320PSEN2227VCC1CEOEPGMVPPT1T0331EA/VP晶振P20P21P22P23P24P25P26P272122232425262728A8A9A10A11A12A13A14A15青岛理工大学毕业设计(论文)

附录一 系统原理图

+C3INTO25+R64.7K26+IN61710k-INVGND431

101130ALE29PSENQ2LED+C9C020pF4MHz1918X1X23P1.1RES9C120pFRESETRD17WR16RDWRRXDTXDALE/PPSENVCCU3A324.7KR20VCC4.7K1274LS0074LS00U4A3P1.2BBR51K271822uFC180.1uF22uFR94.7KSPEAKEROUT5C74.7uFC120.1uF2413C100.1uF语音芯片ISD4004R1010KC810nFP1.523P1.728P1.41MOSIMISOSCLKSSVCCDVCCARAC10uFINTAUD OUTC40.1uFRW03216XCLKP1.3S2SW-SPDT1R21VCC2U5A34.7KTitle74LS00ANA IN+C50.1uFANA IN-14AM CAPVSSDVSSAVSSAVSSA4231112MICROPHONELM386音频功率放大器 C1347nFR1110RC14220uFAR74.7KASizeA4Date:File:1-Jun-2011 I:\\图\\G.ddb3Sheet of Drawn By:4NumberRevisionQ0NPNR810K12

青岛理工大学毕业设计(论文)

附录二 语音提示参考程序

#include #include sbit cs_4004=P0^0; sbit sclk_4004=P0^3; sbit mosi_4004=P0^1; sbit miso_4004=P0^2; sbit rac_4004=P0^4; sbit int_4004=P0^5;

void delay(unsigned int i) //延时程序 {

while(i--); }

void stopmode() //停止 { }

void powerdown() //掉电 {

unsigned char m,i,j;

32

unsigned char m,i,j; cs_4004=1; sclk_4004=0; cs_4004=0; m=0x30; for(i=0;i<8;i++) { }

cs_4004=1;

m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;

青岛理工大学毕业设计(论文)

cs_4004=1; sclk_4004=0; cs_4004=0; m=0x10; for(i=0;i<8;i++) { m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;

}

cs_4004=1;

}

void powerup() //上电 { unsigned char m,i,j; cs_4004=1; sclk_4004=0; cs_4004=0; m=0x20; for(i=0;i<8;i++) { m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;

}

cs_4004=1;

}

void record4004(unsigned int address) {

unsigned char i,m,j;

33

//录音 address—0—2400 青岛理工大学毕业设计(论文)

unsigned int datasoute=0; powerup();

delay(5118); //上电延时 powerup();

delay(5118); //上电延时 delay(5118); //上电延时 cs_4004=1; sclk_4004=0; m=0xa0; cs_4004=0; for(i=0;i<16;i++) { }

for(i=0;i<8;i++) {

m=_cror_(m,1); j=m<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;

address=_iror_(address,1); datasoute=address<<1; mosi_4004=CY; sclk_4004=0; sclk_4004=1;

}

cs_4004=1; P0=0xff; datasoute=0;

while(int_4004==1) //存储地址换行标志 {

if(rac_4004) {

delay(20000);

34

青岛理工大学毕业设计(论文)

}

datasoute++;

} //while end;

void audioout(unsigned int address) //放音程序 {

unsigned char i,m,j; unsigned int datasoute powerup(); cs_4004=1; sclk_4004=0; cs_4004=0; m=0xe0; for(i=0;i<16;i++) { }

for(i=0;i<8;i++) { }

cs_4004=1; for(i=0;i<8;i++) {

m=_cror_(m,1); j=m<<1; sclk_4004=0;

35

address=_iror_(address,1); datasoute=address<<1; sclk_4004=0; mosi_4004=CY; sclk_4004=1;

m=_cror_(m,1); j=m<<1; sclk_4004=0; mosi_4004=CY; sclk_4004=1;

青岛理工大学毕业设计(论文)

mosi_4004=CY; sclk_4004=1;

}

cs_4004=1; P0=0xff;

while(int_4004==1){}

}

void main() { record4004(0); audioout(0); while(1);

}

36

本文来源:https://www.bwwdw.com/article/tze.html

Top