收藏 分享(赏)

基于单片机的电子导盲杖设计.doc

上传人:精品资料 文档编号:10982849 上传时间:2020-01-29 格式:DOC 页数:32 大小:2.95MB
下载 相关 举报
基于单片机的电子导盲杖设计.doc_第1页
第1页 / 共32页
基于单片机的电子导盲杖设计.doc_第2页
第2页 / 共32页
基于单片机的电子导盲杖设计.doc_第3页
第3页 / 共32页
基于单片机的电子导盲杖设计.doc_第4页
第4页 / 共32页
基于单片机的电子导盲杖设计.doc_第5页
第5页 / 共32页
点击查看更多>>
资源描述

1、智能仪表设计基础课程设计课题名称 电子导盲杖 学生学号 学生姓名 所在班级 指导教师 二一二年九月目 录1.功能要求及性能指标1.1 课程设计的目的和设计任务(1)1.2 课程设计的要求和技术指标(1)2.方案设计2.1 硬件方案(2)2.1.1 测距模块方案选择(2)2.1.2 语音模块方案选择 (3)2.1.3 显示模块方案选择 (4)2.1.4 震动模块方案选择(4)2.2 软件方案 (4)3.硬件设计3.1 STC89C52 单片机介绍 (6)3.1.1 引脚分布及定义(6)3.1.2 定时器 (8)3.2 HC-SR04 超声波模块介绍 (8)3.2.1 模块实物图及说明 (9)3.

2、2.2 测距电路设计 (9)3.2.3 测距程序设计 (11)3.3 ISD1420 语音芯片介绍 (12)3.3.1 芯片引脚图及功能说明 (12)3.3.2 语音录放电路的设计 (13)3.3.3 语音程序设计 (14)3.4 震动模块及 LED 灯的控制 (15)3.5 总原理图 (16)3.6 仪器仪表清单 (18)4.软件设计4.1 程序程序设计 (18)4.2 程序调试结果 (22)5.设计小结 (23)参考文献附录一:课程设计任务书附录二:软件程序清单01. 功能要求及性能指标1.1 课程设计的目的和设计任务世界上视觉障碍者数量众多,他们只能用百分之六十的感觉来获取信息。盲人在独

3、自行走时主要依靠导盲装置,最简单常用的导盲装置是普通的拐杖,用它在地面上敲击,可帮助盲人发现 0.5 米以内的障碍物。它的主要缺点是不能发现较远一点的障碍物以及悬空的障碍物。随着社会的发展,传统的导盲杖已经远远不能满足盲人的需要了。超声波导盲杖是为视觉障碍者提供环境导引的辅助工具,它通过超声波传感器对周围环境进行探测,将探测的信息反馈给视觉障碍者,帮助他们弥补视觉信息的缺失。1.2 课程设计的要求和技术指标设计要求:本作品由超声波测距功能、前方障碍物语音警示功能、震动警示功能、夜间警示路人功能。在盲人走路时,如果前方 1 米处有障碍物,则盲杖自动语音提示“前方一米处有障碍物,请注意!” ,如果

4、前方 1 米处没有障碍物,无提示音;如果前方 2 米处有障碍物,则盲杖自动语音提示“前方二米处有障碍物,请注意!” ,如果前方 2 米处没有障碍物,无提示音;如果前方 3 米处有障碍物,则盲杖自动语音提示“前方三米处有障碍物,请注意!” ,如果前方 3 米处没有障碍物,无提示音。手柄震动警示功能,可以让盲人在嘈杂的环境中通过手柄的震动接收到前方障碍物信号,弥补了语音提示在嘈杂环境中的弊端。夜间警示路人功能,在夜间遇到 4 米以内障碍物时,盲杖上的指示灯亮,可以警示前方路人注意盲人的位置,注意避让盲人。盲杖具有使用方便,功耗低,实用性,是盲人出行外出的好助手。技术指标:超声波测距模块:可提供 2

