基于ISD4004和51单片机的公交车报站系统

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

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

目录 目 录

摘 要...............................................................................................................................I Abstract ........................................................................................................................ II 第1章 绪论 ................................................................................................................. 1

1.1 课题研究的背景及意义 .................................................................................. 1 1.2 报站器的发展趋势 .......................................................................................... 1 1.3 设计的主要目标及任务 .................................................................................. 2 1.4 技术指标 .......................................................................................................... 2 第2章 方案设计 ......................................................................................................... 3

2.1 原理 .................................................................................................................. 3 2.2 方案设计 .......................................................................................................... 3 第3章 硬件电路的设计 ............................................................................................. 4

3.1 主控电路的设计 .............................................................................................. 4

3.1.1 关于AT89C51单片机 .......................................................................... 4

3.1.1.1 主要性能 ...................................................................................... 4 3.1.1.2 引脚功能说明 .............................................................................. 5 3.1.2 振荡器电路的设计 ................................................................................ 7 3.1.3 复位电路的设计 .................................................................................... 8

3.1.3.1 手动复位 ...................................................................................... 9 3.1.3.2 上电复位 ...................................................................................... 9 3.1.3.3 复位后寄存器的状态 ................................................................ 10 3.1.4 电压变换电路的设计 .......................................................................... 11 3.2 语音输出电路的设计 .................................................................................... 11

3.2.1 关于语音芯片 ...................................................................................... 11

3.2.1.1 ISD—Winbond语音芯片概述 ............................................... 11 3.2.1.2 语音芯片ISD4004 .................................................................... 12 3.2.2 录音、放音电路的设计 ...................................................................... 16

3.2.2.1 功放电路的设计 ........................................................................ 17 3.2.2.2 录音电路的设计 ........................................................................ 17

3.3 键盘接口 ........................................................................................................ 19

3.3.1 按键的确认 .......................................................................................... 19 3.3.2 重键与连击的处理 .............................................................................. 19 3.3.3 按键防抖动技术 .................................................................................. 19 3.4 文字显示 ........................................................................................................ 22

3.4.1液晶模组与单片机连接图 ................................................................... 27

第4章 软件设计 ....................................................................................................... 28

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

4.1.1 放音程序 .............................................................................................. 28 4.1.2 录音程序 .............................................................................................. 29 4.2 文字显示应用实现 ........................................................................................ 30 4.3 键盘接口应用实现 ........................................................................................ 31 总结.............................................................................................................................. 32

I

吉林建筑工程学院电子信息科学与技术专业毕业论文 致谢.............................................................................................................................. 33 参考文献 ..................................................................................................................... 34 附录1 系统原理图 .................................................................................................... 35 附录2 语音提示程序 ................................................................................................ 36 附录3 文字显示程序 ................................................................................................ 40 附录4 键盘接口程序 ................................................................................................ 56

摘要 摘 要

本设计是基于单片机的公交车语音文字报站系统,主要解决如何方便、准确地指示乘客到站的问题,具有模拟人声进行报站和预报站,对所报站数和站名进行文字显示和站名语音信息录放及站名选择控制等功能。

系统包括微控制器模块,语音录放电路,站数、站名显示模组,键盘接口电路,复位电路及电源等。系统使用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.

Keywords Single-chip Microcomputer; Audio Prompt; Character Display; Bus-Stop Auto-Announce

II

第1章 绪论 第1章 绪论

随着科学技术的日益发展和进步, 无人售票公交车在街头多起来了,语音报站器也被广泛使用,这在相当大的程度上免除了乘务人员沿途报站的麻烦,给许多不熟悉公交线路的乘客带来了方便。

1.1 课题研究的背景及意义

