红外遥控超声波测距仪.docx

上传人:b****4 文档编号:5458730 上传时间:2022-12-16 格式:DOCX 页数:37 大小:1.01MB
下载 相关 举报
红外遥控超声波测距仪.docx_第1页
第1页 / 共37页
红外遥控超声波测距仪.docx_第2页
第2页 / 共37页
红外遥控超声波测距仪.docx_第3页
第3页 / 共37页
红外遥控超声波测距仪.docx_第4页
第4页 / 共37页
红外遥控超声波测距仪.docx_第5页
第5页 / 共37页
点击查看更多>>
下载资源
资源描述

红外遥控超声波测距仪.docx

《红外遥控超声波测距仪.docx》由会员分享,可在线阅读,更多相关《红外遥控超声波测距仪.docx(37页珍藏版)》请在冰豆网上搜索。

红外遥控超声波测距仪.docx

红外遥控超声波测距仪

目录

一、系统总体设计3

二、硬件设计4

2.1AT89S52单片机主控模块4

2.2NE555产生40kHz频率模块5

2.3超声波测距收发模块7

2.3.1超声波发射模块8

2.3.2超声波接收模块9

2.4DS18B20温度测量模块11

2.5红外遥控模块13

2.61602液晶显示模块15

三、程序设计21

3.1超声波测距收发模块程序设计23

3.2DS18B20温度测量模块程序设计24

3.3红外遥控模块程序设计28

3.3.10和1的编码28

3.3.2按键的编码29

3.3.3遥控信号的解码算法及程序编写29

3.41602液晶显示模块程序设计31

四、结语32

五、谢辞32

六、参考文献33

红外遥控超声波测距仪

吴飞运0600310326

关键词:

传感器超声波温度测距

 

摘要

 

红外遥控超声波测距仪是以超声波测距为核心的多传感器巧妙结合的作品。

本作品用到红外传感器一体化红外接收头、温度传感器DS18B20、压电式传感器超声波测距收发头等传感器。

可以根据需要用红外遥控来选择不同的运行模式,并实时地将运行结果在1602液晶显示出来,具有较好的人机界面。

本作品可以用于测温、测距,测量精度较高,测量效果很好。

如果经过稍微改装,还可以将本作品应用在机器人和汽车上。

一、系统总体设计

图1.1-1系统总体设计框图

红外遥控超声波测距仪主要由AT89S52单片机主控模块、NE555产生40kHz频率模块、超声波测距收发模块、DS18B20温度测量模块、红外遥控模块、1602液晶显示模块等模块组成。

本作品用AT89S52单片机主控模块来控制系统的运行,用红外遥控模块做模式选择,用DS18B20温度测量模块测量温度,用NE555产生40kHz频率模块供给超声波测距收发模块,用超声波测距收发模块来接收和发射超声波信号,用1602液晶显示模块来显示运行结果。

本作品开始运行时在1602液晶显示屏上显示作者的名字,然后自动提示用户进行模式选择,按遥控上的“1”键只测量温度并显示;按“2”键只测量距离并显示;按“3”键测温测距并显示;按“4”键显示作者的名字。

用户可以根据需要用红外遥控来选择不同的运行模式。

二、硬件设计

2.1AT89S52单片机主控模块

图2.1-1AT89S52单片机主控模块图

图2.1-1中的左下部是电源模块用9V供电经7805稳压为5V后供给系统使用。

左上部是52单片机的复位电路,按下按键可以手动复位。

LOAD_SE1是下载头,用来下载程序。

单片机的CON接到NE555产生40kHz频率模块,INT0接到红外遥控模块,BACK_PLUS接到超声波测距收发模块,DQ接到DS18B20温度测量模块,E、RW、RS、D0~D7接到1602液晶显示模块。

AT89S52单片机简介:

AT89S52是一个低功耗,高性能CMOS8位单片机,片内含8kBytesISP(In-systemprogrammable)的可反复擦写1000次的Flash只读程序存储器,器件采用ATMEL公司的高密度、非易失性存储技术制造,兼容标准MCS-51指令系统及80C51引脚结构,芯片内集成了通用8位中央处理器和ISPFlash存储单元,功能强大的微型计算机的AT89S52可为许多嵌入式控制应用系统提供高性价比的解决方案。

主要性能:

●与MCS-51单片机产品兼容

●8K字节在系统可编程Flash存储器

●1000次擦写周期

●全静态操作:

0Hz~33Hz

●三级加密程序存储器

