第二章 元器件介绍及硬件电路设计
2.1 元器件介绍
2.1.1 温度传感器
温度传感器选用可编程温度传感器(DS18B20)芯片。DS18B20是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。它在测温精度、转换时间、传输距离、分辨率等方面较DS1820有了很大的改进, 给用户使用带来了更多方便。 (1)DS18B20产品的特点
(a)单线接口:仅需一根线与单片机相连;
(b)由用总线提供电源,也可用数据线供电,电压范围:3.0~5.5V; (c)测温范围为-55℃~+125℃,在-10~85℃时,精度为0.5℃; (d)可编程的分辨率为9~12位,对应的分辨率为0.5~0.0625℃; (e)用户可编程的温度报警设置;
(f)12位分辨率时最多在750ms内把温度值转换为数字量。
(2)DS18B20的引脚介绍
DS18B20可编程温度传感器有3个管脚。GND为接地线,DQ为数据输入输出接口,通过一个较弱的上拉电阻与单片机相连。VDD为电源接口,既可由数据线提供电源,又可由外部提供电源,范围3.O~5.5 V。本文使用外部电源供电。 (3)DS18B20的内部结构
DS18B20内部功能模块主要由4部分组成:64位光刻R0M、温度传感器、非易失性的温度报警触发器TH和TL、配置寄存器。R0M 中的64位序列号是出厂前被光刻好的,他可以看作是该DSISB20的地址序列码,每个DSI8B20的64位序列号均不相同。高低温报警触发器TH 和TL,配置寄存器均由一个字节的E2PROM组成,使用一个存储器功能命令可对 TH,TL或配置寄存器写入。配置寄存器中R1,R0决定温度转换的精度位数:R1R0=?00?,9位精度,最大转换时间为93.75 ms;R1R0 = ?01?,10位精度,最大转换时间为187.5 ms;R1R0 = ?10?,11位精度,最大转换时间为375 ms;R1R0 =?11?,12位精度,最大转换时间为750 ms;未编程时默认为12位精度。 (4)DS18B20的使用方法
由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89C52单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法
6
来模拟单总线的协议时序来完成对DS18B20芯片的访问。
DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。 (5)DS18B20的读时序
对于DS18B20的读时序分为读0时序和读1时序两个过程。其工作原理如图2.1所示。 对于DS18B20的读时序是从主机把单总线拉低之后,在15us之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20要完成一个读时序过程,至少需要60us才完成。
图2.1 DS18B20的读时序图
(6)DS18B20的写时序
对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。工作原理图如图2.2所示。
对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。
图2.2 DS18B20的写时序图
7
2.1.2 单片机AT89C52
本设计使用的是AT89C52的单片机。它是一个低电压,高性能CMOS 8位单片机,片内含8k bytes的可反复擦写的Flash只读程序存储器和256 bytes的随机存取数据存储器(RAM),器件采用ATMEL公司的高密度、非易失性存储技术生产,兼容标准MCS-51指令系统,片内置通用8位中央处理器和Flash存储单元,AT89C52单片机在电子行业中有着广泛的应用。内置功能强大的微型计算机的AT89C52提供了高性价比的解决方案。 单片机晶振电路设计:
引脚XTAL1和XTAL2分别是此放大器的输入端和输出端。这个放大器与回馈组件的片外石英晶体或陶瓷谐振器构成一个自激振荡器。外接晶体以及电容C5和C6构成并联谐振电路,接在放大器的反馈回路中。对外接电容值虽然没有严格的要求,但是电容的大小多少会影响振荡器频率的高低、荡器的稳定性、震的快速性和温度稳定性。本设计c5和c6采用的电容值约为30PF,晶振电路如图2.3所示:
图2.3 晶振电路图
单片机复位电路的设计:
复位电路的实现可以有很多种方法,但是从功能上一般分为两种:一种是电源复位,即外部的复位电路在系统通上电源之后直接使单片机工作,单片机的起停通过电源控制;另一种方法是在复位电路中设计按键开关,通过按键开关触发复位电平,控制单片机的复位。本设计使用了第一种方法,其电路图如图2.4所示。
8
图2.4 复位电路
2.1.3 LCD1602液晶屏
本设计中由于要对温度进行显示,所以选择液晶显示屏1602模块作为输出。1602字符型LCD通常有14条引脚线或16条引脚线的LCD,多出来的2条线是背光电源线。它可以显示两行,每行16个字符,采用单+5V电源供电,外围电路配置简单,价格便宜,具有很高的性价比。1602液晶模块内部的字符发生存储器(CGROM)已经存储了160个不同的点阵字符图形,这些字符有:阿拉伯数字、英文字母的大小写、常用的符号、和日文假名等,每一个字符都有一个固定的代码,比如大写的英文字母“A”的代码是01000001B(41H),显示时模块把地址41H中的点阵字符图形显示出来,我们就能看到字母“A”。 管脚功能如表2.1所示:
9
表2.1 LCD1602引脚功能
编号 1 2 3 4 5 6 8-14 15 16
符号 VSS VDD VL RS R/W E D0-D7 BLA BLK
引脚说明 电源地 电源正极 液晶显示偏压信号 数据/命令选择端 读/写选择端 使能信号 Data I/O 背光源正极 背光源负极
LCD1602主要管脚介绍:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高,对比度过高时会产生鬼影使用时可以通过一个10K的电位器调整对比度。RS为寄存器选择端,高电平时选择数据寄存器,低电平时选择指令寄存器。R/W为读写信号线端,高电平时进行读操作,低电平时进行写操作。当RS和R/W共同为低电平时可以写入指令或者显示地址;当RS为高电平R/W 为低电平时可以写入数据。E为使能端,当E端由高电平跳变成低电平时,液晶模块执行命令。 2.1.4 超声波测距仪
此模块目标是利用HC-SR04超声波测距模块测量距离。通过超声波发射器向某一方向发射超声波,在发射时刻同时开始计时,超声波在空气中传播,途中遇到障碍物就立即返回来,超声波接收器接收到反射波就立即停止计时。超声波在空气中的传播速度为c(本次设计默认值为340m/s),从超声波信号发送到接收器接收到返回信号所用的时间为t,由此可以计算出超声波发射点距障碍物的距离s。计算公式:s=(c×t)/2其中,s为被测物与测距仪的距离,c为声速,t为声波往返所用的时间。要设计出超声波测距仪,首先超声波传感器发射部分发射超声波信号的同时要让定时器0开始计时;再要让超声波传感器接受部分接受超声波信号的同时让定时器停止计时;最后要使计时的时间转换为测量的距离,并且要达到一定的精度。这个设计中,在发射超声波信号的同时打开了总中断,用定时器0计时,接收超声波信号的同时,用外部中断0关闭总中断,这时定时器0中断停止计时,定时器0中断定时时间定为294us(超声波传播经过0.1m所需要的时间)来计数。这样可以把测量的
10