基于液晶显示的单片机温度控制设计
基于单片机的室内温度控制系统设计与实现

基于单片机的室内温度控制系统设计与实现1. 本文概述随着科技的发展和人们生活水平的提高,室内环境的舒适度已成为现代生活中不可或缺的一部分。
作为室内环境的重要组成部分,室内温度的调控至关重要。
设计并实现一种高效、稳定且经济的室内温度控制系统成为了当前研究的热点。
本文旨在探讨基于单片机的室内温度控制系统的设计与实现,以满足现代家居和办公环境的温度控制需求。
本文将首先介绍室内温度控制系统的研究背景和意义,阐述其在实际应用中的重要性和必要性。
随后,将详细介绍基于单片机的室内温度控制系统的设计原理,包括硬件设计、软件编程和温度控制算法等方面。
硬件设计部分将重点介绍单片机的选型、传感器的选取、执行机构的搭配等关键环节软件编程部分将介绍系统的程序框架、主要功能模块以及温度数据的采集、处理和控制逻辑温度控制算法部分将探讨如何选择合适的控制算法以实现精准的温度调控。
在实现过程中,本文将注重理论与实践相结合,通过实际案例的分析和实验数据的验证,展示基于单片机的室内温度控制系统的实际应用效果。
同时,还将对系统的性能进行评估,包括稳定性、准确性、经济性等方面,以便为后续的改进和优化提供参考。
本文将对基于单片机的室内温度控制系统的设计与实现进行总结,分析其优缺点和适用范围,并对未来的研究方向进行展望。
本文旨在为读者提供一种简单、实用的室内温度控制系统设计方案,为相关领域的研究和实践提供有益的参考。
2. 单片机概述单片机,也被称为微控制器或微电脑,是一种集成电路芯片,它采用超大规模集成电路技术,将具有数据处理能力的中央处理器CPU、随机存储器RAM、只读存储器ROM、多种IO口和中断系统、定时器计数器等功能(可能还包括显示驱动电路、脉宽调制电路、模拟多路转换器、AD转换器等电路)集成到一块硅片上,构成一个小而完善的微型计算机系统。
单片机以其体积小、功能齐全、成本低廉、可靠性高、控制灵活、易于扩展等优点,广泛应用于各种控制系统和智能仪器中。
基于单片机的温度控制系统设计原理

基于单片机的温度控制系统设计原理基于单片机的温度控制系统设计概述•温度控制系统是在现代生活中广泛应用的一种自动控制系统。
它通过测量环境温度并对温度进行调节,以维持设定的温度范围内的稳定状态。
本文将介绍基于单片机的温度控制系统的设计原理。
单片机简介•单片机是一种集成电路芯片,具有强大的计算能力和丰富的输入输出接口。
它可以作为温度控制系统的核心控制器,通过编程实现温度的测量和调节功能。
温度传感器•温度传感器是温度控制系统中重要的部件,用于测量环境温度。
常见的温度传感器有热敏电阻、热电偶和数字温度传感器等。
在设计中,需要选择适合的温度传感器,并通过单片机的模拟输入接口对其进行连接。
温度测量与显示•单片机可以通过模拟输入接口读取温度传感器的信号,并进行数字化处理。
通过数值转换算法,可以将传感器输出的模拟信号转换为温度数值,并在显示器上进行显示。
常见的温度显示方式有数码管和LCD等。
温度控制算法•温度控制系统通常采用PID(比例-积分-微分)控制算法。
这种算法通过比较实际温度和设定温度,计算出调节量,并通过输出接口控制执行机构,实现温度的调节。
在单片机程序中,需要编写PID控制算法,并根据具体系统进行参数调优。
执行机构•执行机构是温度控制系统中的关键部件,用于实际调节环境温度。
常见的执行机构有加热器和制冷器。
通过单片机的输出接口,可以控制执行机构的开关状态,从而实现温度的调节。
界面与交互•温度控制系统还可以配备界面与交互功能,用于设定目标温度、显示当前温度和执行机构状态等信息。
在单片机程序中,可以通过按键、液晶显示屏和蜂鸣器等外设实现界面与交互功能的设计。
总结•基于单片机的温度控制系统设计涉及到温度传感器、温度测量与显示、温度控制算法、执行机构以及界面与交互等多个方面。
通过合理的设计和编程实现,可以实现对环境温度的自动调节,提高生活和工作的舒适性和效率。
以上是对基于单片机的温度控制系统设计原理的简要介绍。
基于单片机的温度智能控制系统的设计与实现共3篇