5、cm-400cm 的非接触式距离感测功能,测距精度可达 3mm。ISD1420 语音芯片:具有 20 秒高保真语音录放功能,通过具有专利技术的模拟处理存储方式,使录放音质极佳,没有常见的的背景噪音,且电路断电后语音内容仍不丢失。2.方案设计2.1 硬件设计方案电子导盲杖的总体框图如下图(图 1)所示,它由超声波模块、单片机、语音模块、震动模块、警示模块、校准模块 组成。1STC89C52单片机HCSR04 超声波模块ISD1420 语音模块震动模块警示模块校准模块图 1 硬件原理框图2.1.1 测距模块方案选择方案一:红外测距利用红外线测距,测距里程可达 1-5 公里。利用红外线传播时的不扩散

6、原理:因为红外线在穿越其他物质时折射率很小,所以长距离测距会考虑红外线,而红外线的传播是需要时间的,当红外线从测距仪发出,碰到反射物被反射回来被测距仪接受,在根据从发射到接受的时间及红外线的传播速度就可算出距离。方案二: 激光测距利用激光对目标的距离进行准确测量,测程可达 40 公里。激光测距在工作时向目标射出一束很细的激光,由光电元件接收目标反射的激光束,计时器测定激光束从发射到接收的时间,计算出从观测者到目标的距离。方案三: 超声波测距超声波测距是根据超声波遇到障碍物反射回来的特性进行测量的,测控距离为 2cm 到 4m。超声波发射器向某一方向发射超声波,在发射的同时开始计时,超声波在空气

7、中传播,途中碰到障碍物会立即返回来,超声波接收器收到反射波就立即中断停止计时。通过不断检测产生波发射后遇到障碍物所发射的回波,从而测出发射超声波和接收超声波的时间差,然后根据超声波的速度算出距障碍物的距离。选择方案三原因:方案一的红外线测距,在距离较短的情况下,从发射到接收的时间过短,用单片机很难计算出,因此红外测距适合较长距离的测量。方案二的激光测距,虽然测量精度较高,但是价格昂贵。因此,在精度要求不是很高的情况下,选择价格便宜,适合短距离测量的超声波测距模块更为合适。22.1.2 语音模块选择方案一: ZLG1730 语音芯片ZLG1730 语音芯片,内部采用多层次存储技术,在单个芯片上提

8、供了自然的,高质量的录放决方案。输入语音信号直接存储在环形 Flash 存储器中,且能重现自然的音质。芯片带有两种操作模式:独立按键模式,微控制器(SPI)模式。在独立按键模式下,无需知道消息存储在存储器里的准确位置就可以对消息进行录制、播放、擦除和快进操作。在 SPI 模式下可以通过 4 条串行接线口来实现分段录制和播放等操作,但需要另外购买编程器。 方案二: ISD1820 语音芯片ISD1820 语音芯片是单片 8-20 秒的单段语音录放电路,基本结构与ISD1420 完全相同,采用 CMOS 技术,内含振荡器,话筒前置放大,自动增益控制,防混淆滤波器,扬声器驱动及 FLASH 阵列。放

9、音模式有三种可选择,其音质比通常的话筒放大器要好很多,而且不会出现喇叭过载的情况。整个电路耗电极低,几乎为 0。录入的时间越短音质越好,录入的时间越长,音质越差。方案三: ISD1420 语音芯片ISD1420 录放音质极佳,没有常见的的背景噪音,且电路断电后语音内容仍不丢失。通过 A0-A7 地址端选择不同地址进行录音,每位地址代表 125 毫秒的寻址,160 个地址覆盖 20 秒的语音范围,只需要将录制的时间大致计算出来,除以 125,就可以准确知道每段录音的播放首地址。在接入单片机控制后,只需要将对应地址赋值,就可以播放不同段的语音信息。录音及放音功能均从设定的起始地址开始,录音结束由停

10、止键操作决定,芯片内部自动在该段的结束位置插入结束标志(EOM) ;而放音时芯片遇到 EOM 标志即自动停止放音。选择方案三原因:方案一的 ZLG1730 模块,虽然可以通过软件分段录放音,但是需另外购买下载编程器,价格和其他两种方案比,较昂贵。方案二的 ISD1820 模块只能进行单段语音的录放,不能实现要求的分段播放功能,因此不宜选择。方案三的ISD1420 模块就在同等条件下较合适,能直接用单片机控制分段播放,价格便宜实惠。综合考虑,选择方案三。2.1.3 显示模块方案选择方案一:ZLG7290 数码管显示ZLG7290 数码管,内部有显示 RAM,能自动将显示 RAM 中的内容动态显示