●32个可编程I/O口线

●三个16位定时器/计数器

●八个中断源,全双工UART串行通道

●低功耗空闲和掉电模式

●掉电后中断可唤醒

●看门狗定时器

●双数据指针

●掉电标识符

2.2NE555产生40kHz频率模块

图2.2-1NE555产生40kHz频率模块图

图2.2-1中当SW1开关拨到VCC端时,NE555连续发射频率;当接到CON端时,由单片机来控制是否发射频率,当CON为高电平时发射,低电平时不发射。

40KHZ_SEND将产生占空比约为1:

2的40kHz的频率,40KHZ_SEND接到超声波测距收发模块。

NE555简介:

NE555时基集成电路是8脚的数字集成电路,是由21个晶体三极管、4个晶体二极管和16个电阻组成的定时器,有分压器、比较器、触发器和放电器等功

能的电路。

它具有成本低、易使用、适应面广、驱动电流大和一定的负载能力。

在电子制作中只需经过简单调试,就可以做成多种实用的各种小电路,远远优于三极管电路,内部结构如图2.2-2。

它的各个引脚功能如下:

1脚:

外接电源负端VSS或接地,一般情况下接地。

8脚:

外接电源VCC,双极型时基电路VCC的范围是4.5~16V,CMOS型时基电路VCC的范围为3~18V。

3脚:

输出端Vo

2脚:

低触发端

6脚:

TH高触发端

4脚:

是直接清零端。

端接低电平,则时基电路不工作,此时不论

、TH处于何电平,时基电路输出为“0”,该端不用时应接高电平。

5脚:

VC为控制电压端。

若此端外接电压,则可改变内部两个比较器的基准电压,当该端不用时,应将该端串入一只0.01μF电容接地,以防引入干扰。

7脚:

放电端。

该端与放电管集电极相连,用做定时器时电容的放电。

在1脚接地,5脚未外接电压,两个比较器A1、A2基准电压分别为

的情况下,555时基电路的功能表如表2.2-1所示。

 

图2.2-2NE555内部结构图

NE555时基集成电路的主要参数:

电源电压4.5~16V,输出驱动电流为200毫安,作定时器使用时,定时精度为1%,作振荡使用时,输出的脉冲的最高频率可达500千赫。

清零端

高触发端TH

低触发端

Qn+1

放电管T

功能

0

0

导通

直接清零

1

0

导通

置0

1

1

截止

置1

1

Qn

不变

保持

表2.2-1555时基电路的功能表

NE555应用十分广泛,可装如下几种电路:

(1)单稳类电路

作用:

定延时,消抖动,分(倍)频,脉冲输出,速率检测等。

(2)双稳类电路

作用:

比较器,锁存器,反相器,方波输出及整形等。

(3)无稳类电路

作用:

方波输出,电源变换,音响报警,玩具,电控测量,定时等。

时基电路,可以作成:

振荡器,也可以作放大用。

2.3超声波测距收发模块

图2.3-1超声波探头图

超声波测距原理 :

1、 超声波发生器 

   为了研究和利用超声波,人们已经设计和制成了许多超声波发生器。

总体上讲,超声波发生器可以分为两大类:

一类是用电气方式产生超声波,一类是用机械方式产生超声波。

电气方式包括压电型、磁致伸缩型和电动型等;机械方式有加尔统笛、液哨和气流旋笛等。

它们所产生的超声波的频率、功率和声波特性各不相同,因而用途也各不相同。

目前较为常用的是压电式超声波发生器。

 

 

2、压电式超声波发生器原理 

    压电式超声波发生器实际上是利用压电晶体的谐振来工作的。

超声波发生器内部结构如图2.3-1所示,它有两个压电晶片和一个共振板。

当它的两极外加脉冲信号,其频率等于压电晶片的固有振荡频率时,压电晶片将会发生共振,并带动共振板振动,便产生超声波。

反之,如果两电极间未外加电压,当共振板接收到超声波时,将压迫压电晶片作振动,将机械能转换为电信号,这时它就成为超声波接收器了。

 

图2.3-1超声波发生器内部结构图

3、超声波测距原理 

途中碰到障碍物就立即返回来,超声波接收器收到反射波就立即停止计时。

若超声波在空气中的传播速度为340m/s,根据计时器记录的时间t,就可以计算出发射点距障碍物的距离(s),即:

s=340t/2,这就是所谓的时间差测距法。

2.3.1超声波发射模块