基于单片机的温度智能控制系统的设计与实现共3篇基于单片机的温度智能控制系统的设计与实现1基于单片机的温度智能控制系统的设计与实现随着人们对生活质量的需求越来越高,温度控制变得愈发重要。
在家庭、医院、实验室、生产车间等场合,温度控制都是必不可少的。
本文将介绍一种基于单片机的温度智能控制系统的设计与实现。
设计思路本文所设计的温度智能控制系统主要由单片机、温度传感器、继电器和液晶屏幕等部件组成。
其中,温度传感器负责采集温度数据,单片机负责处理温度数据,并实现温度智能控制功能。
继电器用于控制加热设备的开关,液晶屏幕用于显示当前温度和系统状态等信息。
在实现温度智能控制功能时,本设计采用了PID控制算法。
PID控制算法是一种经典的控制算法,它基于目标值和当前值之间的误差来调节控制量,从而实现对温度的精确控制。
具体来说,PID控制器包含三个部分:比例控制器(P)用于对误差进行比例调节,积分控制器(I)用于消除误差的积累,微分控制器(D)用于抑制误差的未来变化趋势。
这三个控制器的输出信号加权叠加后,作为继电器的控制信号,实现对加热设备的控制。
系统实现系统硬件设计在本设计中,我们选择了常见的AT89S52单片机作为核心控制器。
该单片机运行速度快、稳定性好,易于编程,并具有较强的扩展性。
为了方便用户调节温度参数和查看当前温度,我们还选用了4 * 20的液晶屏。
温度传感器采用LM35型温度传感器,具有高精度、线性输出特性,非常适用于本设计。
系统电路图如下所示:系统软件设计在单片机的程序设计中,我们主要涉及到以下几个部分:1. 温度采集模块为了实现温度智能控制功能,我们首先需要获取当前的温度数据。
在本设计中,我们使用了AT89S52单片机的A/D转换功能,通过读取温度传感器输出的模拟电压值,实现对温度的采集。
采集到的温度数据存储在单片机的内部存储器中,以供后续处理使用。
2. PID控制模块PID控制模块是本设计的核心模块,它实现了对温度的精确控制。
基于单片机的空调温度控制系统设计毕业论文(设计)word格式