公共汽车为外出的人们提供了方便快捷的服务,而公共汽车的报站直接影响服务的质量。传统由乘务人员人工报站,该方式因其效果太差和工作强度太大,在很多大城市已经被淘汰。近年来,随着科学技术的日益发展和进步,微型计算机技术已经在许多领域得到了广泛的应用。在声学领域,微机技术与各种语音芯片相结合,即可完成语音的合成技术,使得汽车报站器的实现成为可能,从而为市民提供了更加人性化的服务。鉴于传统公交车报站系统的不足之处,结合公交车辆的使用特点及实际营运环境,设计了一种由单片机控制的公交车自动报站系统。

公交车自动报站器的设计主要是为了弥补改变传统语音报站器必须有司机操控才能工作的落后方式,进站、出站自动播报站名及服务用语,为市民提供更人性化,更完善的服务。

1.2 报站器的发展趋势

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

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

1

吉林建筑工程学院电子信息科学与技术专业毕业论文 达到准确报站的目的。

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

1.3 设计的主要目标及任务

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

1.4 技术指标

工作电压 24V 静态功耗 ?6W 音频输出 ?10W 信噪比 34DB

系统容量 可容纳300个站点信息和8分钟语音广告信息 环境温度 -30℃~80℃

2

第2章 方案设计 第2章 方案设计

2.1 原理

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

2.2 方案设计

语音合成 电路 51单片机 LCD点阵显示电路 语音输入输出电路 键盘

图2-1 原理框图

状态指 示电路 为了降低控制仪器成本并减小体积,系统采用了Intel生产的AT89C51单片机作为主控芯片。

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

文字显示模组采用LCD12864液晶屏作为显示单元,液晶显示器LCD(Liquid Crystal Display)广泛应用于微型计算机系统中,与LED相比,具有功率低,抗干扰能力强,体积小,价格低廉等优点。

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

电源采用7805作为稳压器件,将公交车上的+24V直流电压转变为+5V直流电压。7805是集成稳压器具有稳压精度高、工作稳定可靠、外围电路简单、体积小、重量轻等显箸优点。

3

吉林建筑工程学院电子信息科学与技术专业毕业论文 第3章 硬件电路的设计

公交车报站系统主要由四个部分组成,即主控电路、键盘接口电路、语音电路以及LCD点阵汉字显示电路。各部分电路的设计在本章中做了详细的说明。

3.1 主控电路的设计

3.1.1 关于AT89C51单片机

AT89C单片机的结构框图如图3-1所示。它主要由下面几个部分组成:1个8位中央处理单元(CPU)、片内Flash存储器、片内RAM、4个8位的双向可寻址I/O口、1个全双工UART(通用异步接收发送器)的串行接口、2个16位的定时器/计数器、多个优先级的嵌套中断结构,以及一个片内振荡器和时钟电路。在AT89C单片机结构中,最显著的特点是内部含有Flash存储器,而在其他方面的结构,则和Inter公司的8051的结构没有太大的区别。

P0 P2 P1 P3 地址/数据 外部

中断

片内 Flash 存储器 ETC 定时器1 定时器0 中断控制 片内 RAM 计数器 输入

CPU 振荡器 总线控制 4I/O端口 串行端口 TXD RXD 图3-1 AT89C单片机的结构框图 3.1.1.1 主要性能 1. 与MCS-51 兼容

2. 4K字节可编程闪烁存储器

寿命:1000次写/擦循环 数据保留时间:10年 3. 全静态工作:0Hz-24Hz 4. 三级程序存储器锁定

4

第3章 硬件电路设计 5. 128*8位内部RAM 6. 32可编程I/O线 7. 两个16位定时器/计数器 8. 6个中断源 9. 可编程串行通道 10. 片内振荡器和时钟电路

另外,AT89C51是用静态逻辑来设计的,其工作频率可下降到0Hz,并提供两种可用软件来选择的省电方式——空闲方式(Idle Mode)和掉电方式(Power Down Mode)。在空闲方式中,CPU停止工作,而RAM、定时器/计数器、串行口和中断系统都继续工作。在掉电方式中,片内振荡器停止工作,由于时钟被“冻结”,使一切功能都暂停,故只保存片内RAM中的内容,直到下一个硬件复位为止。

