《基于单片机电子导盲拐杖设计毕业论文》由会员上传分享,免费在线阅读,更多相关内容在学术论文-天天文库。
基于单片机电子导盲拐杖设计毕业论文目录1.引言11.1设计研究的背景及意义11.2设计研究的内容11.3本章小结22.超声波系统的工作原理及方案32.1超声的概述32.2超声波传感器32.3超声波测量中盲区及近限和远限42.4超声测距的方案42.5本章小结53.智能导盲拐杖硬件系统设计63.1设计实现的功能63.2设计思路63.3硬件电路设计73.3.1CPU模块73.3.2超声波换能模块103.3.3语音播报模块设计153.3.4温度检测模块和时钟模块的设计163.3.5灯光示警模块设计183.3.6稳压电源模块的设计193.4本章小结204.智能导盲拐杖软件设计214.1系统软件设计语言214.2软件设计心得214.3设计的软件环境简介214.4主要模块软件设计流程图234.5本章小结245系统的调试结果2454 结论25参考文献27致谢27附录1:部分主电路原理图29附录2:部分主程序3054 天津职业技术师范大学2013届本科生毕业设计1.引言我国曾在上世纪90年代进行过视力残疾状况的调查,结果显示,我国有视力残疾患者近1400万,其中盲人约就有620万。从全国防盲技术指导组办公室得到的数据也显示,我国有550万盲人,占世界盲人总数的1/5。随着人民生活水平的不断的进步,让生活变得越来越简单方便成为了人民普遍追求的生活理念。盲人既是我们普通人民中的一员,又是一个特殊群体,他们由于先天或后天的生理缺陷在日常生活中比我们常人会遇到更多的不方便,不能准确及时的发现并躲避障碍物就是一个重要的弊端。如果有一种既轻巧,又便宜,同时又能及时的识别周围障碍物并发出报警信号的智能拐杖在盲人的手中将会为盲人的生活提供极大地方便。由于超声波的速度相对光速要小的多,其传播时间更加容易被检测,并且易于定向的发射,方向性较好,强度可以控制,因而人类采用仿真技能利用超声波测距。同时随着计算机技术、自动化技术及工业机器人的不断出现,测距和识别技术在工业中已经得到了普遍的运用与发展,如何把这种非接触式检测与识别技术应用到民用领域已变得十分重要了。1.1设计研究的背景及意义盲人既是我们普通人民中的一员,又是一个特殊群体,他们由于先天或后天的生理缺陷在日常生活中比我们常人会遇到更多的不方便和安全隐患。本设计就是为了避免盲人在行走时与前方障碍相撞。盲人导盲预警系统的运用可极大地减轻盲人的行走不便与安全隐患,降低且避免因盲人不辨障碍而导致的事故的发生,同时它将对提高人体智能化设计起到重要的意义。对超声波具有传播速度慢,指向性强,能级消耗缓慢,对色彩、光照度不敏感的特点进行利用,同时因为超声波传感器结构相对简单、体积小、性价比高、信息处理简单而且可靠,易于小型化和集成化,并且可以进行实时控制等特点。所以这一项技术应用于导盲产品中将有广阔的发展前景。1.2设计研究的内容本设计模仿蝙蝠的超声应用能力和原理,在研究现有的电子式超声波测距系统的基础上,应用回声定位的原理,通过传感器发送超声波,然后获得并分析障碍物的回波信息,研制一套超声波导盲系统。系统采用AT89S52单片机作为控制器,利用超声测距的原理,设计了一种超声波导盲装置,该装置可以对盲人前方道路上的障碍物进行距离探测并把障碍物距离信息转换成语音提示,盲人可以根据提示音,避让障碍同时达到导盲作用。该系统具有硬件结构简单、工作可靠、测量误差小等特点。又54 天津职业技术师范大学2013届本科生毕业设计因为盲人不辨行人与车辆在路上行走,又因夜晚能见度低,为了车辆和行人更容易避让盲人。另采用光敏电阻检测周围环境的亮度,并将该亮度转化为相反逻辑的红色警示光。用来提醒来往行人和车辆避让。另有时钟系统,可以控制并且语音播报时间,进行整点提醒。1.3本章小结本章主要介绍了设计超声波导盲拐杖的背景及意义。对设计研究的大致内容做了概述。54 天津职业技术师范大学2013届本科生毕业设计2.超声波系统的工作原理及方案2.1超声的概述声音是与人类生活紧密相联的一种自然现象,人们对声音早有认识,在人们的日常生活中存在着各式各样的声音。在科学史上,声学是发展最早的学科之一。然而,由于超声是人耳听不到的信号,直到18世纪,人们才开始研究海豚、蝙蝠等动物时,才推测自然界存在超声。声波是一种能在气体、液体和固体中传播的机械波。根据声波振动频率的范围来分类的,声波可分为高低不同的四种类型:频率在16KHz~20KHz之间的机械波,能为人耳所闻,称为声波;低于16KHz的机械波称为次声波;高于20KHz的机械波称为超声波;高于10MHz的机械波称为特超声波。声波产生的条件是首先要有一个作机械振动的质点来作波源,其次是要有传播振动的弹性介质。此外,当振动传播时,振动的质点并不随波而移动,只是在自己的平衡位置附近振动而已,这与电磁波(交变电磁场以光速在空间的传播)是完全不相同的,与光波也不同。因此超声作为一种高于人的听觉范围的声波,与光波和电磁波是不同的,是一种弹性机械波,它可以在气体、液体和固体中传播;电磁波的传播速度为3×108m/s,而超声波的传播速度为340m/s,其速度相对电磁波是非常缓慢的,对于相同频率的情况下波长比较的短,因此可以提高测量的分辨率;超声波在相同的传播媒体里传播速度相同,即在相当大的频率范围内声速不随频率变化,波动的传播方向与振动方向是一致的,作为纵向振动的弹性机械波,它是借助于传播介质的分子运动而传播。在两种介质的交界面,声波会发生反射、折射、衍射、散射等现象。超声波也具有这些传播规律,与可听声波的规律并没有本质上的区别。但超声波作为一种特殊的声波,同时又具有方向性好,加速快等特点,而且波长很短,只有几厘米,有的甚至千分之几毫米,因此与可听声波比较,超声波具有许多奇异的特性:传播特性──超声波的波长很短,通常的障碍物的尺寸要比超声波的波长大好多倍,因此超声波的衍射本领很差,它在均匀介质中能够定向直线传播,超声波的波长越短,这一特性就会越显著。功率特性──当声音在空气中传播时,推动空气中的微粒往复振动而对微粒做功。声波功率就是表示声波做功快慢的物理量。在相同强度下,声波的频率越高,它所具有的功率就会越大。由于超声波频率比较高,所以超声波与一般声波相比,它的功率是非常大的。2.2超声波传感器超声波传感器是利用超声波的特性研制而成的用于产生和接收超声波的器件,它既能够把其他形式的能转化为所需频率的超声能又能够把超声能转化为其他形式的能。54 天津职业技术师范大学2013届本科生毕业设计采用超声波传感器有以下几个方面的好处:(1)测量方式原理简单,易于实现。(2)测量的精度高(3)超声波传感器有一定的覆盖性,可以用较少的传感器数量覆盖较大的测量范围。2.3超声波测量中盲区及近限和远限用往返时间检测法测量距离时,障碍物与超声波传感器间的距离既不能太远也不能太近,存在着距离测量的近限和远限。距离过远时,接收到的信号太弱,以致无法从噪声信号中分辨出来,这是远限存在的原因。在距离过近时,接收信号将落进盲区中而无法分辨出来,这是近限所以存在的原因。所以,设计中要尽量减小盲区,同时提高检测的距离精度。减小盲区措施:(1)压缩发射脉冲宽度发射端采用减幅振荡脉冲或单个脉冲,可使余震(拖尾)减少,此法常用于短距离测量距离。(2)采用自动距离增益控制采用具有自动增益控制功能的接收放大器,使近距离的增益很小,远距离时的增益较大,这样一方面发射信号的余震幅度变小,相应的延续时间缩短,可以分辨出近处的接受回波信号,故可使盲区减少。另一方面,可使远处的回波信号的幅度增大,以提高测量的精度。(3)信噪比问题超声波测距都有确定的量程。量程主要决定于接收信号的幅值应大于规定的阐值。这个阂值决定信噪比。这时要求对环境噪声进行频谱分析,尽量避免与噪声频率重叠。2.4超声测距的方案超声检测与超声测距所用的方法类似。超声测距的方法分为相位检测法、声波幅值检测法和往返时间检测法等。其中相位检测法精度高,但是监测范围有限,声波幅值检测法易受反射波的影响,采用最多的是往返时间检测法。往返时间检测法的基本原理在声速已知的情况下通过测量发送信号与接收信号之间的时间差来计算障碍物的距离,原理图如图2-1所示。具体的说就是当40KHz的电压脉冲信号由导线输入传感器后,由压电陶瓷晶片将此电信号转换成机械振动,这种机械振动通过空气向外发送出去,发送出的超声信号向空中各方向沿直线传播,遇到障碍物反射回来。传感器在接收到反射回来的回波信号后再次将机械振动转变为电压信号的波动。此时得到的电压脉冲信号非常的微弱,经过后极的放大电路等的处理后被采集处理。54 天津职业技术师范大学2013届本科生毕业设计图2-1超声波测距原理图超声波传感器发出超声波,在介质中传播遇到障碍物反射后再通过介质返回到接收探头,测出超声波从发射到接收所需的时间,然后根据介质中的声速,就能算得从探头到障碍物的距离。本设计采用双探头方式。声波在其传播介质中被定义为纵波。当声波受到尺寸大于其波长的目标物体阻挡时就会发生反射;反射波称为回声。假如声波在介质中传播的速度是已知的,而且声波从声源到达目标然后返回声源的时间可以测量得到,从声波到目标的距离就可以精确地计算出来。这就是本系统的测量原理。这里声波传播的介质为空气,采用不可见的超声波。假设室温下声波在空气中的传播速度是335.5m/s,测量得到的声波从声源到达目标然后返回声源的时间是t秒,距离d可以由下列公式计算:d=33550(cm/s)*t(s)因为声波经过的距离是声源与目标之间距离的两倍,声源与目标之间的距离应该是d/2单探头方式就是探头发出的超声波在介质中传播,遇到障碍物反射后返回至同一探头而被接收。如图3-3所示,探头到障碍物的距离为S,测距表达式为:式中:S为所测障碍物的距离,c为超声波在介质中的传播速度,t为超声波从发送到接收所经过的时间。从上式可看出,只要已知声速c,就可以靠准确测量时间t的方法来精确测量距离S。2.5本章小结本章对设计中用到的超声波技术进行了一个系统性的说明。包括对超声波的说明,超声波传感器的优点,超声波测量中盲区及近限和远限,以及本次设计所要用到的超声波测距技术的原理。54 天津职业技术师范大学2013届本科生毕业设计3.智能导盲拐杖硬件系统设计3.1设计实现的功能超声测距部分是利用超声波在空气中传播时遇到障碍物返回的特点来实现测量距离的目的。根据超声波从发射到接收到回波的时间以及此时的声速就可以计算出障碍物的距离。由于超声在空气中传播有衰减,加上环境以及电路本身的噪声干扰,测量距离有一定的上限,超过上限距离的障碍物的回波将无法检测到;同时由于发射超声波对接收超探头的影响,测量距离存在下限,低于下限距离的障碍物回波将无法与干扰信号区别开。系统测量的就是介于上限与下限距离范围的障碍物信息。当检测到障碍物时,系统会通过语音模块发出告警信号。语音播报部分是通过对接收到的超声波信号进行检测,数据经过处理后,处理完成后如为危险信号即发布声音预警。通过控制开关,可控制语音模块对实时的温度和时间的进行播报。警示系统模块通过AT89S52单片机控制语音模块和控制开关,达到包括语音警示,LED灯警示效果,提醒使用者和过往车辆行人避让,达到保障使用者安全的目的稳压电源模块可以最大程度保持输入电压的稳定,保持电源输出的电压是恒定的。是为了给电路提供稳定电源,从而使整个模块正常工作,延长使用寿命。3.2设计思路智能导盲拐杖硬件电路设计是一项系统的工程,它涉及到许多方面,包括单片机、超声测距系统、开关控制系统、温湿度采集系统、声光报警系统、电源等的选择,还包括单片机以及各模块间的相互连接。在设计之前,必须要对整个智能导盲拐杖的各部分构造有一个大致的了解。为了更好的实现预期的效果,根据整体配置,来细化各模块配置。以AT89S52单片机为核心的控制器,除此之外再细分模块。整个系统根据“回波测距”的原理设计的,其结构框图如图3-1所示。图3-1智能导盲预警系统结构原理图54 天津职业技术师范大学2013届本科生毕业设计3.3硬件电路设计该系统由单片机、超声波发射接收电路、液晶显示电路、语音模块及光警提示模块等组成,控制核心为单片机。单片机在接收到传感器的信息后,将传感器的信号转换为距离信息,通过语音播报或振动提示。系统工作原理方框示意图如图3-2所示。图3-2系统工作原理方框示意图整个系统包括以下几个模块:(1)CPU模块(2)超声换能模块超声波发射包括产生超声激励脉冲的发射电路和超声探头,由单片机控制产生激励脉冲激励探头发射超声波。回波信号的接收由前置比例放大电路、程控放大电路和滤波电路四部分构成。回波信号经超声波传感器接收后转换成电信号,再经放大和滤波使信号的幅度和信噪比达到一定程度,满足信号处理的要求。(3)电源模块该模块为整个系统供电,提供稳定的电源。使整个系统能够正常的运行。(4)语音播报模块该模块主要播报警示音,及对时间进行播报。(5)温湿度检测模块3.3.1CPU模块单片机一词最初源于“Single-ChipMicrocomputer”,简称“SCM”。单片机也叫做“微控制器”或者“嵌入式微控制器”。单片机在控制领域中,具有很多优点,它体积小,成本低,运用灵活,易于产品化,它能方便的组成各种智能化的控制设备;面向控制,能针对性的解决从简单到复杂的各种控制任务,而能获得最佳的性能价格比;它抗干扰能力强,适用范围宽,在各种恶劣的环境下都因能可靠的工作,这是其它类型计算机无法比拟的;54 天津职业技术师范大学2013届本科生毕业设计内存较大,功能强,抗干扰能力强、软硬件资源都比较丰富等特点,其外围接口电路简单,具有很高的性价比,其价格仅为DSP的五分之一,而且它经过多年的发展,技术也相当的成熟。它与工业标准MCS-51的指令和引脚兼容,因而是一种功能强大的微控制器,它对很多嵌入式控制应用提供了一个高度灵活有效的解决方案。此外,可以方便地实现多机和分布式控制,使整个控制系统的效率和可靠性大为提高,所以我们可以利用单片机与超声波技术的的结合来实现测距。基于单片机的超声波测距系统易实现,成本低,精确度高,并且容易做到实时控制,具备较强的实用性。这次设计所选用的AT89S52单片机如图3-3所示,有40个引脚的芯片,引脚配置,是一种低功耗、高性能的含有8K字节快闪可编程/擦除只读存储器(FPEROM--FlashProgrammableandErasableReadOnlyMemory)的8位CMOS微控制器,使用高密度、非易失存储技术制造,并且与AT89S52指令系统和引脚完全兼容。芯片上的FPEROM允许在线或采用通用的非易失存储编程器对程序存储器重复编程。AT89S52的主要性能包括:(1)与MCS-52微控制器产品系列兼容。(2)片内有8K字节的可在线重复编程快闪擦写存储器(FlashMemory)。(3)编程所需的所有时序和电压,均不需外部电路供给。(4)存储器可循环写入/擦除1000次。(5)存储数据保存时间为10年。(6)宽工作电压范围,Vcc可由2.7V到6V。(7)全静态工作,可由OHz到16MHz。(8)程序存储器具有3级锁存保护。(9)128X8位内部RAM。(10)32条可编程I/O线。(11)三个16位定时器/计数器。(12)中断结构具有5个中断源和2个优先级。(13)可编程全双工串行通道。(14)空闲状态维持低功耗和掉电状态保护存储内容。AT89C52芯片的40个引脚功能为:VCC:电源电压。GND:接地。RST:复位输入。当RST变为高电平并保持2个机器周期时,所有I/O引脚复位至“1”。XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。XTAL2:来自反向振荡放大器的输出。ALE/PROG:54 天津职业技术师范大学2013届本科生毕业设计当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在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)。 P0口:8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。P1口:8位双向I/O口。引脚P1.2~P1.7提供内部上拉,当作为输入并被外部下拉为低电平时,它们将输出电流,这是因内部上拉的缘故。P1.0和P1.1需要外部上拉,可用作片内精确模拟比较器的正向输入(AIN0)和反向输入(AIN1),P1口输出缓冲器能接收20mA电流,并能直接驱动LED显示器;P1口引脚写入“1”后,可用作输入。在闪速编程与编程校验期间,P1口也可接收编码数据。P2口:带内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。P3口:引脚P3.0~P3.7为带内部上拉的双向I/0引脚。P3口的输出缓冲器能接收20mA的灌电流;P3口写入“1”后,内部上拉,可用输入。P3口也可用作特殊功能口,其功能见表1。P3口同时也可为闪速存储器编程和编程校验接收控制信号。本次设计的单片机模块由AT89S52单片机及其外围电路组成,是整个超声波测距仪的核心电路。AT89S52功耗低、性能高其具有8K在系统可编程Flash存储器。使用Atmel公司高密度非易失性存储器技术制造,与工业产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8位CPU和在系统可编程Flash,使得AT89S52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。54 天津职业技术师范大学2013届本科生毕业设计图3-3单片机电路结构在89S52单片机的引脚RST接持续两个周期的高电平时,单片机内部就执行复位操作。若是引脚保持保持高电平,则单片机处于循环复位状态。实际应用中,复位操作有两种基本形式:一种是上电复位,另一种是上电与按键均有效的,请求在打开电源、单片机自动复位操作。RST引脚上电瞬间获得高电平,随着电容C1的充电,RST引脚的电压将逐渐下降。RST引脚的高电平只要能保持足够的时间(2个机器周期),单片机就可以进行复位操作。单位电路的目:在需要的时候,单片机复位,保证正常的工作循环,如图3-4所示。图3-4复位电路3.3.2超声波换能模块目前被大家熟知的避障测距技术主要有激光、毫米波雷达、摄像系统、红外线、超声波等一些测距技术,不同的目标探测方式其工作过程和原理有不同之处,但它们的主要目的都是通过前方返回的探测信息来判断距离。各可测距传感器的比较如图3-5所示。54 天津职业技术师范大学2013届本科生毕业设计图3-5各传感器性能比较综合以上考虑和实际应用条件,所以本设计测距模块采用的是超声波方案,并在超声波测距技术方案的设计上进行了简化和改进。超声换能器按照发射与接收是否同体可分为收发同体与收发分体式两种。其中收发一体式就是发送器和接受器为一体的传感器,即可发送超声波,又可接受超声波;收发分体式是发送器用作发送超声波,接受器用作接受超声波。为了操作的简便,本次超声波导盲系统选用的是HC-SR04超声波测距模块如图3-6所示。图3-6HC-SR04超声波测距模块实物图54 天津职业技术师范大学2013届本科生毕业设计HC-SR04超声波测距模块可提供2cm~400cm的非接触式距离感测功能,精度可达2mm,模块包括超声波发送接收和控制电路。Vcc供5V电源,GND接地,TRIG触发控制信号输入,ECHO回想信号输出。基本工作原理:(1)采用IO口TRIG触发,至少给10us的高电平信号;(2)模块自动发射8个40KH的方波,自动检测是否有信号返回;(3)有信号时,通过IO口ECHO输出高电平,高电平持续时间就是超声波从发射到返回的时间。这是一款压电陶瓷式收发同体超声波传感器。其中心频率为40KHz,发射声压在10V,0dB=0.02m/Pa的条件下≥95dB;接收灵敏度在40KHz中心频率,0dB=10V/pa的条件下≥-65dB;静电容量为1260pF~2340pF;探测距离为0.2~3m;-6dB下的指向角为60o。其发射声压方位特性图如图3-7所示。图3-7发射声压方位特性图HR-SR04型超声波集成模块的工作电压为5V,而且此模块的静态工作电流是小于2mA的,工作时候相对稳定。测量角度为15°,减少了可能存在的角度干扰问题。此模块的测距范围为2cm~5m,能基本满足测距要求,而且其精度可以达到0.3cm,盲区仅为2cm,完全可以能够满足本设计的测距要求,测距也比较稳定。采用I/O触发测距,需给至少10us的高电平信号。HC-SR04电气参数如图3-8所示。54 天津职业技术师范大学2013届本科生毕业设计图3-8HC-SR40电气参数换能电路部分主要包括超声波信号产生功率驱动。实际目的是为超声波发射器提供它所需要的脉冲电信号。依据电路需要,发射电路满足下列要求:(1)振荡电路振荡频率可调:振荡电路的实现目的是为超声波传感器提供40KHz脉冲。当加载在超声波传感器的两端的信号频率与其固有频率为同一频率时,发生共振,电信号电能高效率的转化为机械声波机械能。本设计所使用的为555振荡电路,如图3-9所示图3-9555振荡电路(2)驱动能力较高;驱动电路是为超声波发射器提供足够功率的脉冲信号。要求产生出具有一定功率,一定脉冲宽度和一定频率的超声电脉冲去激励发射器,由发射器将电能转换为超声机械波机械能。如图3-10所示超声波传感器驱动电路原理图。图3-10超声波传感器驱动电路原理图54 天津职业技术师范大学2013届本科生毕业设计(3)I/O口控制。功率驱动电路功能是用来对超声波换能器进行功率驱动,经过驱动放大达到足够功率之后,推动超声波换能器产生超声波。超声波在空气中会随着传播距离的增加而衰减,经过目标反射回来的超声波的回波信号弱,在距离较远的情况下只达毫伏级,甚至微伏。因此为了加大超声波测距系统的量程范围,需加以驱动电路如图3-11所示。根据电路需求,接收电路的功能是将接收到的微弱信号放大并进行滤波整形。接收电路部分主要包括限幅保护电路、带通滤波电路、比较放大电路三部分电路构成。采用集成运算放大器构成的放大电路具有放大倍数高,输入电阻高,输出电阻低的特点,是一种直接耦合式放大电路。这种电路比较简单,放大倍数容易调整图3-11超声波驱动放大电路原理图本次设计选择了各项性能优越的LM387作为放大器,其能充分满足放大的要求,可双电源供电,考虑到电源的问题,采用单电源供电,因此设计了电压跟随器提供4V的基准电压,可以有效防止干扰。由于回波信号非常弱,一般为毫伏级,其能量的衰减程度与传播距离成正比,所以超声波传感器的接收信号一般在10mV~60mV之间,因此由LM387构成了三级放大电路,每一级放大10倍,共放大1000倍左右,完全能够满足要求,并且三级放大可选,可以根据测距的远近选择合适的放大倍数。此超声波模块可提供10cm~500cm的非接触式距离感测功能,测距精度可在1cm。基本工作原理:(1)采用I0口TRIG触发式测距,至少给10us的高电平信号;(2)模块自动发出8个40KHZ的方波,自动检测是否有信号返回;(3)有信号返回时,通过I0口ECH0输出一个高电平,高电平持续时间就是超声波从发射到返回的时间。使用者到障碍物距离=(高电平时间*声速)/2;超声波总体电路见附录1。54 天津职业技术师范大学2013届本科生毕业设计3.3.3语音播报模块设计考虑到产品的使用人群为盲人,因此采用的是语音示警和播报的形式。使用者可以通过开关按钮播报实时温度和时间,进行时间播报。语音芯片采用SYN6288中文语音芯片如图3-12所示。该芯片继承了OSYNO188语音芯片的优点:最小SSOP28L贴片封装、硬件接口简单、低功耗、音色清凉圆润、极高的性价比;除此之外,SYN6288在识别文本/数字/字符串上更智能、准确,语音合成效果也比较好。SYN6288语音合成效果和智能化程度均得到大幅度提高,是一款真正面向中高端行业应用领域的中文语音合成芯片。SYN6288语音合成芯片的诞生,将推动TTS语音合成技术的行业应用走向更深入、更广泛。图3-12SYN6288中文语音芯片引脚图引脚定义:1,3引脚接总线模块0电源负极;2引脚接总线模块0电源正极;4引脚接低电平表示CHIP空闲,可接收上位机发送的命令和数据高电平表示CHIP忙,正在进行语音合成并播音;5引脚接Res引脚;6引脚接总线模块1电源正极;7引脚接总线模块1电源负极;8,12引脚接语音输出模块电源负极;10引脚接语音输出模块电源正极;9引脚接推送DAC语音输出1;其功能特点:(1)支持GB2312、GBK、BIG5和UNICODE内码格式的文本;(2)清晰、自然、准确的中文语音合成效果;可合成任意的中文文本,支持英文字母的合成;(3)具有智能的文本分析处理算法,可正确识别数值、号码、时间日期及常用的度量衡符号;(4)具备很强的多音字处理和中文姓氏处理能力;(5)支持多种文本控制标记,提升文本处理的正确率;54 天津职业技术师范大学2013届本科生毕业设计(1)每次合成的文本量最多可达200字节;(2)支持多种控制命令,包括:合成、停止、暂停合成、继续合成、改变波特率等;(3)支持休眠功能,在休眠状态下可降低功耗;支持多种方式查询芯片工作状态;(4)支持串行数据通讯接口,支持三种通讯波特率:9600bps,19200bps、38400bps;(5)支持16级音量调整;播放文本的前景音量和播放背景音乐的背景音量可分开控制;(6)可通过发送控制标记调节词语语速,支持6级词语语速调整;(7)芯片内固化有多首和弦音乐、提示音效和针对某些行业领域的常见语音提示音;(8)内部集成19首声音提示音,23首和弦提示音,15首背景音乐;(9)内置10-bit推挽式(push-pull)、可独立供电的功放,进行数模DAC输出;(10)最终产品提供SSOP贴片封装形式;体积业内最小;(11)芯片各项指标均满足室外严酷环境下的应用;根据设计方案要求及芯片功能,设计语音模块电路如图3-13所示图3-13语音电路原理图3.3.4温度检测模块和时钟模块的设计考虑到盲人看不见的实际情况,为了更好的服务盲人这个特殊群体,本设计还有温度检测模块和时钟模块,由开关控制,可以通过语音芯片进行实时播报。考虑到整体电路和使用的实际情况,本设计采用高性能低功耗的时钟芯片HYM1302和DS1820单总线数字温度检测模块。HYM1302为可慢速充电的实时时钟芯片,包括实时时钟日历和31字节非易失静态RAM。可在功耗非常小的下正常工作,消耗小于1uW时能够进行数据存储。工作电压范围在2.0V~5.0V,3线接口与单片机通信,HYM1302引脚与内部结构如图3-14示。54 天津职业技术师范大学2013届本科生毕业设计图3-14HYM1302引脚与内部结构图3-15时钟模块电路原理图温湿度的检测有许多方法,可供选择的器件和运用的技术也有多种。但是温湿度检测系统的设计方案应在满足系统整体性能指标的前提下,充分考虑系统使用的环境,所以所选的结构要尽量简单实用、易于实现,器件的选用要着眼于合适的参数、稳定的性能、较低的功耗、低廉的成本以及较好的互换性能。既要达到设计的要求,又为了减少外部模块对单片机的负荷,减少接口数量,温度检测模块选择DS1820单总线数字温度检测模块,其独特的单线接口,只需1个接口引脚即可通信,不需外部元件不需备份电源,温度测量范围可达到-55℃到+125℃。引脚说明如图3-16所示。54 天津职业技术师范大学2013届本科生毕业设计图3-16DS1820引脚说明图3-17温度检测模块原理图3.3.5灯光示警模块设计示警方式通常有灯光示警,用闪动的指示灯来警示人;其次是声音示警,发出特定的语音提示;在选择警示电路时,需要使其硬件结构简单,编程简单。此次设计除了语音警示外还添加了人性化的光控制LED灯示警系统,为了方便夜晚时提醒路过的车辆和行人避让盲人所设计。采用光敏电阻控制示警灯开关,当夜晚光线变暗时,光控制系统导通,给警示灯供电。光线采集电路如图3-18所示。54 天津职业技术师范大学2013届本科生毕业设计图3-18光控制电路原理图3.3.6稳压电源模块的设计电源电路目的:给控制电路及其它电路提供一个稳定的电源。电源设计是电路设计很重要关节。它的稳定与否涉及到电路是否能稳定工作。本次设计采用可稳压芯片LM7805,是最常见的三端稳压集成电路,用其组成稳压电源所需的外围元件极少,电路内部还有过流、过热及调整管的保护电路,使用起来可靠、方便,而且价格便宜。如图3-19所示,为电源稳压电路。图3-19电源稳压电路原理图54 天津职业技术师范大学2013届本科生毕业设计3.4本章小结本章主要介绍硬件的模块化。对设计实现的功能进行了总的概述阐述了硬件设计的思路和构想,并根据要求,说明了各个模块所实现的功能。对系统的整体设计理念、方案做大致的介绍,并详细讲解核心部件主要器件的参数,以及硬件设计原理框图。54 天津职业技术师范大学2013届本科生毕业设计4.智能导盲拐杖软件设计软件设计也就是程序设计,用计算机所能识别的语言把所需实现的功能的逐一描述,也就是计算机程序的编写,在设计软件系统时,系统程序是整个系统的中心部分,协调着各模块功能的正常运作。软件的编写是相当重要的部分,软件的质量影响着整个系统实现功能的效果,系统功能决定着应用程序的设计。4.1系统软件设计语言本次设计用C语言作为程序软件设计语言,它的特点就是可以尽量减少你对硬件进行操作,C语言具有良好的程序结构,适用于模块化程序设计,因此采用C语言设计单片机应用系统程序时,首先要尽可能地采用结构化的程序设计方法,将功能模块化,由不同的模块完成不同的功能,这样可使整个应用系统程序结构比较清晰,易于调试和维护。不同的功能模块,分别指定相应的入口参数和出口参数,对于一些要重复调用的程序一般把其编成函数,这样可以减少程序代码的长度,又便于整个程序的管理,还可增强可读性和移植性。4.2软件设计心得程序设计有其规律和共同点。在编写程序时,采取如下几个步骤:(1)明确设计所要实现的功能,将软件的设计分成若干个独立的模块。便于编程和修改查询。根据时序关系和功能关系,设计出最合理的软件总体结构;(2)画程序框图,根据所选择的实现方法制定流程图;(3)依照所设定的程序流程图和指令系统编写程序,注意在程序相关部位标注注释,提升程序的可读性;(4)系统资源合理的分配,按照要实现的功能选择;(5)通过编辑软件编辑出的源程序,必须用编译程序汇编后生成目标的代码。如果源程序有语法错误,那么需修改源文件后继续编译,直到无语法错误为止,然后利用目标代码通过仿真器进行程序调试,排除设计和编程中的错误直到成功;4.3设计的软件环境简介对于AT89C51的控制设计,以Keilc软件编程环境,以proteus软件为电路仿真设计环境。二者的结合为该系统的设计提供有利条件。Keilc软件界面,如图4-1所示。该软件是一款集编程和仿真于一体的软件,它支持汇编、C语言及二者的混合编程。54 天津职业技术师范大学2013届本科生毕业设计软件是一个系统的核心,想做好一个设计必须有好的思想和清晰的逻辑。本系统采用模块化设计,将程序拆分成几个相对独立的子程序,这样既方便程序的阅读,也有利于以后对程序的修改和移植。本设计的软件开发完全是依靠kell单片机C语言平台,在此平台程序调试简单,具有良好的可续性和扩展性。图4-1Keil_c软件界面ProteusISIS是英国Labcenter公司开发的电路分析与实物仿真软件。它运行于Windows操作系统上,可以仿真、分析(SPICE)各种模拟器件和集成电路。该软件的特点是:(1)全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优势。(2)具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、RS-232动态仿真、I2C调试器、SPI调试器、键盘和LCD系统仿真的功能;有各种虚拟仪器,如示波器、逻辑分析仪、信号发生器等。(3)目前支持的单片机类型有:ARM7系列、68000系列、8052系列、AVR系列、PIC12系列、PIC16系列、PIC18系列、Z80系列、HC11系列以及各种外围芯片。(4)支持大量的存储器和外围芯片。总之,该软件是一款集单片机和SPICE分析于一身的仿真软件,功能极其强大,可仿真ARM、52、AVR、PIC。ProteusISIS的工作界面是一种标准的Windows界面,如图所示,包括:标题栏、主菜单、标准工具栏、绘图工具栏、状态栏、对象选择按钮、预览对象方位控制按钮、仿真进程控制按钮、预览窗口、对象选择器窗口、图形编辑窗口。54 天津职业技术师范大学2013届本科生毕业设计图4-2仿真界面运行Proteus程序后,进入软件的主界面。再通过左侧工具栏中的P(从库中选择元件命令)命令,在PickDevices左侧窗口中选择所需元件的关键字,然后放置元件并调整方向和位置以及参数设置,最后进行连线。4.4主要模块软件设计流程图呼叫系统软件设计的流程如图4-3所示。图4-3呼叫系统框图54 天津职业技术师范大学2013届本科生毕业设计初始化计算键值子程序键标志为0?(COUNTER)+1INCFLAG40个单元扫描完?调BCD调整子程序调显示子程序返回开始标志位是否为1?定时是否达到1S?调显示子程序存储单元加1NYNYY图4-4显示模块软件设计流程图4.5本章小结本章主要介绍了软件设计的整个过程,包括对所使用的软件做出了简单的介绍,并使用模块化的设计思想进行软件设计,设计思路清晰,这样方便调试过程中的程序修改。同时开发一个良好的设计思维与良好的设计习惯。54 天津职业技术师范大学2013届本科生毕业设计5系统的调试结果系统调试工作是系统开发过程中必不可少的一个过程,一个完整的控制系统调试包含控制系统的硬件联调、软件联调、系统仿真、仿真烧录和现场安装调试等几个环节。在系统设计组装完成后,首先是进行实验室条件下的系统硬件调试,调试成功后,有了硬件的保证,就容易发现软件的漏洞,进而促进改进和完善。所有的调试通过后,要进行现场运行并能持续一定的时间,待未发现故障后,方可验收合格,才算完成了整个系统的设计工作。实验结果表明,设计的超声波导盲拐杖,可以达到很高的采集速率和精度,对前方障碍物可以做出启动自动声音提示功能。实验已经验证了硬件系统的可靠性。但是由于受环境温度、湿度的影响,超声传感器的测量值与实际值总有一些误差。其余的子功能都良好运行。实验数据:测量地点操场教室寝室街上测量值15526090350实际播报值14826184341总结原因共有两个方面:(1)由于超声波被被测面或被测面旁其它物体的漫反射,因而所测距离不是真实的垂直距离,引起测量误差。(2)声速随温度变化影响测量精准。54 天津职业技术师范大学2013届本科生毕业设计结论导盲预警系统的运用可极大地减轻盲人的行走不便与安全隐患,降低且避免因盲人不辨障碍而导致的事故的发生,同时它将对提高人体智能化设计起到重要的意义。在设计之中借鉴前人研究过的内容和方法,选出最优方案,才能在好的基础上进行创新。通过对智能导盲拐杖的设计,对超声波测距和预警有了更加深刻的理解。设计的最终智能导盲拐杖能够正常的产生超声波,并实现超声波的发送与接收,从而实现利用超声波方法测量物体间的距离,并给出预警。本设计还可以在几个方面进行修改完善,进而使得本设计的测距仪功能更加完善,诸如:(1)因为超声波探头的精密度限制,装置在温度不同的环境下测量误差也不一样,本设计中并没有温度补偿模块,主要是本设计做为盲人障碍导盲预警的使用,对精确的距离要求不高主要是起到警报的作用,所以没有采用温度补偿模块进行设计。如果在设计中考虑到温度补偿这个模块,并添加到设计中去,那么整个系统将会更完善。(2)为了抑制外部干扰,接收装置可以采用过零检测装置,保证接收到得超声波为物体反射回来的超声波,从而有效地抑制超声波发射电路的辐射干扰。但要注意接收电路中的谐振回路带宽不能太窄,以免降低了电路的稳定性。电路元件要选用低噪声器件,采取合理的电路布局54 天津职业技术师范大学2013届本科生毕业设计参考文献[1]吴建平著.《传感器原理及应用》.机械工业出版社,2009年.[2]郑锋等著.《51单片机典型应用开发范例大全》.中国铁道出版社,2011年.[3]谢自美主编.《电子线路综合设计》.华中科技大学出版社,2006年.[4]程国钢著.《51单片机应用开发案例手册》.电子工业出版社,2011年.[5]宋戈等著.《单片机应用开发范例大全》.人民邮电出版社,2010年.[6]王福瑞主编.《单片微机测控系统设计大全》.北京航空航天大学出版社,1998年.[7]顾滨编.《电子线路设计--ProtelDXP2004SP2》.水利水电出版社,2011年.[8]青木英彦著.《模拟电路设计与制作》.科学出版社,2005年.[9]高吉祥.《全国大学生电子设计大赛培训系列教程》.电子工业出版社,2007年[10]松井邦彦著.《传感器应用技巧141例》.译科学出版社,2006年.[11]李军等著.《51系列单片机高级实例开发指南》.北京航天航空大学出版社,2004年.[12]孙德刚等著.《基于Protel的电子线路板设计》.西安电子科技大学出版社,2009年.[13]谢自美主编.《电子线路综合设计》.华中科技大学出版社,2006年..[14]DorlaidA.Neamen著.《电子电路分析与设计:模拟电子技术》(第3版).清华大学出版社,2007年.[15]俞阿龙等著.《传感器原理及其应用》.南京大学出版社,2010年.[16]刘坤等著.《51单片机C语言应用开发技术大全》.人民邮电出版社,2012年.[17]胡汉才 著.《单片机原理及其接口技术》.清华大学出版社,2011年.[18]程国钢 等著.《51单片机典型模块开发查询手册》.电子工业出版社,2012年.[19]张洪润 著.《传感器技术大全》.北京航空航天大学出版社,2007年.[20]郭有强 编.《C语言程序设计》.清华大学出版社,2009年.54 天津职业技术师范大学2013届本科生毕业设计致谢经过这一阶段的不懈努力,我终于完成了毕业设计——《基于单片机的导盲拐杖》,这就意味我的大学生涯即将画上一个圆满的句号。从设计选题到搜集资料,从写稿到反复修改,期间经历了喜悦、聒噪、痛苦和彷徨,在写作论文的过程中心情是如此复杂。如今,伴随着这篇毕业设计的最终完成,复杂的心情烟消云散,自己甚至还有一点成就感。首先感谢我的指导老师。本论文是在童勇木老师的指导下和同学们的帮助下修改完成的。在此,我要向他们的细心帮助和指导表示由衷的感谢。在这段时间里,我从他们身上不仅学到了许多的专业知识,更感受到他们工作中的兢兢业业,生活中的平易近人。此外,他们严谨的治学态度和忘我的工作精神值得我去学习。非常感谢大家在我的毕业设计中,给予我极大的帮助,使我对整个毕业设计的思路有了总体的把握,并耐心的帮我解决了许多实际问题,使我有了很大的收获。同时,他们在整个开发过程中提出了许多建设性意见,并给我解决了一些专业性问题。我还要感谢学校、电子学院在设计期间能为我提供良好的试验条件,使我能在实验室调试电路!感谢电子学院所有指导过我的老师!对在百忙中抽出宝贵时间评阅本论文的老师表示真挚的感谢,感谢各位老师对本论文提出宝贵意见!曾经以为,离开学校的时候不会难过,毕竟,这已不是第一次离开校园。可在写下这篇致谢词的时候,眷恋和惆怅还是涌上心头。这五年,在我的生命历程中无疑是美丽的,老师五年间的认真负责,使我能够很好的掌握专业知识,它是我一辈子享受不尽的财富。感谢给予我帮助的老师,感谢我的父母,感谢我的同学,是你们,让我觉得生活如此美好!54 天津职业技术师范大学2013届本科生毕业设计附录1:部分主电路原理图54 天津职业技术师范大学2013届本科生毕业设计54 天津职业技术师范大学2013届本科生毕业设计附录2:部分主程序#include"头文件.H"unsignedcharKEY_REG=0X00;//标志寄存器54 天津职业技术师范大学2013届本科生毕业设计voiddelay_key(void)//消抖时间11.0592MHz->50ms{unsignedchara,b,c;for(c=3;c>0;c--)for(b=44;b>0;b--)for(a=173;a>0;a--);}voidKey_Scan(void){unsignedchartemp_set;////////////////////时间设置按键/////////////////////if(KEY_SET==0){delay_key();if(KEY_SET==0){Key_Enter_Flag_1;//有按键按下置位“短按”标志位Key_Back_Flag_0;//清“长按”标志位}temp_set=0;while(KEY_SET==0)//等待按键抬起{temp_set++;delay_key();//50msif(temp_set>=40){temp_set=40;Key_Back_Flag_1;//置位“长按”标志位Key_Enter_Flag_0;//清“短按”标志位}}}else{Key_Enter_Flag_0;Key_Back_Flag_0;}//没有按键按下清标志位////////////////////时间“+”按键///////////////////if(KEY_ADD==0){delay_key();if(KEY_ADD==0){Key_ADD_Flag_1;//有按键按下置位标志位}while(KEY_ADD==0);//等待按键抬起}elseKey_ADD_Flag_0;//没有按键按下清标志位54 天津职业技术师范大学2013届本科生毕业设计////////////////////时间“-”按键////////////////////if(KEY_DEC==0){delay_key();if(KEY_DEC==0){Key_DEC_Flag_1;//有按键按下置位标志位}while(KEY_DEC==0);//等待按键抬起}elseKey_DEC_Flag_0;//没有按键按下清标志位///////////////////语音“报时”按键//////////////////if(KEY_YY==0){delay_key();if(KEY_YY==0){Key_YY_Flag_1;//有按键按下置位标志位}while(KEY_YY==0);//等待按键抬起}//elseKey_YY_Flag_0;//没有按键按下清标志位///////////////////语音“温度”按键//////////////////if(KEY_WD==0){delay_key();if(KEY_WD==0){Key_WD_Flag_1;//有按键按下置位标志位}while(KEY_WD==0);//等待按键抬起}//elseKey_WD_Flag_0;//没有按键按下清标志位///////////////////语音“距离”按键//////////////////if(KEY_JL==0){delay_key();if(KEY_JL==0){Key_JL_Flag_1;//有按键按下置位标志位}while(KEY_JL==0);//等待按键抬起}//elseKey_JL_Flag_0;//没有按键按下清标志位}54 天津职业技术师范大学2013届本科生毕业设计#include"头文件.H"voidUART_INIT(void)//1200{TMOD|=0X20;SCON=0x50;TH1=0xE6;TL1=TH1;//ES=1;EA=1;TR1=1;}///////////////////////////////////////////////////////////voidSendOneByte(charc){SBUF=c;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();while(!TI);TI=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();}///////////////////////////////////////////////////////////voidSend_str(char*str,charn_str){charstr_n=0;while(n_str--){SendOneByte(str[str_n++]);}}////////////////////////////////////////////////////////////*voidUARTInterrupt(void)interrupt4{if(RI){RI=0;//addyourcodehere!}//else//TI=0;54 天津职业技术师范大学2013届本科生毕业设计}#include"头文件.H"/*#defineset_ds1302_rst()DS_RST=1#defineclr_ds1302_rst()DS_RST=0#defineset_ds1302_io()DS_IO=1#defineclr_ds1302_io()DS_IO=0#definein_ds1302_io()DS_IO#defineset_ds1302_sclk()DS_SCLK=1#defineclr_ds1302_sclk()DS_SCLK=0*/sbitds1302_clk=P3^5;sbitds1302_io=P3^6;sbitds1302_rst=P3^7;#defineds1302_sec_reg0x80#defineds1302_min_reg0x82#defineds1302_hr_reg0x84#defineds1302_control_reg0x8e#defineds1302_charger_reg0x90#defineds1302_clkburst_reg0xbe///////////////////////////////////////////////////////////////////////unsignedcharR_shi,R_fen,R_miao;unsignedcharSHI=0x12;unsignedcharFEN=0x34;unsignedcharMIAO=0x56;unsignedcharDATE_DS[8+1]="00:11:14";//2012-12-270:11:14星期4voidsave_time(unsignedcharsave_temp);unsignedchartime_set_add;//地址////////////////////////////////////////////////////////////////////////*------------向DS1302发送一字节------------*/voidinput_byte(ucharbyte)//8位{uchari;for(i=0;i<8;i++){ds1302_io=(bit)(byte&0x01);ds1302_clk=1;_nop_();ds1302_clk=0;54 天津职业技术师范大学2013届本科生毕业设计_nop_();byte>>=1;}}/*--------------读DS1302一字节--------------*/ucharoutput_byte(void)//8位{uchari,byte=0;for(i=8;i>0;i--){ds1302_io=1;byte>>=1;if(ds1302_io==1)byte|=0x80;ds1302_clk=1;_nop_();ds1302_clk=0;_nop_();}return(byte);}/*----------向DS1302某地址写数据-----------*/voidds1302_write(ucharaddr,uchartimedata){ds1302_rst=0;_nop_();ds1302_clk=0;_nop_();ds1302_rst=1;_nop_();input_byte(addr);//写地址_nop_();input_byte(timedata);//写数据_nop_();_nop_();ds1302_clk=0;//_nop_();ds1302_rst=0;_nop_();}/*-------------读DS1302地址--------------*/uchards1302_read(ucharaddr){uchartimedata;54 天津职业技术师范大学2013届本科生毕业设计ds1302_rst=0;_nop_();ds1302_clk=0;_nop_();ds1302_rst=1;_nop_();input_byte(addr+1);//写地址timedata=output_byte();//字节传送ds1302_clk=1;_nop_();ds1302_clk=0;_nop_();ds1302_rst=0;_nop_();return(timedata);}/////////////////////////////////////////////////////////////////////////////////voidds1302_read_time(void){SHI=ds1302_read(ds1302_hr_reg);//时FEN=ds1302_read(ds1302_min_reg);//分MIAO=ds1302_read(ds1302_sec_reg);//秒R_shi=((SHI>>4)*10)+(SHI&0X0F);R_fen=((FEN>>4)*10)+(FEN&0X0F);R_miao=((MIAO>>4)*10)+(MIAO&0X0F);}/////////////////////////////////////////////////////////////////////////////////charold_sec_num=0;bitread_sec_f(void){charsec_num=0;sec_num=ds1302_read(ds1302_sec_reg);//秒if(sec_num!=old_sec_num){old_sec_num=sec_num;return1;}else{return0;}}/////////////////////////////////////////////////////////////////////////////////54 天津职业技术师范大学2013届本科生毕业设计voidds1302_write_time(bitset_mod){if(set_mod==0){ds1302_write(ds1302_control_reg,0x00);//关闭写保护//ds1302_write(ds1302_sec_reg,0x80);//暂停ds1302_write(ds1302_hr_reg,SHI);//时ds1302_write(ds1302_min_reg,FEN);//分ds1302_write(ds1302_sec_reg,MIAO);//秒ds1302_write(ds1302_control_reg,0x80);//打开写保护}else{ds1302_write(ds1302_control_reg,0x00);//关闭写保护ds1302_write(ds1302_sec_reg,0x30);//秒ds1302_write(ds1302_control_reg,0x80);//打开写保护}}////////////////////////////////////////////////////////////////////////////////voidchuli(void){DATE_DS[0]=R_shi/10+0x30;DATE_DS[1]=R_shi%10+0x30;DATE_DS[3]=R_fen/10+0x30;DATE_DS[4]=R_fen%10+0x30;DATE_DS[6]=R_miao/10+0x30;DATE_DS[7]=R_miao%10+0x30;}////////////////////////////////////////////////////////////////////////////////voidRead_Now_Time(void)//界面时间{ds1302_read_time();chuli();}//////////////////////////////////////////////////////////////////////////////////时间修改voidSet_Time(void)//时间{ds1302_read_time();//读取DS1302时间//////////////////////////if(Key_Enter_Flag==1)//两次确认键判断,第一次开始,第二次为选择修改对象{54 天津职业技术师范大学2013届本科生毕业设计if(Set_Time_Flag==0)//第一次按下确认键{Set_Time_Flag_1;//置位开始设置时间标志time_set_add=0;Speak_chinese("设置时间",8);ds1302_write(ds1302_control_reg,0x00);//关闭写保护ds1302_write(ds1302_sec_reg,0x80);//暂停//播报“开始设置时间”}elseif(Set_Time_Flag==1)//第二次按下确认键{time_set_add++;//选择要设置的内容switch(time_set_add){case1:Speak_chinese("设置小时",8);break;//播报“设置时”case2:Speak_chinese("设置分",6);break;//播报“设置分”case3:Speak_chinese("设置秒",6);break;//播报“设置秒”default:break;//播报“设置”}if(time_set_add>=4){time_set_add=0;Set_Time_Flag_0;//清开始设置时间标志Speak_chinese("退出设置",8);//Key_Back_Flag_1;//退出设置时间ds1302_write(ds1302_sec_reg,R_miao);//写秒ds1302_write(ds1302_control_reg,0x80);//打开写保护//播报“退出设置时间”}}}///////////////////////////////////////////////////////if(Key_Back_Flag==1)//{//Set_Time_Flag_0;//清开始设置时间标志//ds1302_write(ds1302_control_reg,0x80);//打开写保护////播报“退出设置时间”//}/////////////////////////////////////////////////////if((Key_ADD_Flag==1)&&(Set_Time_Flag==1))//摁下键时间+;{switch(time_set_add)//读取需要显示的变量{case1:{//时+54 天津职业技术师范大学2013届本科生毕业设计R_shi++;if(R_shi>23)R_shi=0;save_time(R_shi);//保存时间Speak_time(R_shi,6,"点",2);}break;case2:{//分+R_fen++;if(R_fen>59)R_fen=0;save_time(R_fen);//保存时间Speak_time(R_fen,6,"分",2);}break;case3:{//秒+R_miao++;if(R_miao>59)R_miao=0;save_time(R_miao);//保存时间Speak_time(R_miao,6,"秒",2);}break;default:break;}}/////////////////////////////////////////////////////////if((Key_DEC_Flag==1)&&(Set_Time_Flag==1))//摁上键时间—;{switch(time_set_add)//读取需要显示的变量{case1:{//时-if(R_shi>0)R_shi--;elseR_shi=23;save_time(R_shi);//保存时间Speak_time(R_shi,6,"点",2);}break;case2:{//分-if(R_fen>0)R_fen--;elseR_fen=59;save_time(R_fen);//保存时间Speak_time(R_fen,6,"分",2);}break;54 天津职业技术师范大学2013届本科生毕业设计case3:{//秒-if(R_miao>0)R_miao--;elseR_miao=59;save_time(R_miao);//保存时间Speak_time(R_miao,6,"秒",2);}break;default:break;}}}////////////////////////////////////////////////////////////////////////////////voidsave_time(unsignedcharsave_temp)//进制转换{unsignedcharsave_temp_HEX;save_temp_HEX=(((save_temp/10)<<4)+(save_temp%10));switch(time_set_add){case1:ds1302_write(ds1302_hr_reg,save_temp_HEX);break;case2:ds1302_write(ds1302_min_reg,save_temp_HEX);break;case3:ds1302_write(ds1302_sec_reg,save_temp_HEX);break;default:break;}}#include"头文件.H"//charTem_CODE[6+1]="000.00";//sbitDQ=P2^7;//定义通信端口unsignedcharflag_Negative_number=0;//负数标志//晶振12MHzvoiddelay_18B20(unsignedinti){while(i--);}//初始化函数voidDS18B20_initial(void){unsignedcharx=0;DS18B20_IO=1;//DQ复位delay_18B20(4);//稍做延时54 天津职业技术师范大学2013届本科生毕业设计DS18B20_IO=0;//单片机将DQ拉低delay_18B20(100);//精确延时大于480uDS18B20_IO=1;//拉高总线delay_18B20(40);}//读一个字节ReadOneChar(void){unsignedchari=0;unsignedchardat=0;for(i=8;i>0;i--){DS18B20_IO=0;//给脉冲信号dat>>=1;DS18B20_IO=1;//给脉冲信号if(DS18B20_IO)dat|=0x80;delay_18B20(10);}return(dat);}//写一个字节voidWriteOneChar(unsignedchardat){unsignedchari=0;for(i=8;i>0;i--){DS18B20_IO=0;DS18B20_IO=dat&0x01;delay_18B20(10);DS18B20_IO=1;dat>>=1;}}//读取温度ReadTemperature(void){unsignedchara=0;unsignedcharb=0;unsignedintt=0;//EA=0;54 天津职业技术师范大学2013届本科生毕业设计DS18B20_initial();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0xBE);//读取温度寄存器等(共可读9个寄存器)前两个就是温度a=ReadOneChar();b=ReadOneChar();//启动下一次温度转换DS18B20_initial();WriteOneChar(0xCC);//跳过读序号列号的操作WriteOneChar(0x44);//启动温度转换t=b;t<<=8;t=t|a;flag_Negative_number=0;if(t>0x0fff){t=~t+1;flag_Negative_number=0xff;}//t=t*6.25;//t=t*6.25;//有效位到小数点后2位,适用Proteus6.9版本和实物版t=t*5;//有效位到小数点后2位,适用Proteus7以上版本//t=t*0.0625;//EA=1;return(t);}/*voidRead_WD(void){unsignedintTem=0;Tem=ReadTemperature();//Tem=12345;//读温度Tem_CODE[0]=Tem%100000/10000+'0';Tem_CODE[1]=Tem%10000/1000+'0';Tem_CODE[2]=Tem%1000/100+'0';Tem_CODE[4]=Tem%100/10+'0';Tem_CODE[5]=Tem%10+'0';}*/54 天津职业技术师范大学2013届本科生毕业设计#include"头文件.H"unsignedcharcodechinese_code[12*2]="零一二叁四五六七八九十两";unsignedcharcodechinese_c[13*2]="大于五";voidSpeak_str(charS_n_str){//Send_str(S_str,S_n_str);/****************需要发送的文本**********************************///charcodetext[]={"12345"};unsignedcharchinese_TIME[16*2]="当前时间、、、点、、、分、、、秒";unsignedcharchinese_TEMP[13*2]="当前温度、、、点、、摄氏度";unsignedcharchinese_CSB[13*2]="距离前方障碍物、、点、、米";unsignedcharheadOfFrame[4]={0x01,0x80,0x80,0x84};unsignedcharecc=0;//定义校验字节unsignedinti=0;charcode_1,code_2,code_3,code_4;unsignedcharR_shi_,R_fen_,R_miao_;R_shi_=R_shi;R_fen_=R_fen;R_miao_=R_miao;//unsignedcharlength;//unsignedinttemp_c;//length=S_n_str;//strlen(text);//需要发送文本的长度/*****************发送过程**************************************/for(i=0;i<4;i++)//依次发送构造好的5个帧头字节{ecc=ecc^(headOfFrame[i]);//对发送的字节进行异或校验SendOneByte(headOfFrame[i]);//等待发送}/*for(i=0;i
此文档下载收益归作者所有