图2.3.1超声波发射模块图

40kHz频率可以由单片机产生,也可以由NE555产生,本作品用NE555产生,产生的频率稳定,控制也方便。

图2.3.1中的非门CD4049对40KHz频率信号进行调理,以使超声波传感器产生谐振。

 

2.3.2超声波接收模块

图2.3.2-1超声波接收模块图

超声波接收处理部分电路前级采用NE5532构成10000倍放大器,对接收信号进行放大;后级采用LM311比较器对接收信号进行调整,比较电压为LM311的3管脚的输入。

LM311输出7脚在图2.3.2-1的电路中,无回波信号时输出低电平;当有回波信号时输出方波,有下降沿出现,单片机进入外部中断程序。

NE5532简介:

图2.3.2-2NE5532引脚图

5532是高性能低噪声运放,与很多标准运放(如1458)相似,它具有较好的噪声性能,优良的输出驱动能力及相当高的小信号与电源带宽。

(1)小信号带宽:

10MHz;

(2)输出驱动能力:

600Ω,10V;

(3)输入噪声电压:

5nV/√HZ(典型值);

(4)DC电压增益:

50000;

(5)AC电压增益:

10KHz时2200;

(6)电源带宽:

140KHz;

(7)转换速率:

9V/μS;

(8)大电源电压范围:

±3~±20V。

极限参数:

 电源电压:

Vs……………………±22V

 差分输入电压:

VDIFF……………………±5V

 工作温度范围:

TA……………………0℃~70℃

 存贮温度:

TSTG……………………-65℃~150℃

 结温:

Tj……………………150℃

 功耗(5532FE):

PD……………………1000mW

 引线温度(焊接,10S)……………………300℃

LM311简介:

LM311是单片高速电压比较器,是放大器总类的IC。

可以用于产生很宽范围的电压,包括给运算放大器提供的+/-15V电压和系统的5V逻辑电压。

输出电压和大多数TTL和MOS电路兼容。

通常用的是DIP-8封装形式的,其外型以及引脚如图3.5:

其2,3,7脚为一个放大器单元。

2脚为同向输入端,3脚为反向输入端,7脚为输出。

工作原理是:

给8脚和4脚分别置电源的两端,2脚和3脚分别输入采集的需要比较的两个模拟电压,当同向电压大于反向电压的话,侧7脚输出逻辑的“1”;反之,若反向大于正向,输出逻辑“0”。

输出的逻辑“1”“0”的大小伏值由置与8和4脚的电源电压来决定。

比如:

置8为+5V,4为0,则比较后输出的逻辑电平伏值就是5V和0V。

也可以置其双电源,双电源就好比+5V和-5V,其优点就是可以用于比较在0V上下的电压。

现在好多种类的传感器输出就是0V上下的正旋波。

图2.3.2-3LM311框图

超声波测距注意事项:

避免余波信号的干扰。

图2.3.2-4超声波发射头和接收头的两个波形图

图2.3.2-4是通过示波器采集的超声波发射头和接收头的两个波形。

从图中我们,当发射头发出一组40KHz的脉冲后(图中下面的波形),接收头几乎在同一时间就收到了超声波信号,这个波束是余波信号。

持续一段时间后,我们才看到超声波接收头又收到了一组波束,这个才是经过被测物表面反射的回波信号。

超声波测距时,需要测的是开始发射到接收到信号的时间差,由上图中就可看出,需要检测的有效信号为反射物反射的回波信号,故要尽量避免检测到余波信号。

这就要求对接收头收到的波束进行处理,这也是超声波检测中存在最小测量盲区的主要原因。

在软件中的处理方法就是,当发射头发出脉冲后,记时器同时开始记时。

我们在记时器开始记时一段时间后再开启检测回波信号,以避免余波信号的干扰。

等待的时间可以为1ms左右。

更精确的等待时间可以减小最小测量盲区。

2.4DS18B20温度测量模块

图2.4-1DS18B20温度测量模块图

DS18B20简介:

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。

因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。

1、DS18B20产品的特点

  

(1)、只要求一个端口即可实现通信。

  

(2)、在DS18B20中的每个器件上都有独一无二的序列号。

  (3)、实际应用中不需要外部任何元器件即可实现测温。

  (4)、测量温度范围在-55。

C到+125。

C之间。

  (5)、数字温度计的分辨率用户可以从9位到12位选择。

(6)、内部有温度上、下限告警设置。

DS18B20的引脚介绍:

TO-92封装的DS18B20的引脚排列见图图2.4-2,其引脚功能描述见表表2.4-1。

 

图2.4-2DS18B20的引脚排列底视图

序号

名称

引脚功能描述

1

GND

地信号

2

DQ

数据输入/输出引脚。

开漏单总线接口引脚。

当被用着在寄生电源下,也可以向器件提供电源。

3

VDD

可选择的VDD引脚。

当工作于寄生电源时,此引脚必须接地。

表2.4-1 DS18B20详细引脚功能描述

DS18B20的使用方法:

由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。

DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。

该协议定义了几种信号的时序:

初始化时序、读时序、写时序。

所有时序都是将主机作为主设备,单总线器件作为从设备。

而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。

数据和命令的传输都是低位在先。

DS18B20的复位时序:

图2.4-3DS18B20的复位时序图

DS18B20的读时序:

对于DS18B20的读时序分为读0时序和读1时序两个过程。

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。

DS18B20在完成一个读时序过程,至少需要60us才能完成。

图2.4-4DS18B20的读时序图

DS18B20的写时序:

对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。

对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。

图2.4-5DS18B20的写时序图

2.5红外遥控模块

图2.5-1红外遥控模块图

图2.5-2红外一化接收头0038图

图2.5-3科朗800合1万能电视遥控器RM-2008+图

此模块的INT0接到单片机的外部中断0。

当遥控无按键按下时,INT0为高电平;当遥控有按键按下时,INT0出现低电平,进入外部中断服务程序,程序里对按键解码识别后,就可以根据不同的按键来做不同的相应操作。

如系统工作的模式选择等。

遥控器使用方便,功能多。

目前已广泛应用在电视机、VCD、DVD、空调等各种家用电器中,且价格便宜,市场上非常容易买到。

如果能将遥控器上许多的按键解码出来。

用作单片机系统的输入。

则解决了常规矩阵键盘线路板过大、布线复杂、占用I/O口过多的弊病。

而且通过使用遥控器,操作时可实现人与设备的分离,从而更加方便使用。

红外遥控接收可采用较早的红外接收二极管加专用的红外处理电路的方法。

如CXA20106,此种方法电路复杂,现在一般不采用。

较好的接收方法是用一体化红外接收头,它将红外接收二极管、放大、解调、整形等电路做在一起,只有三个引脚.分别是+5V电源、地、信号输出。

红外接收头的信号输出接单片机的INT0或INTl脚。

用一只PNP型三极管对输出信号进行放大效果更好。

2.61602液晶显示模块

图2.6-11602液晶显示模块图

1602字符型LCD简介:

字符型液晶显示模块是一种专门用于显示字母、数字、符号等点阵式LCD,目前常用16*1,16*2,20*2和40*2行等的模块。

下面以长沙太阳人电子有限公司的1602字符型液晶显示器为例,介绍其用法。

一般1602字符型液晶显示器实物如图2.6-2、2.6-3。

图2.6-21602字符型液晶显示器实物正面图

图2.6-31602字符型液晶显示器实物背面图

1602LCD的基本参数及引脚功能:

    1602LCD分为带背光和不带背光两种,基控制器大部分为HD44780,带背光的比不带背光的厚,是否带背光在应用中并无差别,两者尺寸差别如图2.6-4所示:

图2.6-41602LCD尺寸图

1602LCD主要技术参数:

    显示容量:

16×2个字符

    芯片工作电压:

4.5—5.5V

    工作电流:

2.0mA(5.0V)

    模块最佳工作电压:

5.0V

    字符尺寸:

2.95×4.35(W×H)mm

引脚功能说明:

1602LCD采用标准的14脚(无背光)或16脚(带背光)接口,各引脚接口说明如表2.6-1。

示:

编号

符号

引脚说明

编号

符号

引脚说明

1

VSS

电源地

9

D2

数据

2

VDD

电源正极

10

D3

数据

3

VL

液晶显示偏压

11

D4

数据

4

RS

数据/命令选择

12

D5

数据

5

R/W

读/写选择

13

D6

数据

6

E

使能信号

14

D7

数据

7

D0

数据

15

BLA

背光源正极

8

D1

数据

16

BLK

背光源负极

表2.6-1引脚接口说明表

第1脚:

VSS为地电源。

第2脚:

VDD接5V正电源。

第3脚:

VL为液晶显示器对比度调整端,接正电源时对比度最弱,接地时对比度最高,对比度过高时会产生“鬼影”,使用时可以通过一个10K的电位器调整对比度。

