超声波测距毕业设计论文_第1页
超声波测距毕业设计论文_第2页
超声波测距毕业设计论文_第3页
超声波测距毕业设计论文_第4页
超声波测距毕业设计论文_第5页
已阅读5页,还剩39页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、电子信息工程系毕业论文课题:超声波测距与显示系统设计 专题: 温度补偿专题 专 业 电子信息工程技术 学生姓名 班 级 10电信2 学 号 指导教师 完成日期 摘 要超声波具有指向性强,能量消耗慢,传播距离较远等优点,所以在利用传感器技术和自动控制技术相结合的测距方案中,超声波测距是目前应用最普遍的一种。它广泛应用于建筑施工,防盗,倒车,水位测量以及一些工业现场。本设计采用以STC89C52单片机为核心的超声波测距的硬件电路和软件设计方法。整个电路采用模块化设计,由主程序、预置子程序、发射子程序、接受子程序、显示子程序、语音播报子程序等模块组成。发射模块发射超声波,接受模块接受回波,单片机计算

2、距离,显示测量结果。换能器的信号经单片机综合分析处理,实现超声波测距仪的各种功能。在此基础上设计了系统的总体方案,最后通过硬件和软件实现了各个功能模块。AbstractUltrasonic has directivity is strong, energy consumption is slow, propagation distance etc, so the use of sensor technology and automatic control technology combination of ranging scheme, ultrasonic ranging is the ap

3、plication of the most common one. It is widely used in construction, guard against theft, backing, water level measurement and some industrial field. This design USES the STC89C52 with single-chip microcomputer as the core of the ultrasonic ranging hardware circuit and software design method. The wh

4、ole circuit adopts modular design, the main program, preset subroutine, emission subroutine, accept subroutine, display subroutine, voice broadcast subroutine modules, etc. Emission module launch ultrasonic, accept module accept echo, microcontroller calculating distance, display measurement results

5、. Transducer signal by single chip microcomputer integrated analysis processing, the ultrasonic range finder all sorts of functions. On the basis of the overall scheme of the design of the system, and finally through the hardware and software to realize the function of each module. 目 录摘 要IAbstractII

6、第一章 绪论11.1 课题设计目的及意义11.1.1设计的目的11.1.2设计的意义11.2国内外研究动态11.3课题研究的主要内容2第二章 总体方案32.1 方案选择32.2超声波测距仪的设计思路32.2.1 超声波测距原理32.2.2 超声波测距原理框图32.3元器件选择4第三章 系统的硬件结构设计53.1 STC89C52单片机的功能及特点53.2 单片机最小系统83.3 超声波测距模块93.3.1 HC-SR04实物图93.3.2主要技术参数103.3.3 HC-SR04工作原理103.4超声波发射电路103.5 超声波接收电路113.6 DSB18B20温度传感器123.6.1 实物

7、与引脚定义123.6.2 DS18B20主要特性133.7语音播报模块133.8显示单元15第四章 系统的软件设计174.1 超声波测距的算法设计174.2 主程序流程图174.3 超声波发生子程序和超声波接收中断程序184.4 语音模块子程序20第五章 温度补偿225.1 设计方案225.2硬件设计235.2.1温度采集电路235.3软件设计245.3.1温度采集245.3.2温度补偿设计及距离计算28第六章总结30致 谢31参考资料32附录一 实物图33附录二 原理图34附录三 源程序35- IV -第一章 绪论 1.1 课题设计目的及意义1.1.1设计的目的由于超声测距是一种非接触检测技

8、术,不受光线、被测对象颜色等的影响,较其它仪器更卫生,更耐潮湿、粉尘、高温、腐蚀气体等恶劣环境,对于被测物处于黑暗、有灰尘、烟雾、电磁干扰等恶劣环境有一定的适应能力。具有少维护、不污染、高可靠、长寿命等特点。因此可广泛应用于纸业、矿业、电厂、化工业、水处理厂、污水处理厂、农业用水、环保检测、食品(酒业、饮料业、添加剂、食用油、奶制品)、防汛、水文、明渠、空间定位、公路限高料位测量、车辆自动导航、物体识别与定位、车辆安全行驶辅助系统乃至地形地貌探测等许多领域中。可在不同环境中进行距离准确度在线标定,可直接用于水、酒、糖、饮料等液位控制,可进行差值设定,直接显示各种液位罐的液位、料位高度。因此,超

