基于单片机温度检测系统设计毕设论文.doc
《基于单片机温度检测系统设计毕设论文.doc》由会员分享,可在线阅读,更多相关《基于单片机温度检测系统设计毕设论文.doc(30页珍藏版)》请在咨信网上搜索。
┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 装 ┊ ┊ ┊ ┊ ┊ 订 ┊ ┊ ┊ ┊ ┊ 线 ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ ┊ 长 春 大 学 课程设计纸 基于单片机温度检测系统设计 【摘要】温度是表征物体冷却程度的物理量,也是一种最基本的环境参数。在农工业生产及日常生活中,对温度的测量及控制始终占据着极其重要的地位。目前,以DS18B20为代表的新型单总线数字是温度传感器和A/D转换器于一体,直接输出数字量,与单片机接口结构简单,广泛用于距离远,节点分布多的场合,具有较强的推广应用价值,采用单片机对它们进行控制不仅具有控制方便,简单灵活性大等特点,而且还可以大幅度提高被控温度的技术指标,从而能够大大提高产品质量,因此,智能化温度传感技术正被广泛地采用。 本温度设计采用现在流行的AT89C52单片机,配以DS18B20数字温度传感器,该温度传感器可自行设置温度上下限,单片机将检测到的温度信号与输入的温度上,下限进行比较。本设计加入了1602液晶显示屏显示,使整个设计更加完整,灵活。 随着社会经济的不断发展,现代农业生产离不开环境控制,本文在对国内外温室智能控制进行深入分析的基础上,针对温室智能化控制存在的诸多因子,将智能传感器监测和单片机控制相结合,提出了基于单片机的温度检测系统设计方案。本系统采用层次化、模块化设计,整个系统由数据采集系统、单片机控制系统、计算机监控系统组成。系统以单片机为核心,以多个温度、湿度传感器作为测量元件,通过单片机与智能传感器相连,采集存储智能传感器的测量数据。在单片机系统中,还要实现程序的扩展存储、数据的实时显示、超限语音报警和数据辅助存储功能。单片机作为监控计算机与智能传感器连接的中心。本设计主要做了如下几方面的工作:一是确定系统的总体设计方案,包括其功能设计;设计原则;组成与工作原理;二是进行智能传感器的硬件电路设计;包括硬件电路构成及测量原理;温度传感器的选择;单片机的选择;输入输出通道设计;三是进行了调试和仿真,包括硬件仿真和软件仿真。 I 目 录 第一章 引 言 1 1.1设计目的 1 1.2设计产品功能 2 第二章 总体设计方案 2 第三章 温度控制系统设计基础 4 3.1温度传感器的历史发展 4 3.2 DS18B20数字温度传感器简介 5 3.2.1 温度传感器内部结构 5 3.2.2 DS18B20产品的特点 6 3.2.3 DS18B20引脚图及引脚功能介绍 6 3.2.4 DS18B20的使用方法 7 3.3 DS18B20的测温原理 8 第四章 系统总体设计 9 4.1 1602液晶显示器和单片机接口技术 9 4.1.1 1602液晶显示器简介 9 4.1.2 功能管脚 10 4.1.3 特性应用 10 4.1.4 1602与单片机接口电路 11 4.2 单片机单元 11 4.2.1 AT89C51单片机简介 11 4.2.2 晶振电路 14 4.2.3复位电路 14 4.3系统的硬件组成及设计原理 15 第五章 系统软件设计 15 5.1程序流程图 15 5.2程序 16 总 结 26 致 谢 27 参 考 文 献 28 附 录 29 i 第一章 引 言 随着社会的发展,科技的进步,以及测温仪器在整个领域的应用,智能化已实现待温度控制系统发展的主流方向。温度控制不好可能引起生产安全,产品质量和产量等一系列问题,智能温度控制是许多机器的重要构成部分,它的功能是将温度控制在所需要的温度范围内,然后进行共建的加工和处理,不论是在生活中还是工业生产过程中,温度的变化对生活,生产的某些细节环节都会造成不同程度的影响,所以适时地对温度进行控制,设计一个温度控制系统,具有广泛的应用前景与实际意义。 温度是科技最基本的物理量之一,物理,化学,生物等学科都离不开温度,在工业生产和实验研究中,温度常常是表征对象和过程状态的最重要参数之一。比如,发电厂锅炉的温度必须控制在一定范围之一;许多化学反应的工艺过程必须在适当的温度下才能正常进行;炼油过程中,原油必须在不同的温度和压力条件下进行分馏才能得到汽油,柴油,煤油等产品。没有合适的温度,许多电子设备就不能正常工作。因此,各行各业对温度控制的要求越来越高,可见温度的测量和控制是非常重要的。 单片机在电子产品的应用已越来越广泛,在很多的电子产品中也用到了温度检测和温度控制。随着温度控制器应用范围的日益广泛和多样性,各种适用于不同场合的智能温度控制系统应运而生。 1.1设计目的 本设计的内容是温度测试控制系统,控制对象是温度,温度控制在日常生活及工业领域相当广泛,比如温度,水池,发酵缸等场所的温度控制。而以往温度控制是由人工完成的而且不够重视,其实在很多场所温度都需要监控以防止意外发生。针对此问题,本系统设计的目的是 ①本课题综合了现代测控技术、电子信息、计算机技术专业领域方方面面的知识,具有综合性、科学性、代表性,可全面检验和促进学生的理论素养和工作能力。 ②掌握一个显示屏和一个温度传感器的原理、性能、使用特点和方法,利用单片机对系统进行编程。 ③实现一种可连续高精度调温的温度控制系统,它应用广泛、功能强大、小巧美观、便于携带,是一款既实用又廉价的控制系统。 ④本课题的研究可以使学生更好的掌握基于单片机应用系统的分析与设计方法,培养创新意识、协作精神和理论联系实际的学风,提高电子产品研发素质、增强针对实际应用系统设计制作的能力。 1.2设计产品功能 通过搭建51单片机最小系统及周边电路,可是本产品具有以下功能及特点: 1. 实现温度计功能,可实现实时显示和报警。 2. 实现数字万年历功能。 3. 所有I/O口全部引出,方便进行二次开发。 第二章 总体设计方案 温度检测系统有着共同的特点:测量点多,环境复杂,布线分散,现场离控制室远等。若采用一般温度传感器采集温度信号,则需设计信号调理电路,A/D转换及相应的接口电路,才能把传感器输出的模拟信号转换成数字信号送到计算机去处理。这样,由于各种因素会造成检测系统较大的偏差;又因检测环境复杂,测量点多,信号传输距离远及各种干扰的影响,会使检测系统的稳定性和可靠性下降,所以温度检测系统的设计关键在于两部分:温度传感器的选择和主控单元的设计。温度传感器应用范围广,使用数量庞大,也高居各类传感器之首。 首先由温度传感器DS18B20采集温度数据,经AT8C52单片机中进行运算处理,并液晶屏显示当前温度,由单片机控制是否发出控制信号及报警信号,从而实现恒温监控。在整个过程中,温度始终得以显示,设定温度过程中显示设定温度值,以便于操作。设定完毕后,改为显示当前测定温度值。 本系统的电路设计主要有六部分主成:①主控制部分芯片采用单片机AT89C51②显示部分采用1602液晶显示屏实现;③温度采集部分采用DS18B20温度传感器;④报警部分蜂鸣器的使用;⑤供电部分;⑥独立按键部分用于控制万年历 1. 主控制部分 此部分是电路的核心部分,系统控制采用了单片机AT89C51,有Atmel公司生产的AT89C51是一种低功耗,高性能的微控制器,具有8K在线系统可编程Flash存储器,单片机AT89C51具有低电压供电和体积小等特点,四个端口只需要两个就能满足电路系统的设计要求,很适合便携手持式产品的设计使用 2.显示电路 采用技术成熟,价格便宜的1602液晶显示器作为输出显示。本次设计使用的1602液晶显示器为5V电压驱动,带背光,可显示两行,每行16个字符,不能显示汉字,内置128个字符的ASCII字符集字库,只有并行接口,无串口接口。 3. 温度采集部分 DS18B20温度传感器是美国DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。可直接读出被测温度。这一部分主要完成对温度温度信号的采集和转换工作,由DS18B20数字式温度传感器及其与单片机的接口部分主成,DS18B20数字式温度传感器把采集到的温度通过数据引脚传到单片机接受温度并存储,此部分只用到DS18B20和单片机,硬件很简单。 DS18B20数字式温度传感器通常采用两种方式供电,一种是寄生电源供电方式,另一种是采用外部电源供电方式,此时DS18B20的1引脚接地,2引脚作为信号线,3引脚接电源,本设计采用外部供电方式,外部电源供电方式是 DS18B20最佳的工作方式,工作稳定可靠,抗干扰能力强,而且电路也比较简单,可以开发出稳定可靠的多点温度监控系统。 图2-2 DS18B20与单片机接口电路 4. 报警部分 此处三极管选取型号为8550的PNP型三极管,管脚排列见下图 图2-3 蜂鸣器电路 5. 独立按键部分 图2-4 独立按键电路 6. 单片机最小系统 图2-5 最小系统 第三章 温度控制系统设计基础 3.1温度传感器的历史发展 温度的测量是从热胀冷缩开始,水银温度计至今仍是各种温度计测量的计量标准,可是它的缺点是只能近距离观测,而且水银有毒玻璃管易碎,代替水银的有酒精温度计和金属簧片温度计,它们虽然没有毒性,但测量精度较低,只能作为一个概略指示,不过在居民宅中使用已可满足要求,在工业生产和实验研究中心为了配合远传仪表指示,出现了许多不同的温度检测方法,常用的有电阻式、热电偶式、PN结型、辐射型、光纤式及石英谐振型等。它们都是基于温度变化引起其物理参数的变化的原理。随着大规模的集成电路工艺的提高,出现了多种集成的数字化温度传感器。然而测量温度的关键就是温度传感器,温度传感器的发展经历了三个发展阶段: ①传统的分立式温度传感器;②模拟集成温度传感器;③只能集成温度传感器。 目前典型的温度测控系统由模拟式温度传感器和单片机组成。由于模拟式温度传感器输出的模拟信号必须经过A/D转换环节获得数字信号后才能与单片机等微处理器连接,因而使得硬件电路结构复杂,成本较高。因此目前国际上新型温度传感器正从模拟向数字式,从集成化向智能化,网络化的方向飞速发展,以DS18B20为代表的新型单总线数字式温度传感器集温度测量和A/D转换于一体,直接输出数字量,与单片机接口电路结构简单,广泛使用距离远、节点分布多的场合,具有较强的推广和应用价值。 3.2 DS18B20数字温度传感器简介 3.2.1 温度传感器内部结构 DS18B20数字温度传感器是DALLAS公司生产的1-Wire,即单总线器件,具有线路简单,体积小的特点。因此用它来组成一个测温系统,具有线路简单,在一根通信线,可以挂很多这样的数字温度计,十分方便。 图 3-1温度传感器内部结构 3.2.2 DS18B20产品的特点 • 独特的单线接口仅需一个端口引脚进行通讯 • 简单的多点分布应用 • 无需外部器件 • 可通过数据线供电 • 零待机功耗 • 测温范围-55~+125℃,以0.5℃递增。华氏器件-67~+2570F,以0.90F 递增 • 温度以9 位数字量读出 • 温度数字量转换时间200ms(典型值) • 用户可定义的非易失性温度报警设置 • 报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件 • 应用包括温度控制、工业系统、消费品、温度计或任何热感测系统 3.2.3 DS18B20引脚图及引脚功能介绍 TO-92封装的DS18B20的引脚排列见图3-2,其引脚功能描述见表3-1。 图3-2 DS18B20的引脚图 表3-1 DS18B20详细引脚功能描述 序号 名称 引脚功能描述 1 GND 地信号 2 DQ 数据输入/输出引脚。开漏单总线接口引脚。当被用着在寄生电源下,也可以向器件提供电源。 3 VDD 可选择的VDD引脚。当工作于寄生电源时,此引脚必须接地。 3.2.4 DS18B20的使用方法 由于DS18B20采用的是1-Wire总线协议方式,即在一根数据线实现数据的双向传输,而对AT89S51单片机来说,硬件上并不支持单总线协议,因此,我们必须采用软件的方法来模拟单总线的协议时序来完成对DS18B20芯片的访问。由于DS18B20是在一根I/O线上读写数据,因此,对读写的数据位有着严格的时序要求。DS18B20有严格的通信协议来保证各位数据传输的正确性和完整性。该协议定义了几种信号的时序:初始化时序、读时序、写时序。所有时序都是将主机作为主设备,单总线器件作为从设备。而每一次命令和数据的传输都是从主机主动启动写时序开始,如果要求单总线器件回送数据,在进行写命令后,主机需启动读时序完成数据接收。数据和命令的传输都是低位在先。DS18B20的复位时序 DS18B20的读时序 对于DS18B20的读时序分为读0时序和读1时序两个过程。 对于DS18B20的读时隙是从主机把单总线拉低之后,在15秒之内就得释放单总线,以让DS18B20把数据传输到单总线上。DS18B20在完成一个读时序过程,至少需要60us才能完成。 DS18B20的写时序 对于DS18B20的写时序仍然分为写0时序和写1时序两个过程。对于DS18B20写0时序和写1时序的要求不同,当要写0时序时,单总线要被拉低至少60us,保证DS18B20能够在15us到45us之间能够正确地采样IO总线上的“0”电平,当要写1时序时,单总线被拉低之后,在15us之内就得释放单总线。 3.3 DS18B20的测温原理 DS18B20是DALLAS公司生产的一线式数字温度传感器,具有3引脚TO-92小体积封装形式;温度测量范围为-55℃~+125℃,可编程为9位~12位A/D转换精度,测温分辨率可达0.0625℃,被测温度用符号扩展的16位数字量方式串行输出;其工作电源既可在远端引入,也可采用寄生电源方式产生;多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与诸多DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路. 低温度系数晶振的震荡频率受温度的影响很小,用于产生固定频率脉冲信号送给减法计数器1,高温度系数晶振随温度变化其震荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入,途中还隐含着计数门,当计数门打开时,DS18B20就对低温度系数晶振器产生的时钟脉冲进行计数,进而完成温度测量,计数门的开启时间由高温度系数振荡器来决定,每次测量前,首先将-55℃所对应的一个基值,减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数。当减法计数器1的预值减到0时,温度寄存器的值将加1,减法计数器1的预值将从新被装入,减法计数器1从新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环,直到减法计数器2计数到0时,停止温度寄存器值得累加,此时温度寄存器中的数值即为所测温度。 对于DS18B20的使用,多采用单片机实现数据采集,处理时,将DS18B20信号线与单片机一位口线相连,单片机可挂接多片DS18B20,从而实现多点温度检测系统。 第四章 系统总体设计 4.1 1602液晶显示器和单片机接口技术 4.1.1 1602液晶显示器简介 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 工业字符型液晶,能够同时显示16x02即32个字符。(16列2行) 注:为了表示的方便 ,后文皆以1表示高电平,0表示低电平。 1602液晶也叫1602字符型液晶,它是一种专门用来显示字母、数字、符号等的点阵型液晶模块。它由若干个5X7或者5X11等点阵字符位组成,每个点阵字符位都可以显示一个字符,每位之间有一个点距的间隔,每行之间也有间隔,起到了字符间距和行间距的作用,正因为如此所以它不能很好地显示图形(用自定义CGRAM,显示效果也不好)。 1602LCD是指显示的内容为16X2,即可以显示两行,每行16个字符液晶模块(显示字符和数字)。 目前市面上字符液晶绝大多数是基于HD44780液晶芯片的,控制原理是完全相同的,因此基于HD44780写的控制程序可以很方便地应用于市面上大部分的字符型液晶。 4.1.2 功能管脚 图4-1 1602管脚图 1602采用标准的16脚接口,其中: 第1脚:VSS为电源地 第2脚:VCC接5V电源正极 第3脚:V0为液晶显示器对比度调整端,接正电源时对比度最弱,接地电源时对比度最高(对比度过高时会 产生“鬼影”,使用时可以通过一个10K的电位器调整对比度)。 第4脚:RS为寄存器选择,高电平1时选择数据寄存器、低电平0时选择指令寄存器。 第5脚:RW为读写信号线,高电平(1)时进行读操作,低电平(0)时进行写操作。 第6脚:E(或EN)端为使能(enable)端。 第7~14脚:D0~D7为8位双向数据端。 第15~16脚:空脚或背灯电源。15脚背光正极,16脚背光负极。 4.1.3 特性应用 +3.3V电压,对比度可调 内含复位电路 提供各种控制命令,如:清屏、字符闪烁、光标闪烁、显示移位等多种功能 有80字节显示数据存储器DDRAM 内建有192个5X7点阵的字型的字符发生器CGROM 8个可由用户自定义的5X7的字符发生器CGRAM 微功耗、体积小、显示内容丰富、超薄轻巧,常用在袖珍式仪表和低功耗应用系统中。 4.1.4 1602与单片机接口电路 系统显示电路由单片机AT89C51、字符液晶显示器LM016L和1Kx8的排阻构成。单片机实现对LCD命令和显示数据的读写控制功能,P0口作数据口,与LM016L的D0~D7相接,在P0口D0~D7数据线之间分别接8个上拉电阻,以确保电路能够正常显示。AT89C51的P1口作为LCD的控制线,P2.0~P2.2分别接LM016L的RS、RW和E端;LM016L的其它三个控制端VDD和VSS、VEE分别接电源和地。系统显示电路组成如图所示。 图4-2 1602与单片机接口 4.2 单片机单元 4.2.1 AT89C51单片机简介 AT89C51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROM—Falsh Programmable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89C51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。它的管脚图如下图所示。 图4-3 AT89C52各引脚图 1.主要特性: (1)与MCS-51 兼容 (2)42K字节可编程闪烁存储器(3)寿命:1000写/擦循环(4)数据保留时间(5)10年全静态工作:(6)0Hz-24Hz三级程序存储器锁定(7)128*8位内部RAM(8)32可编程I/O线(9)5个中断源(10)可编程串行通道低功耗的闲置和掉电模式片内振荡器和时钟电路 2.管脚说明: VCC:供电电压。GND:接地。P0口:P0口为一个8位漏级开路双向I/O口,每脚可吸收8TTL门电流。当P1口的管脚第一次写1时,被定义为高阻输入。P0能够用于外部程序数据存储器,它可以被定义为数据/地址的第八位。在FIASH编程时,P0 口作为原码输入口,当FIASH进行校验时,P0输出原码,此时P0外部必须被拉高。 P1口:P1口是一个内部提供上拉电阻的8位双向I/O口,P1口缓冲器能接收输出4TTL门电流。P1口管脚写入1后,被内部上拉为高,可用作输入,P1口被外部下拉为低电平时,将输出电流,这是由于内部上拉的缘故。在FLASH编程和校验时,P1口作为第八位地址接收。 P2口:P2口为一个内部上拉电阻的8位双向I/O口,P2口缓冲器可接收,输出4个TTL门电流,当P2口被写“1”时,其管脚被内部上拉电阻拉高,且作为输入。并因此作为输入时,P2口的管脚被外部拉低,将输出电流。这是由于内部上拉的缘故。P2口当用于外部程序存储器或16位地址外部数据存储器进行存取时,P2口输出地址的高八位。在给出地址“1”时,它利用内部上拉优势,当对外部八位地址数据存储器进行读写时,P2口输出其特殊功能寄存器的内容。P2口在FLASH编程和校验时接收高八位地址信号和控制信号。 P3口:P3口管脚是8个带内部上拉电阻的双向I/O口,可接收输出4个TTL门电流。当P3口写入“1”后,它们被内部上拉为高电平,并用作输入。作为输入,由于外部下拉为低电平,P3口将输出电流(ILL)这是由于上拉的缘故。 P3口也可作为AT89C51的一些特殊功能口,如下表所示: 口管脚 备选功能 P3.0 RXD(串行输入口) P3.1 TXD(串行输出口) P3.2 /INT0(外部中断0) P3.3 /INT1(外部中断1) P3.4 T0(记时器0外部输入) P3.5 T1(记时器1外部输入) P3.6 /WR(外部数据存储器写选通) P3.7 /RD(外部数据存储器读选通) P3口同时为闪烁编程和编程校验接收一些控制信号。 RST:复位输入。当振荡器复位器件时,要保持RST脚两个机器周期的高电平时间。 ALE/PROG:当访问外部存储器时,地址锁存允许的输出电平用于锁存地址的地位字节。在FLASH编程期间,此引脚用于输入编程脉冲。在平时,ALE端以不变的频率周期输出正脉冲信号,此频率为振荡器频率的1/6。因此它可用作对外部输出的脉冲或用于定时目的。然而要注意的是:每当用作外部数据存储器时,将跳过一个ALE脉冲。如想禁止ALE的输出可在SFR8EH地址上置0。此时, ALE只有在执行MOVX,MOVC指令是ALE才起作用。另外,该引脚被略微拉高。如果微处理器在外部执行状态ALE禁止,置位无效。 PSEN:外部程序存储器的选通信号。在由外部程序存储器取指期间,每个机器周期两次/PSEN有效。但在访问外部数据存储器时,这两次有效的/PSEN信号将不出现。 EA/VPP:当/EA保持低电平时,则在此期间外部程序存储器(0000H-FFFFH),不管是否有内部程序存储器。注意加密方式1时,/EA将内部锁定为RESET;当/EA端保持高电平时,此间内部程序存储器。在FLASH编程期间,此引脚也用于施加12V编程电源(VPP)。 XTAL1:反向振荡放大器的输入及内部时钟工作电路的输入。 XTAL2:来自反向振荡器的输出。 4.2.2 晶振电路 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 表4-1AT89C52主要功能特性 主要功能特性 兼容MCS51指令系统 8K可反复擦写Flash ROM 32个双向I/O口 256x8bit内部RAM 3个16位可编程定时/计数器中断 时钟频率0-24MHz 2个串行中断 可编程UART串行通道 2个外部中断源 共6个中断源 2个读写中断口线 3级加密位 低功耗空闲和掉电模式 软件设置睡眠和唤醒功能 4.2.3复位电路 复位操作有上电自动复位相按键手动复位两种方式。 上电自动复位是通过外部复位电路的电容充电来实现的,其电路如图1—8(a)所示。这佯,只要电源Vcc的上升时间不超过1ms,就可以实现自动上电复位,即接通电源就成了系统的复位初始化。 按键手动复位有电平方式和脉冲方式两种。其中,按键电平复位是通过使复位端经电阻与Vcc电源接通而实现的,其电路如图1—8(b)所示;而按键脉冲复位则是利用RC微分电路产生的正脉冲来实现的, 其电路如图5—4(c)所示: (a)上电复位 (b)按键电平复位 (c)按键脉冲复位 图3-3复位电路 上述电路图中的电阻、电容参数适用于6MHz晶振,能保证复位信号高电平持续时间大于2个机器周期。 本系统的复位电路采用图5-5(b)上电复位方式。 4.3系统的硬件组成及设计原理 多功能按键 温度传感器 复位电路 AT89S52 显示电路 声光报警 图3.-1硬件电路图 第五章 系统软件设计 5.1程序流程图 5.2程序 #include < reg51.h > #include < intrins.h> #define uchar unsigned char #define uint unsigned int sbit DQ = P2^5 ; //定义DS18B20端口DQ sbit BEEP=P2^7 ; //蜂鸣器驱动线 bit presence ; sbit LCD_RS = P2^4 ; sbit LCD_RW = P2^1 ; sbit LCD_EN = P2^6 ; uchar code cdis1[ ] = {" DS18B20 OK "} ; uchar code cdis2[ ] = {" TEMP: . C "} ; uchar code cdis3[ ] = {" DS18B20 ERR0R "} ; uchar code cdis4[ ] = {" PLEASE CHECK "} ; unsigned char data temp_data[2] = {0x00,0x00} ; unsigned char data display[5] = {0x00,0x00,0x00,0x00,0x00} ; unsigned char code ditab[16] = {0x00,0x01,0x01,0x02,0x03,0x03,0x04,0x04, 0x05,0x06,0x06,0x07,0x08,0x08,0x09,0x09} ; void beep() ; unsigned char code mytab[8] = {0x0C,0x12,0x12,0x0C,0x00,0x00,0x00,0x00} ; #define delayNOP() ; {_nop_() ;_nop_() ;_nop_() ;_nop_() ;} ; /*******************************************************************/ void delay1(int ms) { unsigned char y ; while(ms--) { for(y = 0 ; y<250 ; y++) { _nop_() ; _nop_() ; _nop_() ; _nop_() ; } } } /******************************************************************/ /*检查LCD忙状态 */ /*lcd_busy为1时,忙,等待。lcd-busy为0时,闲,可写指令与数据。 */ /******************************************************************/ bit lcd_busy() { bit result ; LCD_RS = 0 ; LCD_RW = 1 ; LCD_EN = 1 ; delayNOP() ; result = (bit)(P0&0x80) ; LCD_EN = 0 ; return(result) ; } /*写指令数据到LCD */ /*RS=L,RW=L,E=高脉冲,D0-D7=指令码。 */ /*******************************************************************/ void lcd_wcmd(uchar cmd) { while(lcd_busy()) ; LCD_RS = 0 ; LCD_RW = 0 ; LCD_EN = 0 ; _nop_() ; _nop_() ; P0 = cmd ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; } /*******************************************************************/ /*写显示数据到LCD */ /*RS=H,RW=L,E=高脉冲,D0-D7=数据。 */ /*******************************************************************/ void lcd_wdat(uchar dat) { while(lcd_busy()) ; LCD_RS = 1 ; LCD_RW = 0 ; LCD_EN = 0 ; P0 = dat ; delayNOP() ; LCD_EN = 1 ; delayNOP() ; LCD_EN = 0 ; } /* LCD初始化设定 */ /*******************************************************************/ void lcd_init() { delay1(15) ; lcd_wcmd(0x01) ; //清除LCD的显示内容 lcd_wcmd(0x38) ; //16*2显示,5*7点阵,8位数据 delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x38) ; delay1(5) ; lcd_wcmd(0x0c) ; //显示开,关光标 delay1(5) ; lcd_wcmd(0x06) ; //移动光标 delay1(5) ; lcd_wcmd(0x01) ; //清除LCD的显示内容 delay1(5) ; } /* 设定显示位置 */ /*******************************************************************/ void lcd_pos(uchar pos) { lcd_wcmd(pos | 0x80) ; //数据指针=80+地址变量 } /*自定义字符写入CGRAM */ /*******************************************************************/ void writetab() { unsigned char i ; lcd_wcmd(0x40) ; //写CGRAM for (i = 0 ; i< 8 ; i++) lcd_wdat(mytab[ i ]) ; } /*us级延时函数 */ /*******************************************************************/ void Delay(unsigned int num) { while( --num ) ; } /*初始化ds1820 */ /*******************************************************************/ Init_DS18B20(void) { DQ = 1 ; //DQ复位 Delay(8) ; //稍做延时 DQ = 0 ; //单片机将DQ拉低 Delay(90) ; //精确延时 大于 480us DQ = 1 ; //拉高总线 Delay(8) ; presence = DQ ; //如果=0则初始化成功 =1则初始化失败 Delay(100) ; DQ = 1 ; return(presence) ; //返回信号,0=presence,1= no presence } /* 读一个字节 */ /*******************************************************************/ 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 ; Delay(4) ; } return (dat) ; } /* 写一个字节 */ /*******************************************************************/ WriteOneChar(unsigned char dat) { unsigned char i = 0 ; for (i = 8 ; i > 0 ; i--) { DQ = 0 ; DQ = dat&0x01 ; Delay(5) ; DQ = 1 ; dat>>=1 ; } } /* 读取温度 */ /*******************************************************************/ Read_Temperature(void) { Init_DS18B20() ; WriteOneChar(0xCC) ; // 跳过读序号列号的操作 WriteOneChar(0x44) ; // 启动温度转换 Init_DS18B20() ; WriteOneChar(0xCC) ; //跳过读序号列号的操作 WriteOneChar(0xBE) ; //读取温度寄存器 temp_data[0] = ReadOneChar() ; //温度低8位 temp_data[1] = ReadOneChar() ; //温度高8位 } /* 数据转换与温度显示 */ /*******************************************************************/ Disp_Temperat- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 基于 单片机 温度 检测 系统 设计 论文
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【a199****6536】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【a199****6536】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文