基于单片机的温度显示器
(完整word版)基于89C52单片机和液晶显示的温度测量系统

JIANGSU TEACHERS UNIVERSITY OF TECHNOLOGY测控系统综合训练基于单片机和液晶显示的温度测量系统学院名称:电气信息工程学院专业:测控技术与仪器班级:08测控2班姓名:董亮学号:08314237指导教师:王久龙2011年12月基于单片机及液晶显示的温度测量系统摘要:本文将介绍一种基于单片机控制的数字温度测量系统,本温度计属于多功能温度计,可以软件预设置上下报警温度,当温度不在设置范围内时,可以报警。
本文设计的数字温度计具有读数方便,测温范围广,测温精确,液晶显示,适用范围宽等特点。
它的主要组成部分有:AT89C52单片机、温度传感器、温度显示电路、温度报警电路等。
关键词:温度测量;温度传感器;液晶显示;仿真目录前言 (1)第一章设计目的及设计要求 (2)1.1 设计目的 (2)1.2 设计要求 (2)第二章设计方案论证 (3)2.1 总体设计原理 (3)2.2 单片机AT89C51介绍 (3)2.3 温度传感器的选择 (5)2.4 显示元件的选择 (7)第三章硬件电路设计 (8)3.1 时钟振荡电路 (8)3.2 测温电路 (8)3.3 复位电路 (8)3.4 报警电路 (9)3.5 显示电路 (9)第四章软件设计 (10)4.1 主程序设计 (10)4.2 液晶显示程序设计 (10)4.3 温度采集程序设计 (11)第五章安装调试与分析 (12)结束语 (13)参考文献 (14)附录 (15)附录一系统仿真图 (15)附录二实物组装图 (16)附录三元器件清单 (17)附录四程序清单 (18)前言在这个信息化高速发展的时代,单片机作为一种最经典的微控制器,单片机技术已经普及到我们生活、工作、科研等各个领域,已经成为一种比较成熟的技术。
随着科技的不断进步,在工业生产中温度是常用的参数,而采用单片机来对这些参数进行测量与控制已成为当今的主流,现代社会对各种信息参数的准确度和精确度的要求也在不断增长,而如何准确而又迅速的获得这些参数就取决于现代信息基础的发展水平。
基于STC89C52单片机的数字温度计(附源代码,完美实现)

基于STC89C52单片机的数字温度计学院:信息科学与工程学院专业:电子信息科学与技术一、摘要温度的检测是工业生产中比较典型的应用之一,随着传感器在生产和生活中的更加广泛的应用,利用新型数字温度传感器实现对温度的测试与控制得到更快的开发。
本文设计了一种基于STC89C52单片机的温度检测系统,该系统将温度传感器DS18B20接在控制器的端口上,对温度进行采集,将采集到的温度值显示在1602液晶屏上。
经实验测试表明,该系统设计和布线简单,结构紧凑,有可读性高,反应速度快,测量准确,抗干扰能力强,性价比高,扩展方便等优点,具有关阔的应用前景。
关键词:STC89C52 数字温度计 DS18B20二、前言随着人民生活水平的不断提高,单片机控制无疑是人们追求的目标之一,它所给人带来的方便是不可否定的,其中数字温度计就是一个典型的例子。
单片机控制温度检测系统的温感系统主要是DS18B20芯片,该芯片由一根总线控制,电压范围为3.0v--5.5v。
DS18B20具有测温方便、测温范围广、测温精度高等特点。
出于对此类问题的探索,我们设计并制作了此温度检测系统。
本设计所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确。
其输出温度采用数字显示,主要用于对测温比较准确的场所,该设计控制器模块主要使用STC89C52单片机,测温传感模块使用DS18B20;显示模块使用1602液晶显示屏,可以只管、准确的显示所测温度值。
三、系统组成及工作原理3.1、总体设计方案经分析,将系统分为两个部分,一个是由温度传感器DS18B20组成的检测部分,另一个是由单片机和1602液晶组成的主控与显示部分。
如图所示DS18B20将检测到的数据送到单片机,单片机对接收到的数据进行处理并送到1602显示,6V电源给各个部分供电。
3.2系统单元的选择与论证3.2.1单片机控制模块的选择与论证方案一:采用XC9000系列的FPGA。
基于单片机的数字温度计的设计与实现毕业设计论文