9、声在空气中测距在特殊环境下有较广泛的应用。利用超声波检测往往比较迅速、方便、计算简单、易于实现实时控制,并且在测量精度方面能达到工业实用的指标要求。随着测距的技术进步,测距将从具有单纯判断功能发展到具有学习功能,最终发展到具有创造力。在新的世纪里,面貌一新的测距仪将发挥更大的作用。1.1.2设计的意义 生活中超声波测距中的应用越来越广,但人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,满足日益发展的社会需求,因此研究超声波测距系

10、统有着很大的现实意义。对本课题的研究与设计,还能进一步提高自己的电路设计水平,深入对单片机的理解和应用。1.2国内外研究动态国外在提高超声波测距方面做了大量的研究,国内一些学者也作了相关的研究。目前超声波测距方法主要有三种:(1)相位检测法:精度高,但检测范围有限;(2)声波幅值检测法:易受反射波的影响;(3)渡越时间法:工作方式简单,直观。现在对超声波测距的精度主要取决于所测的超声波传输时间和超声波在介质中的传输速度,二者中以传输时间的精度影响较大,所以大部分文献采用降低传输时间的不确定度来提高测距精度。温度对传感器的影响也很大,因此,需要用温度传感器进行校正,目前相位探测法和声谱轮廓分析法

11、或二者结合起来的方法是主要的降低探测传输不确定度的方法。1.3课题研究的主要内容为了实现准确测出物体之间的距离的目的,设计了一个超声波测距的方案。超声波测距通过发出超声波并接收反射回来的回波,并通过单片机的计算就可以知道物体的距离。应用以下三种技术:a、单片机技术:STC89C52系列的单片机具有体积小,重量轻,结构较为简单,成本低廉,可以实现一般的控制功能的优点。而且单片机更适用应用于小型的嵌入式系统,因此它得到了广泛的应用。现代人类生活大部分电子和机械产品中都会集成有单片机。b、超声波测距技术:超声波测距技术与一般测距技术相比,具有操作方便、系统简单以及计算简单的优点。c、显示技术:数据处

12、理,数码管显示测出与物体之间的距离。d、语音模块技术:ISD1730A芯片来语音播报距离。39第二章 总体方案2.1 方案选择 采用单片机来控制超声波测距,信号线发射到与超声波发射器相连的信号端,超声波发射器向既定方向发射,在发射的同时开始计时,超声波在空气中传播,途中碰到障碍物将产生回波。2.2超声波测距仪的设计思路2.2.1 超声波测距原理超声波测距的方法有多种,如相位检测法、声波幅值检测法和渡越时间检测法等。相位检测法虽然精度高,但检测范围有限,声波幅值检测法易受反射波的影响。本测距系统采用超声波渡越时间检测法。其原理为:检测从发射传感器发射的超声波经气体介质传播到接收传感器的时间t,这

13、个时间就是渡越时间,然后求出距离l。设l为测量距离,t为往返时间差,超声波的传播速度为c,则有l=ct/2。超声波接收器收到反射波就立即停止计时。再由单机计算出距离,送数码管显示测量结果。 超声波测距的算法设计: 超声波在空气中传播速度为每秒钟340米(15时)。t2是接收超声波时刻,t1是超声波声波发射时刻,t2-t1得出的是一个时间差的绝对值,假定t2-t1=0.03S,则有340m×0.03S=10.2m。由于在这10.2m的时间里,超声波发出到遇到返射物返回的距离如下: 如图2-1为测距原理4图2-1测距原理因为/2角度较小,可以忽略不计,所以LS。超声波发出到遇到返射物返回

14、的距离如下:L=C x ( t2 -t1 )/ 22.2.2 超声波测距原理框图超声波测距模块用HC-SR04,温度传感器使用DS18B20,微处理器使用STC89C52单片机,显示部分采用共阳数码管。HC-SR04集成的发射电路模块发出超声波,遇到障碍物产生回波,被接收电路模块接收,STC89C52单片机统计出声波传输所用时间,经过温度补偿温,计算出正确的待测距离,同时ISD1730A根据相关数据处理进行组合播报当前测试距离,并且由数码管显示。图2-2 超声波测距系统结构图2.3元器件选择由于测量距离的精度和长度要求不是很高,精度达到2cm,测量距离达到2m即可,因此超声波模块选用价格低廉且

15、实用的HC-SR04即可。控制核心部分选择实用的STC89C52单片机即可满足计算和控制要求。温度补偿的温度传感器选择普遍且实用的DS18B20。语音播报:ISD1730A是华邦公司新推出的语音芯片,用来替代已经停产的ISD1400 系列及ISD2500 系列芯片。ISD1730A不仅在录音时间上有更多的选择(从20秒到240 秒),而且在功能上继承14及25系列的所有录放功能,并增加了一些更加人性化的提示功能及对存储地址的精确操作。根据我们经营 ISD 系列芯片多年的经验来看,ISD1700 的音质也较14及25系列有明显的提高ISD1700 系列芯片是华邦公司新推出的单片优质语音录放电路,