11、在相应的数码管上。内部有 I2C 串行接口,方便与处理器相接。可驱动 8 位共阴数码管或 64 只独立 LED 和 64 个按键。它的扫描位数可控,任一数码管闪烁可控,无需外接元件即可直接驱动 LED。方案二:1602 液晶屏显示1602 液晶模块采用标准的 16 脚接口。它 是 一 种 专 门 用 来 显 示 字 母 、 数字 、 符 号 等 的 点 阵 型 液 晶 模 块 。 它 由 若 干 个 5X7 或 者 5X11 等 点 阵 字 符 位 组成 , 每 个 点 阵 字 符 位 都 可 以 显 示 一 个 字 符 , 每 位 之 间 有 一 个 点 距 的 间 隔 , 每行 之 间 也

12、 有 间 隔 , 起 到 了 字 符 间 距 和 行 间 距 的 作 用 。 微 功 耗 、 体 积 小 、 显示 内 容 丰 富 、 超 薄 轻 巧 , 常 用 在 袖 珍 式 仪 表 和 低 功 耗 应 用 系 统 中 。选 择 方 案 一 原 因 :电 子 导 盲 杖 中 不 需 要 用 到 专 门 的 显 示 部 分 , 而 加 入 显 示 只 是 为 了 在 测 距3的 时 候 能 够 知 道 测 量 的 距 离 是 否 准 确 , 或 者 校 正 时 使 用 。 因 此 , 若 选 择 方 案二 有 点 浪 费 单 片 机 的 IO 口 。 从 经 济 角 度 考 虑 , 实 验

13、室 有 集 成 的 ZLG7290模 块 , 而 没 有 1602 液 晶 屏 , 另 外 购 买 会 造 成 浪 费 。 综 合 考 虑 , 选 择 方 案 一 。2.1.4 震 动 模 块 的 选 择方案一:直流电机加偏振块震动是在电机转动时由于偏振块的作用而产生的。直流电机的应用广泛,可直接加上电压而不会烧坏,但对电流要求较高,价格便宜,方便购买。方案二: 偏振电机偏振电机在手机等众多领域有广泛应用,可直接加很小的电压就可以驱动,所需电流相对较小。选择方案二原因:方案一中虽然直流电机购买方便,但是偏振块却难以实现,市场上也没有单独的偏振块购买,从网上订货不方便。而且直流电机虽然震感强烈,

14、但所需电流一般单片机难以直接提供。方案二的偏振电机市场上也几乎没有,但可以直接从手机等废弃的电子产品上拆下,只需要很小的电流电压就可以驱动,无需另外增加驱动电路。综合考虑,选择方案二。2.2 软件设计方案本课程设计的软件设计部分主要采用 C 语言编程,简单易懂。分别对每个模块独立编程,再将所有整合,即可实现需要的功能。主程序中,先将各个模块初始化,定义变量及赋初值。给超声波一个脉冲触发它开始工作,然后开始计时,在收到回波信号后,立即停止计数。此计数值就是从发射到接收的时间,乘以超声波此时的速度,就可以算出障碍物距超声波的大致距离,可以将此距离直接显示。根据距离的不同,发出不同的语音提示和震动。

15、下图(图 2)为软件设计框图:4主程序单片机初始化 ;超声波初始化 ;语音初始化 ;定义变量及赋初值 ;定时器设置工作模式 ;开启总中断 ;设置警示灯为熄灭态 ;关闭总中断 ;用 2 0 u s 脉冲启动超声波 ;有回波 ?清测量成功标志位 ;开各中断允许 ;定时器 1 赋初值 ;启动定时器 1 ;延时等待测量结果 ;关闭定时器中断 ;测量成功标志位为 1 ?数据处理 数据清零显示与语音播报 ;NYYN图 2 软件流程图53.硬件设计3.1 STC89C52 单片机介绍STC89C52 是 一 种 低 功 耗 、 高 性 能 CMOS8 位 微 控 制 器 , 具 有 8K 在 系 统可 编