3.1.1.2 引脚功能说明

AT89C51引脚图如图3-2所示。

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口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。

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”时,它利用内部上拉优势,当

5

吉林建筑工程学院电子信息科学与技术专业毕业论文 对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。

图3-2 AT89C51引脚图

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:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址

6

第3章 硬件电路设计 的地位字节。在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端输入,

图3-3 AT89C51单片机内部振荡器电路

7

Vcc 内部定时 Q2 D1 400? XTAL1

Q1 D2 Q3 Rf XTAL2

/PD Q4 吉林建筑工程学院电子信息科学与技术专业毕业论文 而XTAL2端浮空。在组成一个单片机应用系统时,多数采用图3-5所示的方法,这种方式的结构紧凑,成本低廉,可靠性高。

外部振荡信号

NC XTAL2 XTAL1 GND CMOS门 图3-4 外部时钟接法

Vcc 内部定时 Rf

/PD GND XTAL1 89系列单片机 XTAL2 石英晶体或 陶瓷振荡器

C1 C2 图3-5 片内振荡器等效电路

振荡器的等效电路如图3-5上部所示。在图中给出了外接元件,即外接晶及电容C1,C2,并组成并联谐振电路。

在本设计中,采用的是内部方式,即如图3-5所示,在XTAL1和XTAL2引脚上外接一个12MHZ的晶振及两个10pF的电容组成。

3.1.3 复位电路的设计

89系列单片机与其他微处理器一样,在启动的时候都需要复位,使CPU及系统各部件处于确定的初始状态,并从初始状态开始工作。89系列单片机的复位信号是从RST引脚输入到芯片内的施密特触发器中的。当系统处于正常工作状态时,且振荡器稳定后,如RST引脚上有一个高电平并维持2个机器(24个振荡周期),则CPU就可以响应并将系统复位。复位时序如图3-6所示,因外部的复位信号是与内部时钟异步的,所以在每个机器周期的S5P2都对RST引脚上的状态采样。当在RST端采样到“1”信号且该信号维持19个振荡周期以后,将ALE和/PSEN接成高电平 ,使器件复位。在RST端电压变低后,经过1-2个机器周期后退出复位状态,重新启动时钟,并恢复ALE和/PSEN的状态。如果在系统复位期间将ALE和/PSEN引脚拉成低电平,则会引起芯片进入不定状态。

8

第3章 硬件电路设计

RST: | S5 | S6 | S1 | S2 | S3 | S4 | S5 | S6 | S1 | S2 | S3 | S4 | S5 | S6 | S1 | S2 | S3 |

ALE : /PSEN : P0: INST ADDR INST ADDR INST ADDR INST ADDR INST ADDR INST 11振荡周期 19振荡周期 图3-6 内部复位定时时序 3.1.3.1 手动复位

手动复位需要人为在复位输入端RST上加入高电平。一般采用的办法是在RST端和正电源Vcc之间接一个按钮。当人为按下按钮时,则Vcc的+5V电平就会直接加到RST端。由于人的动作很快也会使按钮保持接通达数十毫秒,所以,保证能满足复位的时间要求。手动复位的电路如图3-7所示。

图3-7 手动复位电路 8.2k Vcc Vcc AT89C51 RST + 10uF GND 3.1.3.2 上电复位

AT89C51的上电复位电路如图3-8所示,只要在RST复位输入引脚上接一电容至Vcc端,下接一个电阻到地即可。对于CMOS型单片机,由于在RST端内部有一个下拉电阻,故可将外部电阻去掉,而将外接电容减至1uF。

上电复位的过程是在加电时,复位电路通过电容加给RST端一个短暂的高电平信号,此高电平信号随着Vcc对电容的充电过程而逐渐回落,即RST端的

9