16、该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息提示(vAlert ),双运作模式(独立&嵌入式),以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。显示部分:选择了四位数码管。第三章 系统的硬件结构设计3.1 STC89C52单片机的功能及特点 STC89C52单片机是宏晶科技推出的新一代高速/低功耗/超强抗干扰的单片机,指令代码完全兼容传统 8051 单片机,12 时钟/机器周期和 6 时钟/机器周 期可以任意选择。 主要特性如下: 增强型 8051 单片机,6 时钟/机器周期和 12 时钟/机

17、器周期可以任 意选择,指令代码完全兼容传统 8051. 工作电压:5.5V3.3V(5V 单片机)/3.8V2.0V(3V 单片机) 工作频率范围:040MHz,相当于普通 8051 的 080MHz,实际工 作频率可达 48MHz 用户应用程序空间为 8K 字节 片上集成 512 字节 RAM 通用 I/O 口(32 个)复位后为:P1/P2/P3/P4 是准双向口/弱上拉,P0口是漏极开路输出,作为总线扩展用时,不用加上拉电阻,作为 I/O 口用时,需加上拉电阻。 ISP(在系统可编程)/IAP(在应用可编程) ,无需专用编程器,无 需专用仿真器,可通过串口(RxD/P3.0,TxD/P3

18、.1)直接下载用户程 序,数秒即可完成一片 具有 EEPROM 功能 具有看门狗功能 共 3 个 16 位定时器/计数器。即定时器 T0、T1、T2 外部中断 4 路,下降沿中断或低电平触发电路,Power Down 模式可由外部中断低电平触发中断方式唤醒 通用异步串行口(UART),还可用定时器软件实现多个UART 工作温度范围:-40+85(工业级)/075(商业级) STC89C52RC单片机的工作模式掉电模式:典型功耗<0.1A,可由外部中断唤醒,中断返回后,继续执行原 程序 空闲模式:典型功耗 2mA 典型功耗 正常工作模式:典型功耗 4Ma7mA 典型功耗 掉电模式可由外部中

19、断唤醒,适用于水表、气表等电池供电系统及便携设备 STC89C52RC 引脚功能说明 VCC(40 引脚):电源电压 VSS(20 引脚):接地 P0 端口(P0.0P0.7 P0.7,3932 引脚) :P0口是一个漏极开路的 8 位双向 I/O 口。作为输出端口,每个引脚能驱动 8 个 TTL 负载,对端口 P0 写入 每个引脚能驱动 写入“1”时,可 以作为高阻抗输入。在访问外部程序和数据存储器时 在访问外部程序和数据存储器时,P0 口也可以提供低 8 位 地址和 8 位数据的复用总线 位数据的复用总线。此时,P0 口内部上拉电阻有效。在 Flash ROM编在程时,P0 端口接收指令字

20、节 端口接收指令字节;而在校验程序时,则输出指令字节 则输出指令字节。验证时,要求外接上拉电阻。 P1 端口(P1.0P1.7,18 引脚) :P1口是一个带内部上拉电阻的 8 位双向 I/O 口。P1 的输出缓冲器可驱动(吸收或者输出电流方式)4 个 TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这是可用作输入口。P1 口作输入口使用时,因为有内部上拉电阻,那些被外部拉低的引脚会输出一个电 流( ) 。 此外,P1.0 和 P1.1 还可以作为定时器/计数器 2 的外部技术输入(P1.0/T2)和定时器/计数器 2 的触发输入(P1.1/T2EX),具体参见下表:在

21、对 Flash ROM 编程和程序校验时,P1接收低 8 位地址。表 XX P1.0 和 P1.1引脚复用功能 P2 端口(P2.0P2.7,2128 引脚) :P2 口是一个带内部上拉电阻的 8 位双向 I/O 端口。P2 的输出缓冲器可以驱动(吸收或输出电流方式)4个TTL输入。对端口写入 1 时,通过内部的上拉电阻把端口拉到高电平,这时可用作输入口。P2 作为输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会 输出一个电流(I) 。 在访问外部程序存储器和16位地址的外部数据存储器(如执行“MOVX DPTR”指令)时,P2 送出高 8 位地址。在访问 8 位地址的外部数据存

