毕业设计-基于at89c51单片机的公交车语音报站系统的设计内容摘要:

好 5V— 电压转换处理(由 实现)模块引脚直接接 5V 电源。 模块有两路输入和两路输出。 输入:MIC 输入以及耳机插口输入;输出:喇叭输出与耳机插口输出。 其中 GND 与 相 9 连, VCC 与 相连接,为语音模块提供电源。 SCLK 串行接口时钟输入端与 相连, /SS 为片选与 相连, MISO 串行数据输出端与 相连,用来控制数据输出,MOSI 串行数据输入端与 相连,用来控制数据输入。 模块的接口定义如下(顶视)图 所示。 (注: NC 为空脚) MISO串行输出 MOSI串行输入 VCC+ 5V /SS片选 SCLK时钟 GND地 图 语音 模块的接口定义 LCD1602 液晶显示模块的 rs,rw,e 分别与 51 单片机的 P3^5, P3^6, P3^7 端口连接,进行程序的读写数据,字符操作。 而 D0~D7 分别与 51 单片机的 P0 口进行连接,用来输出数据与字符。 如图 所示。 输入和输出音量调节 电源转换 音频输出 音频输入 MIC 此处为 IDC10接口 标有白色框的为 10 图 液晶 1602 与 AT89C51 实物连接图 本次设计的按键模块采用通用按键开关,简单易行且控制方便, 与 51 单片机的 口连接,用以控制整个系统设计中 LCD 液晶显示以及语音播放。 在此就不做详细介绍。 功能描述 本次设计的课题是基于单片机的公交车语音报站系统,因此主要功能是完成公交车语音报站。 采用 AT89C51 单片机作为主控芯片,对 ISD4004 数码语音芯片与 LCD1602进行控制,实现语音报站 ,同时显示站名。 键盘采用通用按键开关,简单易行且控制方便。 在本次软件设计中,主要设计了 4 站,通过三个按键进行控制。 具体如下: k1 键 ——起始键 现象: ISD4004 播报 “欢迎乘坐 ”,同时 LCD1602 上显示 “Huan Ying Cheng Zuo”。 k2 键 ——上一站, k3 键 ——下一站, 现象: num=1,ISD4004 播报 “欢迎乘坐 363 路公交车 ”,同时 LCD1602 上显示 “Huan Ying Cheng Zuo ”。 num=2,ISD4004 播报 “宁波理工到了,请从后门下车,下车请当心;车辆起步,请拉好扶手,前方停靠万里学院 ”,同时 LCD1602 上显示 “Ningboligong Dao Le”。 num=3,ISD4004 播报 “万里学院到了,请从后门下车,下车请当心;车辆起步,请 11 拉好扶手,前方停靠医药学校 ”,同 时 LCD1602 上显示 “Wanglixueyuan Dao Le”。 num=4,ISD4004 播报 “医药学校到了,请从后门下车,下车请当心;车辆起步,请拉好扶手,前方停靠鄞州二院 ”,同时 LCD1602 上显示 “Yiyaoxuexiao Dao Le”。 num=5,ISD4004 播报 “鄞州二院到了,请从后门下车,下车请当心; ”,同时 LCD1602上显示 “Yinzhoueryuan Dao Le”。 num=6,ISD4004 播报 “谢谢乘坐本次公交车 ”,同时 LCD1602 上显示 “Xie Xie Cheng Zuo”。 技术指标 针对本次基于单片机的公交车语音报站系统的设计,其技术指标主要来源于ISD4004 语音模块以及 LCD1602 液晶显示模块。 ISD4004: 1) 3V单电源工作 2) 工作电流 25—30mA 3) 维持电流 1uA 4) 多段信息处理 5) 10 万次录音周期 (典型值 ) 6) 不耗电信息保存 100 年(典型值) LCD1602: 1) 显示容量 :162 个字符 2) 芯片工作电压 :— 3) 工作电流 :() 4) 模块最佳工作电压 : 5) 字符尺寸 :(WH)mm 12 第 3章 系统硬件 设计思想 本次设计主 要是利用 AT89C51 单片机作为 CPU 来进行总体控制,通过语音芯片ISD4004 组成的语音控制电路能够建立多段语音库信息,并且可以对这些段的语音信息进行自由的组合,形成变化多样的语音提示信息,同时使用 LCD1602 液晶显示电路进行字符显示,能够实现公交车的语音报站及字符显示。 在 CPU 控制模式下,键盘采用按键扫描法,当有键按下时,通过软件进行按键扫描,实现键码对应的功能。 因此当公交车到达某站时通过键盘来控制本系统进行工作,通过语音输出电路进行语音报站,CPU同时通过程序读取字符信息送入 LCD 液晶显示电路进行液 晶显示 [8]。 系统原理图 图 是系统仿真时的原理图,在整个系统软件设计中,依旧从语音,液晶显示以及按键这三大部分进行综合考虑。 由于 Proteus 软件的限制,无法对 ISD4004 语音芯片进行仿真,从而在此处我选用了 LED 灯来代替语音芯片,当按键按下时,相对应的 LED灯点亮。 所以在此,我主要介绍一下液晶显示模块 LCD1602 以及按键 显示的工作原理。 在此次软件设计过程中,总共有 4 个按键, k1: HuanyingChengzuo, k2:上一站,k3:下一站 ,k4:谢谢乘坐。 当按下 k1 键时, LCD 上显示 “HuanyingChengzuo”,同时LED1 亮;如果当前的站是 “Wanlixueyuan Dao Le”,当按下 k2 键时, LCD 上显示“Ningboligong Dao Le”,此时 LED2 亮, LED3 灭;当按下 k3 键时, LCD 上显示“Yiyaoxuexiao Dao Le”,此时 LED4 亮, LED3 灭。 当按下 k4 时, LCD 上显示“XiexieChengzuo”。 1602 液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。 (说明: 1 为高电平、 0 为低电平)。 1602 液晶模块内部的控制器共有 11 条控制指令 ,通过这 11 条指令,可以完成 1602 上数据、字幕等显示。 LCD1602 液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。 要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字 13 符 [9]。 图 系统原理图仿真 在 将 12864 与 LCD1602 进行对比后 ,我选择 了 LCD1602 液晶显示模 , 因为 1602实现起来 较为 简单,也很实用,在两个能够达到类似功能的时候,我选择了 1602,不过唯一的缺点就是 1602 不能显示汉字。 除此之外,我将仿真中的 LED 换成了真正的语音模块, ISD4004 语音模块,用以实现语音播放的功能。 元器件选择 在本次设计中,我主要选择的器件有 LCD1602,语音模块 ISD4004,按键模块,以及 AT89C51 的最小系统。 由于 LCD1602 具有显示质量高,数字式接口,功耗低等优点,其中因为拥有数字式接口,在 和单片机系统的接口变得更加简单可靠,操作更加方便。 因此对于 LCD 液晶显示模块我选择了 LCD1602。 14 ISD4004 具有如下特点:首先是记录声音没有段长度限制,并且声音记录不需要A/D 转换和压缩。 其次,快速闪存作为存储介质,无需电源可保存数据长达 100 年,重复记录 10000 次以上。 此外, ISD4004 具有记录时间长(可达 16 分钟),音质好 ,适用于移动电话及其他便携式电子产品中的优点。 同时 ISD4004 开发应用具有所需外围电路简单的优点。 同时 51 最小系统能够给他提供 ,让它正常工作。 除此之外,由于身边有同学用过这个芯片,对它比较了解,如果我遇到问题了,可以有人请教。 因此对于语音模块,我选择了 ISD4004。 按键模块比较简单,因为我只需要 3 个按键而已,所以无论是三个独立的按键,还是一个按键模块,只要能实现我要的功能都可以。 在本次设计中,我选择了一个按键模块。 AT89C51 单片机最小系统是上课上过的内容对此比较熟悉,同时本次设计也是针对单片机的公交车语音报站系统的设计,而且实验室有现成的资源可以利用,所以毫无疑问, 主控系统就选择了 AT89C51 最小系统。 各模块介绍 本次设计主要由 AT89C51 最小系统, ISD4004 语音模块, LCD1602 液晶显示模块以及按键模块这四模块组成。 单片机又称单片微控制器,是在一块芯片中集成了 CPU(中央处理器)、 RAM(数据存储器)、 ROM(程序存储器)、定时器 /计数器和多种功能的 I/O(输入 /输出)接口等一台计算机所需要的基本功能部件,从而可以完成复杂的运算、逻辑控制、通信等功能。 对 51 系列单片机来说,最小系统一般应该包括:单片机、时钟电路、复位电路、输入 /输出设备等(见图 )。 在本次设计中, AT89C51 作为系统的 CPU来对语音模块,液晶显示模块,按键模块进行总体的控制。 15 图 AT89C51 最小系统框图 ISD4004 引脚排列如图 所示,其中 NC 为空引脚,其余引脚的功能如下: 图 ISD4004 引脚排列图 VCCA、 VCCD 分 别为模拟和数字电路的电源端; VSSA、 VSSD 分别为模拟地和数字地; ANAIN+、 ANAIN 分别为模拟信号同相和反相输入端,模拟信号可采用单端输入方式或差分输入方式; AUDOUT 为音频输出端,能驱动 5000 欧姆的负载; /SS 为片选,低电平有效; MOSI 为串行数据输入端; MISO 为串行数据输出端; SCLK 为串行接口时钟输入端; 单 片 机 复位电路 时钟电路 电源 输入 /输出设备 16 XCLK 为外部时钟输入端; /INT 为中断请求端,漏极开路; AMCAP 为自动静噪控制端; 单片机选用 ATMEL 公司的 AT89C51,其内含 4KB 的 FLASH 存储器,可擦 写 10万次。 ISD4004 语音芯片与单片机的接口如 图 所示。 GND 与 相连, VCC 与 相连接,为语音模块提供电源。 SCLK 串行接口时钟输入端与 相连, /SS 为片选与 相连, MISO 串行数据输出端与 相连,用来控制数据输出, MOSI 串行数据输入端与 相连,用来控制数据输入。 图 ISD4004 语音模块与 51 的实物连接图 硬件连接的几 点说明: 1) 串口工作于方式 0 发送方式, 用于串口时钟输入端, 用于片选,此时高电平有效, 用于串行数据输入端, 用于串行数据输出端。 2) ISD 内部功放驱动能力较低,因此外接了一个 LM386 可驱动的 的喇叭。 3) 自动静噪端 AMCAP 通过 1uF 电容接地, XCLK 接地,使用内部时钟。 4) 拨动开关 k1 为录音状态, k2 为放音状态。 录音时按下 k4,可将录音地址后移 17 100,存放另一段录音片段。 LCD1602 液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有电就有显示,这样即可以显 示出图形。 其实用 LCD 显示一个字符时比较复杂,因为一个字符由 68 或 88 点阵组成,既要找到和显示屏幕上某几个位置对应的显示RAM 区的 8 字节,还要使每字节的不同位为 “1”,其它的为 “0”,为 “1”的点亮,为 “0”的不亮。 这样一来就组成某个字符。 但由于内带字符发生器的控制器来说,显示字符就比较简单了,可以让控制器工作在文本方式,根据在 LCD 上开始显示的行列号及每行的列数找出显示 RAM 对应的地址,设立光标,在此送上该字符对应的代码即可。 在本次设计中, LCD1602 液晶显示模块的 rs,rw,e 分别与 51 单片机的 P3^5, P3^6, P3^7 端口连接,进行程序的读写数据,字符操作。 而 D0~D7 分别与 51 单片机的 P0 口进行连接,用来输出数据与字符,这样就可以在液晶上显示出自己想要的字符 [10]。 键盘是若干按键的集合,是向系统提供操作人员干预命令及数据的接口设备。 键盘可分为编码键盘和非编码键盘两种类型。 前者能自动识别按下的键并产生相应代码,以并行或串行方式发送给 CPU。 它使用方便,接口简单,响应速度快,但需要专用的硬件电路。 后者则通 过软件来确定按键并计算键值。 这种方法虽然没有编码键盘速度快,但它不需要专用的硬件支持。 键盘,作为向系统提供操作人员的干预命令的接口,以其特定的按键序列代表着各种确定的操作命令。 所以,准确无误地辨认每个键的动作及其所处的状态,是系统能否正常工作的关键。 因此在设计按键模块时,通过延时进行了按键去抖动的现象 [11]。 18 第 4章 系统软件 设计思想 软件设计的主要功能是完成公交车语音报站,采用 AT89C51 单片机作为主控芯片,对 ISD4004 数码语音芯片与 LCD1602 进行控制,实现语音报站 ,同时显示站名。 键盘采用通用按键开关,简单易行且控制方便。 在本次软件设计中,主要设计了 4 站,通过三个按键进行控制。 具体如下: k1。
阅读剩余 0%
本站所有文章资讯、展示的图片素材等内容均为注册用户上传(部分报媒/平媒内容转载自网络合作媒体),仅供学习参考。 用户通过本站上传、发布的任何内容的知识产权归属用户或原始著作权人所有。如有侵犯您的版权,请联系我们反馈本站将在三个工作日内改正。