文档详情

毕业设计—基于at89s51单片机控制的带有温度显示的电子钟的设计

ss****gk
实名认证
店铺
DOCX
275.16KB
约37页
文档ID:233084998
毕业设计—基于at89s51单片机控制的带有温度显示的电子钟的设计_第1页
1/37

摘要本文介绍了一款基于AT89S51单片机控制的带有温度显示的电子钟的设计,通过多 功能数字钟带有温度的设计思路,详细叙述了系统硬件、软件的具体实现过程论文重 点阐述了数字钟硬件中MCU模块、温度模块、时钟模块、显示模块和相关控制模块等的 模块化设计与制作;软件同样采用模块化的设计,包括中断模块、温度模块、时间调整 模块设计,并采用简单流通性强的C语言编写实现本设计实现了时间的修改功能和年、 月、日和星期的显示和温度显示功能关键词:单片机;C语言编程;DS1302时钟芯片;DS18B20;温度传感器刖吞单片微型计算机是随着超大规模集成电路技术的发展而诞生的,由于它具有体积 小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事 装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和 质量,又降低了成本,简化了设计本文主要介绍由单片机控制的带有温度显示的电子 钟的设计随着人们生活水平的日益提高,人们对生活的要求越来越高,原有的事物已 经不能满足人们的生活需求了,一些带有新功能的事物已经在慢慢的取代旧事物就像 电子钟一样,人们用电子钟不仅仅只是看时间了,人们还需要看温度了。

越来越多的新 功能更贴近人们的生活了,所以也越来越受人们所喜欢带有温度的的电子钟可以使人 们随时都可以了解温度的变化1. 系统实现功能、设计方案论证及芯片介绍1.1. 设计要求本设计准备实现的功能:⑴万年历(2) 三键调时(设置键,+键,一键)(3) 可每次增减一进行时间调节(4) 按键蜂鸣器提示(5) 温度显示2. 方案论证与设计2.1. 设计方案论证方案一:用主芯片为AT89C51的单片机控制实现,使用单片机内部的定时计数器 实现时间的设定,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使 用DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、 抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度 转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接 多个传感器芯片显示时间和温度使用数码管显示方案1系统结构框图如图1-1所示图1-1方案1系统结构框图方案二:用主芯片为STC89C52的单片机控制实现,为了满足单片机系统的实时控 制的需求,采用实时钟芯片DS1302,使用按键进行时间的调整和定时,温度传感器使用DS18B20o显示时间和温度使用LCD1602显示。

方案2系统结构框图如图1-2所示图1-2方案2系统结构框图2.2.方案选择方案一直接使用单片机内集成的定时器,产生定时节拍,编制软件计数器,进行 节拍技术,理论上讲,不但能够完成秒表设计,还能够实现分钟、刻钟、小时的实时 计时功能,在此基础上,如果加上足够精确的误差时间补偿处理,甚至可以实现日、 星期、月、年等日历功能但使用片内定时器有以下几个问题:2.2.1. 时间补偿片内定时器采用中断方式提供计时节拍,中断的实质是随机程序切换,那么,中断 响应时间是不可精确预测的这样,必然会导致计时节拍的时间误差,在计时时间较短 的情况下,比如l~99s计时,可以采用一些软件措施进行误差补偿,但当系统所需要的 计时时间较长时,比如进行年、月、日的日历计时,定时中断误差直积累就会很大,无 法满足时间精度的要求因此,在需要日历、时钟的场合,片内定时器的作用有限片 内定时器只适合于单片机短时间计时的要求 2.2.2. 时钟维持使用片内定时器进行计时的时候,单片机始终要处于工作状态才能维持计时时间, 一旦停机或进入待机状态,开机后,计时时间就需要重新设定在单片机系统中,有时, 需要维持一个时钟,对控制工作进行时间标定。

不管单片机系统开机、关机还是待机, 系统时钟要始终维持为了满足单片机系统的实时钟需求,最可靠的方法是采用实时钟芯片DS1302温 度的数据采集如果是一般的温度传感器,需要对信号进行处理,另外还需要模数转换装 置,如果采用的是数字温度传感器18B20,可以直接将采集的信号转化为数字信息供单 片机控制,这样不仅节约了成本,还提高了系统的可靠性和稳定性所以本设计采用的 是方案三芯片介绍2.3. DS18B20芯片介绍DALLASDSI8B2O低功耗、 统,可直 一总线上 范围为一 °C,被测 NC也可采用 畋端口线就 电路以NCGNC1DS18B20 是 DALLAS 公司申 高性能、搞干扰能力强、易配| 接将温度转化成串行数字信号可以挂接多个传感器芯片它55 °C~ + 125°C,可编程为9召 温度用符号扩展的16位数字; 寄生电源方式产生,多个DSlf 能与多个DS18B20通信,占用 上特点使DS18B20非常适用于1、DS18B20外形及引脚访图1-2 DS18B20外形及引脚图在T0-92和S0-8的封装中引脚有所不同,具体斧别请杳阅PDF手册,在T0-92 封装中引脚分配如下:(1) GND:地;C2) DQ:单线运用的数据输入输出引脚;(3) VDD:可选的电源引脚。