16、程 Flash 存 储 器 。 在 单 芯 片 上 , 拥 有 灵 巧 的 8 位 CPU 和 在 系 统 可 编程 Flash, 使 得 STC89C52 为 众 多 嵌 入 式 控 制 应 用 系 统 提 供 高 灵 活 、 超 有 效的 解 决 方 案 。 具 有 以 下 标 准 功 能 : 8k 字 节 Flash, 512 字 节 RAM, 32 位 I/O 口 线 , 看 门 狗 定 时 器 , 内 置 4KB EEPROM, MAX810 复 位 电 路 , 三 个16 位 定 时 器 /计 数 器 , 一 个 6 向 量 2 级 中 断 结 构 , 全 双 工 串 行 口 。

17、另 外 STC89X52 可 降 至 0Hz 静 态 逻 辑 操 作 , 支 持 2 种 软 件 可 选 择 节 电 模 式 。 空闲 模 式 下 , CPU 停 止 工 作 , 允 许 RAM、 定 时 器 /计 数 器 、 串 口 、 中 断 继 续 工作 。 掉 电 保 护 方 式 下 , RAM 内 容 被 保 存 , 振 荡 器 被 冻 结 , 单 片 机 一 切 工 作停 止 , 直 到 下 一 个 中 断 或 硬 件 复 位 为 止 。 最 高 运 作 频 率 35MHz, 6T/12T 可选 。3.1.1 引脚分布及定义图 3 STC89C52RC 引脚图STC89C52RC

18、引脚分布如图三所示,引脚功能说明如下:6VCC(40 引脚):电源电压VSS(20 引脚):接地P0 端口(P0.0P0.7,3932 引脚):P0 口是一个漏极开路的 8 位双向 I/O口。作为输出端口,每个引脚能驱动 8 个 TTL 负载,对端口 P0 写入“1”时,可以作为高阻抗输入。在访问外部程序和数据存储器时,P0 口也可以提供低 8位地址和 8 位数据的复用总线。此时,P0 口内部上拉电阻有效。在 Flash ROM编程时,P0 端口接收指令字节;而在校验程序时,则输出指令字节。验证时,要求外接上拉电阻。P1 端口(P1.0P1.7,18 引脚):P1 口是一个带内部上拉电阻的 8

19、 位双向I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电流。P2 端口(P2.0P2.7,2128 引脚):P2 口是一个带内部上拉电阻的 8 位双向 I/O 端口。P2 的输出缓冲器可以驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输出一个电流。P3 端口(P3.0

20、P3.7,1017 引脚):P3 是一个带内部上拉电阻的 8 位双向I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一个电流。P3 口除作为一般 I/O 口外,还有其他一些复用功能,如下表所示:表 1 P3 口引脚复用功能引脚号 复用功能P3.0 RXD(串行输入口)P3.1 TXD(串行输出口)P3.2 (外部中断 0)P3.3 (外部中断 1)P3.4 T0(定时器 0 的外部输入)P3.5 T1(定时器 1

21、的外部输入)P3.6 (外部数据存储器写选通)P3.7 (外部数据存储器读选通)RST(9 引脚):复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST 引脚输出96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功能无效。DISRTO 默认状态下,复位高电平有效。7ALE/ ( 30 引脚):地址锁存控制信号(ALE)是访问外部程序存储器时,锁存低 8 位地址的输出脉冲。在 Flash 编程时,此引脚( )也用作编程输入脉冲。( 29 引脚):外部程序存储器选通信号( )是外部程序存储器选通

22、信号。当 AT89C51RC 从外部程序存储器执行外部代码时, 在每个机器周期被激活两次,而访问外部数据存储器时, 将不被激活。/VPP(31 引脚):访问外部程序存储器控制信号。为使能从 0000H 到FFFFH 的外部程序存储器读取指令, 必须接 GND。注意加密方式 1 时, 将内部锁定位 RESET。为了执行内部程序指令, 应该接 VCC。在 Flash 编程期间, 也接收 12 伏 VPP 电压。XTAL1(19 引脚):振荡器反相放大器和内部时钟发生电路的输入端。XTAL2(18 引脚):振荡器反相放大器的输入端。3.1.2 定时器STC89C52RC 除了有定时器 /计数器 0