基于单片机的空调温度控制系统设计作者姓名:杨耀武专业名称:信息工程指导教师:黄宇讲师摘要在自动控制领域中,温度检测与控制占有很重要地位。
温度测控系统在工农业生产、科学研究和在人们的生活领域,也得到了广泛应用。
因此,温度传感器的应用数量居各种传感器之首。
目前,温度传感器正从模拟式向数字集成式方向飞速发展。
本论文概述了温控器的发展及基本原理,介绍了温度传感器的原理及特性。
分析了DS18B20温度传感器的优劣。
在此基础上描述了系统研制的理论基础,温度采集等部分的电路设计,并对测温系统的一些主要参数进行了讨论。
同时在介绍温度控制系统功能的基础上,提出了系统的总体构成。
针对测温系统温度采集、接收、处理、显示部分的总体设计方案进行了论证,进一步介绍了单片机在系统中的应用,分析了系统各部分的硬件及软件实现。
利用Proteus7.6进行了可行性的仿真,利用单片机开发板验证在实际电路中能起到的效果。
试验证明,这套温度控制器具有较强的可操作性,很好的可拓展性,控制简单方便。
课题初步计划是在普通环境下的测温,系统的设计及器件的选择也正是在这个基础上进行的。
关键词:DS18B20 单片机温度控制1602液晶显示AbstractIn the automatic control area,temperature monitoring and controling have a very important position. The temperature monitoring system has a wildly applying in industry, agriculture, science reasearching and daily life of people. Therefore, the number of applying of the temperature monitoring comes first of all kinds of sensor. At present, the temperature monitoring is transformed from analog type to digital integrated type with a very fast speed.This paper introduces the developing and fundamental of the temperature monitoring, including the character of this kind of sensor. It also analyses the advantage and disadvantage of the temperature monitoring which named DS18B20. On that basis, the paper also has a further analysis of the theoretical basis of the system developing and the circuit design of temperature monitoring. Besides, some discussions about the important parameters also took on desk. At the same time, the auther of this paper also puts forward the composition of totality about this system, which including the different function of the thermometer system. Then a detailed analysis which is about the applying of Microcontrollers and the applying of different parts made by different hardwares and softwares in the system. In order to check the maneuverability and the expansibility of the Microcontrollers system, the auther used Proteus 7.6 to do the testing and got a pretty good result.This system puts the temperature measured in normal situation as a confirm condition. All design and selection of component is also based on this suppose.keywords: DS18B20, Microcontrollers, Temeperature Controling, 1602 Liquid Crystal Display目录摘要 (I)Abstract ......................................................................................... I I 目录 .............................................................................................. I II 前言 .. (1)1 系统总体设计方案及功能 (2)1.1 温度传感器产品分类与选择 (2)1.1.1 常用的测温方法 (2)1.1.2 温度传感器产品分类 (2)1.1.3 温度传感器的选择 (4)1.2 总体方案的确定 (6)1.3 系统实现框图 (7)2 系统单元电路设计 (7)2.1 系统工作原理 (7)2.2 系统相关硬件及模块介绍 (8)2.2.1 温度采集电路 (8)2.2.2 信号处理与控制电路 (9)2.2.3 温度显示电路 (10)2.2.4 按键功能设置电路 (11)2.2.5 继电器控制电路 (12)2.2.6 存储数据电路 (12)2.2.7 报警、音乐电路 (13)2.2.8 电动机电路 (13)3 仿真软件介绍 (15)3.1 Keil uVision2软件 (15)3.2 Proteus软件 (16)4 系统硬件设计 (18)5 系统软件设计 (20)5.1 DS18B20数据通信概述 (20)5.2 LCD1602液晶数据显示概述 (23)5.2.1 接口信号说明 (23)5.2.2 控制器接口说明 (23)5.2.3 控制接口时序说明 (25)5.3 存储器24C02数据存储概述 (26)5.3.1 I2C 总线的定义 (26)5.3.2 I2C 总线的时序 (27)5.3.3 数据传送 (27)5.4 软件程序设计 (28)6 仿真及实验结果 (31)6.1 程序调试过程中遇到的问题及解决办法 (31)6.2 调试结果 (32)总结 (34)致谢 (35)参考文献 (36)附件1 系统硬件电路图 (37)附件2 系统软件程序 (38)前言现代信息技术的三大基础是信息采集控制(即温度控制器技术)、信息传输(通信技术)和信息处理(计算机技术)。
基于单片机的水温控制器设计