基于单片机的数字温度计的设计与实现摘要采用单片机来对他们控制不仅具有控制方便,简单和灵活性大等优点,而且可以大幅度提高被控温度的技术指标,从而能够大大的提高产品的质量和数量。
在生产过程中,为了高效地进行生产,必须对它的主要参数,如温度、压力、流量等进行有效的控制。
传统的测温元件有热电偶和二电阻。
而热电偶和热电阻测出的一般都是电压,再转换成对应的温度,这些方法相对比较复杂,需要比较多的外部硬件支持。
我们用一种相对比较简单的方式来测量。
温度范围为-55~125 ºC,最高分辨率可达0.0625 ºC。
DS18B20可以直接读出温度值,而且采用三线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。
本文介绍一种基于AT89C51单片机的一种温度测量及报警电路,该电路采用DS18B20作为温度监测元件,测量范围0℃-~+100℃,使用七级数码管LED模块显示,能设置温度报警上下限。
正文着重给出了软硬件系统的各部分电路,介绍了集成温度传感器DS18B20的原理,AT89C51单片机功能和应用,该电路设计新颖、功能强大、结构简单。
关键词:温度测量;DS18B20 ; AT89C51Design of Digital Thermomer Based on SCMABSTRACTControlled by single-chip microcomputer to control not only to them, advantages of simplicity and flexibility, and can significantly increase the temperature specifications, which can significantly increase the quality and quantity of the products. In the process of production, in order to efficiently produce, it must be the main parameters, such as temperature, pressure, flow, and other effective control. Traditional temperature measuring component thermocouple and resistance. Are generally voltage of thermocouple and thermal resistance measured, then converted to the corresponding temperature, these methods are relatively complex and requires more external hardware support. We are in a relatively simple way to measure.-55~125 ºc temperature range, maximum resolution up to 0.0625 ºc. DS18B20 can read temperature value, and wire connected to the microcontroller, reduced external hardware circuits, low cost and ease of use features.The introduction of a cost-based AT89C51 MCU a temperatur measurement circuits, the circuits used DS18B20 high-precision temperatur sensor, measuring scope 0℃-~+100℃,can set the warning limitation, the use of Seven digital tube seven segments LED that can be display the current temperature. The paper focuses on providing a software and hardware system components circuit, introduced the theory of DS18B20, the founctions and applications of AT89C51 .This circuit design innovative, powerful, can be expansionary strong.Keywords:Temperature measurement ;DS18B20 ;AT89C51目录摘要 (I)ABSTRACT (II)第一章绪论 (1)1.1 引言 (1)1.1.1 国内外现状 (1)1.1.2 课题背景及研究意义 (2)1.2 设计内容及性能指标 (2)1.3 系统概述 (3)1.3.1 系统方案论证与比较 (3)1.3.2 系统设计原理与组成 (5)第二章开发工具Proteus与Keil (6)2.1 Proteus软件 (6)2.1.1 Proteus简介 (6)2.1.2 4大功能模块 (6)2.1.3 Proteus简单应用 (8)2.2 Keil软件 (8)2.2.1 Keil软件简介 (8)2.2.2 Keil软件调试功能 (9)第三章系统硬件设计 (10)3.1 单片机的选择 (10)3.1.1 AT89C51单片机的介绍 (10)3.1.2 AT89C51单片机主要特性 (11)3.2 温度传感器的选择 (13)3.3 硬件电路设计 (17)第四章系统软件设计 (20)4.1 各模块的程序设计 (20)4.2 Protues测温仿真 (25)4.3 系统调试 (28)4.4 结果分析 (30)结论 (31)致谢 (32)参考文献 (33)附录1 全部程序清单 (34)附录2 系统总体设计图 (41)第一章绪论1.1引言1.1.1 国内外现状温度控制系统在国内各行各业的应用虽然已经十分广泛,但从国内生产的温度控制器来讲,总体发展水平仍然不高,同日本、美国、德国等先进国家相比,仍然有着较大的差距。
基于51单片机的温度检测系统_单片机C语言课题设计报告

