毕业设计(论文)基于单片机的公交车自动报站设计.doc
目 录目 录I第1章 绪论11.2 原理21.3框图21.4简介2第2章 硬件设计42.1 微控制器42.1.1 复位42.1.2 晶振42.1.3 存储器5第3章 语音系统与文字设计73.1语音系统73.1.2 内部结构73.1.3引脚描述83.1.4 操作规则93.1.4 ISD4004与外围设备的连接123.2 文字显示153.2.1 组成结构153.2.2引脚功能163.2.3 液晶模组与单片机的连接17第4章 键盘接口与电源174.1键盘接口174.1.1 按键的确认174.1.2 重键与连击的处理184.1.3按键防抖动技术184.2电源214.2.1芯片介绍224.2.2 稳压电路23第5章 软件设计255.1 语音提示应用实现255.1.1 放音程序255.1.2 录音程序265.2 文字显示应用实现275.3 键盘接口应用实现28结束语29致 谢30参考文献31附录一 系统原理图32第1章 绪论随着国民经济的持续发展和各级政府对县域经济的高度关注,乡镇的城市化正在全国如火如荼地展开,基础设施得到了突飞猛进的发展。在这个过程中,乘坐公交车逐步取代了以前落后的出行方式,成为广大城乡人民短途出行的首选。近年来城市公交事业迅速发展,以前靠售票员报站的方式已经不能满足实际需要,很多大中城市都在推广实行无人售票。在广大乡镇,公交车如何实现自动报站还缺乏人们的重视。目前,公交车自动报站主要有以下几种方式:一种是通过全球定位系统(GPS)的用户终端接收工作卫星的导航信息,从而解算出车辆的经纬度信息,进而计算出实时坐标,将其与站点坐标相比较,当车辆驶入站点一定距离范围内时,不用人工干预,系统自动报站;另一种是利用无线射频识别(Radio Frequency Identification)技术,在每一个公交站台设置一个具有唯一ID的射频发射器,采用间歇工作方式发射信号,当公交车即将到达车站时,车载系统接收到站信号并解码出站台的ID号,由单片机控制自动播放对应站台编号的报站语音;还有一种是对车轮轴的转角脉冲进行计数,将计数值和预置值对比,即可确定报站时刻,达到准确报站的目的。然而,这三种方式都不太适合乡镇的发展现状。第一种设备造价过高,定位精度也难以达到要求;第二种站台建设投入较大,站点一旦变更,射频发射装置即须移动,较为麻烦;第三种需要公交线路严格固定,稍有改变,报站就难以准确。为此,本文试图设计一种既方便易行又经济实惠的公交车自动报站系统。本设计采用人工按键的操作方式,实现公交车对站名的语音提示和文字显示功能。当公交车到达某一站时,司机或乘务人员只需按动按键,就可以使单片机控制语音模块对站名进行语音提示,并控制显示模组在液晶屏上显示站数和站名。系统由一片八位单片机,一个语音模块,一个液晶模组,一块稳压芯片,若干电阻电容和与非门等组成。经过本课题的研究,我们得到了一种公交车自动报站的低成本解决方案。1.2 原理本系统使用八位单片机作为控制器件。当系统进行语音再生时,单片机控制语音合成电路中的语音芯片来读取其外接的存储器内部的语音信息,并合成语音信号,再通过语音输出电路,进行语音报站和提示。同时,单片机通过程序读取文字信息,送入液晶显示模组来进行站数和站名的显示。当汽车到达某站时,司机或乘务人员通过键盘来控制系统进行工作。而且,系统具有根据公交车的行驶方向确定报站顺序的功能(司机或乘务人员可以通过按键来控制)。当系统进行语音录制时,语音信号通过语音录入电路送给语音合成电路中的语音芯片,由语音芯片进行数据处理,并将生成的数字语音信息存储到语音存储芯片中,从而建立语音库。1.3框图语音提示模块文字显示模组键盘接口电路电源单片机晶振复位存储器图1.1 系统组成结构1.4简介为了降低控制仪器成本并减小体积,系统采用了Intel生产的8031单片机作为主控芯片。8031内部没有程序存储器,需要外部扩展存储器,选用一片8KB UVEPROM存储器芯片2764就可以满足应用要求。同时,8031还需要外接晶振和复位电路。语音提示模块选用ISD4004系列语音芯片,外接话筒和音箱组成语音录制和播放电路。其中,音箱由音频功率放大器LM386驱动。电源单片机话筒语音芯片音频功率放大器音箱录音控制放音驱动图1.2 语音提示模块组成结构文字显示模组采用12864液晶屏作为显示单元,其驱动芯片为带有中文字库的ST7920控制器系列。模组使用ST7920作为控制器和行驱动器,同时使用ST7921作为列驱动器。与单片机的连接,我们采用并行间接访问方式。键盘接口电路采用独立按键设计,通过触发器来消除按键抖动。电源采用LM2576作为稳压器件,将公交车上的+24V直流电压转变为+5V直流电压。LM2576是NS生产的3A电流输出降压开关型稳压集成芯片,能够较好地解决LM7805因输入电压过高而发热量较大的问题。第2章 硬件设计2.1 微控制器1980年,Intel推出了MCS-51系列高性能八位单片机。与MCS-48系列相比,51单片机无论在CPU功能还是存储容量以及特殊功能部件性能上都要高出一筹。典型产品为8031,其内部资源分配和性能如下:八位CPU、寻址能力为64K,128字节RAM、无ROM,四个八位I/O接口电路,一个串行全双工异步接口,五个中断源和两个中断优先级。2.1.1 复位复位电源线(RST)可以使8031处于复位(即初始化)工作状态。通常,8031的复位有自动上电复位和人工按钮复位两种。在单片机应用系统中,除单片机本身需要复位以外,外部扩展I/O接口电路等也需要复位。因此,我们需要一个包括上电和按钮复位在内的系统同步复位电路。2.1.2 晶振片内晶振电路输入线(XTAL1和XTAL2)用来外接石英晶振和微调电容,即用来连接8031片内OSC的定时反馈回路。石英晶振起振后,能在XYAL2线上输入一个3V左右的正弦波,使得8031片内的OSC电路按与石英晶振相同的频率自激振荡。为了使8031和外部存储器同步从而可靠工作,8031的访存时间必须大于所用外部存储器的最大存取时间。Intel 2764的读出时间为200450ns,然而,从8031向外部存储器发出地址码和读写信号到从P0口选通读出数据或保存写入数据所需要的时间,至少需要两个时钟周期以上。所以,我们选取振荡器频率为4MHz。图2.1 单片机晶振和复位电路2.1.3 存储器 8031片内无程序存储器,需要外接片外存储器。Intel 2764是一种+5V的8KB紫外线可擦除只读存储器,采用HMOS工艺制成,标准存取时间为250ns。现分四个方面介绍如下:(1)内部结构 2764采用双译码编程方式,A12A0上的地址信号经X和Y译码后,在X选择线和Y选择线上产生选择信号,选中存储阵列中相应地址的存储单元工作,并在控制电路的控制下对所选中的存储单元进行读操作(或编程写操作),从存储单元读出的八位二进制信息经输出缓冲器输出到数据线O7O0上。在编程方式下,O7O0上的编程信息在控制电路的控制下写入存储阵列的相应存储单元。(2)引脚功能 2764是28引脚的UVEPROM,其引脚功能分述如下: 地址输入线A12A0 2764的存储容量为8KB,故按照地址线条数和存储容量的关系,共13条地址线,编号为A12A0。2764的地址线应和8031的P2和P0口相接,用于传送单片机送来的地址编码信号,其中A12为最高位。数据线O7O0 双向数据总线,O7为最高位。在正常工作时,O7O0用于传送从2764中读出的数据或程序代码;在编程方式时用于传送需要写入的编程代码(即程序的机器码)。控制线 片选输入线用于控制本芯片是否工作,若给上加一个高电平,则本片不工作;若给上加一个低电平,则选中本片工作。编程输入线用于控制2764处于正常工作状态还是编程/校验状态,若给输入一个TTL高电平,则2764处于正常工作状态;若给输入一个50ms宽的负脉冲,则2764配合VPP引脚上的21V高电压可以处于编程状态。允许输入线也是一条由用户控制的输入线,若给线上输入一个TTL高电平,则数据线O7O0处于高祖状态;若给线上输入一个TTL低电平,则O7O0处于读出状态。其他引脚线 VCC为+5V电源输入线;GND为直流地线;VPP为编程电源输入线,当他接+5V时,2764处于正常工作状态,当VPP接21V电压是,2764处于编程/校验状态。(3)擦除特性 2764存储阵列中的信息可以采用紫外光擦除,擦除后存储的代码为全“1”。(4)工作方式和编程 正常工作方式是指2764在应用系统中的工作方式,常分为读出和维持两种工作状态;编程方式是指给2764写入程序时的工作方式,又可分为编程、禁止编程和校验三种工作状态。图2.2 程序存储器的扩展第3章 语音系统与文字设计3.1语音系统ISD4004系列语音芯片工作电压为+3V,单片录放时间8到16分钟,音质好,适用于移动电话及其他便携式电子产品中。芯片采用CMOS 技术,内含振荡器、防混淆滤波器、平滑滤波器、音频放大器、自动静噪及高密度多电平闪烁存储陈列。芯片设计是基于所有操作必须由微控制器控制,操作命令可通过串行通信接口(SPI或Microwire)送入。芯片采用多电平直接模拟量存储技术, 每个采样值直接存储在片内闪烁存储器中,因此能够非常真实、自然地再现语音、音乐、音调和效果声,避免了一般固体录音电路因量化和压缩造成的量化噪声和金属声。采样频率可以是4.0,5.3,6.4或8.0kHz,频率越低,录放时间越长,而音质则有所下降,片内信息存于闪烁存储器中,可在断电情况下保存一百年(典型值),可反复录音十万次。3.1.2 内部结构图3.1 ISD4004的内部结构3.1.3引脚描述(1)电源(VCCD,VCCA) 芯片内部数字电路电源正极引脚和模拟电路电源正极引脚。为使噪声最小,芯片的数字电路和模拟电路使用不同的电源供电,并且分别引到外封装的不同管脚上,数字和模拟电源端最好分别走线,尽可能在靠近供电端处相连,而去耦电容应尽量靠近器件。(2)地线(VSSD,VSSA) 芯片内部数字电路电源地线和模拟电路电源地线引脚。芯片的数字电路和模拟电路也要使用不同的地线。图3.2 ISD4004芯片引脚(3)同相模拟输入(ANA IN+) 录音信号的同相输入端。输入放大器可用单端或差分驱动。单端输入时,信号由耦合电容输入,最大幅度为峰-峰值32mV,耦合电容和本端的3K电阻输入阻抗决定了芯片频带的低端截止频率。差分驱动时,信号最大幅度为峰-峰值16mV。(4)反相模拟输入(ANA IN-) 差分驱动时,这是录音信号的反相输入端。信号通过耦合电容输入,最大幅度为峰-峰值16mV。 (5)音频输出(AUD OUT) 提供音频输出,可驱动5K的负载。 (6)片选() 此端为低,即向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.75s是高电平,31.25s为低电平。该端可用于存储管理技术。 (12)外部时钟(XCLK) 本端内部有下拉元件。芯片内部的采样时钟在出厂前已调校,误差在1%以内。商业级芯片在整个温度和电压范围内, 频率变化在2.25%以内。工业级芯片在整个温度和电压范围内,频率变化在4%以内,此时建议使用稳压电源。若要求更高精度,可从本端输入外部时钟。由于内部的防混淆及平滑滤波器已设定,故上述推荐的时钟频率不应改变。输入时钟的占空比无关紧要,因内部首先进行了分频。在不外接时钟时,此端必须接地。(13)自动静噪(AM CAP) 当录音信号电平下降到内部设定的某一阈值以下时,自动静噪功能使信号衰弱,这样有助于滤除无信号(静音)时的噪声。通常本端对地接1µF的电容,构成内部信号电平峰值检测电路的一部分。检出的峰值电平与内部设定的阈值作比较,决定自动静噪功能的翻转点。大信号时,自动静噪电路不衰减,静音时衰减6dB。1µF 的电容也影响自动静噪电路对信号幅度的响应速度。本端接VCCA则禁止自动静噪。3.1.4 操作规则(1)串行外设接口 ISD4000系列语音芯片工作于SPI串行接口。SPI协议是一个同步串行数据传输协议,设定微控制器的SPI移位寄存器在SCLK的下降沿将数据送至MISO引脚。以ISD4004为例,协议的具体内容如下:所有串行数据传输开始于下降沿。在传输期间必须保持低电平,在两条指令之间则保持高电平。数据在时钟上升沿移入,在下降沿移出。变低,输入指令和地址后,ISD4004才能开始录/放操作。指令格式是(八位控制码)加(十六位地址码)。ISD4004的任何操作如果遇到EOM或OVF,则产生一个中断,该中断状态在下一个SPI周期开始时被清除。使用“读”指令使中断状态位移出ISD4004的MISO引脚时,控制及地址数据也应同步从MOSI端移入。因此,要注意移入的数据是否与器件当前进行的操作兼容。当然,也允许在一个SPI周期里,同时执行读状态和开始新的操作(即新移入的数据与器件当前的操作可以不兼容)。所有操作在运行位(RUN)置1时开始,置0时结束。所有指令都在端上升沿开始执行。(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的指令码指令控制码操作POWERUP00100xxx上电:等待TPUD后可以工作SETPLAY11100xxx<A15-A0>从指定地址开始放音PLAY11110xxx从当前地址开始放音SETREC10100xxx<A15-A0>从指定地址开始录音REC10110xxx从当前地址开始录音SETMC11101xxx<A15-A0>从当前地址开始快进MC11111xxx执行快进,直到EOMSTOP0x110xxx停止当前操作STOPWRDN0x01xxxx停止当前操作并掉电RINT0x110xxx读状态OVF和EOM注:快进只能在放音操作开始时选择。(5)SPI端口的控制位MOSIMISOOOC3C4XC0C2OVFEOMP0P15000000C1XXA15A0快进模式操作是否使用指令地址电源控制录/放模式允许/禁止操作图3.3 ISD4004的SPI控制位(6)SPI控制寄存器 SPI控制寄存器控制器件的每个功能,如录音、放音、信息检索(快进)、上电/掉电、开始/停止操作、忽略地址指针等。表3.2 ISD4004的SPI控制寄存器控制位值功能控制位值功能RUN10允许/禁止操作开始停止PU10电源控制上电掉电P/10录/放模式放音录音IAB10是否使用指令地址忽略输入地址寄存器内容使用输入地址寄存器内容MC10快进模式允许禁止P15-P0行指针寄存器输出A15-A0输入地址寄存器注:IAB置0时,录/放操作从A9A0地址开始。为了能连贯地录/放到后续的存储空间,在操作到达该行末之前,应发出第二个SPI指令将IAB置1,否则器件会在同一地址上反复循环。这个特点对语音提示功能很有用。RAC引脚和IAB位可用于信息管理。SPI端口简单框图如下:XXX输入移位寄存器C4C0MOSI选择逻辑字节行计数器输出移位寄存器EOMOVFMISOA15A0P15P0当IAB=0时加载到行计数器图3.4 ISD4004的SPI端口3.1.4 ISD4004与外围设备的连接语音芯片ISD4004主要与三部分外围设备连接,即单片机控制电路、语音录入电路和语音播放电路。单片机的P1.0、P1.1和P1.2引脚接独立按键,控制语音芯片的放音过程;P1.3引脚经电阻与控制外部语音录入和语音播放电路接通与否的三极管的基极相连;P1.4引脚接片选端,控制ISD4004选通与否;P1.5引脚接串行输入MOSI,经此读入放音地址;P1.7引脚接串行时钟SCLK;两芯片中断口相连,以收发中断信号。同相模拟输入(ANA IN+)和反相模拟输入(ANA IN-)与录音电路相连,通过话筒录制各站信息存储于芯片内部以供播放时应用。音频功率放大器LM386驱动音箱组成放音电路,与音频输出端(AUD OUT)相连。另外,发光二极管接于电源通路,可以显示语音芯片工作情况。图3.5 ISD4004与外围设备的连接3.2 文字显示液晶显示器LCD(Liquid Crystal Display)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。另外,LCD在大小和形状上更加灵活,接口简单,不但可以显示数字、字符,而且可以显示文字和图形。字符和数字的简单显示,不能满足图形曲线和文字显示的要求。点阵式LCD不仅可以显示字符、数字,还可以显示各种图形、曲线及文字,并且可以实现屏幕上下左右滚动、动画、分区开窗口、反转、闪烁等功能,用途十分广泛。现在,随着液晶技术的突破,液晶显示器的质量有了很大的提高,品种也在不断推陈出新,不但有各种规模的黑白液晶显示器,还有绚丽多彩的彩色液晶显示器。在点阵式液晶显示器中,把控制驱动电路与液晶点阵集成在一起,组成一个显示模组,可与八位微处理器接口直接连接,不但使用方便,而且价格也比较便宜。TH12864液晶显示模组是128×64点阵的文字图形型液晶显示模组,内置国标GB2312码简体中文字库(16×16点阵)、ASCII码字符集(8×16点阵)和64×256点阵显示RAM(GDRAM绘图区域);可与CPU直接接口,提供两种界面来连接微处理机(八位并行及串行连接方式);具有光标显示、画面移位和睡眠模式等多种功能。3.2.1 组成结构图3.6 液晶模组的组成结构 TH12864使用ST7920作为行驱动器,同时使用ST7921作为列驱动器。液晶显示中应尽量避免一个字符一半在左半屏显示,另一半在右半屏显示的情况。由于TH12864液晶显示器是一种带有输出驱动的完整的液晶显示器,八位微处理器可直接与其相连,对液晶屏进行行、列驱动。3.2.2引脚功能TH12864液晶显示器有20个管脚,分电源线、数据线和控制线。其详细功能如下:(1)电源部分VDD 电源正极,通常接+5V。VSS 电源负极,接-5V。为了简化电路,可直接接地。V0 电源控制端,用来调节显示屏灰度。调节该端的电压,可以改变显示屏字符、图形的颜色深浅。(2)数据线DB0DB7 数据总线,双向。(3)控制信号PSB 并口/串口选择信号,接高电平时选择并口,接低电平时选择串口。模块上一般都有跳线方式将其接高或接低,用户可以不处理(事先须声明是用并口还是串口);也可以选择不在模块上处理,而由用户自己选择并口还是串口。RS(CS) 寄存器选择信号,高电平时为数据操作,低电平时为写指令或读状态(串行方式下为片选信号,低电平有效)。R/W(SID) 读/写选择信号,高电平为读选通,低电平为写选通(串行方式下作数据线使用)。E(SCLK) 读/写使能信号,在E的下降沿,数据被锁存(写)入ST7921;在E为高电平期间,数据被读出(串行方式下作时钟输入)。 复位信号,低电平有效。当其有效时,关闭液晶显示,使显示起始行为0。可与单片机相连,由单片机控制;也可直接接VDD,使之不起作用。BLA 背光源正极(LED+5V)。BLK 背光源负极(LED0V)。3.2.3 液晶模组与单片机的连接图3.7 液晶模组与单片机的连接第4章 键盘接口与电源4.1键盘接口键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。键盘可分为编码键盘和非编码键盘两种类型。前者能自动识别按下的键并产生相应代码,以并行或串行方式发送给CPU。它使用方便,接口简单,响应速度快,但需要专用的硬件电路。后者则通过软件来确定按键并计算键值。这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持,因此得到了广泛的应用。键盘是计算机应用系统中一个重要的组成部分,设计时必须解决下述一些问题。4.1.1 按键的确认键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,例如高电平表示断开,低电平表示闭合。所以,通过检测电平状态(高或低),便可确定按键是否已被按下。为了缩小整个系统的规模,简化硬件线路,我们希望设置最少量的按键,获得更多的操作控制功能。4.1.2 重键与连击的处理实际按键操作中,若无意中同时或先后按下两个以上的键,系统确认哪个键操作是有效的,完全由设计者的意志决定。如视按下时间最长者为有效键,或认为最先按下的键为当前按键,也可以将最后释放的键看成是输入键。不过微型计算机控制系统毕竟资源有限。交互能力不强,通常总是采用单键按下有效,多键同时按下无效的原则(若系统没有复合键,当然应该另当别论)。有时,由于操作人员按键动作不够熟练,会使一次按键产生多次击键的效果,即重键的情况。为了排除重键的影响,编制程序时,可以将键的释放作为按键的结束。等键释放电平后再转去执行相应的功能程序,以防止一次击键多次执行的错误发生。4.1.3按键防抖动技术键盘,作为向系统提供操作人员的干预命令的接口,以其特定的按键序列代表着各种确定的操作命令。所以,准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。由于机械触点的弹性作用,一个按键开关在闭合及断开的瞬间必然伴随有一连串的抖动。抖动过程的长短由按键的机械特性决定,一般为1020ms。为了使CPU对一次按键动作只确认一次,必须排除抖动的影响,可以从硬件及软件两个方面着手解决。(1)硬件防抖动技术通过硬件电路消除按键过程中抖动的影响是一种广为才用的措施。这种做法,工作可靠,且节省机时。下面介绍两种硬件防抖动电路。滤波防抖动电路利用RC积分电路对干扰脉冲的吸收作用,选择好电路的时间常数,就能在按键抖动信号通过此滤波电路时,消除抖动的影响。图4.1 滤波防抖动电路当键K未按下时,电容C两端电压均为0,非门输出为1。当K按下时,由于C两端电压不可能产生突变。尽管在触点接触过程中可能出现抖动,只要适当选取R1、R2和C的值,即可保证电容C两端的充电电压波动不超过非门的开启电压(TTL为0.8V),非门的输出将维持高点平。同理,当触点K断开时,由于电容C经过电阻R2放电,C两端的放电电压波动不会超过非门的关闭电压,因此,非门的输出也不会改变。总之,只要R1、R2和C的时间常数选取得当,确保电容C由稳态电压充电到开启电压,或放电到关闭电压的延迟时间等于或大于10ms,该电路就能消除抖动的影响。双稳态防抖动电路用两个与非门构成一个RS触发器,即可构成双稳态防抖动电路。图4.2 双稳态防抖动电路设按键K未按下时,键K与键A端(ON)接通。此时,RS触发器的Q端为高电平1,致使端为低电平0。此信号引致1#与非门的输入端,将其锁住,使其固定输出为1。每当开关K被按动时,由于机械开关具有弹性,在A端将形成一连串的抖动波形。而端在K到达B端之前始终为0。这时,无论A处出现怎样的电压(0或1),Q端恒为1.只有当K到达B端,使B端为0,RS触发器产生翻转,变为高电平,导致Q降为0,并锁住门2,使其输出恒为1。此时,即使B处出现抖动波形,也不会影响端的输出,从而保证Q端恒为0。同理,在释放键的过程中,只要一接通A,Q端就升为1。只要开关K不再与B端接触,双稳态电路的输出将维持不变。图4.3 键盘接口电路 在键盘接口中,开关S0接P1.0口,控制语音播放和文字显示;开关S1接P1.1口,控制提示顺序;开关S2接P1.2口,用来跳过某站的提示,以实现播放过程的微调。(2)软件防抖动方法若采用硬件防抖动电路,则N个键就必须配有N个防抖动电路。因此,当键的个数比较多时,硬件防抖动将无法胜任。在这种情况下,可以采用软件的方法进行防抖动。当第一次检测到有键按下时,先用软件延时(1020ms),而后再确认该键电平是否仍维持闭合状态电平。若保持闭合状态电平,则确认此键确已按下,从而消除了抖动的影响。4.2电源嵌入式控制系统一般都需要一个稳定的工作电压才能可靠工作。我们多习惯采用线性稳压器件(如78xx系列三端稳压器件)来调节和稳定电压,将较高的直流电压转变为单片机所需的工作电压。这种线性稳压电源的线性调整工作方式在工作中会产生较大的热损失(数值为压降U×负荷I),其工作效率仅为30%50%;加之在高粉尘等恶劣环境下,我们往往将嵌入式控制系统置于密闭容器内,加剧了单片机的恶劣工况,使系统的稳定性变得更差。开关电源调节器件则以完全导通或关断的方式工作,工作时要么是大电流流过低导通电压的开关管,要么是完全截止无电流流过。所以,开关稳压电源的功耗极低,平均工作效率可达70%90%。在相同压降的条件下,开关电源调节器件与线性稳压器件相比热损失小很多。因此,开关稳压电源可以大大减少散热片体积和印刷电路板的面积,甚至在大多数情况下不需要加装散热片,从而减少了对单片机工作环境的有害影响。采用开关稳压电源来替代线性稳压电源为单片机供电的另一个优势是:开关管的高频通断特性以及串联滤波电感的使用对来自电源的高频干扰具有较强的抑制作用。此外,由于开关稳压电源热损失的减少,设计时我们还可提高稳压电源的输入电压,使用一片LM2576就可以将公交车上的+24V直流电压转化为+5V直流电压,而不需要考虑芯片过分发热的问题。LM2576开关稳压集成芯片是线性三端稳压器件(如78xx系列三端稳压器件)的替代品,具有可靠的工作性能、较高的工作效率和较强的输出电流驱动能力,从而为单片机的可靠、稳定工作提供了强有力的保证。4.2.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-263LM2576的内部框图如下图所示:图4.4 LM2576的内部结构该框图的引脚定义对应于五脚TO-220封装形式。LM2576内部包含52kHz振荡器、1.23V基准稳压电路、热关断电路、电流限制电路、放大器、比较器及内部稳压电路等。为了产生不同的输出电压,通常将比较器的负端接基准电压(1.23V),正端接分压电阻网络,这样可根据输出电压的不同选定不同的阻值,其中R1=1k(可调-ADJ时开路),R2分别为1.7 k(3.3V)、3.1 k(5V)、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。4.2.2 稳压电路图4.5 由LM2576组成的稳压电路由LM2576构成的基本稳压电路仅需四个外围器件:(1)储能电感L1的选择要根据LM2576的输出电压、最大输入电压、最大负载电流等参数选择。首先,依据如下公式计算出微秒常数(ET):ET=(VIN - VOUT)×VOUT/ VIN×1000/f上式中,VIN是LM2576的最大输入电压,VOUT是LM2576的输出电压,f是LM2576的工作振荡频率值(52kHz)。ET确定之后,就可参照相应的电压、微秒常数和负载电流曲线来查找所需的电感值了。(2)输入电容CIN一般应大于或等于100F,安装时要求尽量靠近LM2576的输入引脚,其耐压值应与最大输入电压值相匹配。为了防止在输入端出现大的瞬态电压,要选低ESR(等效串联电阻)的铝或钽电容作为旁路电容。还有,当输入电压波动较大,输出电流又较高时,容量一定要选得大些,470F1000F都是可行的选择;电容的电流均方根值至少要为直流负载电流的1/2;基于安全考虑,电容的额定耐压值要为最大输入电压的1.5倍。千万不要选用瓷片电容,以防止造成严重的噪声干扰! (3)输出电容COUT的值应依据下式进行计算(单位F): COUT13300 VIN/ VOUT×L上式中,VIN是LM2576的最大输入电压,VOUT是LM2576的输出电压,L是经计算并查表选出的电感L1的值,其单位是H。电容COUT耐压值应大于额定输出电压的1.52倍。对于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系列的肖特基二极管,因为此类二极管开关速度快,正向压降低,反向恢复时间短。此外,还需注意反馈线要远离电感,电路中输入/输出电容、续流二极管、接地端、控制端的连线要尽可能短而粗,最好用地线屏蔽。第5章 软件设计5.1 语音提示应用实现5.1.1 放音程序 图5.1 语音芯片放音程序流程图5.1.2 录音程序 图5.2 语音芯片录音程序流程图5.2 文字显示应用实现图5.3 文字显示程序流程图5.3 键盘接口应用实现图5.4 键盘接口程序流程图 结束语本设计是基于单片机的公交车语音文字报站系统,使用8031单片机作为主控制器,通过与语音芯片ISD4004,液晶显示模组TH12864和键盘接口电路的连接完成语音录制、播放和文字显示等功能。文中详细介绍了ISD4004内部结构、各引脚功能、工作原理,TH12864的组成原理、引脚功能和LM2576的功能、原理等。系统其他部分包括人机界面(键盘控制)技术的实现和抗干扰设计等。通过本次设计,我不仅学习到了MCS-51系列单片机的知识,更拓展了自己的视野,培养了自己的学习能力。这些进步对以后的工作学习肯定会有很大的帮助。当然,由于设计的时间较短,加之对单片机知识比较陌生,设计之中还有很多不足的地方需要