22、储器(如 执行“MOVX R1”指令)时,P2口引脚上的内容(就是专用寄存器(SFR)区 中的 P2 寄存器的内容),在整个访问期间不会改变。 在对 Flash ROM 编程和程序校验期间,P2也接收高位地址和一些控制信号。 P3 端口(P3.0P3.7,1017 引脚) :P3 是一个带内部上拉电阻的 8 位双向 I/O 端口。P3 的输出缓冲器可驱动(吸收或输出电流方式)4 个 TTL 输入。对端 口写入 1 时,通过内部的上拉电阻把端口拉到高电位,这时可用作输入口。P3 做输入口使用时,因为有内部的上拉电阻,那些被外部信号拉低的引脚会输入一 个电流( ) 。 在对 Flash ROM 编

23、程或程序校验时,P3 还接收一些控制信号。 P3 口除作为一般 I/O 口外,还有其他一些复用功能,如下表所示: 表XX P3口引脚复用功能 复用功能 RST(9 引脚) :复位输入。当输入连续两个机器周期以上高电平时为有效,用来完成单片机单片机的复位初始化操作。看门狗计时完成后,RST 引脚输出 96 个晶振周期的高电平。特殊寄存器 AUXR(地址 8EH)上的 DISRTO 位可以使此功 能无效。DISRTO 默认状态下,复位高电平有效。 ALE/ ROG(30 引脚)地址锁存控制信号:(ALE)是访问外部程序存储器时, 锁存低8位地址的输出脉冲。在Flash编程时,此引脚( ROG)也用

24、作编程输入脉冲。 在一般情况下,ALE 以晶振六分之一的固定频率输出脉冲,可用来作为外部 定时器或时钟使用。特别强调在每次访问外部数据存储器时,ALE脉冲将会跳过。 如果需要,通过将地址位 8EH 的 SFR 的第 0 位置“1”,ALE操作将无效。这 一位置“1”,ALE 仅在执行 MOVX 或 MOV 指令时有效。否则,ALE 将被微弱拉 高。这个ALE使能标志位(地址位 8EH 的 SFR 的第 0 位)的设置对微控制器处于外部执行模式下无效。 外部程序存储器选通信号(SEN)是外部程序存储器选 SEN(29引脚)通信号。当 STC89C52RC 从外部程序存储器执行外部代码时,SEN在

25、每个机器周 期被激活两次,而访问外部数据存储器时SEN将不被激活。A/VPP(31引脚) 访问外部程序存储器控制信号。为使能从 0000H 到 FFFFH 的外部程序存储器读取指令,A必须接 GND。注意加密方式 1 时, A将内部锁 定位 RESET。为了执行内部程序指令A应该接 VCC。在 Flash 编程期间A也接收 12 伏 VPP 电压。 XTAL1(19 引脚) :振荡器反相放大器和内部时钟发生电路的输入端。 XTAL2(18 引脚):振荡器反相放大器的输入端。 图3-1 STC89C52引脚图3.2 单片机最小系统单片机最小系统,或者称为最小应用系统,是指用最少的元件组成的单片机

26、可以工作的系统.对52系列单片机来说,最小系统一般应该包括:单片机、晶振电路、复位电路. 单片机最小系统电路介绍52单片机最小系统复位电路的极性电容C1的大小直接影响单片机的复位时间,一般采用1030uF,51单片机最小系统容值越大需要的复位时间越短52单片机最小系统晶振Y1也可以采用6MHz或者11.0592MHz,在正常工作的情况下可以采用更高频率的晶振,51单片机最小系统晶振的振荡频率直接影响单片机的处理速度,频率越大处理速度越快。52单片机最小系统起振电容C2、C3一般采用1533pF,并且电容离晶振越近越好,晶振离单片机越近越好4.P0口为开漏输出,作为输出口时需加上拉电阻,阻值一般

27、为10k。设置为定时器模式时,加1计数器是对内部机器周期计数(1个机器周期等于12个振荡周期,即计数频率为晶振频率的1/12)。计数值N乘以机器周期Tcy就是定时时间t。设置为计数器模式时,外部事件计数脉冲由T0或T1引脚输入到计数器。在每个机器周期的S5P2期间采样T0、T1引脚电平。当某周期采样到一高电平输入,而下一周期又采样到一低电平时,则计数器加1,更新的计数值在下一个机器周期的S3P1期间装入计数器。由于检测一个从1到0的下降沿需要2个机器周期,因此要求被采样的电平至少要维持一个机器周期。当晶振频率为12MHz时,最高计数频率不超过1/2MHz,即计数脉冲的周期要大于2 ms。图3-