基于单片机的水温控制器设计引言水温控制在很多领域中都具有重要的应用价值,例如温室、鱼缸、热水器等。
基于单片机的水温控制器能够自动调控水温,提高水温的稳定性和准确性。
本文将介绍如何设计一个基于单片机的水温控制器,以实现对水温的精确控制。
一、硬件设计1.单片机选择选择一个合适的单片机对于设计一个稳定可靠的水温控制器至关重要。
常用的单片机有STC89C52、AT89C52等。
在选择时应考虑单片机的性能、功耗、接口等因素。
2.温度传感器温度传感器用于检测水温,常用的有NTC热敏电阻和DS18B20数字温度传感器。
NTC热敏电阻价格便宜,但精度较低,DS18B20精度高,但价格相对较贵。
3.加热装置加热装置用于根据温度控制器的输出信号进行加热或制冷。
可以选择加热丝、加热管或半导体制冷片等。
4.驱动电路驱动电路用于将单片机的输出信号转换为合适的电流或电压,驱动加热装置。
可以选择晶体管或继电器等。
5.显示模块可以选择液晶显示屏或LED数码管等显示水温的数值。
二、软件设计1.初始化设置首先,对单片机进行初始化设置,包括引脚配置、定时器设置等。
然后,设置温度传感器和加热装置的引脚。
最后,设置温度范围,以便根据实际需求进行调整。
2.温度检测使用温度传感器检测水温,并将读取到的温度值转换为数字形式,以便进行比较和控制。
可以使用ADC(模拟-数字转换)模块转换模拟信号为数字信号。
3.控制算法本设计中可以采用PID控制算法进行水温控制。
PID(Proportional-Integral-Derivative)控制算法根据设定值和反馈值之间的差异来计算控制信号。
可以根据需求进行参数调整,以获得更好的控制效果。
4.显示和报警使用显示模块显示当前水温的数值,并在温度超出设定值时触发报警功能。
报警可以采用声音、灯光等形式。
5.控制输出根据PID算法计算出的控制信号,控制驱动电路,驱动加热装置或制冷装置,以实现水温的调节。
总结基于单片机的水温控制器能够实现对水温的精确控制。
单片机基于51单片机温度控制设计简介

单片机基于51单片机温度控制设计简介一、引言本文将介绍基于51单片机的温度控制设计,其中包括硬件设计和软件设计两个部分。
温度控制是工业自动化中非常重要的一部分,其应用范围非常广泛,如冷库、温室、恒温水槽等。
本文所介绍的温度控制设计可广泛应用于各种场合。
二、硬件设计1.传感器部分本设计采用DS18B20数字温度传感器,其具有精度高、抗干扰能力强等优点。
传感器的输出信号为数字信号,与51单片机通信采用单总线方式。
2.控制部分本设计采用继电器控制加热器的开关,继电器的控制信号由51单片机输出。
同时,为了保证控制精度,本设计采用PID控制算法,其中P、I、D系数均可根据实际情况进行调整。
3.显示部分本设计采用LCD1602液晶显示屏,可显示当前温度和设定温度。
4.电源部分本设计采用12V直流电源供电,其中需要注意的是,由于继电器的电流较大,因此需要采用稳压电源。
三、软件设计1.初始化在程序开始运行时,需要对各个模块进行初始化,包括DS18B20传感器、LCD1602液晶显示屏和PID控制器等。
2.采集温度程序需要不断地采集温度,通过DS18B20传感器获取当前温度值,并将其显示在LCD1602液晶显示屏上。
3.控制加热器根据当前温度和设定温度的差值,通过PID控制算法计算出控制信号,控制继电器的开关,从而控制加热器的加热功率。
4.调整PID参数为了保证控制精度,需要不断地调整PID控制算法中的P、I、D系数,以达到最优控制效果。
四、总结基于51单片机的温度控制设计,可以实现对温度的精确控制,具有应用广泛、控制精度高等优点。
本文所介绍的硬件设计和软件设计,可供读者参考和借鉴,同时也需要根据实际情况进行调整和改进。
温度控制系统课程设计

