欢迎来到冰点文库! | 帮助中心 分享价值,成长自我!
冰点文库
全部分类
  • 临时分类>
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • ImageVerifierCode 换一换
    首页 冰点文库 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

    带温度显示的电子钟设计 推荐.docx

    • 资源ID:6654313       资源大小:234.53KB        全文页数:42页
    • 资源格式: DOCX        下载积分:3金币
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录 QQ登录
    二维码
    微信扫一扫登录
    下载资源需要3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP,免费下载
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    带温度显示的电子钟设计 推荐.docx

    1、带温度显示的电子钟设计 推荐摘要本文介绍了一款基于AT89S51单片机控制的带有温度显示的电子钟的设计,通过多功能数字钟带有温度的设计思路,详细叙述了系统硬件、软件的具体实现过程。论文重点阐述了数字钟硬件中MCU模块、温度模块、时钟模块、显示模块和相关控制模块等的模块化设计与制作;软件同样采用模块化的设计,包括中断模块、温度模块、时间调整模块设计,并采用简单流通性强的C语言编写实现。本设计实现了时间的修改功能和年、月、日和星期的显示和温度显示功能。关键词:AT89S51 单片机 数字钟 温度显示 Abstract This paper introduced the design of digi

    2、tal clock based on SCM of AT89S51, the specific process of how the system hardware and software achieved were detailed description through the design of multifunction digital clock. The modular design and production, which consisted of MCU module, voice module,clock module and the associated control

    3、 module, were mainly recounted;As well as hardware designing,software design use the same method, consists suspension module,alarm clock module, voice module, time adjust module, and that use the C language to achieve because of its simple and strong negotiability. In this design the functions of ti

    4、me and alarm clock run and change, voice broadcast,functions of the year, month, day and week display have been achieved. And by comparing the actual clock. Key words :AT89S51 Microcontroller Digital Clock the Display of Temperature 目 录前 言.1第一章 系统实现功能、设计方案论证及芯片介绍.2第一节 系统要求实现功能.2第二节 设计方案论证.2第三节 芯片介绍.

    5、4 一、DS18B20芯片介绍.4 二、DS1302芯片介绍.9第二章 电路硬件设计及分析.13 第一节 时钟电路. .13第二节 复位电路.13第三节DS1302时钟电路.14第四节 DS18B20温度计电路.14第五节 键盘电路.15第六节 显示电路.16第七节 按键提示电路.17第三章 软件设计.18第一节 主函数流程图.18第二节 18B20温度计流程图.18第三节 键盘电路流程图.20第四节 定时器T0中断服务程序流程图.21第四章 结束语.22附录1 电路原理图.23附录2 主程序清单 .24参考文献 .36致 谢 .37前 言单片微型计算机是随着超大规模集成电路技术的发展而诞生的

    6、,由于它具有体积小、功能强、性价比高等特点,所以广泛应用于电子仪表、家用电器、节能装置、军事装置、机器人、工业控制等诸多领域,使产品小型化、智能化,既提高了产品的功能和质量,又降低了成本,简化了设计。本文主要介绍由单片机控制的带有温度显示的电子钟的设计。随着人们生活水平的日益提高,人们对生活的要求越来越高,原有的事物已经不能满足人们的生活需求了,一些带有新功能的事物已经在慢慢的取代旧事物。就像电子钟一样,人们用电子钟不仅仅只是看时间了,人们还需要看温度了。越来越多的新功能更贴近人们的生活了,所以也越来越受人们所喜欢。带有温度的的电子钟可以使人们随时都可以了解温度的变化。第一章 系统实现功能、设

    7、计方案论证及芯片介绍第一节 系统要求实现功能(1) 万年历 (2) 温度显示(3) 三键调时(设置键,上调键,下调键)(4) 按键蜂鸣器提示第二节 设计方案论证方案一 用主芯片为AT89C51的单片机控制实现,使用单片机内部的定时计数器实现时间的设定,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、抗干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一总线上可以挂接多个传感器芯片。显示时间和温度使用数码管显示。方案1系统结

    8、构框图如图1-1所示。图1-1 方案1系统结构框图方案二 用主芯片为AT89C51的单片机控制实现,为了满足单片机系统的实时控制的需求,采用实时钟芯片DS1302,使用按键进行时间的调整和定时,按键蜂鸣器提示,温度传感器使用普通的温度传感器,由于温度传感器采集的数据为模拟量,又因为单片机AT89C51内部没有集成模数转换器,需要在控制系统的外部使用A/D转换装置,另外系统还应该把采集来的数据进行信号处理,显示温度和时间使用LCD1602显示。方案2系统结构框图如图1-2所示。图1-2 方案2系统结构框图方案三 用主芯片为AT89C51的单片机控制实现,为了满足单片机系统的实时控制的需求,采用实

    9、时钟芯片DS1302,使用按键进行时间的调整和定时,按键有蜂鸣器提示,温度传感器使用DALLAS公司生产的单总线式数字温度传感器。显示时间和温度使用LCD1602显示。方案3系统结构框图如图1-3所示。 图1-3 方案3系统结构框图方案选择 方案一直接使用单片机内集成的定时器,产生定时节拍,编制软件计数器,进行节拍技术,理论上讲,不但能够完成秒表设计,还能够实现分钟、刻钟、小时的实时计时功能,在此基础上,如果加上足够精确的误差时间补偿处理,甚至可以实现日、星期、月、年等日历功能。但使用片内定时器有以下几个问题:1、时间补偿片内定时器采用中断方式提供计时节拍,中断的实质是随机程序切换,那么,中断

    10、响应时间是不可精确预测的。这样,必然会导致计时节拍的时间误差,在计时时间较短的情况下,比如199s计时,可以采用一些软件措施进行误差补偿,但当系统所需要的计时时间较长时,比如进行年、月、日的日历计时,定时中断误差扥积累就会很大,无法满足时间精度的要求。因此,在需要日历、时钟的场合,片内定时器的作用有限。片内定时器只适合于单片机短时间计时的要求。 2、时钟维持使用片内定时器进行计时的时候,单片机始终要处于工作状态。才能维持计时时间,一旦停机或进入待机状态,开机后,计时时间就需要重新设定。在单片机系统中,有时,需要维持一个时钟,对控制工作进行时间标定。不管单片机系统开机、关机还是待机,系统时钟要始

    11、终维持。为了满足单片机系统的实时钟需求,最可靠的方法是采用实时钟芯片DS1302。温度的数据采集如果是一般的温度传感器,需要对信号进行处理,另外还需要模数转换装置,如果采用的是数字温度传感器18B20,可以直接将采集的信号转化为数字信息供单片机控制,这样不仅节约了成本,还提高了系统的可靠性和稳定性。所以本设计采用的是方案三。第三节 芯片介绍一、DS18B20芯片介绍 DS18B20是DALLAS公司生产的单总线式数字温度传感器,它具有微型化、低功耗、高性能、搞干扰能力强、易配处理器等优点,特别适用于构成多点温度测控系统,可直接将温度转化成串行数字信号(提供9位二进制数字)给单片机处理,且在同一

    12、总线上可以挂接多个传感器芯片。它具有3引脚TO92小体积封装形式,温度测量范围为55125,可编程为9位12位A/D转换精度,测温分辨率可达0.0625,被测温度用符号扩展的16位数字量方式串行输出,其工作电源既可在远端引入,也可采用寄生电源方式产生,多个DS18B20可以并联到3根或2根线上,CPU只需一根端口线就能与多个DS18B20通信,占用微处理器的端口较少,可节省大量的引线和逻辑电路。以上特点使DS18B20非常适用于远距离多点温度检测系统。1、DS18B20外形及引脚说明DS18B20外形及引脚如图1-4所示。 图1-4 DS18B20外形及引脚图在TO-92和SO-8的封装中引脚

    13、有所不同,具体差别请查阅PDF手册,在TO-92封装中引脚分配如下:(1)GND:地;(2)DQ:单线运用的数据输入输出引脚;(3)VDD:可选的电源引脚。2、DS18B20工作过程及时序DS18B20内部的低温度系数振荡器是一个振荡频率随温度变化很小的振荡器,为计数器1提供一频率稳定的计数脉冲。高温度系数振荡器是一个振荡频率对温度很敏感的振荡器,为计数器2提供一个频率随温度变化的计数脉冲。初始时,温度寄存器被预置成-55,每当计数器1从预置数开始减计数到0时,温度寄存器中寄存的温度值就增加1,这个过程重复进行,直到计数器2计数到0时便停止。初始时,计数器1预置的是与-55相对应的一个预置值。

    14、以后计数器1每一个循环的预置数都由斜率累加器提供。为了补偿振荡器温度特性的非线性性,斜率累加器提供的预置数也随温度相应变化。计数器1的预置数也就是在给定温度处使温度寄存器寄存值增加1计数器所需要的计数个数。DS18B20内部的比较器以四舍五入的量化方式确定温度寄存器的最低有效位。在计数器2停止计数后,比较器将计数器1中的计数剩余值转换为温度值后与0.25进行比较,若低于0.25,温度寄存器的最低位就置0;若高于0.25,最低位就置1;若高于0.75时,温度寄存器的最低位就进位然后置0。这样,经过比较后所得的温度寄存器的值就是最终读取的温度值了,其最后位代表0.5,四舍五入最大量化误差为1/2L

    15、SB,即0.25。温度寄存器中的温度值以9位数据格式表示,最高位为符号位,其余8位以二进制补码形式表示温度值。测温结束时,这9位数据转存到暂存存储器的前两个字节中,符号位占用第一字节,8位温度数据占据第二字节。DS18B20测量温度时使用特有的温度测量技术。DS18B20内部的低温度系数振荡器能产生稳定的频率信号;同样的,高温度系数振荡器则将被测温度转换成频率信号。当计数门打开时,DS18B20进行计数,计数门开通时间由高温度系数振荡器决定。芯片内部还有斜率累加器,可对频率的非线性度加以补偿。测量结果存入温度寄存器中。一般情况下的温度值应该为9位,但因符号位扩展成高8位,所以最后以16位补码形

    16、式读出。DS18B20工作过程一般遵循以下协议:初始化ROM操作命令存储器操作命令处理数据。(1)初始化 单总线上的所有处理均从初始化序列开始。初始化序列包括总线主机发出一复位脉冲,接着由从属器件送出存在脉冲。存在脉冲让总线控制器知道DS1820 在总线上且已准备好操作。(2) ROM操作命令 一旦总线主机检测到从属器件的存在,它便可以发出器件ROM操作命令之一。所有ROM操作命令均为8位长。这些命令介绍如下:Read ROM(读ROM)33h 此命令允许总线主机读DS18B20的8位产品系列编码,唯一的48位序列号,以及8位的CRC。此命令只能在总线上仅有一个DS18B20的情况下可以使用。

    17、如果总线上存在多于一个的从属器件,那么当所有从片企图同时发送时将发生数据冲突的现象(漏极开路会产生线与的结果)。 Match ROM( 符合ROM)55h 此命令后继以64位的ROM数据序列,允许总线主机对多点总线上特定的DS18B20寻址。只有与64位ROM序列严格相符的DS18B20才能对后继的存贮器操作命令作出响应。所有与64位ROM序列不符的从片将等待复位脉冲。此命令在总线上有单个或多个器件的情况下均可使用。Skip ROM( 跳过ROM )CCh 在单点总线系统中,此命令通过允许总线主机不提供64位ROM编码而访问存储器操作来节省时间。如果在总线上存在多于一个的从属器件而且在Skip

    18、 ROM命令之后发出读命令,那么由于多个从片同时发送数据,会在总线上发生数据冲突(漏极开路下拉会产生线与的效果)。Search ROM( 搜索ROM)F0h 当系统开始工作时,总线主机可能不知道单线总线上的器件个数或者不知道其64位ROM编码。搜索ROM命令允许总线控制器用排除法识别总线上的所有从机的64位编码。Alarm Search(告警搜索)ECh 此命令的流程与搜索ROM命令相同。但是,仅在最近一次温度测量出现告警的情况下,DS18B20才对此命令作出响应。告警的条件定义为温度高于TH 或低于TL。只要DS18B20一上电,告警条件就保持在设置状态,直到另一次温度测量显示出非告警值或者

    19、改变TH或TL的设置,使得测量值再一次位于允许的范围之内。贮存在EEPROM内的触发器值用于告警。(3) 存储器操作命令Write Scratchpad(写暂存存储器)4Eh 这个命令向DS18B20的暂存器中写入数据,开始位置在地址2。接下来写入的两个字节将被存到暂存器中的地址位置2和3。可以在任何时刻发出复位命令来中止写入。Read Scratchpad(读暂存存储器)BEh 这个命令读取暂存器的内容。读取将从字节0开始,一直进行下去,直到第9(字节8,CRC)字节读完。如果不想读完所有字节,控制器可以在任何时间发出复位命令来中止读取。Copy Scratchpad(复制暂存存储器)48h

    20、 这条命令把暂存器的内容拷贝到DS18B20的E2存储器里,即把温度报警触发字节存入非易失性存储器里。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又正在忙于把暂存器拷贝到E2存储器,DS18B20就会输出一个“0”,如果拷贝结束的话,DS18B20 则输出“1”。如果使用寄生电源,总线控制器必须在这条命令发出后立即起动强上拉并最少保持10ms。Convert T(温度变换)44h 这条命令启动一次温度转换而无需其他数据。温度转换命令被执行,而后DS18B20保持等待状态。如果总线控制器在这条命令之后跟着发出读时间隙,而DS18B20又忙于做时间转换的话,DS18B20将在总线

    21、上输出“0”,若温度转换完成,则输出“1”。如果使用寄生电源,总线控制器必须在发出这条命令后立即起动强上拉,并保持500ms。Recall E2(重新调整E2)B8h 这条命令把贮存在E2中温度触发器的值重新调至暂存存储器。这种重新调出的操作在对DS18B20上电时也自动发生,因此只要器件一上电,暂存存储器内就有了有效的数据。在这条命令发出之后,对于所发出的第一个读数据时间片,器件会输出温度转换忙的标识:“0”=忙,“1”=准备就绪。Read Power Supply(读电源)B4h 对于在此命令发送至DS18B20之后所发出的第一读数据的时间片,器件都会给出其电源方式的信号:“0”=寄生电源

    22、供电,“1”=外部电源供电。(4)处理数据DS18B20的高速暂存存储器由9个字节组成,其分配如图1-5所示。当温度转换命令发布后,经转换所得的温度值以二字节补码形式存放在高速暂存存储器的第0和第1个字节。单片机可通过单线接口读到该数据,读取时低位在前,高位在后。图1-5 高速暂存存储器分配图表1-1是DS18B20温度采集转化后得到的12位数据,存储在DS18B20的两个8比特的RAM中,二进制中的前面5位是符号位,如果测得的温度大于或等于0,这5位为0,只要将测到的数值乘于0.0625即可得到实际温度;如果温度小于0,这5位为1,测到的数值需要取反加1再乘于0.0625即可得到实际温度。温

    23、度转换计算方法举例:例如,当DS18B20采集到+125的实际温度后,输出为07D0H,则:实际温度=07D0H0.0625=20000.0625=1250C。例如当DS18B20采集到-55的实际温度后,输出为FC90H,则应先将11位据位取反加1得370H(符号位不变,也不作为计算),则:实际温度=370H0.0625=8800.0625=550C。表1-1 DS18B20温度数据表 温度/0C二进制表示十六进制表示符号位(5位)数据位(11位)+1250 0 0 0 01111101000007D0H+25.06250 0 0 0 0001100100010191H+10.1250 0

    24、0 0 00001010001000A2H+0.50 0 0 0 0000000010000008H00 0 0 0 0000000000000000H-0.51 1 1 1 111111111000FFF8H-10.1251 1 1 1 111101011110FF5EH-25.6251 1 1 1 111001101111FE6FH-551 1 1 1 110010010000FC90H二、DS1302芯片介绍DS1302是DALLAS公司推出的涓流充电时钟芯片,内含一个实时时钟/日历和31字节静态RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、星期、月、年

    25、的信息,每个月的天数和闰年的天数可自动调整,时钟操作可通过AM/PM标志位决定采用24或12小时时间格式。DS1302与单片机之间能简单地采用同步串行的方式进行通信,仅需三根I/O线:复位(RST)、I/O数据线、串行时钟(SCLK)。时钟/RAM的读/写数据以一字节或多达31字节的字符组方式通信。DS1302工作时功耗很低,保持数据和时钟信息时,功耗小于1mW。1、DS1302的内部结构DS1302的外部引脚功能说明如图1-6所示。 DS1302封装图X1,X232.768kHz晶振引脚GND地RST复位I/O数据输入/输出SCLK串行时钟VCC1电池引脚VCC2主电源引脚 图1-6 DS1

    26、302的外部引脚功能说明图DS1302的内部结构如图1-7所示,主要组成部分为:移位寄存器、控制逻辑、振荡器、实时时钟以及RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对特定的地址进行读写操作。 图1-7 DS1302的内部结构图 DS1302含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串入的二极管数目,以调节电池充电电压。不过对我们目前而言,最需要熟悉的是和时钟相关部分的功能,对于其它参数请参阅数据手册。2、DS1302的工作原理DS1302工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为高电平且将8位地址和命令信息装入移位寄存器。数

    27、据在时钟(SCLK)的上升沿串行输入,前8位指定访问地址,命令字装入移位寄存器后,在之后的时钟周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式下为8+8(8位地址+8位数据),在多字节方式下为8加最多可达248的数据。3、DS1302的寄存器和控制命令对DS1302的操作就是对其内部寄存器的操作,DS1302内部共有12个寄存器,其中有7个寄存器与日历、时钟相关,存放的数据位为BCD码形式。此外,DS1302还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的寄存器。日历、时间寄存器及控制字如表1-2所示。表1-2 日历、时钟寄存器与控制字对照表寄存器名称765432101RAM/CKA4A3A2A1A0RD/W秒寄存器1000000分寄存器1000001小时寄存器10


    注意事项

    本文(带温度显示的电子钟设计 推荐.docx)为本站会员主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2023 冰点文库 网站版权所有

    经营许可证编号:鄂ICP备19020893号-2


    收起
    展开