单片机C语言课题设计报告设计题目:温度检测电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来1摘要本课题以51单片机为核心实现智能化温度测量。
利用18B20温度传感器获取温度信号,将需要测量的温度信号自动转化为数字信号,利用单总线和单片机交换数据,最终单片机将信号转换成LCD 可以识别的信息显示输出。
基于STC90C516RD+STC90C516RD+的单片机的智能温度检测系统,的单片机的智能温度检测系统,设计采用18B20温度传感器,其分辨率可编程设计。
本课题设计应用于温度变化缓慢的空间,综合考虑,以降低灵敏度来提高显示精度。
设计使用12位分辨率,因其最高4位代表温度极性,故实际使用为11位半,位半,而温度测量范围为而温度测量范围为而温度测量范围为-55-55-55℃~℃~℃~+125+125+125℃,℃,则其分辨力为0.06250.0625℃。
℃。
设计使用LCD1602显示器,可显示16*2个英文字符,显示器显示实时温度和过温警告信息,和过温警告信息,传感器异常信息设。
传感器异常信息设。
传感器异常信息设。
计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,计使用蜂鸣器做警报发生器,当温度超过当温度超过设定值时播放《卡农》,当传感器异常时播放嘟嘟音。
单片机C 语言课题设计报告语言课题设计报告电动世界,气定乾坤2目录一、设计功能一、设计功能................................. ................................. 3 二、系统设计二、系统设计................................. .................................3 三、器件选择三、器件选择................................. .................................3 3.1温度信号采集模块 (3)3.1.1 DS18B20 3.1.1 DS18B20 数字式温度传感器数字式温度传感器..................... 4 3.1.2 DS18B20特性 .................................. 4 3.1.3 DS18B20结构 .................................. 5 3.1.4 DS18B20测温原理 .............................. 6 3.1.5 DS18B20的读写功能 ............................ 6 3.2 3.2 液晶显示器液晶显示器1602LCD................................. 9 3.2.1引脚功能说明 ................................. 10 3.2.2 1602LCD 的指令说明及时序 ..................... 10 3.2.3 1602LCD 的一般初始化过程 (10)四、软件设计四、软件设计................................ ................................11 4.1 1602LCD 程序设计流程图 ........................... 11 4.2 DS18B20程序设计流程图 ............................ 12 4.3 4.3 主程序设计流程图主程序设计流程图................................. 13 五、设计总结五、设计总结................................. ................................. 2 六、参考文献六、参考文献................................. ................................. 2 七、硬件原理图及仿真七、硬件原理图及仿真......................... .........................3 7.1系统硬件原理图 ..................................... 3 7.2开机滚动显示界面 ................................... 4 7.3临界温度设置界面 ................................... 4 7.4传感器异常警告界面 (4)电气系2011级通信技术一班级通信技术一班通才达识,信手拈来通才达识,信手拈来3温度温度DS18B20 LCD 显示显示过温函数功能模块能模块传感器异常函数功能模块数功能模块D0D1D2D3D4D5D6D7XT XTAL2AL218XT XTAL1AL119ALE 30EA31PSEN29RST 9P0.0/AD039P0.1/AD138P0.2/AD237P0.3/AD336P0.4/AD435P0.5/AD534P0.6/AD633P0.7/AD732P2.7/A1528P2.0/A821P2.1/A922P2.2/A1023P2.3/A1124P2.4/A1225P2.5/A1326P2.6/A1427P1.01P1.12P1.23P1.34P1.45P1.56P1.67P1.78P3.0/RXD 10P3.1/TXD11P3.2/INT012P3.3/INT113P3.4/T014P3.7/RD17P3.6/WR 16P3.5/T115U180C51X1CRYST CRYSTAL ALC122pFC222pFGNDR110kC31uFVCCGND234567891RP1RESPACK-8VCC0.0DQ 2VCC 3GND 1U2DS18B20R24.7K LCD1LM016LLS2SOUNDERMUC八、程序清单八、程序清单................................. .................................5 一、设计功能·由单片机、温度传感器以及液晶显示器等构成高精度温度监测系统。
基于51单片机的温度检测装置的设计

