RS485接口一体化超声波测距模块

发布者:星辰古泉最新更新时间:2016-03-01 来源: eefocus关键字:RS485接口  一体化  超声波测距 手机看文章 扫描二维码
随时随地手机看文章
    一、模块简介:

    该超声波测距模块采用STC11F04E单片机作处理器,工作电源:DC5V,工作电流20mA。测量数据输出方式为RS485输出,数据格式为标准的ASCII码,数据由:空格位(起始位)+百+十位+个位。工作方式有两种:一是连续测量方式;二是查询测量方式。

 

    测量范围:36cm~450cm(盲区36cm)。
测量过程中,当接收不到障碍物反射的回波时,输出“C C C”, 当测量低于下限值(在盲区内)时显示“- - -”。测量结果由模块上的输出端口输出,输出方式为RS485输出。测量结果可通过电脑进行显示。模块使用RS485接口通讯,测量结果传送距离远,可以通过电脑采集数据,编写通讯程序非常的便捷。
    波特率:1200
    校验位:无
    数据位:8
    停止位:无
    ASCII码数据格式:空格位(起始位)+百+十位+个位。
    二、 模块的使用设置
    超声波模块的工作方式可进行设置,设置结果可保存在模块内部的单片机中,断电不会丢失。设置命令格式如下:




    查询命令格式:AT+CL=1-32(0-32为模的的地址编码,每个模块的地址可进行独立设定,设定时使用AT+WD=“  ”命令,各块模块的编码可独立,由使用者自己设定,设定范围0-32,只在查询方式下有效),数据格式为16进制数据。
    三、 模块使用
    为减小本超声波测距模块外形尺寸,该超声波测距元件采用双面安装,模块长6.2cm宽2.4cm。模块可用作应用系统的测距模块。可应用在液位检测、车位检测、距离测量等产品中。板上留有安装孔,有一排6脚插针。测试显示程序范例如下:
#include                      //头文件
#include                     //头文件
#define uchar unsigned char             //定义变量类型为字符型
#define uint unsigned int               //定义变量类型为长整型
#define LED P0          //数码管段码输出端
#define LED1 P2_6       //数码管位1
#define LED2 P2_4       //数码管位2
#define LED3 P2_5       //数码管位3
#define sx P2_3       //数码管位3

uchar s,i,pd,jsh,ml[3]={0,0,0},zj,xm0,xm1,xm2,xm3,buffer[3];//程序中用到的变量
uchar convert[10]={0xA0,0xBD,0x64,0x34,0x39,0x32,0x22,0xBC,0x20,0x30};////0~9段码单片机端口P0x.0-P0.7 分别接数码管的A、B、F、D、E、H、C、G各段
void delay(i);       //延时函数
void scanLED();       //显示函数
void timeToBuffer();     //显示转换函数
void offmsd();       //百位数为0判断处理模块

void main()        //主程序
{
 EA=1;        //开总中断
 ES=1;        //串口中断允许
 SCON = 0x50;       //串口方式1,允许接收
 TMOD = 0x21;       //定时器1定时方式2
 TCON = 0x40;       //定时器1开始计数
 TH1 = 0xF3;       //6MHz 1200波特率
 TL1 = 0xF3;       //6MHz 1200波特率
 TI = 0;        //串口发送中断标志置0
 RI =0;        //串口接收中断标志置0 
 TR1=1;         //启动定时器1
 sx=0;
 while(1)
 {
  timeToBuffer();     //调用转换段码功能模块 
     offmsd();      //调用百位数为0判断处理模块
    scanLED();      //调用显示函数
 }
}

void delay(i)       //延时子程序     
{
    while(--i);       //延时循环
}