2、DS18B20I作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为 计数器1提供一频率稳定的计数脉冲高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一 个频率随温度变化的计数脉冲初始时,温度寄存器被预置成-55°C,每当计数器1从预置数开始减计数到0 时,温度寄存器中寄存的温度值就增加1°C,这个过程重复进行,直到计数器2计数到 0时便停止初始时,计数器1预置的是与-55£相对应的一个预置值以后计数器1每一个循 环的预置数都由斜率累加器提供为了补偿振荡器温度特性的非线性性,斜率累加器提 供的预置数也随温度相应变化计数器1的预置数也就是在给定温度处使温度寄存器寄 存值增加1°C计数器所需要的计数个数DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位在计 数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0. 25°C进行比 较,若低于0. 25°C,温度寄存器的最低位就置0;若高于0. 25°C,最低位就置1;若高 于0.75C时,温度寄存器的最低位就进位然后置0这样,经过比较后所得的温度寄存 器的值就是最终读取的温度值了,其最后位代表0.5°C,四舍五入最大量化误差为土 1/2LSB,即 0. 25°Co温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制 补码形式表示温度值。

测温结束时,这9位数据转存到暂存存储器的前两个字节中,符 号位占用第一字节,8位温度数据占据第二字节DS18B20测量温度时使用特有的温度测量技术DS18B20内部的低温度系数振荡器 能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号当 计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定芯片内 部还有斜率累加器,可对频率的非线性度加以补偿测量结果存入温度寄存器中一般 情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形式读 出DS18B20工作过程一般遵循以下协议:初始化——ROM操作命令——存储器操 作命令一处理数据1) 初始化单总线上的所有处理均从初始化序列开始初始化序列包括总线主机发出一复位脉 冲,接着由从属器件送出存在脉冲存在脉冲让总线控制器知道DS1820在总线上且已 准备好操作2) ROM操作命令一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一所有 ROM操作命令均为8位长这些命令介绍如下:Read ROM(读ROM) [33h]此命令允许总线主机读DS18B20的8位产品系列编码, 唯一的48位序列号,以及8位的CRCo此命令只能在总线上仅有一个DS18B20的情况下 可以使用。

如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发 生数据冲突的现象(漏极开路会产生线与的结果)Match ROM(符合ROM) [55h]此命令后继以64位的ROM数据序列,允许总线主机 对多点总线上特定的DS18B20寻址只有与64位ROM序列严格相符的DS18B20才能对 后继的存贮器操作命令作出响应所有与64位ROM序列不符的从片将等待复位脉冲 此命令在总线上有单个或多个器件的情况下均可使用Skip ROM(跳过ROM ) [CCh]在单点总线系统中,此命令通过允许总线主机不提 供64位ROM编码而访问存储器操作来节省时间如果在总线上存在多于一个的从属器 件而且在Skip ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线 上发生数据冲突(漏极开路下拉会产生线与的效果)Search ROM(搜索ROM) [FOh]当系统开始工作时,总线主机可能不知道单线总线 上的器件个数或者不知道其64位ROM编码搜索ROM命令允许总线控制器用排除法识 别总线上的所有从机的64位编码Alarm Search (告警搜索)[ECh]此命令的流程与搜索ROM命令相同但是,仅在 最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。

告警的条件定义 为温度高于TH或低于TL只要DS18B20-上电,告警条件就保持在设置状态,直到另 一次温度测量显示出非告警值或者改变TH或TL的设置,使得测量值再一次位于允许的 范围之内贮存在EEPROM内的触发器值用于告警3)存储器操作命令Write Scratchpad (写暂存存储器)[4Eh]这个命令向DS18B20的暂存器中写入 数据,开始位置在地址2接下来写入的两个字节将被存到暂存器中的地址位置2和3 可以在任何时刻发出复位命令来中止写入Read Scratchpad (读暂存存储器)[BEh] 这个命令读取暂存器的内容读取将 从字节0开始,一直进行下去,直到第9 (字节8, CRC)字节读完如果不想读完所有 字节,控制器可以在任何时间发出复位命令来中止读取Copy Scratchpad (复制暂存存储器)[48h] 这条命令把暂存器的内容拷贝到 DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里如果总线控制 器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储 器,DS18B20就会输出一个“0” ,如果拷贝结束的话,DS18B20则输出“1”。

如果使 用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10msConvert T (温度变换)[44h] 这条命令启动一次温度转换而无需其他数据温 度转换命令被执行,而后DS18B20保持等待状态如果总线控制器在这条命令之后跟着 发出读吋间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线上输出“0”,若 温度转换完成,则输出“1” o如果使用寄生电源,总线控制器必须在发出这条命令后 立即起动强上拉,并保持500msoRecall E2 (重新调整E2) [B8h]这条命令把贮存在E2中温度触发器的值重新调 至暂存存储器这种重新调出的操作在对DS18B20±电时也自动发生,因此只要器件一 上电,暂存存储器内就有了有效的数据在这条命令发出之后,对于所发出的第一个读 数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就绪Read Power Supply (读电源)[B4h]对于在此命令发送至DS18B20之后所发出的 第一读数据的时间片,器件。

下载提示
相似文档
正为您匹配相似的精品文档