温度控制系统课程设计一、引言温度控制系统是一种常见的自动化控制系统,广泛应用于工业生产、农业生产、医疗保健等领域。
本课程设计旨在通过设计一个基于单片机的温度控制系统,让学生了解自动化控制系统的基本原理和实现方法。
二、设计目标本课程设计的主要目标是设计一个基于单片机的温度控制系统,具体包括以下方面:1. 实现温度测量功能:通过传感器获取环境温度,并将数据转换为数字信号,供单片机处理。
2. 实现温度调节功能:根据设定温度和当前环境温度,通过单片机输出PWM信号调节加热器功率,从而实现对环境温度的调节。
3. 实现显示功能:将当前环境温度和设定温度以数字形式显示在LCD 屏幕上。
4. 实现报警功能:当环境温度超过设定范围时,通过蜂鸣器发出警报提示操作者。
三、硬件系统设计1. 硬件平台选择本课程设计采用STM32F103C8T6单片机作为控制核心,具有较高的性价比和丰富的外设资源,适合用于中小规模的自动化控制系统。
2. 温度传感器选择本课程设计采用DS18B20数字温度传感器,具有精度高、响应速度快、可靠性强等优点,适合用于工业自动化控制系统。
3. LCD显示屏选择本课程设计采用1602A型液晶显示屏,具有低功耗、易于控制等优点,适合用于小型自动化控制系统。
4. 其他外设选择本课程设计还需要使用继电器、蜂鸣器、电阻等外设实现各项功能。
四、软件系统设计1. 系统架构设计本课程设计采用分层结构设计,将整个软件系统分为数据采集层、控制层和用户界面层三个部分。
其中数据采集层负责获取环境温度数据;控制层根据设定温度和当前环境温度输出PWM信号调节加热器功率;用户界面层负责显示当前环境温度和设定温度,并实现报警功能。
2. 数据采集层设计数据采集层主要负责获取环境温度数据,并将其转换为数字信号供单片机处理。
本课程设计采用DS18B20数字温度传感器实现温度测量功能,具体实现步骤如下:(1)初始化DS18B20传感器。
(2)发送读取温度命令。
基于单片机的热敏电阻温度计的设计