void scanLED()                   //显示功能模块
{
 LED=buffer[0];      //显示个位数值,个数位数的段码送显示端口
 LED3=0;        //个位数位码,低电平有效,进行显示
 delay(1);       //显示延时,加大该值,显示亮度提高
 LED3=1;        //关闭显示个位数显示
 delay(20);       //关闭显示延时,减小该值时显示亮度提高

 LED=buffer[1];      //显示十位数值,十数位数的段码送显示端口
 LED2=0;        //十位数位码,低电平有效,进行显示
 delay(1);       //显示延时,加大该值,显示亮度提高
 LED2=1;        //关闭显示十位数显示
 delay(20);       //关闭显示延时,减小该值时显示亮度提高

 LED=buffer[2];      //显示百位数值,百数位数的段码送显示端口
 LED1=0;        //百位数位码,低电平有效,进行显示
 delay(1);       //显示延时,加大该值,显示亮度提高
 LED1=1;        //关闭显示百位数显示
 delay(20);         //关闭显示延时,减小该值时显示亮度提高
}

void offmsd()       //百位数为0判断处理模块
{
    if (buffer[2]==0xA0)      //如果值为零时百位不显示
    buffer[2] = 0xff;     //数码管百位数的段码全部为1,即高电平,百位不显示  
}

void serial() interrupt 4 using 3  //串口中断接收程序
{
  if(RI)        //串口接收到数据时串口中断标志位为1
  {
    RI=0;         //串口中断标志位置0
    pd=SBUF;       //接收到的数据送中间变变量pd储存
    if(pd==0x20)      //判断接收到的数据是否为0x20(这是ASCII码的空格的代码)
 {
      jsh=0;       //接收位数计数器jsh置0
      pd=0;        //中间变变量pd清0
 }
 if(jsh==1)       //当jsh值为1时,代表串口接收到模块发送回的百位数值
 {
   ml[0]=SBUF;      //串口接收到模块发送回的百位数值存入ml[0]单元
 }
 else if(jsh==2)      //当jsh值为2时,代表串口接收到模块发送回的十位数值
 {
   ml[1]=SBUF;      //串口接收到模块发送回的十位数值存入ml[1]单元
 }
 else if(jsh==3)      //当jsh值为3时,代表串口接收到模块发送回的个位数值
 {
   ml[2]=SBUF;      //串口接收到模块发送回的个位数值存入ml[2]单元
      s=ml[0]*100+ml[1]*10+ml[2];   //计算测量得到的距离值s,单位为厘米
 }
  jsh++;              //接收位数计数器值加1
  }
}

void timeToBuffer()         //转换段码功能模块
{
    xm0=ml[0]-48;      //接到的值为标准的ASCII码,进行十进制转换,百位数的值
 xm1=ml[1]-48;      //接到的值为标准的ASCII码,进行十进制转换,十位数值
    xm2=ml[2]-48;      //接到的值为标准的ASCII码,进行十进制转换,个位数值
 buffer[0]=convert[xm2];    //转换成对应的显示码段
 buffer[1]=convert[xm1];    //转换成对应的显示码段
 buffer[2]=convert[xm0];    //转换成对应的显示码段
    if ((ml[0]==67)&&(ml[1]==67))  //判断接收到的ASCII码数值为"C",表示模块接收不到回波,这时的显示用"C C C"表示
   
      buffer[0]=0xE2;     //显示"C"的段码是0xE2
   buffer[1]=0xE2;     //显示"C"的段码是0xE2
   buffer[2]=0xE2;       //显示"C"的段码是0xE2  
 }
    else if ((ml[0]==45)&&(ml[1]==45)) //判断接收到的ASCII码数值为"-",表示模块的测量范围在盲区范围内这时的显示用"- - -"表示
 {
      buffer[0]=0x7F;     //显示"-"的段码是0x7F
   buffer[1]=0x7F;     //显示"-"的段码是0x7F
   buffer[2]=0x7F;       //显示"-"的段码是0x7F
 }

关键字:RS485接口  一体化  超声波测距 引用地址:RS485接口一体化超声波测距模块

上一篇:PTC在RS485通讯端口中的防雷保护方案
下一篇:工业现场RS485通讯的抗干扰措施

推荐阅读最新更新时间:2024-05-03 00:13

