基于单片机的红外遥控智能小车报告大学本科毕业论文

基于单片机的红外遥控小车

指令9:读忙信号和光标地址 BF:为忙标志位,高电平表示忙,此时模块不能接收命令或者数据,如果为低电平表示不忙。

指令10:写数据。 指令11:读数据。

1602LCD的读写操作包括:读状态、写指令、读数据、写数据,且每种操作都遵循严格的操作时序。读写操作时序如表8所示,读操作时序图如图2-4所示,写操作时序如图2-5所示。基本时序参数如表9所示。

表8 1602LCD读写操作时序

读状态 写指令 读数据 写数据 输入 输入 输入 输入 RS=L,R/W=H,E=H RS=L,R/W=L,写指令,E高脉冲 RS=H,R/W=H,E=H RS=H,R/W=L,写数据,E高脉冲 输出 D0-D7=状态字 输出 无 输出 D0-D7=数据 输出 无

图2-4 读操作时序

图2-5 写操作时序

第9页

基于单片机的红外遥控小车 表9 1602LCD操作时序参数

时序参数 E信号周期 E脉冲宽度 E上升沿/下降沿时间 地址建立时间 地址保持时间 数据建立时间(读操作) 数据保持时间(读操作) 数据建立时间(写操作) 数据保持时间(写操作) 符号 最小值 tC tPW tR,tF tSP1 tHD1 tD tHD2 tSP2 tHD2 400 150 - 30 10 - 20 40 10 极限值 典型值 - - - - - - - - - 最大值 - - 25 - - 100 - - - ns ns ns ns ns ns ns ns ns 引脚E、RS、R/W 引脚 DB0~DB7 引脚E 单位 测试条件 2.2.3 液晶与单片机连接电路

1602可与单片机相连的引脚有11个,其中3个控制端、8个数据端,3个控制端RS、RW、E分别接单片机的P15、P16、P17脚,8个数据端DB0—DB7依次接单片机的P20—P27。如图2-6所示。

图2-6 1602LCD于单片机连接图

2.3 温度测量电路

DS18B20数字温度计是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 2.3.1 DS18B20产品的主要特点

●适应电压范围更宽,电压范围:3.0~5.5V,在寄生电源方式下可由数据线供电

●独特的单线接口方式,DS18B20在与微处理器连接时仅需要一条口线即可实现微处理器与DS18B20的双向通讯

第10页

基于单片机的红外遥控小车

● DS18B20支持多点组网功能,多个DS18B20可以并联在唯一的三线上,实现组网多点测温

●DS18B20在使用中不需要任何外围元件,全部传感元件及转换电路集成在形如一只三极管的集成电路内

●温范围-55℃~+125℃,在-10~+85℃时精度为±0.5℃

●可编程 的分辨率为9~12位,对应的可分辨温度分别为0.5℃、0.25℃、0.125℃和0.0625℃,可实现高精度测温

●在9位分辨率时最多在93.75ms内把温度转换为数字,12位分辨率时最多在750ms内把温度值转换为数字,速度更快

●测量结果直接输出数字温度信号,以串行总线传送给CPU,同时可传送CRC校验码,具有极强的抗干扰纠错能力

●负压特性:电源极性接反时,芯片不会因发热而烧毁, 但不能正常工作。 2.3.2 DS18B20的引脚介绍

TO-92封装的DS18B20的引脚排列见图2-7,引脚说明如表10所示。

表10 DS18B20详细引脚功能描述

序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。

图2-7 DS18B20底视图

第11页

基于单片机的红外遥控小车

2.3.3 DS18B20的使用方法

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

由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 1. DS18B20的复位时序

(1) 先将数据线置高电平“1”。

(2) 延时(该时间要求的不是很严格,但是尽可能的短一点) (3) 数据线拉到低电平“0”。

(4) 延时750微秒(该时间的时间范围可以从480到960微秒)。 (5) 数据线拉到高电平“1”。

(6) 延时等待(如果初始化成功则在15到60毫秒时间之内产生一个由DS18B20所返回的低电平“0”。据该状态可以来确定它的存在,但是应注意不能无限的进行等待,不然会使程序进入死循环,所以要进行超时控制)。

(7) 若CPU读到了数据线上的低电平“0”后,还要做延时,其延时的时间从发出的高电平算起(第(5)步的时间算起)最少要480微秒。

(8) 将数据线再次拉高到高电平“1”后结束。 2.DS18B20的读时序

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

对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。

(1)将数据线拉高“1”。 (2)延时2微秒。 (3)将数据线拉低“0”。

第12页

基于单片机的红外遥控小车

(4)延时15微秒。 (5)将数据线拉高“1”。 (6)延时15微秒。

(7)读数据线的状态得到1个状态位,并进行数据处理。 (8)延时30微秒。 3.DS18B20的写时序

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

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

(1) 数据线先置低电平“0”。 (2) 延时确定的时间为15微秒。

(3) 按从低位到高位的顺序发送字节(一次只发送一位)。 (4) 延时时间为45微秒。 (5) 将数据线拉到高电平。

(6) 重复上(1)到(6)的操作直到所有的字节全部发送完为止。 (7) 最后将数据线拉高。 2.3.4 DS18B20控制电路

DS18B20与单片机的连接电路非常简单,只需将传感器的数据端与单片机相连,并接4.7K的上拉电阻即可实现单片机与传感器的通信。电路如图2-8:

图2-8 DS18B20与单片机连接图

第13页

联系客服:779662525#qq.com(#替换为@) 苏ICP备20003344号-4