基于51单片机的温度检测装置的设计一、绪论温度检测是电子技术应用的一项基本工作之一。
无论在工业生产中还是家庭日常生活中,温度检测都有着重要的作用。
设计一种简单、实用的温度检测装置,对于提高生产效率、提高安全性等方面都有着重要的作用。
目前市面上有很多种温度检测装置,如数字式温度计、红外线温度计等。
而基于51单片机的温度检测装置,由于其设计简单、易于实现、成本低廉、可靠、灵活等优点,得到了广泛的应用和研究。
二、设计目标1.能实时采集并显示当前温度值;2.具备报警功能,当温度超出设定范围时,能够及时进行报警;3.能够保存历史最高温度值,并进行显示。
三、硬件设计1.温度传感器:DS18B20;2.单片机:STC89C52;3.显示器:1602液晶显示屏;4.报警器:有源蜂鸣器。
1.温度采集与显示模块;2.温度报警模块;3.历史最高温度显示模块。
具体实现如下:1.温度采集与显示模块DS18B20_Init(); //初始化温度传感器LcdIni(); //初始化液晶显示屏然后,在一个while循环中,不断采集温度值,并将其显示在液晶显示屏上,代码如下:while(1){Ds1820Convert(); //触发温度采集Ds1820ReadTemp(temp); //读取温度值LcdCommand(0x80); //光标定位到第一行第一列LcdShowStr("Temp:"); //显示“Temp:”字样LcdShowData(temp[1]); //显示温度值的百位数LcdShowData(temp[0]); //显示温度值的十位数LcdShowData(temp[2]); //显示温度值的个位数LcdShowStr("C "); //显示“C”字母和两个空格}2.温度报警模块为了实现温度报警功能,需要定义一个阈值,并比较当前温度值是否超过了这个阈值。
如果超过了阈值,则触发报警。
基于51单片机的数字温度计

引言:数字温度计是一种基于51单片机的温度测量装置,它通过传感器感知环境的温度,并使用单片机将温度值转换为数字形式,并显示在液晶屏上。
本文将详细介绍数字温度计的设计原理、硬件连接、软件编程以及应用领域。
概述:数字温度计基于51单片机的设计理念,其基本原理是通过传感器将温度转换为电信号,然后通过ADC(模数转换器)将电信号转换为数字信号,最后使用单片机将数字信号转换为温度值。
同时,数字温度计还将温度值显示在液晶屏上,方便用户直观地了解环境温度。
正文内容:1. 硬件连接:1.1 使用温度传感器感知环境温度:常用的温度传感器有NTC热敏电阻和DS18B20数字温度传感器。
通过将传感器连接到51单片机的引脚上,可以实现对环境温度的感知。
1.2 连接ADC进行模数转换:ADC是将模拟信号转换为数字信号的关键部件。
通过将51单片机的引脚连接到ADC芯片的输入端,可以将模拟的温度信号转换为数字信号。
1.3 连接液晶屏显示温度值:通过将51单片机的引脚连接到液晶屏的控制引脚和数据引脚,可以将温度值以数字形式显示在液晶屏上。
2. 软件编程:2.1 初始化引脚和ADC:在软件编程中,需要初始化51单片机的引脚设置和ADC的工作模式。
通过设置引脚为输入或输出,以及设置ADC的参考电压和工作模式,可以确保硬件正常工作。
2.2 温度测量算法:根据传感器的工作原理和电压-温度特性曲线,可以编写相应的算法将ADC测得的电压值转换为温度值。
例如,对于NTC热敏电阻,可以使用Steinhart-Hart公式进行温度计算。
2.3 温度值显示:将温度值以数字形式显示在液晶屏上。
通过设置液晶屏的控制引脚和数据引脚,可以控制液晶屏的显示内容,并将温度值以数字形式显示在屏幕上。
3. 基于51单片机的数字温度计应用:3.1 家庭温度监测:数字温度计可以安装在家庭中的不同区域,实时监测室内温度,并通过数字显示提供直观的温度信息。
这对于家庭的舒适性和节能都有重要意义。
基于单片机的温度控制系统设计

