基于单片机的DS18B20设计实验报告.docx
- 文档编号:3964608
- 上传时间:2022-11-26
- 格式:DOCX
- 页数:10
- 大小:310.02KB
基于单片机的DS18B20设计实验报告.docx
《基于单片机的DS18B20设计实验报告.docx》由会员分享,可在线阅读,更多相关《基于单片机的DS18B20设计实验报告.docx(10页珍藏版)》请在冰豆网上搜索。
基于单片机的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.2STC89C52 最小系统的基本电路
最小系统是指能进行正常工作的最简单电路。
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.3DS18B20温度显示模块
4.3.1DS18B20的功能和引脚介绍
DS18B20的性能特点如下:
●独特的单线接口仅需要一个端口引脚进行通信;
●多个DS18B20可以并联在惟一的三线上,实现多点组网功能;
●无须外部器件;
●可通过数据线供电,电压范围为3.0-5.5V;
●温度以9或12位数字读数;
●零待机功耗;
●用户可定义报警设置;
●报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;
●负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作; DS18B20详细引脚功能描述如下表所示
4.3.2DS18B20的测温原理
DS18B20的测温原理是这这样的,器件中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1;高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。
器件中还有一个计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数进而完成温度测量。
计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基数分别置入减法计数器1、温度寄存器中,计数器1和温度寄存器被预置在-55℃所对应的一个基数值。
减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。
其输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。
4.3.1DS18B20温度传感器与单片机的接口电路
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灯亮,但温度不显示.引脚连接正确。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 DS18B20 设计 实验 报告