收藏 分享(赏)

用AT89C2051设计超声波测距仪.doc

上传人:精品资料 文档编号:8011703 上传时间:2019-06-04 格式:DOC 页数:7 大小:104.50KB
下载 相关 举报
用AT89C2051设计超声波测距仪.doc_第1页
第1页 / 共7页
用AT89C2051设计超声波测距仪.doc_第2页
第2页 / 共7页
用AT89C2051设计超声波测距仪.doc_第3页
第3页 / 共7页
用AT89C2051设计超声波测距仪.doc_第4页
第4页 / 共7页
用AT89C2051设计超声波测距仪.doc_第5页
第5页 / 共7页
点击查看更多>>
资源描述

1、 用 AT89C2051 设计超声波测距仪 天津理工学院光电信息与电子工程系 姜道连 宁延一 袁世良 Jiang Daolian Ning Yangyi Yuan Shiliang摘要:本文介绍了 AT89C2051 单片机的性能和特点,并在分析了超声波测距原理的基本上,指出了 设计测距仪的思路和所需考虑的问题,给出了实现超声波测距方案的 软、硬件 设计系统框图 。该设计系统经校正后,其测量精度可达 0.1 米。关键词:超声波;换能器;测距;AT89C2051 分类号:TM930.9 文献标识:B 文章编号:1006-6977(2000)12-0031-04超声波测距主要应用于倒车雷达、建筑施

2、工工地以及一些工业现场,例如:液位、井深、管道长度等场合。目前国内一般使用专用集成电路设计超声波测距仪,但是专用集成电路的成本很高,并且没有显示,操作使用很不方便。本文介绍一种以AT89C2051 或 GSM97C2051 单片机为核心的低成本、高精度、微型化数字显示超声波测距仪的硬件电路和软件设计方法。实际使用证明该仪器工作稳定,性能良好。 1 超声波测距原理超声波测距是通过不断检测超声波发射后遇到障碍物所反射的回波,从而测出发射和接收回波的时间差 t,然后求出距离S=Ct/2,式中的 C 为超声波波速。由于超声波也是一种声波,其声速 C 与温度有关,表 1 列出了几种不同温度下的声速。在使

3、用时,如果温度变化不大,则可认为声速是基本不变的。如果测距精度要求很高,则应通过温度补偿的方法加以校正。声速确定后,只要测得超声波往返的时间,即可求得距离。这就是超声波测距仪的机理。其系统框图如图 1 所示。表 1 声速与温度关系表温度( ) -30 -20 -10 0 10 20 30 100声速(米/称) 313 319 325 323 338 344 349 3862 AT89C2051 的功能特点AT89C2051 是一个 2k 字节可编程 EPROM 的高性能微控制器。它与工业标准 MCS-51 的指令和引脚兼容,因而是一种功能强大的微控制器,它对很多嵌入式控制应用提供了一个高度灵活

4、有效的解决方案。AT89C2051 有以下特点:2k 字节 EPROM、128 字节RAM、15 根 I/O 线、2 个 16 位定时/计数器、5 个向量二级中断结构、1 个全双向的串行口、并且内含精密模拟比较器和片内振荡器,具有 4.25V 至 5.5V 的电压工作范围和 12MHz/24MHz 工作频率,同时还具有加密阵列的二级程序存储器加锁、掉电和时钟电路等。此外,AT89C2051 还支持二种软件可选的电源节电方式。空闲时,CPU 停止,而让 RAM、定时/计数器、串行口和中断系统继续工作。可掉电保存 RAM 的内容,但可使振荡器停振以禁止芯片所有的其它功能直到下一次硬件复位。AT89

5、C2051 有 2 个 16 位计时/计数器寄存器 Timer0t Timer1。作为一个定时器,每个机器周期寄存器增加 1,这样寄存器即可计数机器周期。因为一个机器周期有 12 个振荡器周期,所以计数率是振荡器频率的 1/12。作为一个计数器,该寄存器在相应的外部输入脚 P3.4/T0 和 P3.5/T1 上出现从 1 至 0 的变化时增 1。由于需要二个机器周期来辨认一次 1 到 0 的变化,所以最大的计数率是振荡器频率的 1/24,可以对外部的输入端 P3.2/INT0 和 P3.3/INT1 编程,便于测量脉冲宽度的门。充分利用 AT89C2051 的片内资源,即可在很少外围电路的情况