第4脚:

RS为寄存器选择,高电平时选择数据寄存器、低电平时选择指令寄存器。

第5脚:

R/W为读写信号线,高电平时进行读操作,低电平时进行写操作。

当RS和R/W共同为低电平时可以写入指令或者显示地址,当RS为低电平R/W为高电平时可以读忙信号,当RS为高电平R/W为低电平时可以写入数据。

第6脚:

E端为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。

第7~14脚:

D0~D7为8位双向数据线。

第15脚:

背光源正极。

第16脚:

背光源负极。

1602LCD的指令说明及时序:

    1602液晶模块内部的控制器共有11条控制指令,如表2.6-2所示:

序号

指令

RS

R/W

D7

D6

D5

D4

D3

D2

D1

D0

1

清显示

0

0

0

0

0

0

0

0

0

1

2

光标返回

0

0

0

0

0

0

0

0

1

*

3

置输入模式

0

0

0

0

0

0

0

1

I/D

S

4

显示开/关控制

0

0

0

0

0

0

1

D

C

B

5

光标或字符移位

0

0

0

0

0

1

S/C

R/L

*

*

6

置功能

0

0

0

0

1

DL

N

F

*

*

7

置字符发生存贮器地址

0

0

0

1

字符发生存贮器地址

8

置数据存贮器地址

0

0

1

显示数据存贮器地址

9

读忙标志或地址

0

1

BF

计数器地址

10

写数到CGRAM或DDRAM)

1

0

要写的数据内容

11

从CGRAM或DDRAM读数

1

1

读出的数据内容

表2.6-2控制命令表

1602液晶模块的读写操作、屏幕和光标的操作都是通过指令编程来实现的。

(说明:

1为高电平、0为低电平)

指令1:

清显示,指令码01H,光标复位到地址00H位置。

指令2:

光标复位,光标返回到地址00H。

指令3:

光标和显示模式设置I/D:

光标移动方向,高电平右移,低电平左移S:

屏幕上所有文字是否左移或者右移。

高电平表示有效,低电平则无效。

指令4:

显示开关控制。

D:

控制整体显示的开与关,高电平表示开显示,低电平表示关显示C:

控制光标的开与关,高电平表示有光标,低电平表示无光标B:

控制光标是否闪烁,高电平闪烁,低电平不闪烁。

指令5:

光标或显示移位S/C:

高电平时移动显示的文字,低电平时移动光标。

指令6:

功能设置命令DL:

高电平时为4位总线,低电平时为8位总线N:

低电平时为单行显示,高电平时双行显示F:

低电平时显示5x7的点阵字符,高电平时显示5x10的点阵字符。

指令7:

字符发生器RAM地址设置。

指令8:

DDRAM地址设置。

指令9:

读忙信号和光标地址BF:

为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:

写数据。

指令11:

读数据。

与HD44780相兼容的芯片时序表如下:

读状态

输入

RS=L,R/W=H,E=H

输出

D0—D7=状态字

写指令

输入

RS=L,R/W=L,D0—D7=指令码,E=高脉冲

输出

读数据

输入

RS=H,R/W=H,E=H

输出

D0—D7=数据

写数据

输入

RS=H,R/W=L,D0—D7=数据,E=高脉冲

输出

表2.6-3基本操作时序表

读写操作时序如图2.6-5和图2.6-6所示:

图2.6-5读操作时序

 

图2.6-6写操作时序

1602LCD的RAM地址映射及标准字库表

    液晶显示模块是一个慢显示器件,所以在执行每条指令之前一定要确认模块的忙标志为低电平,表示不忙,否则此指令失效。

要显示字符时要先输入显示字符地址,也就是告诉模块在哪里显示字符,图2.6-7是1602的内部显示地址。

图2.6-71602LCD内部显示地址

    例如第二行第一个字符的地址是40H,那么是否直接写入40H就可以将光标定位在第二行第一个字符的位置呢?

这样不行,因为写入显示地址时要求最高位D7恒定为高电平1所以实际写入的数据应该是01000000B(40H)+10000000B(80H)=11000000B(C0H)。

    在对液晶模块的初始化中要先设置其显示模式,在液晶模块显示字符时光标是自动右移的,无需人工干预。

每次输入指令前都要判断液晶模块是否处于忙的状态。

    1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,如表2.6-4所示,这些字符有:

阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”

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

当前位置:首页 > 解决方案 > 学习计划

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1