基于AT89S52单片机的多点温度测量与监控(DOC毕设论文).doc_第1页
基于AT89S52单片机的多点温度测量与监控(DOC毕设论文).doc_第2页
基于AT89S52单片机的多点温度测量与监控(DOC毕设论文).doc_第3页
基于AT89S52单片机的多点温度测量与监控(DOC毕设论文).doc_第4页
基于AT89S52单片机的多点温度测量与监控(DOC毕设论文).doc_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2010 2011学年第 一 学期毕业设计课题名称:基于AT89S52单片机的多点温度测量与监控总目录第一部分 任务书 第二部分 开题报告第三部分 毕业设计正文 第 一 部 分任务书扬州工业职业技术学院毕业设计任务书系 部电子系指导老师马梅职称讲师学生姓名刘兴龙班级0802应用电子学号0805170224设计题目基于AT89S52单片机的多点温度测量与监控设计内容目标和要求设计内容目标:1、以AT89S52单片机为测温CPU,以DS18B20为温度传感器,组成由键盘及显示电路、温度测量电路、串口通信电路等组成的多点温度监测系统。2、完成程序设计及实物调试。设计要求:1、提出选题的初步设想和研究目的。2、收集、整理与理论和实际有关的、完整的、准确的信息资料。3、掌握MCS-51单片机的结构与原理。4、确定设计多点温度测量与监控的整体方案。5、完成多点温度测量与监控的软硬件设计。教研室审核系部审核第 二 部 分开题报告扬州工业职业技术学院 电子信息工程 系11届毕业设计(论文)开题报告书(表1)学生姓名刘兴龙专业应用电子班级0802应用电子学号0805170224题 目基于AT89S52单片机的多点温度测量与监控指导教师马梅职称讲师学 位硕士题目类别 工程设计 基础研究 应用研究 其它【课题的内容与要求】本次毕业设计主要应用MCS-51系列单片机原理和控制理论设计简易温度测量与监控模型的电路仿真及实物,并利用C语言进行程序设计。以单片机AT89S52为控制器的数码管动态显示及串口通信部分,可实时显示温度并将数值传给电脑。【前言】随着信息技术革命的深入和计算机技术的飞速发展,单片机的应用越来越广泛,并逐渐发展成为一门关键的技术学科。单片机具有一些突出优点:体积小、重量轻、耗电少、电源单一、功能强、价格低、运行速度快、抗干扰能力强、可靠性高,所以在通信、家电、工业控制、仪器仪表、汽车等产品中都可以看到单片机的身影。在工业生产及日常生活中,多点温度检测系统的应用十分广泛,例如消防电气的非破坏性温度检测,电力设备的过热故障预知检测,空调系统的温度检测,大型粮库的温度监测,各类运输工具组件的过热检测,医疗与诊断设备的温度测试等。数字温度传感器DSl8820的多点温度检测系统利用单总线的特点,可以方便地组建传感器网络,从而实现多点温度的测量。系统设计灵活、抗干扰性好,可以在恶劣的工作环境中进行温度测量。【方案的比较与评价】温度传感器有:传统热敏温度传感器和IC温度传感器。价格:毫无疑问,单个的热敏温度传感器比IC温度传感器有很大的价格优势。但如果要以数字方式来读取热敏温度传感器的温度值,就要安装有模数转换模块。另外,随着工艺水平不断提高,IC温度传感器的价格也不断下降,其价格也逐渐可以和热敏温度传感器相媲美。例如,美国国家半导体公司的LM19, 其价格与热敏温度传感器相相当。封装:IC温度传感器的封装多种多样,且占用空间小。精度:IC温度传感器的精度高(热敏温度传感器如加装精确的外加电路也是可以的)。另外,热敏温度传感器往往需要使用者逐个校调,而IC温度传感器在出厂时已完成这一步。基于以上几点,本次毕业设计选择IC温度传感器。在IC温度传感器中选择平时接触较多的DS18B20。【预期的效果及指标】对Proteus V7.1、Keil 4软件有了更深的理解,不仅是对软件,对高频电子线路和模拟电子有更进一步的理解。先电脑上做好仿真之后,然后对其进行实物调试,能实现系统各性能指标均符合要求。【进度安排】2010 年 9 月 21 日 - 2010 年 9 月 30 日 选题、调研、收集资料2010 年 10 月 8 日 - 2010 年 10 月 15 日 论证、开题2010 年 10 月 16 日 - 2010 年 11 月 30 日 设计(写作初稿)2010 年 12 月 1 日 - 2010 年 12 月 10 日 修改、定稿、打印【参考文献】1 DALLAS公司的DS18B20芯片资料.2009年2 段向东、毋茂盛、毋玉芝.Keil C51 程序设计中几种精确延时方法.单片机与嵌入式系统应用.2007 年,第12 期:33页-35页3 王学梅、金广锋.数字温度传感器DSl820在粮仓温度智能控制系统中的应用.科技广场.2009年,第5期:217页-218页4 陈生翰、刘其洪、丁柱.单总线数字温度传感器DSl820自动识别的设计与实现.仪表技术与传感器.2009年,第5期:16页-18页5 雷建龙.数字温度传感器DSl820读出数据错误分析.电子器件.2007年,第30卷(第6期):2183页-2185页【指导教师意见】(有针对性地说明选题意义及工作安排是否恰当等)多点温度监控系统的应用在实际中很广泛,因此选题很有意义,并且工作进度安排合理,能保障按时完成毕业设计。同意提交开题论证 修改后提交 不同意提交(请说明理由)指导教师签章: 年 月 日 【系部意见】同意指导教师意见 不同意指导教师意见(请说明理由) 其它(请说明)队系(部)主任签章: 年 月 日第 三 部 分毕业设计正文基于AT89S52单片机的多点温度测量与监控刘兴龙0802应用电子摘 要随着电子产品智能化程度越来越高,采用单片机来温度监控已成为当今的主流。本文介绍了数字温度测量及监控的系统设计。本文采用单片机来实现对温度的控制。它的主要组成部分有: AT89S52单片机、键盘及显示电路、温度测量电路、串口通信电路等组成。它可以实时的显示和设定温度,实现对温度的自动控制。通过测试表明,本设计对温度的控制有方便、简单的特点,从而大幅提高了被控温度的技术指标。关键词单片机 单总线数字温度传感器 串口发送 上位机AT89S52 Microcontroller based multi-point temperature measurement and monitoringLiu Xinglong0802 application of electronicAbstract:With more and more intelligent electronic products, using SCM to temperature monitoring has become mainstream. This article describes the digital temperature measurement and control system design. In this paper, single chip to achieve the temperature control. Its main components are: AT89S52 microcontroller, keyboard and display circuit, the temperature measurement circuit, serial communication circuit. It can be real-time display and set temperature, to achieve automatic control of temperature. Test shows that the design of temperature control are easy, simple features, which significantly increased the temperature was charged with technical indicators.Key words: SCM Single-bus digital temperature sensor Serial port PC目 录第一章 系统的总体设计11.1 设计背景11.2 电路的总体工作原理1第二章 方案论证42.1 题目分析42.2 具体控制要求42.3 温度传感器的选择42.4 DSl820简介4第三章 系统的硬件电路63.1 最小系统63.2 温度传感电路63.3 键盘、显示、报警电路73.4 串口通信电路93.5 实物图10第四章 系统的软件设计154.1下位机程序设计164.2上位机程序设计17第五章 全文总结195.1 经济效益分析195.2 社会效益分析19致谢21参考文献22附录I 元器件清单23附录II 主程序24附录 子程序29附录 上位机程序39第一章 系统的总体设计1.1 设计背景温度控制广泛应用于人们的生产和生活中,人们使用传统温度计来采集温度,通过人工操作加热、通风和降温设备来控制温度,这样控制精度低、实时性差,在某些对温度的要求较高行业中,由于工作环境温度不合理而引发的事故时有发生。对工业生产可靠进行造成影响,甚至操作人员的安全。为了避免这些缺点,需要在某些特定的环境里安装数字温度测量及控制设备。本设计以单总线的DS18B20为温度传感器,允许在一根数据线上挂接多个DS18B20,尤其在大范围多点测温的情况下,其电路连接及其方便,易于维修、更换。51系列单片机价格低廉,购买方便,具有多种封装形式,可将系统进一步微型化。本设计是一个数字温度测量及监控系统,能够进行大范围的温度测量,并能在超限的情况下进行控制、调整,并报警。保证环境保持在限定的温度中。1.2 电路的总体工作原理系统采用AT89S52测温CPU,采用独立键盘把设定温度的最高值和最低值存入单片机的数据存储器,再由单片机将温度最高值和最低值存入DS18B20,由于大范围的温度值可能有很多,系统自身显示模块很难完全显示,完成测量后将本次所测得的数据通过串口传给上位机,由上位机对温度进行控制、调整乃至储统计等高级功能。也可进一步完善上位机的软件功能,单个上位机可接多个下位机,从而完成更大范围的温度监测。测温电路键盘显示电路报警电路串口发送电路AT89S52图1-1 硬件框图开机设置高低温限设置成功返回测温串口发送高温则断电低温则加电串口数据发送及上位机数据处理温度是否正常否是图1-2 程序框图根据系统的设计要求,选择DS18B20作为本系统的温度传感器,选择AT89S52单片机为测温来完成数据采集、处理、显示、报警等功能。DS18B20采用单总线传输数据,一根线上可挂接多个DS18B20,省却了采样保持电路、运放、数模转换电路以及进行长距离传输时的串并转换电路,简化了电路,降低了系统的硬件成本。中央微处理器 AT89S52:低功耗、高性能CMOS 8位微控制器,具有8K 在系统可编程Flash 存储器。使用Atmel 公司高密度非易失性存储器技术制造,与工业80C51 产品指令和引脚完全兼容。片上Flash允许程序存储器在系统可编程,亦适于常规编程器。在单芯片上,拥有灵巧的8 位CPU 和在系统可编程Flash,使得AT89S52单片机为众多嵌入式控制应用系统提供高灵活、超有效的解决方案。AT89S52具有以下标准功能: 8k字节Flash,256字节RAM,32 位I/O 口线,看门狗定时器,2 个数据指针,三个16 位定时器/计数器,一个6向量2级中断结构,全双工串行口,片内晶振及时钟电路。另外,AT89S52 可降至0Hz 静态逻辑操作,支持2种软件可选择节电模式。空闲模式下,CPU停止工作,允许RAM、定时器/计数器、串口、中断继续工作。掉电保护方式下,RAM内容被保存,振荡器被冻结,单片机一切工作停止,直到下一个中断或硬件复位为止。按照实际需要,同时也考虑到设计成本与整个系统的精巧性,所以在本系统中就选用价格较低、工作稳定的AT89S52单片机作为整个系统的控制器。第二章 方案论证本章对毕业设计题目进行分析,根据要实现的功能,提出了实现系统功能的实现方案。2.1 题目分析本设计是一个数字多点温度监控系统,能够实现多点温度测量,能在超限的情况下进行控制、调整,并报警,并可以将温度数据通过串口发送给上位机。2.2 具体控制要求根据设计的要求,要利用温度传感器实时温度。当温度高于设定的温度时,关闭电源或打开降温装置进行调整使温度在设定的范围内;当温度低于设定的温度时,打开电源或升温装置进行调整使温度在设定的范围内。同时要求能设定温度限制。该设计的主要任务是能对温度进行自动的监控,并通过串口把温度值传给上位机。硬件电路有温度采集电路,键盘及显示电路,温控及报警电路等几个部分。2.3 温度传感器的选择温度传感器有:传统热敏温度传感器和IC温度传感器。价格:毫无疑问,单个的热敏温度传感器比IC温度传感器有很大的价格优势。但如果要以数字方式来读取热敏温度传感器的温度值,就要安装有模数转换模块。增加硬件开支,降低系统稳定性。另外,随着工艺水平不断提高,IC温度传感器的价格也不断下降,其价格也逐渐可以和热敏温度传感器相媲美。例如,美国国家半导体公司的LM19, 其价格与热敏温度传感器相相当。封装:IC温度传感器的封装多种多样,且占用空间小。精度:IC温度传感器的精度高(热敏温度传感器如加装精确的外加电路也是可以的)。另外,热敏温度传感器往往需要使用者逐个校调,而IC温度传感器在出厂时已完成这一步。基于以上几点,本次毕业设计选择IC温度传感器。在IC温度传感器中选择平时接触较多的DS18B20。2.4 DSl8B20简介DSl8B20,它是DALLAS公司生产的一线式数字温度传感器,测温范围为一55+125,测温分辨率可达0062 5,它具有微型化、低功耗、高性能、抗干扰能力强、易配微处理器等特点,特别适合于构成多点温度测控系统。DS18B20有如下特点: 单线结构,只需一根信号线和CPU相连。 不需要外部元件,直接输出串行数据。 可不需要外部电源,直接通过信号线供电,电源电压范围为3.3V5V。 高测温范围:-55+125,在-10+85范围内,精度为O.5。 测温分辨率高,当选用12位转换位数时,温度分辨率可达00625。 数字量的转换精度及转换时间可通过简单的编程来控制:9位精度的转换时间为9375 ms:10位精度的转换时间187.5ms:12位精度的转换时间750ms。 具有非易失性上、下限报警设定的功能,用户可方便地通过编程修改上、下限的数值。 可通过报警搜索命令识别哪片DS18820采集的温度超越上、下限。第三章 系统的硬件电路3.1 最小系统图3-1 单片机最小系统3.2 温度传感电路DS18B20的性能特点:采用单总线专用技术,既可通过串行口线,也可通过其它I/O口线与微机接口,无须经过其它变换电路,直接输出被测温度值(9位二进制数,含符号位)测温范围为-55-+125,测量分辨率为0.0625内含64位经过激光修正的只读存储器ROM适配各种单片机或系统机用户可分别设定各路温度的上、下限内含寄生电源。DS18B20内部结构主要由四部分组成:64位光刻ROM,温度传感器,非挥发的温度报警触发器TH和TL,高速暂存器。DS18B20的管脚排列如图所示:图3-2 DS18B20引脚图引脚说明:VDD:可选电源DQ:数据GND:地图3-3 温度传感电路3.3 键盘、显示、报警电路图3-4 键盘电路图3-5显示电路(数码管为共阳极数码管)图3-6 蜂鸣器报警电路图3-7 继电器部分3.4 串口通信电路图3-8 串口通信3.5 实物图图3-9 图片左下方的万能板上的元件为DS18B20图3-10 串口线连接上位机用于通信,USB线接上位机USB口作为电源线使用图3-11此图为电路通电时的状态,图中显示的温度为22.5000摄氏度图3-12 万能板上的DS18B20及连接线图3-13 万能板上的DS18B20图3-14 万能板上的DS18B20图3-15 单片机实验板全貌图3-16 VB程序的编剧环境图3-17 上位机程序的实现效果第四章 系统的软件设计开机设置高低温限设置成功返回测温串口发送高温则断电低温则加电串口数据发送及上位机数据处理温度是否正常否是图4-1 程序框图程序分为两个部分:下位机程序和上位机程序。下位机程序既单片机程序,包括:主程序部分,DS18B20复位、写、读程序,显示程序,键盘扫描程序,高低温限设定程序,延时程序,精确延时程序,编码转换程序,报警程序,串口发送程序,中断程序。上位机程序使用Microsoft Visual Basic 6.0编写,使用MSComm控件控制,因程序简单,下面再做详细介绍。4.1下位机程序设计开机外部中断、定时器、串口初始化发送温度转换命令取出温度值并存储显示串口发送温度值断电/加电,报警串口发送将第j个温度与高低温限对j5取出高低温限j5发送第j个序列号发送第j个序列号YNYN不正常YN显示20秒后无条件转移图4-2 主程序框图复位发送对应的序列号读出高低温限并存储发送对应的序列号退出中断进入中断选择一个DS18B20将高低温限写入对应的DS18B20设置高温限制设置低温限制图4-3 设置高低温限程序框图主程序请参见附录II,子程序请参见附录。4.2上位机程序设计上位机程序较之下位机简单,用MSComm 控件进行控制。因本文着重单片机的程序设计,故此处仅简单介绍,具体程序请参见附录4。MSComm控件提供下列两种处理通讯的方式:事件驱动方式和查询方式。 事件驱动方式:事件驱动通讯是处理串行端口交互作用的一种非常有效的方法。在许多情况下,在事件发生时需要得到通知,例如,在串口接收缓冲区中有字符,或者 Carrier Detect (CD) 或 Request To Send (RTS) 线上一个字符到达或一个变化发生时。在这些情况下,可以利用 MSComm 控件的 OnComm 事件捕获并处理这些通讯事件。OnComm 事件还可以检查和处理通讯错误。所有通讯事件和通讯错误的列表,参阅 CommEvent 属性。在编程过程中,就可以在OnComm事件处理函数中加入自己的处理代码。这种方法的优点是程序响应及时,可靠性高。每个MSComm 控件对应着一个串行端口。如果应用程序需要访问多个串行端口,必须使用多个 MSComm 控件。查询方式:查询方式实质上还是事件驱动,但在有些情况下,这种方式显得更为便捷。在程序的每个关键功能之后,可以通过检查 CommEvent 属性的值来查询事件和错误。如果应用程序较小,并且是自保持的,这种方法可能是更可取的。例如,如果写一个简单的电话拨号程序,则没有必要对每接收一个字符都产生事件,因为唯一等待接收的字符是调制解调器的“确定”响应。图4-4 VB程序环境图4-5 上位机程序的实现效果第五章 全文总结5.1 经济效益分析本系统的设计,是为了保证某特定环境温度维持在设定的范围内,以保证工作系统在稳定的状态下工作。本系统的设计成本很低,零件成本不超过26块(AT89S52一片7块5 +万能板一块2元+DS18B20一个7块+8个共阳极数码管4块+电阻、按钮等元件5块25.5元)如果用2051代替AT89S52和话,只要20.5元。如果采用大批量生产的话,生产成本会更低。在市场上的温度自动控制系统的价格在百元人民币以上,故本系统具有高性价比。只要配上适当的继电器,这个系统便还可以实现很多领域的温度自动控制。这对于提高系统的利用率,避免重复设计有很大的帮助的。在本系统的作用下,可以为工作系统提供一个良好的环境,使产品的数量和质量有很大的提高。使得产品的生产成本降低,从而使系统的使用者获得的利润提高了。分析表明:本系统是一个性价比比较好的系统,不论对于生产者还是使用者来说,它都可以带来好的经济效益。5.2 社会效益分析本设计是以AT89S52为核心,是软硬件相结合的自动控制的典型例子。在单片机自动控制已经广泛的应用于人们的生产和生活的今天,传统用模拟电路来控制温度的做法,已经逐渐被淘汰。这个系统的实现,改变了传统的温度控制方法,为温度的控制开辟了一条新的道路。根据我国的科技和工业水平,这个系统的设计是符合工业生产的需要。实现我国的工业化,自动控制是其中的一个重要目标,自动控制系统正广泛的应用于工业生产和人们的日常生活。本系统的设计成功知识实现自动控制的“冰山一角”,但它为以后更加智能化、人性化的自动控制系统的设计,作了铺垫。因此这种系统的设计具有比较好的社会效益。经过两个月的方案论证、系统的硬件和软件的设计、系统的调试。查阅了大量的关于传感器、单片机及其接口电路、以及控制方面的理论。经过了一番特殊的体验后,经历了失败的痛苦,也尝到了成功的喜悦。第一次靠用所学的专业知识来解决问题。检查了自己的知识水平,使我对自己有一个全新的认识。通过这次毕业设计,不仅锻炼自己分析问题、处理问题的能力,还提高了自己的动手能力。这些培养和锻炼对于我们这些即将走向工作岗位的大学生来说,是很重要的。这次毕业设计基本的完成了任务书的要求,实现了温度的控制。通过测试表明系统的设计是正确的,可行的。但是由于设计者的设计经验和知识水平有限,系统还存在许多不足和缺陷。致谢本次毕业设计,得到了很多老师和同学的支持,为我创造了很多有利条件,在这里,我要特别感谢我的导师马梅老师,马梅老师给了我很多帮助,指导我了解了很多单片机的相关知识,并在当我设计遇到困难时,给予帮助和鼓励,给了我莫大的信心,为我顺利完成毕业设计起到了非常重要的作用。同时还要感谢帮助我的同学,在我遇到困难时给予我耐心的帮助。再次对在本次毕业设计中给予过我帮助的老师和同学至上我最真挚的谢意。参考文献1 DALLAS公司的DS18B20芯片资料.2009年2 段向东、毋茂盛、毋玉芝.Keil C51 程序设计中几种精确延时方法.单片机与嵌入式系统应用.2007 年,第12 期:33页-35页3 王学梅、金广锋.数字温度传感器DSl820在粮仓温度智能控制系统中的应用.科技广场.2009年,第5期:217页-218页4 陈生翰、刘其洪、丁柱.单总线数字温度传感器DSl820自动识别的设计与实现.仪表技术与传感器.2009年,第5期:16页-18页5 雷建龙.数字温度传感器DSl820读出数据错误分析.电子器件.2007年,第30卷(第6期):2183页-2185页附录I 元器件清单51单片机实验板一块万能板一块DS18B20 四个串口线一条USB下载线一条导线若干附录II 主程序#includereg52.hsbit DQ=P12;sbit NPN=P34;/高温限制sbit PNP=P35;/低温限制sbit BUZZ=P36;/蜂鸣器报警void delay8zus(unsigned char);void delay(unsigned char z);void display(unsigned char *);void deal(unsigned char,unsigned char,bit);void restart();void timer0_init(void);void RS232_init(void);void send(unsigned char);void write_DS18B20(unsigned char z);void send(unsigned char z);void temperature_send(unsigned char,unsigned char,bit);unsigned char read_DS18B20(void);bit select_a_ds18b20();bit ii,zf;unsigned int count;unsigned char date8,ca12=0xc0,0xf9,0xa4,0xb0,0x99,0x92,0x82,0XD8,0x80,0x90,0xbf,0xff;/09,负号,全高电位。unsigned char ROMdate58=0x28,0xb5,0x1d,0x31,0x02,0x00,0x00,0xea,0x28,0xA8,0x48,0xC3,0x02,0x00,0x00,0xCA, 0X28,0XB5,0X73,0XC3,0X02,0X00,0X00,0X2F,0X28,0X84,0X8C,0XC3,0X02,0X00,0X00,0X3C, 0X28,0X82,0X42,0XC3,0X02,0X00,0X00,0X0E;typedef structunsigned char H;unsigned char L;char alarm_flog;/警报标志位,超过正常温度,则致1,低于正常温度,则致-1,温度正常,则致0temperature;temperature T5;/使用结构体来保存温度数据void main()unsigned char i,j,temp,Tmax,Tmin;IT1=1;/外部中断1下降沿有效EX1=1;/开外部中断0timer0_init();RS232_init();loop1:restart();write_DS18B20(0xcc);write_DS18B20(0x44);delay(200);TR0=0;/先停止timer0,以免对测温产生干扰for(j=0;j5;j+)restart();write_DS18B20(0x55);for(i=0;i16)zf=0;Tj.H=!Tj.H;Tj.L=!Tj.L+1;temp=Tj.L&0xf0;temp=4;Tj.H=Tj.HTmax) Tj.alarm_flog=1;NPN=1;BUZZ=0;if(Tj.LTmax) Tj.alarm_flog=-1;PNP=1;BUZZ=0;if(Tj.HTmax) Tj.alarm_flog=0;PNP=0;BUZZ=1;temperature_send(Tj.H,Tj.L,zf);deal(Tj.H,Tj.L,zf);TR0=1;for(j=0;j2300)/300大约是2秒,2300大约是20秒count=0;ii=0;附录 子程序DS18B20复位.c#includereg52.hvoid delay8zus(unsigned char);sbit DQ=P12;void restart()DQ=1;delay8zus(50);DQ=0;delay8zus(800/8);DQ=1;delay8zus(950/8);DS18B20写.c#includereg52.h#includeINTRINS.Hsbit DQ=P12;void delay8zus(unsigned char);void write_DS18B20(unsigned char z)unsigned char i;for(i=8;i0;i-)DQ=0;_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();_nop_();DQ=z&0x01;delay8zus(40/8);DQ=1;z=1;DS18B20读.c#includereg52.h#includeINTRINS.Hsbit DQ=P12;void delay8zus(unsigned char);unsigned char readdate=0;unsigned char read_DS18B20(void)unsigned char i;readdate=0;for(i=0;i=1;DQ=1;if(DQ) readdate|=0x80;delay8zus(110/8);return readdate;精确8us级延时.c/延时时间为8*z+2+1个us,2为函数调用时间,1为函数返回时间void delay8zus(unsigned char z)for(;z1;z-);延时.c/*z的单位为毫秒,适用于11.0592M的晶振,单片机的机器周期为12个晶振周期*/void delay(unsigned char z)unsigned char a,b;for(a=z+1;a1;a-)for(b=125;b1;b-);8位共阳极数码管显示.c#includereg52.h /指针*p为指向一个拥有8个数组元素的数组。unsigned char p38=0xfe,0xfd,0xfb,0xf7,0xef,0xdf,0xbf,0x7f;/该数组为段选数组。void delay(unsigned char);void display(unsigned char *p)unsigned char j;for(j=0;j8;P2=p3j,P0=pj,delay(2),j+);设置高低温限制.cextern unsigned char ca12;extern unsigned char ROMdate58;#includereg52.hsbit up=P13;/加键sbit down=P11;/减键sbit sure=P14;/确定键sbit cancel=P10;/取消键void restart();void write_DS18B20(unsigned char z);unsigned char read_DS18B20(void);void delay(unsigned char);void set(unsigned char *);bit select_a_ds18b20()/返回值为1则表示修改成功,0表示失败bit i=1;unsigned char num=1;while(i)if(down=0) delay(5);if(down=0) while(!down);num-;if(num=0) num=5;if(up=0) delay(5);if(up=0) while(!up);num+;if(num=6) num=1;if(sure=0) delay(5);if(sure=0) while(!sure);i=0;if(cancel=0) delay(5);if(cancel=0) while(!cancel);goto loop;/取消,则无条件转移到最后P2=0Xfe;P0=canum;delay(1);set(ROMdatenum-1);loop:if(i)return 0;elsereturn 1;void set(unsigned char *p)/传送要修改的ds18b20的序列号的入口地址char i=1,TH,TL,th,tl;restart();/先读出高低温限write_DS18B20(0x55);for(i=0;i99)P2=0X0fb;P0=ca1;delay(1);if(TH99)P2=0Xfb;P0=ca1;delay(1);if(TL0)P2=0Xfb;P0=0xbf;delay(1);restart();write_DS18B20(0x55);for(i=0;i8;write_DS18B20(pi),i+);write_DS18B20(0x4e);write_DS18B20(TH);write_DS18B20(TL);restart();write_DS18B20(0xcc);write_DS18B20(0x48);delay(200);delay(200);定时器初始化.c#includereg52.hvoid timer0_init(void)TMOD=TMOD|0X01;/这样做可不影响定时器1的值TH0=0;TL0=0;EA=1;TR0=1;ET0=1;温度转换成显示编码.c/预处理,将要显示的十进制数预先转换成8位数码管可以显示的编码。#includereg52.hextern unsigned char date8;/staticextern unsigned char ca12;void deal(unsigned char TH,unsigned char TL,bit zhengfu)unsigned char i;for(i=0;i8;datei=0xff,i+);if(zhengfu=0)/加负号if(TH=10) date6=0XBF;date4=caTH%10;if(TH10) date5=caTH/10%10;if(TH100) date6=caTH/100%10;date0=ca(TL*625)%10;date1=ca(TL*625)/10%10;date2=ca(TL*625)/100%10;date3=ca(TL*625)/1000%10;date4=date4&0x7f;/date4=(date4)+0x80);/加小数点串口初始化.c#includereg52.hvoid RS232_init(void)TMOD=0X20;TH1=0XFD;TL1=0XFD;TR1=1;SM1=1;SM0=0;REN=1;EA=1;ES=1;串口发送.c#includereg52.hvoid send(unsigned char z)ES=0;SBUF=z;while(!TI);TI=0;ES=1;串口温度数据发送.cvoid send(unsigned char);void temperature_send(unsigned char TH,unsigned char TL,bit zhengfu)if(zhengfu=0) send(-);send(TH/10%10+48);send(TH%10+48);send(.);send(TL*625)/1000%10+48);send(TL*625)/100%10+48);send(TL*625)/10%10+48);send(TL*625)%10+48);send( );/换行附录 上位机程序编程界面Private Sub Form_Load()MSComm1.Settings = 9600,N,8,1 波特率9600bit/s,无校验,8位数据,1位停止位MSComm1.CommPort = 1

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论