大有时空-北斗星地一体化全球高精度定位服务丨确认申报2023金辑奖
申报企业丨大有时空 汽车行业主要业务、产品与服务: 全球卫星定位服务、地图更新与数据服务、多源感知终端 企业整体实力: 1.研发能力: 有时空已获得CMMI三级认证,软件能力成熟度达到模型等级3,标志着公司在软件研发能力、实施服务交付、项目管理水平、技术开发、研发管理、组织支持、组织过程改进等方面均达到国际先进水平,实现了与国际主流技术和管理要求的接轨。自公司成立以来,构建大有时空数据中心,数据中心机房经涉密CNAS机构检测合格,检测结果符合GJB5792-2006《军用涉密信息系统电磁屏蔽体等级划分和测量方法》c级标准,同时满足BMB3-1999《处理涉密信息的电磁屏蔽室的技术要求和测试方法》C级标准
[汽车电子]
大有时空-北斗星地<font color='red'>一体化</font>全球高精度定位服务丨确认申报2023金辑奖
一体化传感器的工作原理及其测量技术在工业制造中的意义
本文综述 传感器在科学研究和技术开发中,特别是在信息技术、现代制造以及生产过程自动化技术中,起着不可替代的作用。随着社会和科学技术的进步和发展,人们对传感器的需求越来越多,要求也越来越高。 但在实际应用中,单一功能的传感器往往不能满足越来越高的系统要求。例如,一个液压系统的工作是否正常,关键取决于两个主要工作参数即压力和流量是否处于正常的工作状态,以及系统温度、泵组功率等重要辅助参数的正常与否。因此进行液压系统状态检测和故障诊断,最关键的就是压力、流量、温度、功率参数的可靠获取。通过不同应用领域的广泛调研和多次实验发现,传统的用三种传感器分别测量的方法,即使传感器精度很高,仍难以达到理想的测试结果。因为首先三种传感器在安装上必然
[测试测量]
<font color='red'>一体化</font>传感器的工作原理及其测量技术在工业制造中的意义
腾讯钟学丹:车、图、云一体化加速自动驾驶量产落地
12月8日,由21世纪经济报道、21财经、中国汽车金融主办的2022中国汽车产业峰会正式举行。腾讯智慧出行副总裁钟学丹受邀出席,并发表《车云一体,构筑新生产力》的主题演讲,分享腾讯对汽车产业数字化变革、车云一体化发展的理解和实践。 钟学丹表示,车已经成为智能的载体,未来,汽车行业将基于云端去定义智能、定义体验、定义新的商业模式,车云一体化的数据驱动将成为竞争关键。腾讯以云、图、AI等能力为核心,致力于帮助车企构建自己的“车云一体化”底座和完整的业务能力。 汽车行业加速洗牌,云端能力建设成为竞争关键 当前,智能汽车行业正面临一次洗牌,新造车思维、新技术和新商业模式,都在冲击着传统的汽车产业模式。随着智能电动化的发展,智能
[汽车电子]
腾讯钟学丹:车、图、云<font color='red'>一体化</font>加速自动驾驶量产落地
一体化无线数据采集仪设计方案
  引言   数据采集是指将温度、压力、电压、电流、位移、流量等模拟量采集转换成数字量后,再由计算机进行存储、处理、显示或打印的过程,相应的系统称为数据采集系统。本文针对目前采集仪CPU频率低、数据处理能力有限而造成的单台采集仪难以对工业现场各种信号进行实时采集及传输的问题进行研究,提出了对音视频进行硬件压缩编码的方案。采集仪把采集到的音频和视频信号分别进行了MP3和H.264格式的硬件压缩编码,大大减少了数据处理过程中的CPU资源占用及数据传输过程中的带宽占用,解决了便携式 数据采集仪 难以实现对工业现场多种数据一体化采集传输的问题。本采集仪集工业现场多种信号采集、处理、传输为一体,具有集成度高、体积小、可扩展性强等优点。   