23、和定时器/ 计数器 1 之外,还增加了一个一个定时器/计数器 2.定时器/计数器 2 的控制和状态位位于 T2CON 和T2MOD。定时器 2 是一个 16 位定时/计数器。通过设置特殊功能寄存器 T2CON 中的C/T2 位,可将其作为定时器或计数器。定时器 2 有 3 种操作模式:捕获、自动重新装载(递增或递减计数)和波特率发生器,这 3 种模式由 T2CON 中的位进行选择。表 2 特殊功能寄存器 T2CON 的描述3.2 HC-SR04 超声波模块介绍采用 IO 触发测距, 控制口发一个10US 以上的高电平,就可以在接收口等待8高电平输出。一有输出就可以开定时器计时,当此口变为低电平

24、时就可以读定时器的值,此时就为此次测距的时间,方可算出距离。如此不断的周期测,就可以达到移动测量了。3.2.1 模块实物图及说明图 3 实物图接口定义:VCC:接+5V 电源 GND:接地 Trig:接控制端 Echo:接接收端3.2.2 测距电路设计9图 4 超声波测距电路图通过单片机的P1.1口给超声波模块一个20us的高电平脉冲,触发超声波模块,使之开始工作,定时器开始计数,于此同时,接收端开始不断检测有无回波。一旦接收到有回波信号,则P3.2口立即进入中断,停止定时器计数,把计数值送入寄存器中计算当前距离。公式:uS/58=厘米或者uS/148=英寸;或是:距离=高电平时间*声速(34

25、0M/S)/2。测的距离与实际距离比较,如下表(表 3:图 5 测距对比实 际 距 离 测 得 距 离10 9.520 19.430 30.640 39.350 49.660 59.770 69.780 79.690 89.5100 99.4300 299.5表 3 测距对比100501001502002503003501 2 3 4 5 6 7 8 9 10 11实 际 距 离测 得 距 离图 6 测距对比折线图3.2.3 测距程序设计图 7 超声波测距软件流程图具体程序入下:Trig=0; /首先拉低脉冲输入引脚EA=1; /打开总中断 0 TMOD=0x10; /定时器 1,16 位工作

26、方式 while(1) EA=0; /关总中断Trig=1; /超声波输入端11delay_20us(); /延时 20usTrig=0; /产生一个 20us 的脉冲while(Echo=0); /等待 Echo 回波引脚变高电平succeed_flag=0; /清测量成功标志EA=1; EX0=1; /打开外部中断 0TH1=0; /定时器 1 清零TL1=0; /定时器 1 清零TF1=0; /计数溢出标志TR1=1; /启动定时器 1delay(20); /等待测量的结果TR1=0; /关闭定时器 1EX0=0; /关闭外部中断 0if(succeed_flag=1) time=tim

27、eH*256+timeL;distance=time*0.0172; /厘米 if(succeed_flag=0)distance=0; /没有回波则清零 display(distance); 3.3 ISD1420 语音芯片介绍ISD1420 是美国 ISD 公司出品的新型单片优质语音录放电路,较之以往所有的语音电路,具有专利技术的模拟处理存储方式,使录放音质极佳,没有常见的的背景噪音,且电路断电后语音内容仍不丢失。电路内部由振荡器、语音存储单元、前置放大器、自动增益控制电路、抗干扰滤波器、输出放大器组成。一个最小的录放系统仅由一个麦克风、一个喇叭、两个按钮、一个电源、少数电阻电容组成。3.

28、3.1 芯片引脚图及功能说明右图(图8)为ISD1420语音芯片的引脚图。1234567891012314A0ANCA67NCVSD A P+287265243212019817615VCDREXLKCDPLAYENCAna Out IGCMic RefiVCASP- IC12其引脚功能为下表(表3)所示。其特性为:工作电压:5V静态电流:0.52A工作电流:1530mA重现优质原声基本上不耗电信息存储信息可保存100年,可反复录放10万次选址处理多达160段信息维持状态,仅需0.5A电流,具有自动节电模式图8 ISD1420引脚图表4 ISD1420引脚功能说明名 称 管 脚 功 能 名 称

29、 管 脚 功 能A0A5 16 地址 Ana Out 21 模拟输出A6、A7 9、10 地址(MSB) Ana In 20 模拟输入VCCD 28 数字电路电源 AGC 19 自动增益控制VCCA 16 模拟电路电源 Mic 17 麦克风输入VSSD 12 数字地 Mic Ref 18 麦克风参考输入VSSA 13 模拟地 PLAYE24 放音,边沿触发SP、 14、15 喇叭输出、REC27 录音XCLK 26 外接定时器(可选)RECLD25 发光二极管接口NC 11 空脚 PLAYL23 放音,电平触发3.3.2 语音录放电路的设计语音录音电路的电路设计如下图(图 9)所示:13图 9

30、 语音录音电路通过地址端口的 7 个按键选择分段录音的地址。根据计算,一段语音信息大概为 4 秒左右,分 3 段,首段地址分别为 0x00,0x28,0x50。只要将对应的八个按键根据这三个地址即可开始录制,录音时,按住 REC 键,此时 LED 灯常亮,表示在录音状态。按 PLAYE 即可播放当前录的语音信息,放完后遇到 EOM 标志,LED 闪一下,表示放音结束。3.3.3 语音程序设计功能说明:语音提示当超声波探头距离障碍物不同距离时,播放不同时段的语音信息,同时加入震动,及 LED 灯提示等功能。框图如下图(图 10)所示:语音子程序百位为 3 ?十位小于 5 ?不播放语音 播放第三段

31、百位为 2 ?十位小于 5 ?播放第二段百位为 1 ?播放第一段十位小于 5 ?返回Y NNYYYYYNNNN图 10 语音程序流程图3.4 震动模块及 LED 灯的控制震动功能的实现主要是通过偏振电机来实现的,其电路图如下图(图 11)所示。14图 11 震动模块电路P1.1 口(图中为 ZD)通过三极管放大后直接接在电机的一端,通过 P1.1 口输出电平信号的高低来控制电机的工作状态。LED 灯的控制也是直接由 P1 口输出的电平信号来控制,其电路图如下图(图12)所示:图 12 LED 灯的控制电路三个灯分别接在 P1.2,P1.3,P1.4。当这三个端口分别输出低电平时灯亮。因此在程序

32、中,只要在需要灯闪烁时将 P1 口置低电平即可。3.5 总原理图15图 13 总原理图将各个模块的电路整合起来,就可以得到整个原理图了。163.6 仪器仪表清单表 5 使用的元器件元件名称 数量STC89C52RC 1 个HC-SR04 1 个ISD1420 1 个偏振电机 1 个扬声器,麦克风 各一个12MHZ 晶振 1 个按键 3 个LED 灯 4 个NPN 三极管 1 个串口 1 个MAX232 1 个8 脚,28 脚,40 脚芯片底座 各一个电阻 若干电容 若干ZLG 单片机实验箱 一台杜邦线,排针,导线 若干4.软件设计4.1 程序设计#include #include #inclu

33、de “i2c.h“#include “zlg7290.h“#include #define uchar unsigned char /定义一下方便使用#define uint unsigned int#define ulong unsigned longuint time;uint succeed_flag;uchar timeL;uchar timeH;sbit Trig=P10;sbit Echo=P32;sbit PLAYE=P11;sbit LED1=P12;17sbit LED2=P13;sbit ZD=P14;/*/延时子程序void Delay(unsigned int t)

34、/延时(t*1)msuint dt;for(;t0;t-)for(dt=0;dt1000;dt+);void delay_20us() /延时 20us uchar a ;for(a=0;a100;a+);/*/*函数:SystemInit()功能:系统初始化*/void SystemInit(void)I2C_Init();/TMOD = 0x01;Delay(30); /等待 ZLG7290 复位完毕/*/语音播放子程序/*void YUYIN(int a,int b) switch(a) case 0: /距离小于 1 米则震动报警 ZD=1;LED1=0;LED2=0;Delay(20

35、); break;case 1: /距离在 1。5 米以下则语音提示加震动警示 if(b5) P2=0x00;PLAYE=1;PLAYE=0;18LED1=0;LED2=0;ZD=1; else P2=0x28;/距离在 1.5 米到 2 米则语音提示加震动警示PLAYE=1;PLAYE=0;LED1=0;LED2=0;ZD=1; Delay(20); break;case 2: /距离在 2 米到 2.5 米则语音提示加震动警示 if(b5)P2=0x28;PLAYE=1;PLAYE=0;LED1=0;LED2=0;ZD=1; else P2=0x50;PLAYE=1;PLAYE=0;LED

36、1=0;LED2=0;ZD=1; Delay(20); break;case 3: /距离在 2。5 米到 3。5 米则语音提示加震动警示 if(b5) P2=0x50;PLAYE=1;PLAYE=0;LED1=0;LED2=0;ZD=1;Delay(20); break;19 /*/主程序void main(void) long float distance,dat;int a,b,c,d;SystemInit(); Trig=0; /首先拉低脉冲输入引脚EA=1; /打开总中断 0 TMOD=0x12; /定时器 1,16 位工作方式LED1=1; /指示灯复位(保持高电平为熄灭态)LED

37、2=1;ZD=0; while(1) LED1=1; /指示灯复位(保持高电平为熄灭态)LED2=1;ZD=0;EA=0; /关总中断Trig=1; /超声波输入端delay_20us(); /延时 20usTrig=0; /产生一个 20us 的脉冲while(Echo=0); /等待 Echo 回波引脚变高电平succeed_flag=0; /清测量成功标志EA=1; EX0=1; /打开外部中断 0TH1=0; /定时器 1 清零TL1=0; /定时器 1 清零TF1=0; /计数溢出标志TR1=1; /启动定时器 1Delay(20); /等待测量的结果TR1=0; /关闭定时器 1E

38、X0=0; /关闭外部中断 0if(succeed_flag=1) time=timeH*256+timeL;distance=(long float)time/58; /厘米 if(succeed_flag=0) distance=0; /没有回波则清零 dat=distance*10; /显示程序,作为导盲杖可不接端口。也可屏蔽a = dat / 1000;ZLG7290_Download(3,0,0,a);b = (dat-a*1000) /100;20ZLG7290_Download(2,0,0,b);c = (dat-a*1000-b*100)/10;ZLG7290_Download

39、(1,1,0,c);d = dat-a*1000-b*100-c*10;ZLG7290_Download(0,0,0,d);/DISP(distance); /显示子程序YUYIN(a,b); /语音播放Delay(20);void exter() interrupt 0 / 外部中断 0 是 0 号 EX0=0; /关闭外部中断 timeH =TH1; /取出定时器的值timeL =TL1; /取出定时器的值succeed_flag=1;/至成功测量的标志/定时器 1 中断,用做超声波测距计时void timer1() interrupt 3 /TH1=0;TL1=0;4.2 程序调试结果图

40、 14 调试成果图215.设计小结在课程设计的过程中,我们一开始找不到方向,感觉像无头苍蝇,不知道从哪儿着手。在看过任务安排后,我们通过抽签选择了队友,当天也确定了我们组的课题电子导盲杖。接下来,就是绞尽脑汁的想到底可以实现哪些功能。当时的我们只想出了三四个简单的功能,都是自己感觉有哪些就写上去。经过老师指点,我才意识到,现在不用淘宝这块的资源,就是一大浪费。当天下午,我们就立即回去搜索现有的盲杖的功能。回头发现,我们的功能只是十年前人家就已经实现了的。重新定义了一番后,我们组三个人开始分工合作,测距部分,提示部分,控制部分,每人一个部分开始找寻方案选择合适方案。硬件选择及设计部分遇到的困难及

41、解决方法首先,在选择器件上,我们采用比较法,选择几个相近功能的芯片,再一一比较选择最合适的那个。在选超声波模块时,我们拿了暑假做实验用的那个模块,但是怎么做都没有出现距离的显示,一开始我以为是程序不对,我将程序仔细对了一遍,对照框图检查程序,在多次检查编译后没有发现错误。然后就检查超声波模块,检查有无信号输出和接收。结果一接电源模块后面的芯片就发烫,原来是芯片烧坏了。当考虑到要用数字显示来观测测距的准确性时却不知道用液晶屏还是周立功显示。液晶屏显示测距是已经实现过的,但是现在所用的单片机不一样,液晶屏接口相对较多,会浪费过多的 IO 口,所以选择周立功显示。但在使用周立功显示时用我写的程序开始

42、实现不了,数码管也一直不亮。改用以前单片机实验室的程序也不能显示,我就担心周立功是否烧坏,但在其他同学的电脑上测试他们的显示程序,依然是可以的,所以不是模块的问题。再重新接线后居然可以显示了,原来是接线接反了。选择语音模块的时候,由于需要分段录音,所以选择起来比较麻烦。选择实验箱上的语音模块时,看了说明书后我可以实现基本的录音和放音,但是分段起来较困难,需要下载器,因此我们换了一个芯片,根据上一届学长的指导,我们选择了 ISD1420。这个芯片可以自己计算录音的长度来设计存放的地址段,来进行分段录音。焊接语音模块的时候,由于外围线路较多,焊接比较麻烦,每次焊完后都要用外用表测试下是否短路或虚焊

43、。整个都焊完,花了一上午时间,但下午检查的时候还是发现有个接地错焊到了电源线,幸好提前检查了一遍,不然芯片可能就毁了。在录制语音的时候,我计算好每段的首地址,录进去后播放,总能放出。但当我录完第三段,却放不出第一段和第二段,我一直以为是程序的问题,但是录音不要用到程序,因此一直在疑惑为什么会出现这种问题,但是在过了一 天后,我又检查了接线,发现我一直把低地址和高地址在开关上接反了,因此,录音的时候地址选择不正确,过短的地址不能容纳这么长的语音信号,因此放音的时候就成了乱码。在改过之后,立即变得清晰明确。 在设计警示灯的时候,我将电阻错焊了,100 欧姆的焊成 100 千欧姆的。在测试的时候幸好

44、提前检测了下电阻值,否则,灯将不会亮。在除焊和重焊的过程中,我也学会了更好的焊接。在做完基本的测距和报警功能后,我们停滞不前,在老师的指导下,我们又加了一个震动功能。但是虽说震动功能想着容易实现,找偏振电机的时候却遇上了些困难。在银河电子城根本找不到偏振电机,只有直流电机,但是直流电机的驱动电流比较大,靠单片机根本驱动不了,于是想加一个偏振块,但是在市场上还是没有偏振块卖。这可让我们陷入僵局,不知该从何处下手。我的22队友这时提出可以用手机上的震动电机。他那边正好有一个不用的旧手机,可以将它拆了取出震动模块。测试它震动所需的最小电压和电流,然后将单片机口的输出电压用三极管和电阻转换为合适的电压

45、和电流输出,用来驱动震动电机。软件设计部分遇到的困难及解决方法在第二周编写程序的时候,根据之前模块的说明书以及我们画的框图来编写,在测距的程序的基础上加上显示,和报警,震动。在最开始的周立功显示程序上我添加了测距程序,经过测试后,可以显示数字,但是只能显示大概的数字,就是百位的数字,十位和个位都不能很准确的显示,为了能更准确显示和报警,我在测得的数字上又做了进一步的调整,保留小数点后一位,这样能减少报警的误差,增加准确性。开始我调用显示子函数,在子函数中修改精度,发现编译后会出现定义的数据类型不一致的问题,后来,我将小数都改为整数再进行转换就可以实现 1mm 的精度了。在放音时我使用的是 CASE 语句,由于没有加跳出语句,因此,在第一段放完之后,就播放第二段语音造成混乱。在显示部分,总是跳来跳去,显示不稳定,不好做比较。在测距是如果距离固定,他显示的数字仍是在不断跳变,后来我在显示后边加了一个延时,时间是 20us,数字显示就稳定了些,但却滞后变化。于是我缩短延时时间,虽然还有跳变,但基本可以看清数字,跳变的也不是很厉害了。我们做的事电子导盲杖,不需要显示,但为了能更好的校准,我还是增加了这一部分。 在整个课程设计中,我学习到了一些芯片的用法,也了解了单片机的实用功能,更加注

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 企业管理 > 管理学资料

本站链接:文库   一言   我酷   合作


客服QQ:2549714901微博号:道客多多官方知乎号:道客多多

经营许可证编号: 粤ICP备2021046453号世界地图

道客多多©版权所有2020-2025营业执照举报