6、下构成功能完善的超声波测距系统。3 系统硬件电路设计超声波测距仪的硬件电路如图 2 所示。AT89C2051 通过外部引脚 P1.6 输出脉冲宽度为 250s,载波为 40kHz 的 10 个脉冲的脉冲群,以推挽形式加到变压器的初级,经升压变换推动超声波换能器发射出去。在发射的同时,P1.7 输出一个高电平启动,给电容 C4 充电。发射结束时高电平翻转为低电平,C4 开始对 R2、R3 组成的分压器放电并输出到比较器的负端。超声波接收换能器将接收到的障碍物反射的超声波送到放大器进行放大,这是一个高增益、低噪声放大器,在对放大后的信号进行检波后将检测回波送到比较器的正输入端。发射时 P1.7 输

7、出的电平可以抑制比较器的翻转,这样就可以抑制发射器发射的超声波直接辐射到接收器而导致错误检测。图 3 是超声波测距原理的波形图,从图中可以看到,测出回波和发射脉冲之间的时间间隔,利用 S=Ct/2 就可以算出距离,再在 LCD 上显示出来。当然还可以设置若干个键,以用来控制电路的工作状态。限制系统的最大可测距离存在四个因素:超声波的幅度,反射而的质地,反射而和入射声波之间的夹角以及接收换能器的灵敏度。接收换能器对声波脉冲的直接接收能力将决定最小的可测距离。4 系统软件设计AT89C2051 单片机和其开发应用系统具有语言简洁、可移植性好、表达能力强、表达方式灵活、可进行结构化设计、可以直接控制

8、计算机硬件、生成代码质量高、使用方便等诸多优点。超声波测距仪就是用 AT89C51 单片机开发设计的。它采用模块化设计,由主程序、发射子程序、查蟓接收子程序、定时子程序、显示子程序等模块组成。图 4 和图 5 分别为主程序和测量子程序的框图。该系统的主程序处于键控循环工作方式,当按下测量键时,主程序开始调用发射子程序、查询接收子程序、定时子程序,并把测量结果用显示子程序在液晶屏上显示出来。 必须指出的是,由于液晶要使用同一 P3 口,所以必须全部使用位操作,否则将导致 LCD 不能正常显示。另外,在系统还可以加入温度传感器来监测环境温度,把表 1 所列的数据做到程序中可进行温度被偿。为了增强系

9、统的可靠性,应在软硬件上采用一些特殊措施。限于篇幅,下面仅给出部分程序,感兴趣者可与作者联系。# pragma DB OE CD OT(5,SPEED) ROM(LARGE)IV/*连接所需要的库*/#include#include#include/*定义数据类型*/typedef unsingned char byte;typedef unsigned int word#define uchar unsigned char#define unint unsigned int#define ulong unsigned long/*定义系统常数*/#define TRUE 1#define F

10、ALSE 0#define C=340 /*声速*/*定义功能位*/sbit bflag=ACC7;sbit VOLCK=P15;sbit MING=P35;sbit QUIET=P13;sbit BACK=P12;/*定义显示缓冲区*/uchar idata ON16=,L,E,N,G,T,H,=,8,.,88,m,;/*主程序用延时子程序*/woid main-delay(void)register i;TRO=1;for(i=0;i15;i+)TH0=0;TL0=0;Dowhile(!TF0);TF0=0;TR0=0;*/通用延时子程序*/void delay(void)unint i;

11、for(i=0;i200;i+);/*键盘延时子程序*/void key-delay(void)unint i;for(i=0;i200;i+);/*初始化程序*/void start_main()tegister i;uchar a16=,L,E,N,G,T,H,=,8,.,8,8,m,;for(i=0;16;i+)ONi=ai;nitlcd();/*初始化液晶 */display(ON);/*更新显示*/*主程序*/void main()register s,keycode;long idata t;start-main();/*初始化*/main-delay();/*延时*/;if(keycoed= =true)keycode=key-scan-wait();/*判断是否有测量键按下*/t=measure();*/测量*/S=0.5*t*C;*/换算*/Decode-bcd(s.0x09);/*把测量结果置换入显示缓冲区*/init-lcd();/*初始化液晶*/display(ON);/*更新显示*/5 结束语虽然用一个单独计时器电路也可以测量超声波的传输时间,但利用 AT89C2051 单片机可以简化设计,便于操作和直观读数。该系统经实际测试证明,可以满足大多数场合的测距要求。返回首页

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

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

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


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

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

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