当前位置:文档之家› (完整word版)基于单片机的DS18B20设计实验报告

(完整word版)基于单片机的DS18B20设计实验报告

(完整word版)基于单片机的DS18B20设计实验报告
(完整word版)基于单片机的DS18B20设计实验报告

第1章引言

在日常生活及工农业生产中经常要涉及到温度的检测及控制,传统的测温元件有热点偶,热敏电阻还有一些输出模拟信号得温度传感器,而这些测温元件一般都需要比较多的外部硬件支持。其硬件电路复杂,软件调试繁琐,制作成本高,阻碍了其使用性。因此美国DALLAS半导体公司又推出了一款改进型智能温度传感器——DS18B20。本设计就是用DS18B20数字温度传感器作为测温元件来设计数字温度计。

本设计所介绍的数字温度计与传统温度计相比,具有读数方便,测温范围广,测温准确,其输出温度采用数字显示,主要用于测温比较准确得场所,或科研实验室使用。该设计控制器使用单片机STC89C51,测温传感器使用DS18B20,显示器使用LED.

第2章任务与要求

2.1测量范围-50~110°C,精确到0.5°C;

2.2利用数字温度传感器DS18B20测量温度信号;

2.3所测得温度采用数字显示,计算后在液晶显示器上显示相应得温度值;

第3章方案设计及论证

3.1温度检测模块的设计及论证

由于本设计是测温电路,可以使用热敏电阻之类的器件利用其感温效应,在将随被测温度变化的电压或电流采集过来,进行A/D转换后,就可以用单片机进行数据的处理,在显示电路上,就可以将被测温度显示出来,这种设计需要用到A/D转换电路,其中还涉及到电阻与温度的对应值的计算,感温电路比较麻烦。而且在对采集的信号进行放大时容易受温度的影响出现较大的偏差。进而考虑到用温度传感器,在单片机电路设计中,大多都是使用传感器,所以这是非常容易想到的,所以可以采用一只温度传感器DS18B20,此传感器,可以很容易直接读取被测温度值,进行转换,电路简单,精度高,软硬件都以实现,而且使用单片机的接口便于系统的再扩展,满足设计要求。

3.2显示模块的设计及论证

LED是发光二极管Light Emitting Diode 的英文缩写。LED显示屏是由发光二极管排列组成的一显示器件。它采用低电压扫描驱动,具有如下优点:1、耗电省、2、使用寿命长、3、成本低、4、亮度高、5、视角大、6、可视距离远、7、规格品种多。

3.3控制器模块的设计及论证

单片机是指一个集成在一块电路芯片上的完整计算机系统。尽管他的大部分功能集成在一块小芯片上,但是它具有一个完整计算机所需要的大部分部件:中央处理单元CPU、存储器/RAMROM和各种/IO接口,目前大部分还会具有外部存储扩展。采用STC89C52单片机。它是一种带8K字节闪烁可编程可擦除只读存储器的低电压,高性能CMOS8的微处理器。该器件采用ATMEL高密度非易失存储器技术制造,与工业标准51MCS指令集和输出管脚相兼容。属于51单片机系列,是C51单片机向下完全兼容51全部系列产品。该款单片机片内含8k Bytes ISP(I-system programmable)可反复擦写1000次的Flash只读存储器,可以通过串口进行程序的烧写,内带2k Bytes EEPROM存储空间,4个8位的可编程并行I/O口(P0口,P1口,P2口,P3口),一个全双工串口,5个中断源,2级中断优先权,3个16位的定时器/计数器),具有四种工作方式以及

特殊功能寄存器(SFR)等。

3.4数字温度计总体设计

第4章硬件设计

4.1主控制器模块电路

4.1.1 STC89C52主要功能及引脚介绍

单片机STC89C52具有低电压供电高性能COMS8位单片机,片内含有8K bytes 的可反复擦写的Flash只读程序存储器和256bytes 的随机存取数据存储器,在单芯片上,拥有灵巧的8 位CPU 和在线系统可编程Flash,使得STC89C52为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。

STC89C52具有以下标准功能: 8k字节Flash,256字节RAM, 32位I/O 口线,看门狗定时器,2个数据指针,三个16位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,STC89C52可降至0Hz静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU 停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。8位微控制器8K字节在系统可编程 Flash。图4-1为STC89C52的引脚图:

其各引脚介绍如下:

P0 口:P0口是一个8位漏极开路的双向I/O口。作为输出口,每位能驱动8个

TTL逻辑电平。对P0端口写“1”时,引脚用作高阻抗输入。当访问外部程序和数据存储器时,P0口也被作为低8位地址/数据复用。在这种模式下, P0具有内部上拉电阻。在flash编程时,P0口也用来接收指令字节;在程序校验时,输出指令字节。程序校验时,需要外部上拉电阻。

P1 口:P1 口是一个具有内部上拉电阻的8 位双向I/O 口,p1 输出缓冲器能驱动4 个 TTL 逻辑电平。对P1 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。此外,P1.0和P1.2分别作定时器/计数器2的外部计数输入(P1.0/T2)和时器/计数器2 的触发输入(P1.1/T2EX),具体如下表所示。在flash 编程和校验时,P1口接收低8位地址字节。

引脚号第二功能:

P1.0 T2(定时器/计数器T2的外部计数输入),时钟输出

P1.1 T2EX(定时器/计数器T2的捕捉/重载触发信号和方向控制)

P1.5 MOSI(在线系统编程用)

P1.6 MISO(在线系统编程用)