[单片机]
<font color='red'>一体化</font>无线数据采集仪设计方案
机电一体化技术对于工业4.0 的意义
与工业4.0相关技术的迅速发展,提高了内置智能机器的效率、性能、以及可访问性,因此被某些人称为下一次工业革命。 机电一体化机器设计和工程为工业4.0项目的成功实施提供了基本的构建模块。下面就随工业控制小编一起来了解一下相关内容吧。 通向工业4.0之路 第一次工业革命,使纺织行业和其它行业诞生了第一批工厂,推动这些行业向基于煤和蒸汽动力设备为基础的机械化生产的转变。第二次工业革命以电力和内燃机的广泛使用为标志,规模化生产带来了更新、更快的发展。第三次工业革命以数字制造技术、互联网技术和再生性能源技术的重大创新、融合与运用为代表,半导体、计算机以及能源技术的快速发展,大大提高了制造业和过程工业的生产和能源利用效率。被称为第四次工
[工业控制]
RS485串行通信接口电路的总体设计
在电参数仪的设计中,数据采集由单片机AT89C52负责,上位PC机主要负责通信(包括与单片机之间的串行通信和数据的远程通信),以及数据处理等工作。在工作中,单片机需要定时向上位PC机传送大批量的采样数据。通常,主控PC机和由单片机构成的现场数据采集系统相距较远,近则几十米,远则上百米,并且数据传输通道环境比较恶劣,经常有大容量的电器(如电动机,电焊机等)启动或切断。为了保证下位机的数据能高速及时、安全地传送至上位PC机,单片机和PC机之间采用RS485协议的串行通信方式较为合理。 实际应用中,由于大多数普通PC机只有常用的RS232串行通信口,而不具备RS485通信接口。因此,为了实现RS485协议的串行通信,必须在PC机侧
[嵌入式]
基于单片机的超声波测距系统的研究与设计
  在日常生产生活中,很多场合如汽车倒车、机器人避障、工业测井、水库液位测量等需要自动进行非接触测距。超声波是指频率大于20 kHz的在弹性介质中产生的机械震荡波,其具有指向性强、能量消耗缓慢、传播距离相对较远等特点,因此常被用于非接触测距。由于超声波对光线、色彩和电磁场不敏感,因此超声波测距对环境有较好的适应能力,此外超声波测量在实时、精度、价格也能得到很好的折衷。   为此,文中尝试以单片机AT89S52为核心,利用一对40 kHz压电超声传感器设计一款体积较小、价格低廉、精度较高、具有温度补偿、实时LCD显示和报警的超声波测距仪。    1 超声波测距原理   超声波传感器分机械方式和电气方式两类,它实际上是一种换能器
[单片机]
基于单片机的超声波测距仪LED显示电路的设计
1 引言 随着科学技术的快速发展,超声波将在测距仪中的应用越来越广。但就目前技术水平来说,人们可以具体利用的测距技术还十分有限,因此,这是一个正在蓬勃发展而又有无限前景的技术及产业领域。展望未来,超声波测距仪作为一种新型的非常重要有用的工具在各方面都将有很大的发展空间,它将朝着更加高定位高精度的方向发展,以满足日益发展的社会需求,如声纳的发展趋势基本为:研制具有更高定位精度的被动测距声纳,以满足水中武器实施全隐蔽攻击的需要;继续发展采用低频线谱检测的潜艇拖曳线列阵声纳,实现超远程的被动探测和识别;研制更适合于浅海工作的潜艇声纳,特别是解决浅海水中目标识别问题;大力降低潜艇自噪声,改善潜艇声纳的工作环境。无庸置疑,未来的超声波测距
[单片机]
小广播
最新嵌入式文章
何立民专栏 单片机及嵌入式宝典

北京航空航天大学教授,20余年来致力于单片机与嵌入式系统推广工作。

换一换 更多 相关热搜器件
电子工程世界版权所有 京B2-20211791 京ICP备10001474号-1 电信业务审批[2006]字第258号函 京公网安备 11010802033920号 Copyright © 2005-2024 EEWORLD.com.cn, Inc. All rights reserved