吉林建筑工程学院电子信息科学与技术专业毕业论文 高电平信号必须维持足够长的时间。

上电时,Vcc的上升时间约为10ms,而振荡器的起振时间取决于振荡频率,如晶振频率为10MHz,起振时间为1ms;晶振频率为1MHz,起振时间则为10ms。

在图3-7的复位电路中,当Vcc掉电时,必然会使RST端电压迅速下降到0V以下,但是,由于内部电路的限制作用,这个负电压将不会对器件产生损害。另外,在复位期间,端口引脚处于随机状态,复位后,系统将端口置为全“1”态。

如果系统在上电时得不到有效的复位,则在程序计数器PC中将得不到一个合适的初值,因此,CPU可能会从一个未被定义的位置开始执行程序。

图3-8 上电复位电路 3.1.3.3 复位后寄存器的状态

当系统复位时,内部寄存器的状态如表3-1所列,即在SFRS中,除了端口锁存器、堆栈指针SP和串行口的SBUF外,其余的寄存器全部清0,端口锁存器的复位值为0FFH,堆栈指针值为07H,SBUF内为不定值。内部RAM的状态不受复位的影响,在系统上电时,RAM的内容是不定的。 在本设计中复位电路采用的是上电复位,即如图3-8所示。

表3-1 各特殊功能寄存器的复位值

专用寄存器 PC ACC PSW DPTR IP TMOD TL0 TL1 复位值 0000H 00H 00H 0000H ×××00000B 00H 00H 00H 专用寄存器 TCON B SP P0-P3 IE TH0 TH1 SCON 复位值 00H 00H 07H FFH 0××00000B 00H 00H 00H 10k 10n F Vcc + AT89C51 RST GND Vcc 10

第3章 硬件电路设计 3.1.4 电压变换电路的设计

公交车上所使用的电源电压为24V,而AT89C51芯片的工作电压为5V,所以需要将24V的电压转换成5V电压。设计中采用了三端固定正电压集成稳压器7805,来得到+5V稳定电压。电压变换电路如图3-9所示。 集成稳压器是指将不稳定的直流电压变为稳定的直流电压的集成电路。由于集成稳压器具有稳压精度高、工作稳定可靠、外围电路简单、体积小、重量轻等显箸优点,在各种电源电路中得到了普遍的应用。常用的集成稳压器有:金属圆形封装、金属菱形封装、塑料封装、带散热板塑封、扁平式封装、双列直插式封装等。在电子制用中应用较多的是三端固定输出稳压器。 78xx系列集成稳压器是常用的固定正输出电压的集成稳压器,输出电压有5V、6V、9V、12V、15V、18V、24V等规格,最大输出电流为1.5A。它的内部含有限流保护、过热保护和过压保护电路,采用了噪声低、温度漂移小的基准电压源,工作稳定可靠。根据输出电流值的不同,选用不同系列的芯片,当电流小于100mA时,可以选用78L00系列;当电流在0.5A以内时,可选用78M00系列;当电流在1.5A以内,应选用7800系列的芯片。7805的最大输出电流为1.5A。

图3-9 电压变换电路

3.2 语音输出电路的设计

3.2.1 关于语音芯片

3.2.1.1 ISD—Winbond语音芯片概述

美国ISD(Information Storsge Devices)公司是专业研制和生产先进的半导体语音芯片的著名厂家和领导者,其开发的高密度“多级”存储方法称作“ChipCorder”的专业技术,可以在一个存储单元存储256级的不同电平,即存储相同信息仅需要用传统存储技术1/8的存储空间。该公司与1998年12月被台湾华邦(Winbond)并购,1990年改名为WECA(Winbond Electronic Corpration American),但保留其ISD名称和标识,这个合并将把ISD公司领先的信息存储、

11

第3章 硬件电路设计 存储器断电不会丢失数据,所以保存数据不需要耗电。典型的被存储信息可以保存时间高达100年,同一个存储单元可以反复被录音10万次。 3.2.2.1 功放电路的设计

