基于单片机的数字温度计和数字钟设计

上传人:pu****.1 文档编号:509419613 上传时间:2023-09-14 格式:DOC 页数:131 大小:1.26MB
返回 下载 相关 举报
基于单片机的数字温度计和数字钟设计_第1页
第1页 / 共131页
基于单片机的数字温度计和数字钟设计_第2页
第2页 / 共131页
基于单片机的数字温度计和数字钟设计_第3页
第3页 / 共131页
基于单片机的数字温度计和数字钟设计_第4页
第4页 / 共131页
基于单片机的数字温度计和数字钟设计_第5页
第5页 / 共131页
点击查看更多>>
资源描述

《基于单片机的数字温度计和数字钟设计》由会员分享,可在线阅读,更多相关《基于单片机的数字温度计和数字钟设计(131页珍藏版)》请在金锄头文库上搜索。

1、武汉理工大学专业课程设计2课程设计说明书摘 要 随着时代的进步和发展,单片机技术已经普及到生活、工作、科研等各个领域,已经成为一种比较成熟的技术。本文将介绍一种基于单片机控制的数字温度计和数字钟,本数字温度计属于多功能温度计,可以任意设置温度的上下限报警功能,当温度不在设定范围内时,可以报警;本数字钟可以同步显示时间日历,日期和时间都可通过按键校整。本系统采用的DS1302可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。本系统显示部分采用LCD液晶显示屏显示,可通过按键切换工作界面,工作方便,外形美观。单片机控制无疑是人们追求的目标之一,它给人带来的方便是不可否定的,其中数字温度计

2、和数字钟就是一个典型的例子,但人们对它的要求越来越高,要为现代人工作、科研、生活提供更好的更方便的设施就需要从单片机技术入手,一切向着数字化、智能化控制的方向发展。本文所介绍的数字温度计与传统的温度计相比,具有读数方便,测温范围广,测温准确度高,其输出温度采用数字显示,主要适用于对测温要求比较准确的场所或科研实验室;本文所介绍的数字钟采用了低功耗实时时钟电路DS1302,它可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。同时可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。本系统选用低功耗、高性能CMOS 8位微控制器AT89S52作为控制核心,采用温度传感器DS

3、18B20准确测量温度,采用液晶显示屏LCD1604显示实时温度和同步的时间日历。经过反复测试,本系统能准确完成各项功能。2 方案采用温度传感器DS18B20测量温度,采用LCD液晶显示屏显示实时温度和同步的时间日历。本系统可考虑选用一只温度传感器DS18B20,DS18B20不仅可以很容易直接读取被测温度值进行显示,而且温度传感器DS18B20具有独特的一线接口,只需要一条口线就可多点通信,无需外部元件,简化了分布式温度传感应用。本系统采用液晶显示屏LCD1604显示实时温度和同步的时间日历,电路简单,功耗低,显示信息量大,显示质量高,显示界面美观、友好,可以很好的满足设计要求。综上所述,方

4、案一的感温电路和显示电路设计繁杂,能量损耗大;方案二的设计电路简单,显示界面美观、友好,并且软件设计也比较简单,所以本系统选用方案二实现实时温度和同步的时间日历的显示功能。2.2系统总体设计框图数字温度计和数字钟电路的总体设计方框图如图1所示。主 控 制 器LCD显 示温 度 传 感 器单片机复位时钟振荡掉电保护电路 图1 总体设计方框图本系统控制器采用单片机AT89S52,温度传感器采用DS18B20,采用DS1302实现掉电充电功能,用液晶显示屏LCD1604显示实时温度和同步的时间日历。2.2.1 主控制器单片机AT89S52具有低电压供电和体积小等特点,四个端口只需要两个口就能满足电路

5、系统的设计需要,很适合便携手持式产品的设计使用,系统可用二节电池供电。2.2.2 显示电路显示电路采用液晶显示屏LCD1604进行显示,单片机从P0口传输温度和时间数据驱动LCD1604进行显示。 2.2.3温度传感器温度传感器DS18B20是一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,能直接读出被测温度,并且可根据实际要求通过简单的编程实现912位的数字值读数方式。DS18B20具有独特的单线接口,仅需一个端口引脚进行通信,并且多个DS18B20可并联在惟一的三线上,实现多点组网功能;用户还可根据需要定义报警设置,十分方便。2.2.3.1 DS18B20内部结构DS18B20采

6、用3脚PR35封装或8脚SOIC封装,其内部结构框图如图2所示。C64位ROM和单线接口高速缓存存储器控制逻辑辑辑温度传感器高温触发器TH低温触发器TL配置寄存器8位CRC发生器VddI/O 图2 DS18B20内部结构2.2.3.2 DS18B20测温原理如图4所示,图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器1,高温度系数晶振随温度变化其振荡频率明显改变,所产生的信号作为减法计数器2的脉冲输入。图中还隐藏着计数门,当计数门打开时,DS18B20就对低温度系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由高温度系数振荡器来决定,每

7、次测量前,首先将55所对应的一个基数分别置入减法计数器1和温度寄存器中,计数器1和温度寄存器被预置在55所对应的一个基数值。 图4 DS18B20测温原理图减法计数器1对低温度系数晶振产生的脉冲信号进行减法计数,当减法计数器1的预置值减到0时,温度寄存器的值将加1,减法计数器1的预置将重新被装入,减法计数器1重新开始对低温度系数晶振产生的脉冲信号进行计数。如此循环直到减法计数器2计数到0时,停止温度寄存器的累加,此时温度寄存器中的数值就是所测温度值。图4中的斜率累加器的输出用于修正减法计数器的预置值,只要计数器门仍未关闭就重复上述过程,直到温度寄存器值大致被测温度值。另外,由于DS18B20单