28、2 单片机最小系统3.3 超声波测距模块3.3.1 HC-SR04实物图图3-3 HC-SR04实物图3.3.2主要技术参数所用工作电压:直流5V电压。工作静态电流:小于2mA。电平输出:高电平为5V,低电平为0V。感应角度:不大于15度。探测距离及精度:2cm-450cm。高精度:可达3mm。3.3.3 HC-SR04工作原理采用IO触发测距,给至少10us的高电平信号;模块自动发送8个40khz的方波,自动检测是否有信号返回;有信号返回,通过IO输出一高电平,高电平持续的时间就是超声波从发射到返回的时间测试距离=(高电平时间*声速(340M/S)/2; 图3-4 时序图3.4超声

29、波发射电路超声波传感器的发射电路主要由方波发生芯片,40kHz的晶振和MAX232芯片构成,单片机给方波发生芯片触发信号后,方波发生芯片开始工作,产生40kHz的方波信号,电平转换芯片MAX232将TTL电平转换成可以驱动振荡器的高电压,进而产生所需的40kHz的超声波。图3-5超声波发射电路图3.5 超声波接收电路 本设计中选用的TL740C芯片采用了前置放大电路+带通滤波电路+后级放大电路。将接收到的波形经过整形、积分、检波、滤波和限幅放大等实现接收超声波的功能。当距离较远时,回波信号会非常微弱,转换后的信号电平幅值很小,故要经过若干级放大,使输出功率达到一定要求,并且为了防止信号出现较大

30、的失真,接收电路可以保证有4MHz的带宽。放大后的交流信号送入比较器后输出一个方波信号,并使触发器触发,向CPU发出中断请求。在中断服务程序中,读取计数器的计数值,结合温度补偿后的声速计算出测距仪距离障碍物的距离。图3-6超声波接收电路图3.6 DSB18B20温度传感器3.6.1 实物与引脚定义 图3-7 DS18B20实物图表3-1 DS18B20各引脚描述管脚号符号功 能1GND电源地2DQ数据输入输出3VDD电源可选DS18B20数字温度计以9位数字量的形式反映器件的温度值,通过一根单线接口发送和接收信息,因此在单片机和DS18B20之间仅需一条连接线(加上地线)。用于读写和温度转换的

31、电源可以从数据线本身获得,无需外部电源。3.6.2 DS18B20主要特性独特的单线接口仅需一个端口引脚进行通讯简单的多点分布应用 无需外部器件可通过数据线供电 零待机功耗 测温范围-55+125。华氏器件-67+257,以0.9递增温度以9位数字量读出温度数字量转换时间200ms(典型值) 用户可定义的非易失性温度报警设置报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件应用包括温度控制工业系统消费品温度计或任何热感测系统图3-8与单片机连接图3.7语音播报模块ISD1700 系列芯片是华邦公司新推出的单片优质语音录放电路,该芯片提供多项新功能,包括内置专利的多信息管理系统,新信息

32、提示(vAlert ),双运作模式(独立&嵌入式),以及可定制的信息操作指示音效。芯片内部包含有自动增益控制、麦克风前置扩大器、扬声器驱动线路、振荡器与内存等的全方位整合系统功能。 特点: ·可录、放音十万次,存储内容可以断电保留一百年。 ·两种控制方式,两种录音输入方式,两种放音输出方式 ·可处理多达255段以上信息 ·有丰富多样的工作状态提示 ·多种采样频率对应多种录放时间 ·音质好,电压范围宽,应用灵活,价廉物美 电特性: ·工作电压:2.4V-5.5V,最高不能超过6V ·静态电流:0.5 - 1

33、A ·工作电流:20mA 用户可利用震荡电阻来自定芯片的采样频率,芯片的采样率可以通过外部振荡电阻来调节:表3-2 采样频率与振荡电阻的关系采样频率12KHz8KHz6.4KHz5.3KHz4KHz振荡电阻60k80k100k120k160k主控单片机主要通过四线(SCLK ,MOSI,MISO,/SS )SPI协议对ISD1730 进行串行通信。ISD1730 作为从机,几乎所有的操作都可以通过这个SPI协议来完成。为了兼容独立按键模式,一些SPI命令:PLAY ,REC,ERASE,FWD,RESET和GLOBAL_ERASE的运行类似于相应的独立按键模式的操作。另外,SET_P

34、LAY,SET_REC,SET_ERASE 命令允许用户指定录音、放音和擦除的开始和结束地址。此外,还有一些命令可以访问APC寄存器,用来设置芯片模拟输入的方式。 微机接口 主控单片机主要通过四线(SCLK ,MOSI,MISO,/SS )SPI协议对ISD1700 进行串行通信。ISD1700 作为从机,几乎所有的操作都可以通过这个SPI协议来完成。为了兼容独立按键模式,一些SPI命令:PLAY ,REC,ERASE,FWD,RESET和GLOBAL_ERASE的运行类似于相应的独立按键模式的操作。另外,SET_PLAY,SET_REC,SET_ERASE 命令允许用户指定录音、放音和擦除的

35、开始和结束地址。此外,还有一些命令可以访问APC寄存器,用来设置芯片模拟输入的方式。 ISD1700 系列的SPI串行接口操作遵照以下协议: 一个SPI处理开始于/SS 管脚的下降沿。 在一个完整的SPI指令传输周期,/SS 管脚必须保持低电平。 数据在SCLK 的上升沿锁存在芯片的MOSI管脚,在SCLK 的下降沿从MISO管脚输出,并且首先移出低位。 SPI指令操作码包括命令字节,数据字节和地址字节,这决定于1700的指令类型 当命令字及地址数据输入到MOSI管脚时,同时状态寄存器和当前行地址信息从MISO管脚移出。 . 一个SPI处理在/SS 变高后启动。 . 在完成一个SPI命令的操作

36、后,会启动一个中断信息,并且持续保持为低,直到芯片收到CLR_INT命令或者芯片复位。 图3-9 语音播报电路3.8显示单元数码管动态显示接口是单片机中应用最为广泛的一种显示方式之一,动态驱动是将所有数码管的8个显示笔划"a,b,c,d,e,f,g,dp"的同名端连在一起,另外为每个数码管的公共极COM增加位选通控制电路,位选通由各自独立的I/O线控制,当单片机输出字形码时,所有数码管都接收到相同的字形码,但究竟是那个数码管会显示出字形,取决于单片机对位选通COM端电路的控制,所以我们只要将需要显示的数码管的选通控制打开,该位就显示出字形,没有选通的数码管就不会亮。通过分时

37、轮流控制各个数码管的的COM端,就使各个数码管轮流受控显示,这就是动态驱动。在轮流显示过程中,每位数码管的点亮时间为12ms,由于人的视觉暂留现象及发光二极管的余辉效应,尽管实际上各位数码管并非同时点亮,但只要扫描的速度足够快,给人的印象就是一组稳定的显示数据,不会有闪烁感,动态显示的效果和静态显示是一样的,能够节省大量的I/O端口,而且功耗更低。在本次设计中,我们选用P0口作为段码,连接SM410564a,b,c,d,e,f,g,dp,每一段的亮灭。选用P2.4P2.7分别对应位码,即连接SM410564的S1,S2,S3,S4分别控制每一位的亮灭。S1,S2,S3,S4相当于是每一段的CO

38、M端,由于是共阳极,只有某一位对应的COM端为1时,所送的段码对该端来说才是有效的。图3-10 显示电路图电子信息工程系毕业论文第四章 系统的软件设计超声波测距仪的软件设计主要有主程序、超声波发生程序、超声波接收中断程序及显示子程序组成。我们知道C语言程序有利于实现较复杂的算法,汇编语言程序则具有较高的效率且容易精细计算程序运行的时间,而超声波测距仪的程序需要有较复杂的计算(计算距离时),所以控制程序可采用C语言编程。4.1 超声波测距的算法设计超声波测距的原理为超声波发生器T在某一时刻发出一个超声波信号,当这个超声波遇到被测物体后反射回来,就被超声波接收器R所接收到。这样只要计算出从发出超声

39、波信号到接收到返回信号所用的时间,就可算出超声波发生器与反射物体的距离。距离的计算公式为:L=s/2=(ct)/2 其中,L为被测物与测距仪的距离,s为声波的来回的路程,c为声速,t为声波来回所用的时间。在启动发射电路的同时启动单片机内部的定时器T0,利用定时器的计数功能记录超声波发射的时间和收到反射波的时间。当收到超声波反射波时,接收电路输出端产生一个负跳变,在INT0或INT1端产生一个中断请求信号,单片机响应外部中断请求,执行外部中断服务子程序,读取时间差,计算距离。4.2 主程序流程图软件分为两部分,主程序和中断服务程序,如图4-1、图4-2、图4-3所示。主程序完成初始化工作、各路超

40、声波发射和接收顺序的控制。定时中断服务子程序完成单方向超声波的发射,外部中断服务子程序主要完成时间值的读取、距离计算、结果的输出等工作。主程序首先是对系统环境初始化,设置定时器T0工作模式为16位定时计数器模式。置位总中断允许位EA并给显示端口P0和P1清0。然后调用超声波发生子程序送出一个超声波脉冲,为了避免超声波从发射器直接传送到接收器引起的直射波触发,需要延时约0.1ms(这也就是超声波测距会有一个最小可测距离的原因)后,才打开外中断1接收返回的超声波信号。图4-1主程序流程由于采用的是12MHz的晶振,计数器每计一个数就是1s,当主程序检测到接收成功的标志位后,将计数器T0中的数(即超

41、声波来回所用的时间)按式(4-1)计算,即可得被测物体与测距仪之间的距离,设计时取20时的声速为344m/s则有:d=(ct)/2=172T0/10000cm 其中,T0为计数器T0的计算值。测出距离后结果将传给LCD数码显示约5s,同时测量距离送语音模块播报。然后再发超声波脉冲重复测量过程。为了有利于程序结构化和容易计算出距离,主程序采用C语言编写。4.3 超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过P1.1端口发送2个左右超声波脉冲信号(频率约40kHz的方波),脉冲宽度为12s左右,同时把计数器T0打开进行计时。超声波发生子程序较简单,但要求程序运行准确。图4-2

42、定时中断服务子程图4-3 外部中断服务子程序超声波测距主程序利用外中断1检测返回超声波信号,一旦接收到返回超声波信号(即INT1引脚出现低电平),立即进入中断程序。进入中断后就立即关闭计时器T0停止计时,并将测距成功标志字赋值1。如果当计时器溢出时还未检测到超声波返回信号,则定时器T0溢出中断将外中断1关闭,并将测距成功标志字赋值2以表示此次测距不成功。4.4 语音模块子程序设所测量距离值为S=135cm,分别得到百位值、分位值、个位值,调用函数ISD_SET_PLAY进行组合播放语音,本例所播放的语音为“1点35米”流程图如下: 图 4-4 语音播报流程图相关源程序代码如下: bai1=S%

43、1000/100;shi1=S%100/10; ge1=S%10; ISD_SET_PLAY(add1bai1,0,add2bai1,0); delay1(100);/播放语音片段“1” ISD_SET_PLAY(add110,0,add210,0); delay1(100); /播放语音片段“点” ISD_SET_PLAY(add1shi1,0,add2shi1,0); delay1(100); /播放语音片段“3” ISD_SET_PLAY(add1ge1,0,add2ge1,0);delay1(100); /播放语音片段“5” ISD_SET_PLAY(add111,0,add211,0

44、);delay1(100); / 播放语音片段“米”第五章 温度补偿采用超声波测量距离的方法,实时检测现场温度用以实现实际波速数据的校准,减小温度对测距产生的误差,最终由数码管显示所测距离,测量范围为7cm1m,误差±2cm。5.1 设计方案超声波传声器结构简单、行能可靠、成本低、易集成,因此常用超声波测距。在常温下,超声波的传播速度为340m/s,但其传播速度V易受到空气中的温度、湿度、压强等因素的影响,其中温度的影响最大。一般温度每升高1摄氏度,声速增加约为0.6m/s。表1为超声波在不同温度下的波速值。表5-1 一些温度下声速温度T/-30-20-100102030声速v/m&

45、#183;s-1313319322331337344350油此可见温度对超声波测距系统的影响是不可忽略的。为了得到较为精确的测量结果,必须对波速进行温度补偿。通过实验可获得波速与温度之间的经验模型:V=331.5+0.607T,T为现场温度,V为实际波速。从式中可看出,要获得精确的波速值,必须首先获取现场温度T的大小。本设计采用DS18B20检测现场温度,用以实现实际波速的校准。 温度补偿及其原理目前,大多数温度测控系统在进行温度测量时,通常采用模拟式温度敏感元件,如热电阻、热电偶、红外测温仪等,将温度转化为电信号,经过信号放大电路放大到合适的范围,再由A/D转换为数字量。此种形式的温度测量结

46、构复杂,测量精度易受原器件参数影响。DS18B20是Dallas公司开发的1-wire(单总线)高精度数字式半导体温度传感器,它具有节省I/O口弦资源,结构简单,成本低廉,精度高,便于总线扩展和维护等诸多特点。1-wire是将数据线、控制线、地址线合为1根信号线。DS18B20的测温原理如图5-1-1,图中低温度系数的晶振的振荡频率受温度很小,用于产生固定频率的脉冲信号送给计数器1,高温度系数晶振随温度变化其振荡频率明显改变,产生的信号作为计数器2的脉冲输入图中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲后进行计数,进而完成温度测量。计数门的开启时间由高温度

47、系数振荡器来决定,每次测量前,首先将-55所对应的基数分别置入计数器1和温度寄存器中,计数器1的温度寄存器被预置在-55所对应的一个基数值。计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当计数器1的预置值减到0时温度寄存器的值将加1,计数器1的预置将重新被装入,重新开始对低温度系数晶振产生的脉冲进行计数。如此循环直至计数器2计数到0时,停止温度寄存器值的累加,此时温度寄存器中的数值即为所测温度。图中的斜率累加器用于补偿和修正测温过程中振荡器温度特性的非线性,以产生高分辨率的温度测量。其输出用于修正计数器的预置值,只要计数门仍未关闭就重复上述过程,直至温度寄存器值达到被测温度值。由经验公式

48、V=331.5+0.607T得出现场波速,实现温度补偿。图5-1测温原理另外,由于DS18B20单总线通信功能是分时完成的,因此他有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作必须按协议进行。操作协议为:初始化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。5.2硬件设计5.2.1温度采集电路温度采用DS18B20传感器进行测量,P3.7接DS18B20数据总线,控制DS18B20进行温度转换和传输数据。本系统对DS18B20采用外部供电,其优点在于I/O线不需要强上拉,而且总线控制器无需在温度转换期间一直保持高电平。这样在转换期间可以允许在单线总线

49、上进行其他数据传输,硬件结构如下图图5-2 温度采集电路5.3软件设计5.3.1温度采集系统软件设计采用模块化设计,主要包括主程序设计、T1中断服务程序、INT0外部中断服务程序、温度测量子程序、距离计算子程序、显示子程序、延时子程序等。系统软件编制时考虑相关硬件的连线,同时还要进行存储空间、寄存器以及定时器和外部中断引脚的分配和使用。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序读时序写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每次

50、命令和数据的传输都是从主机主动启动写时序开始,如果要去单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。图5-3初始化时序图 图5-4读写时序图主程序首先对系统初始化,调用测温子程序进行现场温度的测量得出现场温度,流程图、程序如下:图5-5 温度采集#ifndef _ds18b20_H_ #define_ds18b20_H_ #define uchar unsigned char #define uint unsigned int/温度传感器定义sbit DQ = P1 1;/ds18B20uint xdata tvalue;/温度值uchar x

51、data tflag;/温度正负标志uint temper;uchar temper_ge,temper_shi,temper_bai;void delay_18B20(unsigned int i)/延时1微秒while(i-);void ds1820rst() /ds1820复位* unsigned char x=0;DQ = 1; /DQ复位delay_18B20(4); /延时DQ = 0; /DQ拉低delay_18B20(100);/精确延时大于480usDQ = 1; /拉高delay_18B20(40); unsigned char ds1820rd()/读数据 unsigne

52、d char i=0;unsigned char dat = 0;for (i=8;i>0;i-) DQ = 0; /给脉冲信号 dat>>=1; DQ = 1; /给脉冲信号 if(DQ)dat|=0x80;delay_18B20(10);return(dat);void ds1820wr(uchar wdata)/写数据unsigned char i=0;for (i=8; i>0; i-) DQ = 0;DQ = wdata&0x01;delay_18B20(10);DQ = 1;wdata>>=1; read_temp() /读取温度值并转换

53、uchar a,b;ds1820rst(); ds1820wr(0xcc);/跳过读序列号ds1820wr(0x44);/启动温度转换ds1820rst(); ds1820wr(0xcc);/跳过读序列号ds1820wr(0xbe);/读取温度a=ds1820rd();b=ds1820rd();tvalue=b;tvalue<<=8;tvalue=tvalue|a;if(tvalue<0x0fff)tflag=0;elsetvalue=tvalue+1;tflag=1;tvalue=tvalue*(0.625);/温度值扩大10倍,精确到1位小数return(tvalue);

54、#endif5.3.2温度补偿设计及距离计算在使用时,如果温度变化不大,则可认为声速c是基本不变的,计算时取c为340m/s。如果测距精度要求很高,则可通过改变硬件电路增加温度补偿电路的方法或者在硬件电路基本不变的情况下通过软件改进算法的方法来加以校正。在本系统中采用STC89C52中的定时器测量超声波传播时间,利用DS18B20温度传感器测量环境温度,通过温度与声速的关系算出当前温度T下的声速,从而提高测距精度。空气中声速与温度的关系可表示为: 声速确定后,只要测得超声波往返的时间,即可求得距离: 如果为了进一步提高测量精度,本设计中将根据需要利用软件方式增加角度补偿的设计:(S为物体离超声波发射器的距离 ) 通过以上温度采集得到现场实际温度在距离计算中,实行了温度补偿和夹角补偿的程序如下: /* 距离计算函数*/void computer(float temp) /距离计算函数float c,d,s;uint t;if(temp>0) /温度大于0 c=331.4+0.61*temp*0.0625; else /温度小于0 c=331.4-0.61*temp*0.0625;t=jsh*2

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论