基于单片机的温度控制系统设计一、本文概述随着科技的快速发展,温度控制在各种应用场景中,如工业制造、农业种植、智能家居等领域,都发挥着越来越重要的作用。
单片机作为一种集成度高、控制能力强、成本低的微型计算机,被广泛应用于各种控制系统中。
因此,基于单片机的温度控制系统设计成为了当前研究的热点之一。
本文旨在探讨基于单片机的温度控制系统的设计原理和实现方法。
我们将介绍温度控制系统的基本原理和设计要求,包括温度传感器的选择、温度信号的采集和处理、控制算法的设计等。
然后,我们将详细阐述基于单片机的温度控制系统的硬件设计和软件编程,包括单片机的选型、外围电路的设计、控制程序的编写等。
我们将通过实际案例的分析和实验验证,展示基于单片机的温度控制系统的实际应用效果和性能表现。
通过本文的阅读,读者可以深入了解基于单片机的温度控制系统的设计方法和实现过程,掌握温度控制的基本原理和控制算法的设计技巧,为实际应用中的温度控制系统设计提供参考和借鉴。
二、单片机基础知识单片机,即单片微型计算机(Single-Chip Microcomputer),是一种集成电路芯片,采用超大规模集成电路技术把具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种I/O口和中断系统、定时器/计时器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、A/D转换器等电路)集成到一块硅片上构成的一个小而完善的微型计算机系统,在工业控制领域广泛应用。
单片机的核心部分是中央处理器(CPU),它负责执行程序中的指令,进行算术和逻辑运算,以及控制单片机各部分的工作。
随机存储器(RAM)用于存储程序运行时的临时数据,而只读存储器(ROM)则用于存储固化的程序代码。
单片机还具备多个I/O口,用于与外部设备进行数据交换和控制。
单片机的工作原理是,当单片机加电后,会从ROM中读取程序并开始执行。
在执行过程中,CPU会根据程序中的指令,对RAM中的数据进行操作,同时控制I/O口的输入输出。
基于51单片机、K型热电偶、MAX6675的8路温度显示系统