P1.7 SCK(在线系统编程用)

P2 口:P2 口是一个具有内部上拉电阻的8 位双向I/O 口,P2 输出缓冲器能驱动4 个 TTL逻辑电平。对P2 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。在访问外部程序存储器或用16位地址读取外部数据存储器(例如执行MOVX @DPTR)时,P2 口送出高八位地址。在这种应用中,P2 口使用很强的内部上拉发送1。在使用 8位地址(如MOVX @RI)访问外部数据存储器时,P2口输出P2锁存器的内容。在flash编程和校验时,P2口也接收高8位地址字节和一些控制信号。

P3 口:P3 口是一个具有内部上拉电阻的8 位双向I/O 口,p2 输出缓冲器能驱动4 个 TTL 逻辑电平。对P3 端口写“1”时,内部上拉电阻把端口拉高,此时可以作为输入口使用。作为输入使用时,被外部拉低的引脚由于内部电阻的原因,将输出电流(IIL)。 P3口亦作为STC89C52特殊功能(第二功能)使用,如下表所示。在flash编程和校验时,P3口也接收一些控制信号。

端口引脚第二功能: P3.0 RXD(串行输入口)

P3.1 TXD(串行输出口)

P3.2 INTO(外中断0)

P3.3 INT1(外中断1)

P3.4 TO(定时/计数器0)

P3.5 T1(定时/计数器1)

P3.6 WR(外部数据存储器写选通)

P3.7 RD(外部数据存储器读选通)

RST——复位输入。当振荡器工作时,RST引脚出现两个机器周期以上高电平,则单片机复位。

4.1.2 STC89C52最小系统的基本电路

最小系统是指能进行正常工作的最简单电路。STC89C52最小应用系统它包含五个电路部分:电源电路、时钟电路、复位电路、片内外程序存储器选择电路、输入输出接口电路。其中电源电路、时钟电路、复位电路是保证单片机系统能够正常工作的最基本的三部分电路,缺一不可。

(1)电源电路

芯片引脚VCC一般接上直流稳压电源+5V,引脚GND接电源+5V的负极,电源电压范围在4—5.5之间,可保证单片机系统能正常工作。为提高电路的抗干扰性能,通常在引脚VCC和GND直接接上一个10μF的电解电容和一个0.1μF陶片电容,这样可以抑制杂波串扰,从而有效确保电路稳定性。

(2)时钟电路

STC89C52内部有一个用于构成振荡器的高增益反相放大器,引脚RXD和TXD分别是此放大器的输入端和输出端。时钟可以由内部方式产生或外部方式产生。在RXD和TXD引脚上外接定时元件,内部振荡器就产生自激振荡。定时元件通常采用石英晶体和电容组成的并联谐振回路。晶体振荡频率可以在1.2~12MHz之间选择,电容值在5~30pF之间选择,电容值的大小可对频率起微调的作用。

在本设计中时钟采用内部方式产生,晶振振荡频率使用12MHZ。

4.1.3 STC89C52与各部分功能块电路的连接

其中P0.0-P0.7,P2.0-P2.7,P3.0-P3.7接串口输入输出端,PI.0接DS18B20的DQ 端,XTAL2,XYAL1接晶振,P0口还接上拉电阻:EA*接电源.

4.2显示电路模块

MT05011AR的引脚图

4.3 DS18B20温度显示模块

4.3.1 DS18B20的功能和引脚介绍

DS18B20的性能特点如下:

●独特的单线接口仅需要一个端口引脚进行通信;

●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;

●无须外部器件;

●可通过数据线供电,电压范围为3.0-5.5V;

●温度以9或12位数字读数;

●零待机功耗;

●用户可定义报警设置;

●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;

●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20详细引脚功能描述如下表所示

4.3.2 DS18B20的测温原理

DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。

4.3.1 DS18B20温度传感器与单片机的接口电路

DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20

的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用一个MOSFET管来完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。

第5章软件设计

5.1主程序流程图

主程序的主要功能是负责温度的实时显示、读出并处理DS18B20的测量的当前温度值,温度在一定时间间隔下进行一次。这样可以在一定时间之内测量一次被测温度,其程序流程如下图所示:

5.2读出温度子程序流程图

读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC 校验,校验有错时不进行温度数据的改写。其程序流程图如下图所示:

5.3 温度转换命令子流程图

温度转换命令子程序主要是发温度转换开始命令,开始执行如下。温度转换命令子程序流程图如下图所示:

5.4 温度计算子流程图

将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其流程图如下所示:

第6章系统调试与结果

6.1 调试

系统的调试以程序为主。硬件调试比较简单,首先检查电路的焊接是否正确,然后可用万用表测试或通电检测。软件调试则可以先编写显示程序并进行硬件的正确行检验,然后分别进行主程序、度温度子程序、显示子程序、报警子程序等的编程及调试,由于DS18B20与单片机采用串行数据的传送,因此,对DS18B20进行读写编程时必须严格地保证读写时序,否则将无法读取测量结果。本程序采用单片机C语言编写,用Keil C51编译器编程调试,软件调试直到能够显示温度值,而且在有温度变化时显示温度能改变,并在预设范围内正常显示,超过预设范围时蜂鸣器产生报警信号,直到温度在预设范围内蜂鸣器停止报警,温度正常显示,此时软件调试基本完成

6.2 结果

仿真结果如图:

硬件焊接结果:

LED灯亮,但温度不显示.引脚连接正确。

相关主题
文本预览
相关文档 最新文档