ISD4004芯片的音频输出引脚AUD OUT可以驱动一个5k?的负载,当器件上电后,该引脚输出的电源为1.2V。本设计中选用的放大器是LM386,LM386 是为低电压应用设计的音频功率放大器,其工作电压为6V,最大失真度为0.2,功率频响为20~100kHz。功放电路连线图如图3-12所示。 3.2.2.2 录音电路的设计

连线图如图3-13所示,MIC是麦克风,即语音信号的输入端,输出的模拟语音信号经过三极管组成的放大器放大后加到ISD4004语音芯片的ANA IN-反向模拟输入端。

图3-13 录音电路

图3-14为ISD4004与外围设备的连接总图。

17

吉林建筑工程学院电子信息科学与技术专业毕业论文

图3-14 ISD4004与外围设备的连接

18

第3章 硬件电路设计 3.3 键盘接口

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

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

3.3.1 按键的确认

键盘实际上是一组按键开关的集合,其中每一个按键就是一个开关量输入装置。键的闭合与否,取决于机械弹性开关的通、断状态。反应在电压上就是呈现出高电平或低电平,例如高电平表示断开,低电平表示闭合。所以,通过检测电平状态(高或低),便可确定按键是否已被按下。为了缩小整个系统的规模,简化硬件线路,我们希望设置最少量的按键,获得更多的操作控制功能。

3.3.2 重键与连击的处理

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

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

3.3.3 按键防抖动技术

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

多数键盘的按键均采用机械弹性开关。一个电信号通过机械触点的断开、闭合过程,完成高、低电平的切换。由于机械触点的弹性作用,一个按键开关在闭

19

吉林建筑工程学院电子信息科学与技术专业毕业论文 合及断开的瞬间必然伴随有一连串的抖动。抖动过程的长短由按键的机械特性决定,一般为10~20ms。

图3-15 键盘接口电路

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

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

①滤波防抖动电路

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

20

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

图3-16 滤波防抖动电路

②双稳态防抖动电路

用两个与非门构成一个RS触发器,即可构成双稳态防抖动电路。 设按键K未按下时,键K与键A端(ON)接通。此时,RS触发器的Q端为高电平1,致使Q端为低电平0。此信号引致1#与非门的输入端,将其锁住,使其固定输出为1。每当开关K被按动时,由于机械开关具有弹性,在A端将形成一连串的抖动波形。而Q端在K到达B端之前始终为0。这时,无论A处出现怎样的电压(0或1),Q端恒为1.只有当K到达B端,使B端为0,RS触发器产生翻转,Q变为高电平,导致Q降为0,并锁住门2,使其输出恒为1。 同理,在释放键的过程中,只要一接通A,Q端就升为1。只要开关K不再与B端接触,双稳态电路的输出将维持不变。

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

(2)软件防抖动方法

若采用硬件防抖动电路,则N个键就必须配有N个防抖动电路。因此,当键的个数比较多时,硬件防抖动将无法胜任。在这种情况下,可以采用软件的方法进行防抖动。当第一次检测到有键按下时,先用软件延时(10~20ms),而后

21

第3章 硬件电路设计 3.4.1液晶模组与单片机连接图

图3-19 液晶模组与单片机连接图

27

吉林建筑工程学院电子信息科学与技术专业毕业论文 第4章 软件设计

4.1 语音提示应用实现

4.1.1 放音程序

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

结束 图4-1 语音芯片放音程序流程图

28

第4章 软件设计 4.1.2 录音程序

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

图4-2 语音芯片录音程序流程图

29

吉林建筑工程学院电子信息科学与技术专业毕业论文 4.2 文字显示应用实现

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

图4-3 文字显示程序流程图

30

第4章 软件设计 4.3 键盘接口应用实现

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

结束图4-4 键盘接口程序流程图

31

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

Top