自动化工程训练课程设计学院名称信息科学与工程学院专业班级自动化1202班姓名黎毅刚指导老师刘芳目录第一章绪论第二章方案论证2.1温度采集方案2.2显示界面方案第三章系统整体设计3.1 系统总体分析3.2设计原理第四章各个元器件及芯片简介4.1 AT89C51单片机介绍4.2 K型热电偶简介4.3 MAX6675简介4.4 LCD12864简介第五章各部分电路设计5.1温度采集电路5.2数据处理电路5.3温度显示电路5.4超限报警电路第六章心得体会附录1 硬件仿真图与运行效果展示附录2 软件代码第一章绪论在工业生产中,需要检测工艺生产线的温度,而且这个温度范围还很大。
该系统采集主要以Atmel公司的AT89C51单片机为控制处理核心,由它完成对数据的采集处理以及控制数据的无线传输。
AT89C51单片机是一种低功耗/低电压/高性能的8位单片机,片内带有一个8KB的可编程/可擦除/只读存储器。
无线收发一体数传MODEM模块PTR2000芯片性能优异,在业界居领先水平,它的显著特点是所需外围元件少,因而设计非常方便。
因此用来设计工业温度检测系统相当的合适。
在本文中,主要说明单片机与K型热电偶以及K型热电偶模数转换器—MAX6675的组合,形成单片机的温度检测系统。
包括:如何针对系统的需求选择合适的温度检测器件,如何根据选择的器件设计外围电路和单片机的接口电路,如何编写控制温度检测器件进行数据传输的单片机程序,并简要介绍数字温度传感器MAX6675的应用。
第二章方案论证2.1温度采集方案方案一:模拟温度传感器。
采用热敏电阻,将温度值转换为电压值,经运算放大器放大后送A/D转换器将模拟信号变换为数字信号,再由单片机经过比较计算得到温度值。
优点:应用广泛,特别是工程领域,采用不同的热敏电阻,可实现低温到超高温的测量。
缺点:必须采用高速高位A/D转换器,系统复杂,成本高,还以引进非线性误差,得通过软件差值修正方案二:采用集成数字温度传感器DS18B20。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
基于单片机的温度显示器目录一、设计目的 (2)二、摘要: (2)三、硬件电路设计 (2)1、单片机模块设计 (2)2、显示模块 (3)3、温度传感器 (4)四、软件设计 (5)1、ds18b20模块设计 (5)2、lcd1602显示模块 (7)3、主函数程序设计 (9)5、模拟仿真图 (10)六.参考文献 (10)一、设计目的本方案设计LCD1602显示实时温度的实验,使用基于AT89C51单片机,使用ds18b20温度传感器在lcd1602上显示温度数字二、摘要:通过lcd1602显示温度数字,程序设计使用模块化设计关键词:单片机,ds18b20,lcd1602系统三、硬件电路设计1、单片机模块设计本次设计采用的是单片机AT89C51。
芯片共有40个引脚,引脚的排列顺序为从靠芯片的缺口,如图3.1所示。
左边那列逆时针数起,依次为1,2,3.....40,其中芯片的1脚顶上有一个凹点。
在单片机的40个引脚中,电源引脚2根,外接晶体振荡器引脚2根,控制引脚4根以及4组8位可编程I/O引脚32根。
图AT89C51管脚图AT89C51单片机共有4组8位可编程I/O口,分别为P0、P1、P2、P3口,每个口有8位,共32根。
每一根引脚都可以编程,比如用来控制电机、交通灯等,开发产品时就是利用这些可编程引脚来实现我们想要的功能。
P0口:8位双向I/O口线,名称为P0.0-P0.7;P1口:8位准双向I/O口线,名称为P1.0-P1.7;P2口:8位准双向I/O口线,名称为P2.0-P2.7;P3口:8位准双向I/O口线,名称为P3.0-P3.7。
本文单片机模块如图所示,主要是由单片机芯片与晶振和复位电路组成的。
是由单片机来控制整个系统,让我们的系统可以正常的运行。
2、显示模块LM016L液晶模块采用HD44780控制器,HD44780具有功能较强而又简单的指令集,可以实现字符移动,闪烁等功能,LM016L与单片机MCU通讯可采用4位或8位并行传输两种方式,HD44780控制器是由2个8 bit的寄存器、显示数据存储(DDRAM)、指令寄存器(IR)、RAM(DR)、地址计数器RAM(AC)、忙标志(BF)、字符发生器ROMA(CGOROM)以及字符发生器RAM(CGRAM)组成。
其中,DR是用来寄存数据的;IR是用来寄存指令码的,它只能够写入而不能够读出。
其数据是由内部操作自动地写入到CGRAM和DDRAM 中来,或者是暂存从CGRAM以及DDRAM中读出的数据,BF为1时,LED模块工作于内部模式,既不会接受数据也不会响应外部的操作指令,DDTAM用来存储显示的字符,能存储80个字符码,CGROM由8位字符码生成5*7点阵字符160中和5*10点阵字符32种.8位字符编码和字符的对应关系,可以查看参考文献(30)中的表4. CGRAM是为用户编写特殊字符留用的,它的容量仅64字节,可以自定义8个5*7点阵字符或者4个5*10点阵字符,AC可以存储DDRAM和CGRAM的地址,如果地址码随指令写入IR,则IR自动把地址码装入AC,同时选择DDRAM或CGRAM但愿,LM016L液晶模块的引脚图如图3.5所示。
图3.5 1601引脚图LM016L引脚介绍:Vss(1脚):一般接地。
Vdd(2脚):接电源。
Vee(3脚):LED显示器对比度调整端口,接地时,其对比度达到最高(当对比度过高时,就会产生“鬼影”,若要正常工作,则可以通过使用一个大小为10K的电位器来调整对比度),接电源时,其对比度降至最弱。
RS(4脚):RS是寄存器选择端口。
当接低电平时,选择指令寄存器;接高电平时,选择数据寄存器。
R/W(5脚):R/W为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。
E(6脚):E(或EN)端为使能(enable)端,下降沿使能。
Lcd1602与单片机的接口3、温度传感器DS18B20产品的特点(1)、只要求一个端口即可实现通信。
(2)、在DS18B20中的每个器件上都有独一无二的序列号。
(3)、实际应用中不需要外部任何元器件即可实现测温。
(4)、测量温度范围在-55。
C到+125。
C之间。
(5)、数字温度计的分辨率用户可以从9位到12位选择。
(6)、内部有温度上、下限告警设置。
DS18B20的引脚介绍TO-92封装的DS18B20的引脚排列见图1,其引脚功能描述见表1四、软件设计1、ds18b20模块设计Ds18b20.h#ifndef __DS18B20_H__#define __DS18B20_H__#include<reg51.h>#include<intrins.h>//---重定义关键词---//#ifndef uchar#define uchar unsigned char#endif#ifndef uint#define uint unsigned int#endifsbit DQ=P3^7;#define delay_4us(); { _nop_( ); _nop_( ); _nop_( ); _nop_( );}uchar init_ds18b20();uchar readbyte();void writebyte(uchar dat);uchar read_tem();void delay_ms(uchar i);void delay_8us(uchar i);#endifDs18b20.c#include"ds18b20.h"int temp;void delay_8us(uchar i){while(i--);}void delay_ms(uchar i){uchar m;while(i--){for(m=0;m<120;m++);}}uchar init_ds18b20( ){uchar status;DQ=1; delay_8us(8);DQ=0; delay_8us(90);DQ=1; delay_8us(5);status =DQ; delay_8us(90);DQ=1;return status;}void writebyte(uchar dat){uchar i;for(i=0;i<8;i++){DQ=0; dat>>=1;DQ=CY; delay_8us(8);DQ=1;}}uchar readbyte(){uchar i,dat=0x00;for(i=0x01;i!=0x00;i<<=1){DQ=0;_nop_();DQ=1;_nop_();if(DQ) dat=dat|i;delay_8us(8);DQ=1;}return dat;}uchar read_tem(){uchar tml,tmh;if(init_ds18b20()==1) return 0;else{writebyte(0XCC);writebyte(0X44);delay_8us(500);init_ds18b20();writebyte(0XCC);writebyte(0XBE);tml=readbyte();tmh=readbyte();temp = tmh;temp <<= 8;temp |= tml;return 1;}}2、lcd1602显示模块Lcd1602.h#ifndef __LCD1602_H__#define __LCD1602_H__#include<reg51.h>#include<intrins.h>//---重定义关键词---//#ifndef uchar#define uchar unsigned char#endif#ifndef uint#define uint unsigned int#endifsbit rs=P2^6;sbit rw=P2^5;sbit en=P2^7;void delay(uchar ms);void busy_wait();void write_lcd_command(uchar cmd);void write_lcd_data(uchar dat);void init_lcd();void lcd_showstring(uchar r,uchar c,uchar *str); #endifLcd1602.c#include"lcd1602.h"code uchar ddram[]={0x80,0xc0};void delay(uchar ms){uchar i;while(ms--)for(i=0;i<10;i++);}void busy_wait(){uchar lcd_status;do{P0=0xff;en=0;rs=0;rw=1;en=1;lcd_status=P0;en=0;}while(lcd_status&0x80);}void write_lcd_command(uchar cmd){busy_wait();en=0;rs=0;rw=0;P0=cmd;en=1;_nop_();en=0;}void write_lcd_data(uchar dat){busy_wait();en=0;rs=1;rw=0;P0=dat;en=1;_nop_();en=0;}void init_lcd(){write_lcd_command(0x38); delay(1);write_lcd_command(0x01); delay(1);write_lcd_command(0x06); delay(1);write_lcd_command(0x0c); delay(1);}void lcd_showstring(uchar r,uchar c,uchar *str){uchar i=0;write_lcd_command(ddram[r]|c);for(i=0;str[i]&&i<16;i++)write_lcd_data(str[i]);for(;i<16;i++)write_lcd_data(' ');}3、主函数程序设计Main.c#include<stdio.h>#include"ds18b20.h"#include"lcd1602.h"extern temp;uchar temp_buff[17];extern int temp;void main(){float n=0.0;init_lcd();lcd_showstring(0,0," DS18B20 TEST ");lcd_showstring(1,0," Waiting...") ;read_tem();delay_ms(1500);while(1){if(read_tem()){n=temp*0.0625;sprintf(temp_buff,"TEMP: %5.1f \Xdf\x43",n);lcd_showstring(1,0,temp_buff) ;}else{sprintf(temp_buff,"error ");lcd_showstring(1,0,temp_buff) ;}delay_ms(50);}}5、模拟仿真图六.参考文献[1] 欧伟明,何静,凌云,刘剑.单片机原理与应用系统设计[M].北京:电子工业出版社,2009:268-298.[2] 楼然苗,李光飞.单片机课程设计指导[M].北京:北京航空航天大学出版社,2007.7:15-36.[3] 林伸茂.8051单片机彻底研究——实习篇[M].北京:中国电力出版社,2006:12-38.[4] 张萌,和湘,姜斌.单片机应用系统开发综合实例[M].北京:清华大学出版社,2007.7:23-46.[5] 鲍可.C8051F单片机原理及应用[M].北京:中国电力出版社,2006.1:56-65[6] 谭浩强.C程序设计[M].北京:清华大学出版社,2005:18-62.[7] 彭伟单片机C语言程序设计实训100例—基于8051+proteus仿真2012.10[8]赵广元proteus辅助的单片机原理实践——基础设计、课程设计。