




免费预览已结束,剩余28页可下载查看
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1 前言前言 超声波测距器 可以应用于汽车倒车 建筑施工工地以及一些工业 现场的位置监控 也可用于如液位 井深 管道长度的测量等场合 要 求测量范围在 0 10 5 00m 测量精度 1cm 测量时与被测物体无直接接 触 能够清晰稳定地显示测量结果 由于超声波指向性强 能量消耗缓 慢 在介质中传播的距离较远 因而超声波经常用于距离的测量 如测 距仪和物位测量仪等都可以通过超声波来实现 利用超声波检测往往比 较迅速 方便 计算简单 易于做到实时控制 并且在测量精度方面能 达到工业实用的要求 因此在移动机器人的研制上也得到了广泛的应用 此设计主要对利用超声波测距来对汽车倒车应用的介绍 能测量并 显示车辆后部距障碍物的距离 并能发出 嘟嘟 声报警 汽车倒车测 距仪 能测量并显示汽车后部障碍物离汽车的距离 该仪器由单片计算 机控制电路 超声波发射电路 超声波接收电路 报警电路 数显电路 以及壳体构成 随着汽车的日益普及 停车场变的越来越拥挤 这些低速行驶的车 辆与其它车辆非常接近 在停车场穿行 掉头或倒车时碰撞和拖挂的事 故时有发生 在夜间时则更显突出 本设计正是针对这一状况提出了基 于 AT89S51 单片机控制的汽车倒车报警器的设计方案 本设计针对超声 波来测量距离 通过发射和接收到超声波的时间间隔来算出即时的车尾 距障碍物的距离 本文介绍了超声波发射电路 超声波接收电路 显示 电路的硬件设计和整个系统的软件设计 2 一 设计思路一 设计思路 超声波传感器及其测距原理 超声波是指频率高于 20KHz 的机械波 为了以超声波作为检测手 段 必须产生超生波和接收超声波 完成这种功能的装置就是超声波传 感器 习惯上称为超声波换能器或超声波探头 超声波传感器有发送器 和接收器 但一个超声波传感器也可具有发送和接收声波的双重作用 超声波传感器是利用压电效应的原理将电能和超声波相互转化 即在发 射超声波的时候 将电能转换 发射超声波 而在收到回波的时候 则 将超声振动转换成电信号 超声波测距的原理一般采用渡越时间法 TOF timeofflight 首 先测出超声波从发射到遇到障碍物返回所经历的时间 再乘以超声波的 速度就得到二倍的声源与障碍物之间的距离 测量距离的方法有很多种 短距离的可以用尺 远距离的有激光测 距等 超声波测距适用于高精度的中长距离测量 因为超声波在标准空 气中的传播速度为 331 45 米 秒 由单片机负责计时 单片机使用 12 0M 晶振 所以此系统的测量精度理论上可以达到毫米级 由于超声波指向性强 能量消耗缓慢 在介质中传播距离远 因而 超声波可以用于距离的测量 利用超声波检测距离 设计比较方便 计 算处理也较简单 并且在测量精度方面也能达到要求 3 超声波发生器可以分为两类 一类是用电气方式产生超声波 一类 是用机械方式产生超声波 本课题属于近距离测量 可以采用常用的压 电式超声波换能器来实现 根据设计要求并综合各方面因素 可以采用 AT89S51 单片机作为主 控制器 用动态扫描法实现 LED 数字显示 超声波驱动信号用单片机的 定时器完成 超声波测距器的系统框图如下图所示 波测距器系统设计框图 AT89S51 的简单介绍 AT89S51 是一个低功耗 高性能 CMOS 8 位单片机 片内含 4k Bytes ISP In system programmable 的可反复擦写 1000 次的 Flash 只 读程序存储器 器件采用 ATMEL 公司的高密度 非易失性存储技术制造 兼容标准 MCS 51 指令系统及 80C51 引脚结构 芯片内集成了通用 8 位 中央处理器和 ISP Flash 存储单元 功能强大的微型计算机的 AT89S51 可为许多嵌入式控制应用系统提供高性价比的解决方案 4 AT89S51AT89S51 AT89S51 具有如下特点 40 个引脚 4k Bytes Flash 片内程序存储器 128 bytes 的随机存取数据存储器 RAM 32 个外部双向输入 输出 I O 口 5 个中断优先级 2 层中断嵌套中断 2 个 16 位可编程定 时计数器 2 个全双工串行通信口 看门狗 WDT 电路 片内时钟振 荡器 二 系统组成二 系统组成 硬件部分硬件部分 主要由单片机系统及显示电路 超声波发射电路和超声波检测接收 电路三部分组成 采用 AT89S51 来实现对 CX20106A 红外接收芯片和 TCT40 10 系列超声波转换模块的控制 单片机通过 P1 0 引脚经反相器 来控制超声波的发送 然后单片机不停的检测 INT0 引脚 当 INT0 引 脚的电平由高电平变为低电平时就认为超声波已经返回 计数器所计的 数据就是超声波所经历的时间 通过换算就可以得到传感器与障碍物之 5 间的距离 软件部分软件部分 主要由主程序 超声波发生子程序 超声波接收中断程序及显示子 程序等部分 三 系统硬件电路设计三 系统硬件电路设计 1 单片机系统及显示电路 单片机采用 89S51 或其兼容系列 采用 12MHz 高精度的晶振 以 获得较稳定的时钟频率 减小测量误差 单片机用 P1 0 端口输出超声 波转化器所需的 40KHz 方波信号 利用外中断 0 口检测超声波接受电 路输出的返回信号 显示电路采用简单实用的 4 位共阳 LED 数码管 段码用 74LS244 驱动 位码用 PNP 三极管驱动 单片机系统及显示电 路如下图所示 6 单片机及显示电路原理图 2 超声波发射电路原理图参考期刊如图所示 7 超声波发射电路原理图 压电超声波转换器的功能 利用压电晶体谐振工作 内部结构上图所 示 它有两个压电晶片和一个共振板 当它的两极外加脉冲信号 其 频率等于压电晶片的固有振荡频率时 压电晶片将会发生共振 并带 动共振板振动产生超声波 这时它就是一超声波发生器 如没加电压 当共振板接受到超声波时 将压迫压电振荡器作振动 将机械能转换 为电信号 这时它就成为超声波接受转换器 超声波发射转换器与接 受转换器其结构稍有不同 3 超声波检测接受电路 参考红外转化接收期刊的电路采用集成电路 CX20106A 这是一 款红外线检波接收的专用芯片 常用于电视机红外遥控接收器 考虑 到红外遥控常用的载波频率 38KHz 与测距超声波频率 40KHz 较为接 近 可以利用它作为超声波检测电路 实验证明其具有很高的灵敏度 和较强的抗干扰能力 适当改变 C4 的大小 可改变接受电路的灵敏度 和抗干扰能力 8 超声波接收电路图 四 系统程序设计四 系统程序设计 超声波测距软件设计主要由主程序 超声波发射子程序 超声波 接受中断程序及显示子程序组成 下面对超声波测距器的算法 主程 序 超声波发射子程序和超声波接受中断程序逐一介绍 1 超声波测距器的算法设计 下图示意了超声波测距的原理 即超声波发生器 T 在某一时刻发 出的一个超声波信号 当超声波遇到被测物体后反射回来 就被超声 波接收器 R 所接受 这样只要计算出发生信号到接受返回信号所用的 时间 就可算出超声波发生器与反射物体的距离 距离计算公式 d s 2 c t 2 9 d 为被测物与测距器的距离 s 为声波的来回路程 c 为声速 t 为声 波来回所用的时间 声速 c 与温度有关 如温度变化不大 则可认为声速是基本不变 的 如果测距精度要求很高 则应通过温度补偿的方法加以校正 声 速确定后 只要测得超声波往返时间 即可求得距离 在系统加入温 度传感器来监测环境温度 可进行温度被偿 这里可以用 DS18B20 测量环境温度 根据不同的环境温度确定一声速提高测距的稳定性 为了增强系统的可靠性 应在软硬件上采用抗干扰措施 10 不同温度下的超声波声速表 温度 30 20 100102030100 声速 c m s 313319325323338344349386 2 主程序 主程序首先对系统环境初始化 设置定时器 T0 工作模式为 16 位的 定时计数器模式 置位总中断允许位 EA 并给显示端口 P0 和 P2 清 0 然后调用超声波发生子程序送出一个超声波脉冲 为避免超声波从发射 器直接传送到接收器引起的直接波触发 需延迟 0 1ms 这也就是测距 器会有一个最小可测距离的原因 后 才打开外中断 0 接收返回的超声 波信号 由于采用 12MHz 的晶振 机器周期为 1us 当主程序检测到接 收成功的标志位后 将计数器 T0 中的数 即超声波来回所用的时间 按下式计算即可测得被测物体与测距仪之间的距离 设计时取 20 时的 声速为 344m s 则有 11 d C T0 2 172T0 10000cm 其中 T0 为计数器 T0 的计数值 测出距离后结果将以十进制 BCD 码方式 LED 然后再发超声波脉冲 重复测量过程 主程序框图如下 3 超声波发生子程序和超声波接收中断程序 超声波发生子程序的作用是通过 P1 0 端口发送 2 个左右的超声波 信号频率约 40KHz 的方波 脉冲宽度为 12us 左右 同时把计数器 T0 打 开进行计时 超声波测距器主程序利用外中断 0 检测返回超声波信号 一旦接收到返回超声波信号 INT0 引脚出现低电平 立即进入中断程 序 进入该中断后就立即关闭计时器 T0 停止计时 并将测距成功标志 字赋值 1 如果当计时器溢出时还未检测到超声波返回信号 则定时器 T0 溢出中断将外中断 0 关闭 并将测距成功标志字赋值 2 以表示此次 测距不成功 12 五 软硬件调试及性能五 软硬件调试及性能 超声波测距仪的制作和调试 其中超声波发射和接收采用 15 的 超声波换能器 TCT40 10F1 T 发射 和 TCT40 10S1 R 接收 中心频 率为 40kHz 安装时应保持两换能器中心轴线平行并相距 4 8cm 其余 元件无特殊要求 若能将超声波接收电路用金属壳屏蔽起来 则可提高 抗干扰能力 根据测量范围要求不同 可适当调整与接收换能器并接的 滤波电容 C4 的大小 以获得合适的接收灵敏度和抗干扰能力 硬件电路制作完成并调试好后 便可将程序编译好下载到单片机试 运行 根据实际情况可以修改超声波发生子程序每次发送的脉冲宽度和 两次测量的间隔时间 以适应不同距离的测量需要 根据所设计的电路 参数和程序 测距仪能测的范围为 0 07 5 5m 测距仪最大误差不超 13 过 1cm 系统调试完后应对测量误差和重复一致性进行多次实验分析 不断优化系统使其达到实际使用的测量要求 六 六 程序清单程序清单 以下是用汇编语言编写的超声波测距控制源程序 采用 AT89S51 12 z 晶振 显示缓冲单元在 使用内存 44H 45H 46H 用于计算距 离 20H 用于标志 VOUT EQU P1 0 脉冲输出端口 中断入口程序 ORG 0000H LJMP START ORG 0003H LJMP PINT0 ORG 000BH LJMP INTT0 ORG 0013H RETI ORG 001BH LJMP INTT1 ORG 0023H RETI ORG 002BH 14 RETI 主程序 START MOV SP 4FH MOV R0 40H 40 43H 为显示数据存放单元 40 为最高位 MOV R7 0BH CLEARDISP MOV R0 00H INC R0 DJNZ R7 CLEARDISP MOV 20H 00H MOV TMOD 21H T1 为 8 位自动重装模式 T0 为 16 位定时器 MOV TH0 00H 65ms 初值 MOV TL0 00H 40KHz 初值 MOV TH1 0F2H MOV TL1 0F2H MOV P0 0FFH MOV P1 0FFH MOV P2 0FFH MOV P3 0FFH MOV R4 04H 超声波脉冲个数控制 为赋值 的一半 SETB PX0 15 SETB ET0 STEB EA CLR 00H SETB TR0 开启测距定时器 START1 LCALL DISPLAY JNB 00H START1 收到反射信号时标志位为 1 CLR EA LCALL WORK 计算距离子程序 SETB EA CLR 00H SETB TR0 重新开启测距定时器 MOV R2 64H 测量间隔控制 约 4 100 400ms LOOP LCALL DISPLAY DJNZ R2 LOOP SJMP START 1 中断程序 T0 中断 65ms 中断一次 INTT0 CLR EA CLR TR0 MOV TH0 00H 16 MOV TL0 00H SETB ET1 SETB EA SETB TR0 启动计时器 T0 用以计算 超声波来回时间 SETB TR1 开启发超声波用定时器 T1 OUT RETI T1 中断 发超声波用 INTT1 CPL VOUT DJNZ R4 RETIOUT CLR TR1 超声波发送完毕 关 T1 CLR ET1 MOV R4 04H SETB EX0 开启接收回波中断 RETIOUT RETI 外中断 0 收到回波时进入 PINT0 CLR TR0 关计数器 CLR TR1 CLR ET1 CLR EA CLR EX0 MOV 44H TL0 将计数值移入处理单元 MOV 45H TH0 SETB 00H 接收成功标志 RETI 17 延时程序 DL1MS MOV R6 14H DL1 MOV R7 19H DL2 DJNZ R6 DL2 DJNZ R6 DL1 RET 显示程序 40H 为最高位 43H 为最低位 先扫描高位 DISPLAY MOV R1 40H G MOV R5 0F7H G PLAY MOV A R5 MOV P0 0FFH MOV P2 A MOV A R1 MOV DPTR TAB MOVCA A DPTR MOV P0 A LCALL DLIMS INCR1 MOV A R5 JNB ACC 0 ENDOUT G RRA 18 MOV R5 A AJMPPLAY ENDOUT MOV P2 0FFH MOV P0 0FFH RET TAB DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H 90H 0F FH 88H 0BFH 共阳数码管 0 1 2 3 4 5 6 7 8 9 不亮 A 距离计算程序 计算值 17 1000cm 近似 WORK PUSHACC PUSHPSW PUSHB MOV PSW 18H MOV R3 45H MOV R2 44H MOV R1 00D MOV R0 17D LCALL MUL2BY2 MOV R3 03H MOV R2 0E8H LCALLDIV4BY2 LCALLDIV4BY2 MOV 40H R4 19 MOV A 40H JNZ JJ0 MOV 40H 0AH 最高位为 0 不点亮 JJ0 MOV A R0 MOV R4 A MOV A R1 MOV R5 A MOV R3 00D MOV R2 100D LCALLDIV4BY2 MOV 41H R4 MOV A 41H JNZ JJ1 MOV A 40H 此高位为 0 先看最高位是否为不 亮 SUBBA 0AH JNZ JJ1 MOV 41H 0AH 最高位不亮 次高位也不 亮 JJ1 MOV A R0 MOV R4 A MOV A R1 MOV R5 A MOV R3 00D 20 MOV R2 10D LCALL DIV4BY2 MOV 42H R4 MOV A 42H JNZ JJ2 MOV A 41H 次高位为 0 先看次高位是否为不 亮 SUBBA 0AH JNZ JJ2 MOV 42H 0AH 次高位不亮 次高位也不亮 JJ2 MOV 43H R0 POP B POP PSW POP ACC RET 两字节无符号数乘法程序 MUL2BY2 CLR A MOV R7 A MOV R6 A MOV R5 A MOV R4 A MOV 46H 10H MULLOOP1 CLR C MOV A R4 21 RLC A MOV R4 A MOV A R5 RLC A MOV R5 A MOV A R6 RLC A MOV R6 A MOV A R7 RLC A MOV R7 A MOV A R0 RLC A MOV R0 A MOV A R1 RLC A MOV R1 A JNC MULLOOP2 MOV A R4 ADD A R2 MOV R4 A MOV A R5 ADDCA R3 MOV R5 A MOV A R6 22 ADDCA 00H MOV R6 A MOV A R7 ADDCA 00H MOV R7 A MULLOOP2 DJNZ46H MULLOOP1 RET 四字节 两字节无符号数除法程序 DIV4BY2 MOV 46H 20H MOV R0 00H MOV R1 00H DIVLOOP1 MOV A R4 RLC A MOV R4 A MOV A R5 RLC A MOV R5 A MOV A R6 RLC A MOV R6 A MOV A R7 RLC A MOV R7 A MOV A R0 23 RLC A MOV R0 A MOV A R1 RLC A MOV R1 A CLR C MOV A R0 SUBBA R2 MOV B A MOV A R1 SUBBA R3 JCDIVLOOP2 MOV R0 B MOV R1 A DIVLOOP2 CPL C DJNZ46H DIVLOOP1 MOV A R4 RLC A MOV R4 A MOV A R5 RLC A MOV R5 A MOV A R6 RLC A 24 MOV R6 A MOV A R7 RLC A MOV R7 A RET END 附 C51 程序 INCLUDE DEFINE UCHAR UNSIGNED CHAR DEFINE UINT UNSIGNED INT DEFINE ULONG UNSIGNED LONG EXTERN VOID CS T VOID EXTERN VOID DELAY UINT EXTERN VOID DISPLAY UCHAR DATA UCHAR DISPLAY UCHAR DATA UCHAR TESTOK VOID MAIN VOID DATA UCHAR DISPRAM 5 DATA UINT I DATA ULONG TIME 25 P0 0XFF P2 0XFF TMOD 0X11 IE 0X80 WHILE 1 CS T DELAY 1 TESTOK 0 EX0 1 ET0 1 WHILE TESTOK DISPLAY DISPRAM IF 1 TESTOK TIME TH0 TIME TIME 8 TL0 TIME 172 TIME 10000 DISPRAM 0 UCHAR TIME 10 TIME 10 DISPRAM 1 UCHAR TIME 10 TIME 10 DISPRAM 2 UCHAR TIME 10 DISPRAM 3 UCHAR TIME 10 IF 0 DISPRAM 3 DISPRAM 3 17 26 ELSE DISPRAM 0 16 DISPRAM 1 16 DISPRAM 2 16 DISPRAM 3 16 FOR I 0 I 300 I DISPLAY DISPRAM VOID CS R VOID INTERRUPT 0 TR0 0 ET0 0 EX0 0 TESTOK 1 VOID OVERTIME VOID INTERRUPT 1 EX0 0 TR0 0 ET0 0 TESTOK 2 NAME CS T 27 PR CS TC S T SEGMENT CODE PUBLIC CS T RSEG PR CS TC S T CS T PUSH ACC MOV TH0 00H MOV TL0 00H MOV A 4D SETB TR0 CS T1 CPL p1 0 NOP NOP NOP NOP NOP NOP NOP NOP NOP NOP DJNZ ACC CS T1 POP ACC RET END NAME DELAY 28 PR DELAYDELAY SEGMENT CODE PUBLIC DELAY RSEG PR DELAYDELAY DELAY PUSH ACC MOV A R7 JZ DELA1 INC R6 DELA1 MOV R5 50D DJNZ R5 DJNZ R7 DELA1 DJNZ R6 DELA1 POP ACC RET END NAME DISPLAY PR DISPLAYDISPLAY SEGMENT CODE CO DISPLAYDISPLAY SEGMENT DATA EXTRN CODE DELAY PUBLIC DISPLAY RSEG CO DISPLAYDISPLAY DISPLAYBYTE DISPBIT DS 1 DISPNUM DS 1 RSEG PR DISPLAYDISPLAY DISPLAY PUSH ACC 29 PUSH DPH PUSH DPL PUSH PSW INC DISPNUM MOV A DISPNUM CJNE A 4D DISP1 DISP1 JC DISP2 MOV DISPNUM 00H MOV DISPBIT 0FEH DISP2 MOV A R1 ADD A DISPNUM MOV R0 A MOV A R0 MOV DPTR DISPTABLE MOVC A A DPTR MOV P0 A MOV A DISPNUM CJNE A 2D DISP3 CLR P0 7 DISP3 MOV P2 DISPBIT MOV R5 00H MOV R7 0AH LCALL DELAY MOV P0 0FFH MOV P2 0FFH 30 MOV A DISPBIT RL A MOV DISPBIT A POP PSW POP DPL POP DPH POP ACC RET DISPTABLE DB 0C0H 0F9H 0A4H 0B0H 99H 92H 82H 0F8H 80H
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 低压电工考试题库全集及答案
- 填埋场安规考试题及答案
- 天津食品生产考试试题及答案
- 2025年高级财务会计考试题库及答案
- 2025年高层次会计人才考试题库(附答案)
- 会计材料采购题库及答案
- 行业招标投标管理办法
- 下属企业资产管理办法
- 个人业务会规管理办法
- 上海物业招标管理办法
- 医院课件:《急救应急培训-心肺复苏(CPR)》
- 2024年湖南长沙湘江新区所属事业单位招聘12人历年高频考题难、易错点模拟试题(共500题)附带答案详解
- 《电力系统治安反恐防范要求 第3部分:水力发电企业》
- 建筑工人的安全文明着装与防护用品
- 国家职业技术技能标准 6-29-01-07 乡村建设工匠 2024年版
- 《教育诊断与幼儿心理健康指导》课程标准
- 问题分析与解决五步法
- 全国职业大赛(中职)ZZ006水利工程制图与应用赛项赛题第7套
- 循环经济 实现低碳目标
- 《政论文的翻译》课件
- 资源与资源系统
评论
0/150
提交评论