基于单片机的热敏电阻温度计的设计引言:热敏电阻是一种根据温度变化而产生变阻的元件,其电阻值与温度成反比变化。
热敏电阻广泛应用于温度测量领域,其中基于单片机的热敏电阻温度计具有精度高、控制方便等特点,因此被广泛应用于各个领域。
本文将介绍基于单片机的热敏电阻温度计的设计,并通过实验验证其测量精度和稳定性。
一、系统设计本系统设计使用STC89C52单片机作为控制核心,热敏电阻作为测量元件,LCD1602液晶显示屏作为温度显示设备。
1.系统原理图2.功能模块设计(1)温度采集模块:温度采集模块主要由热敏电阻和AD转换模块组成。
热敏电阻是根据温度变化而改变阻值的元件,它与AD转换模块相连,将电阻变化转换为与温度成正比的电压信号。
(2)AD转换模块:AD转换模块将热敏电阻的电压信号转换为数字信号,并通过串口将转换结果传输给单片机。
在该设计中,使用了MCP3204型号的AD转换芯片。
(3)驱动显示模块:驱动显示模块使用单片机的IO口来操作LCD1602液晶显示屏,将温度数值显示在屏幕上。
(4)温度计算模块:温度计算模块是通过单片机的计算功能将AD转换模块传输过来的数字信号转换为对应的温度值。
根据热敏电阻的特性曲线,可以通过查表或采用数学公式计算获得温度值。
二、系统实现1.硬件设计(1)单片机电路设计单片机电路包括单片机STC89C52、晶振、电源电路等。
根据需要,选用合适的外部晶振进行时钟信号的驱动。
(2)AD转换电路设计AD转换电路采用了MCP3204芯片进行温度信号的转换。
根据芯片的datasheet,进行正确的连接和电路设计。
(3)LCD显示电路设计LCD显示电路主要由单片机的IO口控制,根据液晶显示模块的引脚定义,进行正确的连接和电路设计。
(4)温度采集电路设计温度采集电路由热敏电阻和合适的电阻组成,根据不同的热敏电阻特性曲线,选择合适的电阻和连接方式。
2.软件设计(1)初始化设置:单片机开机之后,需要进行一系列的初始化设置,包括对IO口、串口和LCD液晶显示屏的初始化设置。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
. ... . 《基于液晶显示的单片机温度控制设计》实习报告专业班级:电子信息科学与技术11级组长:彪组别:一组员:邢路飞王晓东李梁刚蔡云云李德龙宋文杰指导教师:谢艳新王海波学期:2013-2014学年第1学期实习地点:组成原理及单片机实验室《基于液晶显示的单片机温度控制设计》实习报告一、实验目的随着现代科技的不段发展,对温度测量的工具越来越多并且精度也是越来高,但随着生活水平的不段提高,越来越多的人健康的关注倍加重视,特别是对暖空气的变化更加注意,在此我们特设计有关温度控制的系统,通过它可以设置度的上下限,当温度低于所设的温度的下限或是高于所设的温度的上限时就会发生报警,因此可以提醒您要注意温度变化。
本制作轻巧灵便适合在私人家庭中运用,使用时可以通过四个按键的作用来设置系统初值,即可达到准确提醒您的作用。
二、设计题目:基于液晶显示的单片机温度控制设计三、功能描述本次设本系统主要研究的是利用MCS-51系列单片机中的AT89C51单片机来实现温度检测及控制,通过对89C51的P1口的高4位设置上限值、下限值、,因考虑到在设置温度TH和TL,所以本次设计采用四个按键来控制,通过按键之间的协调作用来完成温度设置值,由于温度的不同我们采取不同的信息来作为信号处理,所以在硬件电路中用蜂鸣器来报警做为提醒实现温度从IN0输入89C51的P1口低4位设置报警系统。
ADC0809实现模拟输入到数字量的转换,通过1602数码管显示数据。
四、系统硬件设计4.1时钟振荡电路时钟振荡电路如图1所示。
图1 时钟振荡电路图4.2测温电路测温电路如图2所示。
图2 测温电路图4.3复位电路复位电路如图3所示。
图3 复位电路图4.4 报警电路报警电路如图4所示。
图4 报警电路图4.5显示电路显示电路如图5所示。
图5 显示电路图五、系统软件系统5.1主程序设计主程序流程图如图6所示。
图6 主程序流程图5.2液晶显示程序设计液晶显示程序流程图如图7所示。
图7 液晶显示程序流程图5.3温度采集程序设计温度采集程序流程图如图8所示。
图8 温度采集程序流程图六、程序调试温度计的电路系统较大,对于焊接方面更是不可轻视,庞大的电路系统中只要出于一处的错误,则会对检测造成很大的不便。
硬件调试时,可先检查印制板及焊接的质量是否符合要求,有无虚焊点及线路间有无短路、断路。
然后用万用表测试或通电检测,检查无误后,可通电检查LCD液晶显示器亮度情况,一般情况下取背光电压为4~5.5V即可得到满意的效果。
测温程序设计中,向DS18B20发温度命令转换后,程序要等待DS18B20的返回信号,一旦线路不好或断线,将陷入死循环。
LCD程序也较为复杂,在编写程序和调试时出现了相对较多的问题。
最后经过多次的模块子程序的修改,一步一步的完成,最终解决了问题。
我们可以实用Proteus软件进行整体电路的仿真。
Proteus可提供的调试手段Proteus 提供了比较丰富的测试信号用于电路的测试。
在绘制好原理图后,调入已编译好的目标代码文件:*.HEX,可以在PROTEUS的原理图中看到模拟的实物运行状态和过程。
经过多次的反复测试与分析,可以对电路的原理及功能更加熟悉,同时提高了设计能力与及对电路的分析能力。
同时在软件的编程方面得到更到的提高,对编程能力得到加强。
同时对所学的知识得到很大的提高与巩固,对自己的动手能力有了极大的帮助。
七、心得体会在本次实习中,我通过查阅资料,请教于老师及同学。
基本完成了硬件设计、程序设计、安装调试等环节。
但其中有很多问题值得我去思考。
1.实习作风不好:不能积极对待,注意力不够集中;2. 实习效率不高:单片机课程功底较差,实践动手能力不强;3. 独立解决问题的能力较差。
以为三点都值得我反思,本次实习揭露了我的不足,希望在以后学生工作中得到改进。
八、实验总结在本次设计的过程中,我发现很多的问题,虽然以前还做过这样的设计但这次设计真的让我长进了很多,从这次的设计中,我真真正正的意识到,在以后的学习中,要理论联系实际,把我们所学的理论知识用到实际当中,学习单机片机更是如此,程序只有在经常的写与读的过程中才能提高,这就是我在这次课程设计中的最大收获。
本次设计中,我遇到了一些难题,然而这些难题让我不断的学习,在困难中进步,在此我要感谢学校给我们提供这次机会,感谢指导教师给我的提供了宝贵的意见以及同学对于我的帮助,我将继续以务实的态度,在接下来的毕业设计中,争取做出更好的成绩。
九、参考文献[1] 杨拴科.模拟电子技术基础.高等教育出版社.2004[2] 阎石.数字电子技术基础(第五版).高等教育出版社2008[3] 谭浩强.C程序设计.清华大学出版社.2006[4] 赵负图.传感器集成电路手册.化学工业出版社.2002[5] 郁有文.传感器原理及工程应用(第三版).西安电子科技大学出版社. 2008[6] 高峰.单片微型计算机与接口技术.科学出版社.2003[7] 余发山.王福忠.单片机原理及应用技术.中国矿业大学出版社.2003[8] 汤竞南.51单片机C语言开发与实例.人民邮电出版社.2008附录1:电路原理图附录2附录三: 源程序代码#include<reg52.h> //52单片机头文件,一般不要改动,里面包含特殊功能寄存器的定义#define uchar unsigned char#define uint unsigned intsbit lcdrs=P2^2; //数据命令选择控制sbit lcdrw=P2^1; //读/写选择控制sbit lcden=P2^0; //使能信号sbit DQ=P1^2;sbit k1=P1^0;sbit beep=P1^7;uchar t1[2];uchar code t0[]="+-";uchar readdata0;uchar readdata1;uchar dat,i,r,p;/**************************LCD子函数*************************//*********延时函数********/void delay(uchar z){uchar x,y;for(x=1000;x>1;x--)for(y=z;y>1;y--);}/*****写命令函数****/void write_(uchar ){lcdrs=0;P0=;delay(5);lcden=1;delay(5);lcden=0;}/*****写数据函数*****/void write_date(uchar date){lcdrs=1;P0=date;delay(5);lcden=1;delay(5);lcden=0;}/*****初始化液晶程序******/void init_lcd(){lcden=0;lcdrw=0;write_(0x38);write_(0x01);write_(0x0c);write_(0x06); //设置光标状态默认0x06,为读一个字符光标加1 }/*****在屏幕右侧显示出数据*****/void display(){write_(0x8c);write_(0x80); //设置初始化数据指针位置,设置在屏幕的未显示区,然后移动到屏幕的正方t1[0]= i+0x30;t1[1]= p+0x30;write_date(t0[0]);write_date(t1[0]);write_date(t1[1]);delay(5);}/**************************DS18B20子函数*************************/void delay1(unsigned int time) //延迟函数{while(time--);}/**************复位函数********/void DS20(void){bit x=1;DQ = 1; //DQ复位delay1(8);DQ = 0; //单片机将DQ拉低delay1(90); //精确延时大于480usDQ = 1; //拉高总线delay1(8);x=DQ; //稍做延时后如果x=0则初始化成功x=1则初始化失败delay1(100);}/***********读函数**************/unsigned char ReadOneChar(void){unsigned char i=0;unsigned char dat = 0;for (i=8;i>0;i--){DQ = 0; // 给脉冲信号dat>>=1;DQ = 1; // 给脉冲信号if(DQ)dat |=0x80;delay1(4);}return(dat);}/*************写函数****************/void WriteOneChar(unsigned char dat){unsigned char i=0;for (i=8; i>0; i--){DQ = 0;DQ = dat&0x01;delay1(2);DQ = 1;dat>>=1;}}void main(){init_lcd(); //LCD初始化while(1){if(k1==0){delay1(5);if(k1==0){while(1){delay1(40);DS20(); //复位WriteOneChar(0xcc); //跳过ROM 命令WriteOneChar(0x44); //温度转换命令delay1(40);DS20(); //复位WriteOneChar(0xcc); //跳过ROM 命令WriteOneChar(0xbe); //读DS1820 温度暂存器命令delay1(40);readdata0=ReadOneChar(); //读取温度值低位readdata1=ReadOneChar(); //读取温度值高位readdata0/=16;readdata1*=16;r=readdata0+readdata1;i=r/10;p=r%10;P1=P1&0xfb; //关掉发光二级管display();if(i>3){beep=0;delay(5);beep=1;break;}}}}}}。