8、线通信功能是分时完成的,它有严格的时隙概念,因此读写时序很重要。系统对DS18B20的各种操作按协议进行。操作协议为:初使化DS18B20(发复位脉冲)发ROM功能命令发存储器操作命令处理数据。2.2.4 掉电保护电路传统的数据记录方式是隔时采样或定时采样,没有具体的时间记录,因此只能记录数据而无法准确记录其出现的时间。低功耗时钟芯片DS1302可以对年、月、日、周、时、分、秒进行计时,且具有闰年补偿等多种功能。同时可为掉电保护电源提供可编程的充电功能,并且可以关闭充电功能。DS1302内部结构图如图5所示。图5 DS1302内部结构图DS1302是一种高性能、低功耗、带RAM的实时时钟芯片,

9、它可以对年、月、日、日、时、分、秒进行计时,且具有闰年补偿功能,工作电压宽达2.55.5V。采用三线接口与单片机进行同步通信,并可采用突发方式一次传送多个字节的时钟信号或RAM数据。DS1302内部有一个318的用于临时性存放数据的RAM寄存器。DS1302是DS1202的升级产品,与DS1202兼容,但增加了主电源和后背电源双电源引脚,同时提供了对后背电源进行涓细电流充电的能力。3系统整体硬件电路3.1 主板电路系统整体硬件电路包括:传感器数据采集电路,温度和时间显示电路,上下限报警调整电路,单片机主板电路等,如图6 所示。图6 单片机主板电路单片机主板电路中有三个独立式按键可以调整温度计的

10、上下限报警设置和数字钟时间校准,蜂鸣器可以在被测温度超出上下限范围内时,发出报警鸣叫声音,同时液晶显示屏LCD1604也将显示报警提示信息,这时可以调整报警上下限,从而测出被测的温度值。单片机主板电路中的按健复位电路是上电复位加手动复位,使用比较方便,在程序跑飞时,可以手动复位,这样就不用在重起单片机电源,就可以实现复位。3.2 DS18B20与单片机的接口电路DS18B20可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20的1脚接地,2脚作为信号线,3脚接电源。另一种是寄生电源供电方式,如图7 所示单片机端口接单线总线,为保证在有效的DS18B20时钟周期内提供足够的电流,可用

11、一个MOSFET管完成对总线的上拉。当DS18B20处于写存储器操作和温度A/D转换操作时,总线上必须有强的上拉,上拉开启时间最大为10us。采用寄生电源供电方式时VDD端接地。由于单线制只有一根线,因此发送接口必须是三态的。3.4 系统整体硬件电路图9 系统整体硬件电路4系统软件设计系统程序主要包括主程序,读出温度子程序,温度转换命令子程序,计算温度子程序,显示数据刷新子程序等。4.1主程序主程序的主要功能是负责温度和时间日历的实时显示,读出并处理DS18B20的测量的当前温度值,温度测量每1s进行一次。这样可以在一秒之内测量一次被测温度,其程序流程见图10所示。初始化调用显示子程序1S到?

12、初次上电读温度值并处理显示数据刷新、显示时间日历发温度转换开始命令NYNY图10 主程序流程图4.2读出温度子程序读出温度子程序的主要功能是读出RAM中的9字节,在读出时需进行CRC校验,校验有错时不进行温度数据的改写。其程序流程图如上图图11所示。Y发DS18B20复位命令发跳过ROM命令发读取温度命令读取操作,CRC校验9字节完?CRC校验正?确?移入温度暂存器结束NNY图11 读温度流程图4.3温度转换命令子程序温度转换命令子程序主要是发温度转换开始命令,当采用12位分辨率时转换时间约为750ms,在本程序设计中采用1s显示程序延时法等待转换的完成。温度转换命令子程序流程图如上图,图12

13、所示。发DS18B20复位命令发跳过ROM命令发温度转换开始命令 结束图12 温度转换流程图4.4 计算温度子程序计算温度子程序将RAM中读取值进行BCD码的转换运算,并进行温度值正负的判定,其程序流程图如图13所示。 开始温度零下?温度值取补码置“”标志计算小数位温度BCD值 计算整数位温度BCD值 结束置“+”标志NY图13计算温度流程图4.5 显示数据刷新子程序显示数据刷新子程序主要是对显示缓冲器中的显示数据进行刷新操作,当最高显示位为0时将符号显示位移入下一位。程序流程图如图14。温度数据移入显示寄存器十位数0?百位数0?十位数显示符号百位数不显示百位数显示数据(不显示符号) 结束NN

14、YY图14显示数据刷新流程5功能测试5.1 温度测试1、用一只精度为0.1的水银温度计作对照标准,把它和温度传感器DS18B20一起放入同一杯冷水中,水银温度计读数为4.0,调节数字温度计电位器,使其显示值也为4.0,然后逐次向烧杯加热水改变水温,记下每次两只温度计的读数1(标准值)与2(测试值),其数据表格如表3所示。表3 温度数据列表1/4.010.216.322.731.843.051.857.465.670.678.02/4.010.516.122.631.342.651.757.265.671.078.1经对对照,两只温度计读数相差最大为0.5,平均相差仅有0.26。总体上讲,符合设计要求。2、通过按键key1键、key2键(增1键)和key3键(减1键)可任意设定温度的上下限报警功能,当所测温度超出设定的上下限温度范围,则液晶显示屏会产生报警提示。5.2 时间测试1、本系统上电后,会以前一次的时间为基础显示同步时间,将此时间与北京时间相比,误差

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 工作计划

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号