多功能电子万年历的设计_第1页
多功能电子万年历的设计_第2页
多功能电子万年历的设计_第3页
多功能电子万年历的设计_第4页
多功能电子万年历的设计_第5页
已阅读5页,还剩47页未读 继续免费阅读

下载本文档

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

文档简介

河南机电高等专科学校毕业设计论文1河南机电高等专科学校毕 业 设 计 论 文论文题目:多功能电子万年历系 部:电子通信工程系专 业: 应用电子技术 班 级: 2004 级 1 班 学生姓名: 崔 进 锋 学 号: 0442104 指导教师: 董 蕴 华 2007 年 5 月 20 日河南机电高等专科学校毕业设计论文2摘 要随着电子技术的迅速发展,特别是随大规模集成电路出现,给人类生活带来了根本性的改变。由其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来的诸多方便。本文首先描述系统硬件的特性及工作原理,并附以系统结构框图加以说明,着重介绍了本系统所应用的各硬件接口技术和各个接口模块的功能及工作过程,其次,详细阐述了程序的各个模块和实现过程。本设计以数字集成电路技术为基础,单片机技术为核心。本文编写的主导思想是软硬件相结合,以硬件为基础,来进行各功能模块的编写。本系统以单片机的汇编语言进行软件设计,为了便于扩展和更改,软件的设计采用模块化结构,使程序设计的逻辑关系更加简洁明了。系统采用实时时钟芯片 DS12C887,让时间更精确;采用温度传感器 DS18B20 实现智能测温,系统通过 16 个 LED 数码管载体显示数据,便于直观。可以显示年、月、日、星期、时、分、秒和温度,并有闹铃和温度上、下限报警功能。关键词:单片机;万年历;时钟芯片;温度传感器;LED 数码管河南机电高等专科学校毕业设计论文3AbstractAlong with the technical and quick development in electronics, appear with the large-scale integrated circuit especially, give mankind the life brought the changes of the root. The coal gas reports to the police the system publishes, scribing the electronics measure the instrument walked into the arithmetic figure turns the ages ts function is strong, the function is well-found, technique forerunner, will quickly technical development in science.This text discusses to report to the police the design of the system primarily with realizes. Make use of the electric potential machine replace the air spreads to feel machine, change its electric resistance value to change electric voltage, again with solid hour input of the air density proceeds the comparison, distinguishing the light that produce the harmony controls the different reaction controls, notify the each customer unit.It is use the compilation of language software to design, in order to facilitate the expansion and changes. Software Design modular structure, so that the logic of the design process even more succinct and clear. System uses real-time clock chip DS12C887 allow more precise time; DS18B20 using intelligent temperature, Through 16 LED digital display of vector data, and visual. Shows year, month, day, week, hour, minute ,second ,temperature, alarm clock and a temperature alarm for the upper and lower limits of the police function.Key words: MCU ;Calendar; Clock Chip ; Temperature sensor; LED digital control.河南机电高等专科学校毕业设计论文4目 录任务书 摘要 绪论 1第 1 章 电子万年历设计方案 31.1 功能要求 31.2 方案论证 3第 2 章 系统硬件电路的设计 42.1 主控制器 AT89S51 42.2 时钟电路 DS12C887 72.3 温度传感器 DS18B20 工作原理 132.4 显示电路的设计 172.5 键盘接口的设计 19第 3 章 系统程序的设计 203.1 主程序流程图 203.2 时间调整程序设计 203.3 读出温度子程序 213.4 温度转换命令子程序 223.5 计算温度子程序 223.6 温度数据的计算处理方法 223.7 控制源程序清单 23第 4 章 调试及性能分析 414.1 调试步骤 414.2 性能分析 41结束语/展望 42致谢 43参考文献 44附录 1 电子万年历原理图 45附录 2 电子万年历 PCB 图 46附录 3 元器件清单 47河南机电高等专科学校毕业设计论文5绪 论随着电子技术的迅速发展,特别是随大规模集成电路的出现,给人类生活带来了根本性的改变。尤其是单片机技术的应用产品已经走进了千家万户。电子万年历的出现给人们的生活带来了诸多方便。如今的万年历不仅仅只是作为时间来用,而是向着多元化、多功能的方向发展。例如,有温度的显示,附带有大型风景画作为装饰物等等。当今信息科学技术日新月异,电子信息类专业知识更新尤为迅猛。想要成为具有国际竞争能力的高水平的信息技术人才,促进我国信息产业发展和国家信息化水平的提高,就必须全面的学习新知识,提高自己的综合实力。而本次设计就是一个综合性的,具有创新、发展的课题。本设计采用 AT89S51 作为主控芯片,此芯片具有高性能、低功耗等优点,是理想的主控芯片。为了达到计时精确的目的,采用了美国 DALLAS 公司推出的 MC146818 兼容,寄存器存取速度快,且在主机掉电进可用来保存重要数据的实时时钟芯片 DS12C887。同时采用美国 DALLAS 公司的温度传感器DS18B20,可做到准确测量温度。目前市场上有 LCD 和 LED 两种数码管显示,本设计选择成本较低的 8 段共阳 LED 数码管显示。本设计中主要解决的问题有三个:第一、如何用单片机控制时钟芯片 DS12C887 并使其正常工作。对时钟芯片 DS12C887 的控制,最主要的是对其的初始化和对其数据的读写。DS12C887 采用连续工作制,一般无需每次都初始化,即使系统复位也是如此。但初始化时,首先应禁止内部的更新周期操作。所以,应先将时钟芯片DS12C887 的状态寄存器 B 中的 SET 位置 1,使时钟芯片停止工作,然后再进行初始化。DS12C887 处于正常工作状态时,每秒即产生一个更新周期。在该周期内,微处理器不能读时标寄存器中的内容,否则将得不到确定的数据。为了采样时标寄存器中的数据,有两种避开在更新周期内访问时标寄存器的方法。第一种是利用更新周期结束发出的中断;第二种是利用寄存器 A 中的 UIP 位来判断芯片是否处于更新中。第二、对温度传感器 DS18B20 的读取及控制。温度传感器 DS18B20 是美国 DALLAS 半导体公司推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可河南机电高等专科学校毕业设计论文6根据要求通过简单的编程实现 912 位的数字值读数方式。DS18B20 温度转换的时间比较长,而且庙宇的分辨率越高,所需的温度转换时间就越长。因此在应用时要将分辨率和时间权衡考虑。斜率累加器用于补偿和修正测温过程中的非线型性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。另外,由于 DS18B20 单线通信功能是从那时起完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。第三、如何控制显示。显示电路采用 74LS164 来驱动数码管。74LS164 内部为八个 D 触发器,用以实现数据的串行移位。单片机以串行口方式 0(移位寄存器方式)输出数据,16 片 74LS164 作为 16 个数码管的串行联换显示接口。74LS164 作为 TTL 单向八位移位寄存器,可实现串行输入、并行输出。在给出了 8 个脉冲后,最先进入 74LS164 的第 1 个字节数据到达了高位。再来 1 个脉冲,第 1 个脉冲就会从最高位移出,进入下一个 74LS164 的第一位,十六片 74LS164 首尾相串,而时钟端则接在一起。这样,当输入 8 个脉冲时,从单片机 RXD 端输出的第 1 字节数据就进入了第 1 片 74LS164 中,而当第 2 个 8 个脉冲到来后,第 1 字节数就进入了第 2 片 74LS164,而随后的第 2 字节的数据则进入了第一片 74LS164。这样当第十六个八个脉冲完成后首次送出的数据被送到了最下面的 164(第 16 片)中,其它数据依次出现在第十五至第一片 74LS164 中,实现了数据在 74LS164 中的串行输入、并行输出。本设计采用软件、硬件结合的方法,做出理想的效果,实现了设计的目的,是对所学课程的综合训练及应用。河南机电高等专科学校毕业设计论文7第 1 章 电子万年历设计方案1.1 功能要求电子万年历能显示年、月、日、星期、时、分、秒和温度;同时具备定时功能和温度报警功能。1.2 方案论证按照系统设计功能的要求,初步设计系统由主控模块、时钟模块、显示模块、测温模块、键盘接口模块共 4 个模块组成,电路系统构成框图如图 1-1 所示。A T 8 9 S 5 1主控模块键扫描电路显示电路D S 1 2 C 8 8 7时钟电路D S 1 8 B 2 0测温电路图 1 - 1 电 子 万 年 历 电 路 系 统 构 成 框 图主控芯片使用 51 系列的 AT89S51 单片机,时钟芯片使用美国 DALLAS 公司推出的将晶体振荡、振荡电路、充电电路和可充电锂电池等一起封装在芯片上方,组成一个加厚的集成电路模块数字时钟芯片 DS12C887,电路通电时其充电电路便自动对可充电电池充电,充足一次电可供芯片时钟运行半年之久,正常工作时可保证时钟数据 10 年内不会丢失,同时又能保证计时准确。DS12C887 内部有专门的接口电路,从而使得外部电路的时序要求十分简单,使它与各类微处理器的接口大大简化。测温电路同样采用美国 DALLAS 公司推出的一种改进型智能温度传感器 DS18B20 作为检测元件,测温范围为-55125,最大分辨率可达0.0625。DS18B20 可以直接读出被测温度值,而且采用 3 线制与单片机相连,减少了外部的硬件电路,具有低成本和易使用的特点。显示模块采用普通的共阳 LED 数码管显示,键输入采用查询法实现调整功能。河南机电高等专科学校毕业设计论文8第 2 章 系统硬件电路的设计系统由主控制器 AT89S51,时钟芯片 DS12C887,温度传感器 DS18B20,串口显示电路以及键盘扫描电路组成。电子万年历电路设计原理图见附录 1。2.1 主控制器 AT89S51AT89S51 是一种带 4K 字节闪烁可编程可擦除只读存储器(FPEROMFalshProgrammable and Erasable Read Only Memory)的低电压,高性能 CMOS 8 位微处理器,俗称单片机。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中,ATMEL 的 AT89S51 是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。2.1.1 AT89S51 主要特性:(1)面向控制的 8 位 CPU;(2)128 B 的片内数据存储器;(3)可以寻址 64 KB 的片外程序存储器;(4)可以寻址 64 KB 的片外数据存储器;(5)32 根双向和可单独寻址的 I/O 线;(6)一个全双工的异步串行口;(7)两个 16 位定时/计数器;(8)5 个中断源,两个中断优先级;(9)有片内时钟振荡器;(10)采用高性能的 HMOS 生产工艺生产;(11)有布尔处理(位操作)能力;(12)含基本指令 111 条,其中单机器周期指令 64 种。2.1.2 引脚说明河南机电高等专科学校毕业设计论文9AT89S51 是 40 脚双列直插芯片。图 2-1 是其引脚图。其引脚描述下:1电源引脚 GND 和 VCCGND(20 脚):接地。VCC(40 脚):正常操作及对 EPROM 编程和验证时接 +5 V 电源。2外接晶体引脚 XTAL1 和 XTAL2XTAL1(19 脚):接外部晶体的一端。在单片机内部,它是一个反向放大器的输入端,这个放大器构成了片内振荡器。当采用外部振荡器时,对于 HMOS单片机,此引脚就接地;对于 CHMOS 单片机,此引脚作为驱动端。XTAL2(18 脚):接外部晶体的另一端。在单片机内部,接至上述反向放大器的输出端。当采用外部振荡器时,对 HMOS 单片机,此引脚接收振荡器的信号,即把此信号直接接到内部时钟发生器的输入端;对 CHMOS 单片机,此引脚应悬浮。3控制或与其他电源复用引脚 RESET/VPD,ALE/ , 和 /VPPPROGSENARESET/VPD(9 脚):当振荡器运行时,在此引脚上出现两个机器周期以上的高电平,将使单片机复位;VCC 掉电期间,此引脚可接备用电源,以保持内部RAM 的数据不丢失;当 VCC 掉到低于规定水平,而 VPD 在其规定的电压范围(5 0.5 V)内, VPD 向内部 RAM 提供备用电源。P 1 . 0P 1 . 1P 1 . 2P 1 . 3P 1 . 4P 1 . 5P 1 . 6P 1 . 7R E S E T / V P DR X D 、 P 3 . 0T X D 、 P 3 . 1I N T 0 、 P 3 . 2I N T 1 、 P 3 . 3T 0 、 P 3 . 4T 1 、 P 3 . 5W R 、 P 3 . 6R D 、 P 3 . 7X T A L 1X T A L 2G N DP 2 . 0P 2 . 1P 2 . 2P 2 . 3P 2 . 4P 2 . 5P 2 . 6P 2 . 7P S E NA L E / P R O GE A / V P PP 0 . 7P 0 . 6P 0 . 5P 0 . 4P 0 . 3P 0 . 2P 0 . 1P 0 . 0V C C1234567891 01 11 21 31 41 51 61 71 81 92 0 2 12 82 93 03 13 23 33 43 53 63 73 83 94 0图 2 - 1 A T 8 9 S 5 1 引脚图2 22 32 42 52 62 7ALE/ (30 脚):当访问外部存储器时,MCS51 系列单片机即用 P0PROG口作为低 8 位地址输出口,又作为数据输入/输出口。为了使地址与数据不至于混淆,通常先送地址再传送数据。ALE(允许地址锁存)将 P0 口输出的低 8 位地河南机电高等专科学校毕业设计论文10址锁存,从而实现低位地址与数据的分离。即使不访问外部存储器,ALE 端仍以不变的频率周期性地出现正脉冲信号,此频率为振荡器频率的 1/6。因此,它可以用做对外输出的时钟,或用于定时目的。要注意的是:每当访问外部数据存储器时,将跳过一个 ALE 脉冲。 ALE 端可以驱动(吸收或输出电流) 8 个LSTTL(标准 TTL 电平)输入。(29 脚):是外部程序存储器的读选通信号。在外部程序存储器取指PSEN令(或常数)期间,每一个机器周期两次有效。每当访问外部数据存储器时,这两次有效的 信号将不出现。 同样可以驱动 8 个 LSTTL 输入。PSEN/VPP(31 脚):当 端保持高电平时,访问内部程序存储器,但在AAPC(程序计数器)值超过 0FFFH 时,将自动转向访问外部存储器。当 端保持EA低电平时,不管是否有内部程序存储器,则只访问外部程序存储器。4输入/输出引脚 P0 口、P1 口、P2 口和 P3 口P0 口(P0.0P0.7 共 8 条引脚,即 3932 脚):是双向 8 位暂态 I/O 口。在访问外部存储器时,可分时用做低 8 位地址线和 8 位数据线;在 EPROM 编程时,它输入指令字节,而在验证程序时,则输出指令字节。P0 口能驱动 8 个LSTTL 输入。P1 口(P1.0P1.7 共 8 条引脚,即 18 脚):P1 口是一个带有内部上拉电阻的 8 位双向 I/O 口。在 EPROM 编程和程序难时,它接收低 8 位地址,能驱动4 个 LSTTL 输入。P2 口(P2.0P2.7 共 8 条引脚,即 2128 脚):P2 口是一个带有内部上拉电阻的 8 位双向 I/O 口。在访问外部存储器时,它送出高 8 位地址。在对EPROM 编程和程序验证时,它接收高 8 位地址,能驱动 4 个 LSTTL 输入。P3 口(P3.0P3.7 共 8 条引脚,即 1017 脚):P3 口是一个带有内部上拉电阻的 8 位双向 I/O 口。在 MCS51 单片机中,这 8 个引脚都有各自的第二功能,在实际工作中,大多数情况下都使用 P3 口的第二个功能,表 2-1 表示出了P3 口的第二功能。表 2-1 P3 口的第二功能口线 第二功能 名称P3.0 RXD 串行数据接收端P3.1 TXD 串行数据发送端P3.2 INT0外部中断 0 申请输入端P3.3 1外部中断 1 申请输入端P3.4 T0 定时器 0 计数输入端P3.5 T1 定时器 1 计数输入端河南机电高等专科学校毕业设计论文11P3.6 WR外部 RAM 写选通P3.7 D外部 RAM 读选通2.1.3 振荡器特性XTAL1 和 XTAL2 分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石英晶体振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2 应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。2.1.4 芯片擦除整个 PEROM 阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持 ALE 管脚处于低电 10ms 来完成。在芯片擦除操作中,代码阵列全被写“1”且在任何非空存储字节被重复编程以前,该操作必须被执行。此外,AT89S51 设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU 停止工作。但 RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存 RAM 的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。2.2 时钟电路 DS12C8872.2.1 主要性能特点(1)具有完备的时钟、闹钟及到 2100 年的日历功能,可选择 12 小时制或 24小时制计时,有 AM 和 PM、星期、夏令时间操作,闰年自动补偿等功能;(2)具有可编程选择的周期性中断方式和多频率输出的方波发生器功能;(3)内部有 14 个时钟控制寄存器,包括 10 个时标寄存器,4 个状态寄存器和 114 bit 作掉电保护用的低功耗 RAM;(4)由于该芯片具有多种周期中断速率时钟中断功能,因此可以满足各种不同的待机要求,最长可达 24 小时,使用非常方便;(5)时标可选择二进制或 BCD 码表示;(6)工作电压:+4.55.5 V;河南机电高等专科学校毕业设计论文12(7)工作电流:715mA;(8)工作温度范围:070。2.2.2 DS12C887 的引脚说明DS12C887 的引脚图如图 2-2 所示。现将其引脚描述说明如下: AD0AD7:地址/数据分时复用线。 NC:空脚 MOT:总线类型选择。接高电平,选择摩托罗拉时序;接低电平,选择英特尔时序。 :片选线。在对 DS12C887 操作其CS间,该位必须保持低电平,以处于选通状态。 AS:地址选通信号。下降沿将地址锁存在 DS12C887 内部以选通其内部RAM。 R/ :读/写控制信号。在英特尔时序下,R/ 用作写 信号。W WR DS:数据选通信号。 :复位输入。要求复位时间应200ms。REST :中断表示输信号。只要内部所允许的中断信号存在,它就保持在低电平IQ上。 SQW:方波输出信号。 VCC:+5V 主电源。一般要求 VCC+4.25V。 GND:地。2.2.3 控制寄存器与内部 RAM1234567891012 134156178192012324MOTNC NCVGND CSAR/WNCAD012AD345A67SQWIRQESTD图 2- DS12C87引 脚 图河南机电高等专科学校毕业设计论文13秒秒报警分分报警时时报警星期日月年寄存器 A寄存器 B寄存器 C寄存器 D0 00 10 20 30 40 50 60 70 80 90 A0 B0 C0 D0 E0 001 3 0 D6 33 F01234567891 01 11 21 3可用二进制或BCD码表示图 2 - 3 D S 1 2 C 8 8 7 地 址 分 配 颁 布 图1 4 b i t5 0 b i tR A M( 可供用户使用 )图 2-3 给出了 DS12C887 的地址分配图。从图中可以看出,DS12C887 内部共有 128 B RAM 可用。1)时间、日历和报警数据位置分配表 2-2 给出了时间、日历和报警数据位置分配分布情况。在表 2-2 中可以清楚地看到,任何一个数据都有两种给出方式:二进制和 BCD 码形式。表 2-2 时间、日历和报警数据模式范 围地 址功 能十进制范围 二进制数据模式 BCD 码模式0 秒 059 003B 0591 秒报警 059 003B 0592 分 059 003B 0593 分报警 059 003B 059时 12 进制 012 010C AM 818C PM 01 12 AM 8192 PM4时 24 进制 023 0017 0023时报警 12 进制 012 010C AM 818C PM 01 12 AM 8192 PM5时报警 24 进制 023 0017 00236 星期 17 0107 01077 日 131 011F 01318 月 112 010C 01129 年 099 0063 009950 世纪 099 NA 1920河南机电高等专科学校毕业设计论文142)寄存器 A寄存器 A 控制字的格式如下:BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0寄存器 A 的各位不受复位影响,且除 UIP 位外,其他各位均可读写。UIP:更新进行中状态标志。为 1 时,表示更新即将开始,为 0 时表示更新至少在 244 us 内不会进行,即该位为 0 时,时钟信息可读。DV2、DV1、DV0:用来判断或是打开振荡器,并复位递减计数器组。当写入010 时,下一次更新将在半秒后进行。RS3、RS2、RS1、RS0:用来选择 15 级分频器中 13 个抽头的一个抽头或禁止分频器输出。抽头选择用来产生方波或周期中断。表 2-3 列出了与 RS 组合相对应的周期中断速率和方波频率。该 4 位的读写不爱复位信号影响。表 2-3 周期中断速率和输出方波频率寄存器 A 选择位RS3 RS2 RS1 RS0周期中断速率SQW 方波输出频率0 0 0 0 None None0 0 0 1 3.90625 ms 256 Hz0 0 1 0 7.8125 ms 129 Hz0 0 1 1 0.122070 ms 8.192 kHz0 1 0 0 0.244141 ms 4.096 kHz0 1 0 1 0.488241 ms 7.048 kHz0 1 1 0 0.976563 ms 1.024 kHz0 1 1 1 1.953125 ms 512 Hz1 0 0 0 3.90625 ms 256 Hz1 0 0 1 7.812 ms 128 Hz1 0 1 0 15.625 ms 64 Hz1 0 1 1 31.25 ms 32 Hz1 1 0 0 62.5 ms 16 Hz1 1 0 1 125 ms 8 Hz1 1 1 0 250 ms 4 Hz1 1 1 1 500 ms 2 Hz河南机电高等专科学校毕业设计论文153) 寄存器 B寄存器 B 控制字的格式如下:BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0SET PIE AIE UIE SWQE DM 24/12 DSE寄存器 B 可读可写,用于控制芯片的工作状态。SET 位:芯片工作控制位。该位为 1 时,芯片停止工作,此时可对芯片进行初始化;该位为 0 时,芯片处于工作状态,每秒产生一个更新中断。PIE、AIE、UIE 位:这三位分别是周期中断、报警中断、更新中断的允许控制位。当各位写入 1 时,将允许相应的中断。SQWE 位:方波输出允许位。用来确定方波是否允许输出。DM 位:时标数字给出方式位。用来选择时标以 BCD 码或二进制码的形式给出。24/12 位:该位用来选择是 24 小时进制还是 12 小时进制。DSE 位:夏令时选择位。用来选择是否实行夏令时。4) 寄存器 C寄存器 C 控制字的格式如下:BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0IRQF PF AF UF 0 0 0 0寄存器 C 是芯片的状态寄存器,读之后,自动清零。IRQF 位:中断申请标志位。其逻辑表达式为:IRQF=PF PIE+AF AIE+UFUIE。当 IRQF 位变为 1 时,IRQF 脚变低,从而引发中断申请。PF、AF、UF 位:这三位分别是周期中断、报警中断、更新结束中断标志位。只要满足中断条件,相应的中断标志位将置 1。b3b0 位:保留位。读出值始终为 0。5) 寄存器 D寄存器 D 控制格式如下:BIT7 BIT6 BIT5 BIT4 BIT3 BIT2 BIT1 BIT0河南机电高等专科学校毕业设计论文16VRT 0 0 0 0 0 0 0寄存器 D 为只读存储器,并不爱复位影响。VRT 位:内部数据有效指示位。该位的读出值应为 1;一旦读出值为 0,则指示内部锂电池电力不足,此时无法保证其内部数据的正确性。b6b0 位:保留位。读出值始终为 0。2.2.4 DS12C887 的初始化DS12C887 采取连续工作制,一般无需每次都初始化,即使是系统复位时也如此。但初始化时,首先应禁止芯片内部的更新周期操作,所以,应先将DS12C887 状态寄存器 B 中的 SET 位置 1,然后初始化 00H09H 时标寄存器和状态寄存器 A。此后,再通过读状态寄存器 C,清除寄存器 C 中的周期中断标志位 PF、报警中断标志位 AF、更新周期结束中断标志位 UF。通过读寄存器 D 中的 VRT 位后将自动使该位置 1。最后,将状态寄存器 B 中的 SET 位置 0,芯片开始计时工作。2.2.5 DS12C887 的中断和更新周期DS12C887 处于正常工作状态时,每秒钟将产生一个更新周期。芯片处于更新周期的标志是,寄存器 A 中的 UIP 位为 1。在更新周期内,芯片内部时标寄存器的数据处于更新阶段,故在该周期内,微处理器不能读芯片时标寄存器的内容,否则将得到不确定数据。更新周期的基本功能主要是,刷新各个时标寄存器中的内容,同时秒时标寄存器内容加 1,并检查其它时标寄存器内容是否有溢出。如有溢出,则相应进位日、月、年。更新周期的另外一个功能是,检查时、分、秒三个报警时标寄存器的内容是否与对应时标寄存器的内容相符,如果相符,则寄存器 C 中的 AF 位置 1。如果报警时标寄存器的内容为 C0HFFH 之间的数据,则为不关心状态。为了采样时标寄存器中的数据,器件提供了两种避开更新周期来访问时标寄存器的方案。第一种方案是,利用更新周期结束发出的中断。它可以编程允许在每次更新周期结束后发生中断申请,提醒 CPU 将有 998 ms 左右的时间去获取有效数据,在中断之后的 998 ms 时间内,程序可先将时标数据读到芯片内部的不掉电静态 RAM 中。因为芯片内部的静态 RAM 和状态寄存器是可随时读、写的,在离开中断服务子程序前应清除寄存器 C 中的 IRQF 位。另一种方案是,利用寄存器 A 中的 UIP 位来指示芯片是否处于更新周期。在 UIP 位由低变高 244s 后,河南机电高等专科学校毕业设计论文17芯片将开始其更新周期。所以,如检测到 UIP 位为低电平时,则利用 244s 的间隔时间去读取时标信息;如检测到 UIP 位为 1,则可暂缓读数据,等到 UIP 变成低电平后再去读数据。2.2.6 DS12C887 的闹钟单元使用方法DS12C887 共有三个闹钟单元,分别为时、分、秒闹钟单元。在其中写入闹钟时间值并且在时钟中断允许的情况下,每天到该时刻就会产生中断申请信号。但这种方式每天只提供一次中断信号。另一种方式是在闹钟单元中写入“不关心码”,在时闹钟单元写入 C0HFFH 之间的数据,可每小时产生一次中断;在时、分闹钟单元写入 C0HFFH 之间的数据,可每分钟产生一次中断;而在时、分、秒闹钟单元全部写入 FFH,则每秒钟产生一次中断。但这种方式也只能在整点、整分或每秒产生一次中断。若控制系统要求的定时间隔不是整数时,则应该通过软件来调整实现。2.3 温度传感器 DS18B20 工作原理DS18B20 温度传感器是美国 DALLAS 半导体公司最新推出的一种改进型智能温度传感器,与传统的热敏电阻等测温元件相比,它能直接读出被测温度,并且可根据实际要求通过简单的编程实现 912 位的数字值读数方式。2.3.1 DS18B20 的性能特点1)独特的单线接口仅需要一个端口引脚进行通信;2)多个 DS18B20 可以并联在唯一的三线上,实现多点组网功能;3)无须外部器件;4)可通过数据线供电,电压范围为 3.05.5 V;5)零待机功耗;6)温度以 9 或 12 位数字量读出;7)用户可定义的非易失性温度报警设置;8)报警搜索命令识别并标志超过程序限定温度(温度报警条件)的器件;9)负电压特性,电源极性接反时,温度计不会因发热而烧毁,但不能正常工作。河南机电高等专科学校毕业设计论文182.3.2 DS18B20 的内部结构其及工作原理DS18B20 采用 3 脚 PR-35 封装或 8 脚 SOIC 封装,其内部结构框图如图 2-4所示。6 4 位 R O M和单线接口存储器与控制逻辑高速缓存温度传感器高温触发器 T H低温触发器 T L8 位 C R C 发生器配置寄存器CVD DI / O图 2 - 4 D S 1 8 B 2 0 内 部 结 构 图64 位 ROM 的位结构如图 2-5 所示。开始 8 位是产品类型的编号,接着是每个器件的唯一的序号,共有 48 位,最后 8 位是前面 56 位的 CRC 检验码,这也是多个 DS18B20 可以采用一线进行通信的原因。非易失性温度报警触发器 TH和 TL,可通过软件写入户报警上下限。8 位检验 C R C4 8 位序列号 8 位工厂代码 ( 1 0 H )M S B L S B M S B L S B M S B L S B图 2 - 5 6 4 位 R O M 结构图温度 L S R温度 M S BT H 用户字节 1T L 用户字节 2配置寄存器保 留保 留保 留C R C1 字节2 字节3 字节4 字节5 字节6 字节7 字节8 字节9 字节E E R O MT L 用户字节 2T H 用户字节 1图 2 - 6 高速暂存 R A M 结构图河南机电高等专科学校毕业设计论文19DS18B20 温度传感器的内部存储器还包括一个高速暂存 RAM 和一个非易失性的可电擦除的 EERAM。高速暂存 RAM 的结构为 8 字节的存储器,结构如图2-6 所示。头 2 个字节包含测得的温度信息,第 3 和第 4 字节是 TH 和 TL 的拷贝,是易失的,每次上电复位时被刷新。第 5 个字节为配置寄存器,它的内容用于确定温度值的数字转换分辨率。DS18B20 工作时按此寄存器中的分辨率将温度转换为相应精度的数值。该字节各位的定义如图 2-7 所示。低 5 位一直为 1,TM 是测试模式位,用于设置 DS18B20 在工作模式还是在测试模式。在 DS18B20 出厂时该位被设置为 0,用户不要去改动,R1 和 R0 决定温度转换的精度位数,即用来设置分辨率,定义方法见表 2-4。T M R 1 R 0 1 1 1 1 1图 2 - 7 配置寄存器表 2-4 DS12C887 分辨率的定义规定R1 R0 分辨率/位 温度最大转换时间/ms0 0 9 93.750 1 10 187.51 0 11 3751 1 12 750由表 2-4 可见,DS12C887 温度转换的时间比较长,而且设定的分辨率越高,所需要的温度数据转换时间就越长。因此,在实际应用中要将分辨率和转换时间权衡考虑。高速暂存 RAM 的第 6、7、8 字节保留未用,表现为全逻辑 1。第 9 字节读出前面所有 8 字节的 CRC 码,可用来检验数据,从而保证通信数据的正确性。当 DS18B20 接收到温度转换命令后,开始启动转换。转换完后的温度值就以 16 位带符号位扩展的二进制补码形式存储在高速暂存存储器的第 1、2 字节。单片机可以通过单线接口读出该数据,读数据时低位在前,高位在后,数据格式以 0.0625/LSB 形式表示。温度值格式如图 2-8 所示。当符号位 S=0 时,表示测得的温度值为正值,可以直接将二进制转换为十进制;当符号位 S=1 时,表示测得的温度值为负值,要先将补码变成原码,再计算十进制值。表 2-5 是一部分温度值对应的二进制温度数据。河南机电高等专科学校毕业设计论文20表 2-5 DS18B20 温度与测得值对应表温度/ 二进制表示 十六进制表示+125 0000 0111 1101 0000 07D0H+85 0000 0101 0101 0000 0550H+25.0625 0000 0001 1001 0001 0191H+10.125 0000 0000 1010 0010 00A2H+0.5 0000 0000 0000 1000 0008H0 0000 0000 0000 0000 0000H-0.5 1111 1111 1111 1000 FFF8H-10.125 1111 1111 0101 1110 FF5EH-25.0625 1111 1110 0110 1111 FE6FH-55 1111 1100 1001 0000 FC90H232221202- 12- 22- 32- 4S S S S S262524L S 字节M S 字节图 2 - 8 温度数据值格式DS18B20 完成温度转换后,就把测得的温度值与 RAM 中的 TH、TL 字节内容作比较。若 TTH 或 TTL ,则将该器件内的报警标志位置位,并对主机发出的报警搜索命令作出响应。因此,可用多只 DS18B20 同时测量温度并进行报警搜索。在 64 位 ROM 的最高有效字节中存储有循环冗余检验码(CRC) 。主机根据ROM 的前 56 位来计算 CRC 值,并和存入 DS18B20 的 CRC 值作比较,以判断主机收到的 ROM 数据是否正确。DS18B20 的测温原理如图 2-9 所示。图中低温度系数晶振的振荡频率受温度的影响很小,用于产生固定频率的脉冲信号送给减法计数器 2 的脉冲输入。图中还隐含着计数门,当计数门打开时,DS18B20 就对低温系数振荡器产生的时钟脉冲进行计数,进而完成温度测量。计数门的开启时间由温度系数振荡器来决定,每次测量前,首先将55所对应的一个基数分别置入减法计数器 1、温度寄存器中,减法计数器 1 和温度寄存器被预置在55所对应的一个基数值。河南机电高等专科学校毕业设计论文21斜率累加器预置计数比较器减法计数器 1预置低温度系数振荡器减到 0 温度寄存器高温度系数振荡器 减法计数器 2 减到 0增加图 2 - 9 D S 1 8 B 2 0 测温原理图减法计数器 1 对低温系数晶振产生的脉冲信号进行减法计数,当减法计数器1 的预置值减到 0 时,温度寄存器的值将加 1,减法计数器 1 的预置值将重新被装入,减法计数器 1 重新开始对低温度系数晶振产生的脉冲信号进行计数,如此循环直到减法计数器 2 计数到 0 时,停止温度寄存器值的累加,此时温度寄存器中的数据就是所测温度值。图 2-9 中的斜率累加器用于补偿和修正测温过程中的非线形性,其输出用于修正减法计数器的预置值,只要计数门仍未关闭就重复上述过程,直到温度寄存器值达到被测温度值。另外,由于 DS18B20 单线通信功能是从那时起完成的,它有严格的时隙概念,因此读写时序很重要。系统对 DS18B20 的各种操作必须按协议进行。操作协议为:初始化 DS18B20(发复位脉冲)发 ROM 功能命令发存储器操作命令处理数据。2.3.3 DS18B20 与单片机的接口电路DS18B20 可以采用两种方式供电,一种是采用电源供电方式,此时DS18B20 的 1 脚接地,2 脚作为信号线,3 脚接电源。另一种是寄生电源供电方式。本设计采用电源供电方式,如图 2-10 所示。2.4 显示电路的设计单 片 机AT89S51 DS18B203P1.0CV图 2-10 DS18B20采 用 电 源 供 电 的 电 路 图河南机电高等专科学校毕业设计论文22显示部分采用普通的共阳 LED 数码管显示,第一排 7 个 LED 数码管分别表示十年、年、十月、月、十日、日和星期;第二排 6 个 LED 数码管分别为十时、时、十分、分、十秒和秒;第三排 3 个 LED 数码管分别表示十度、度和小数。显示时采用串行口输出段码,用 16 片 74LS164 分别来驱动这 16 个数码。2.4.1 LED 数码管结构与显示方式 gf G N D a bedG N Dcd pdecgfabd pR 8 5 V 5 Vbgfaedcd pbgfaedcd p( a ) 共阴极 ( b ) 共阳极 ( c ) 管脚配置图 2 - 1 1 7 段 L E D 显示块LED 数码管又称 LED 显示器,是由发光二极管显示字段的显示器件。在单片机应用系统中通常使用的是 7 段 LED。这种显示块有共阴极与共阳极两种,如图 2-11 所示。共阴极 LED 显示块的发光二极管阴极共地。如图 2-11(a)所示,当某个发光二极管的阳极为高电平时,发光二极管点亮;共阳极 LED 显示块的发光二极管阳极并接(在系统中,接驱动电源) 。如图 2-11(b)所示。当某个发光二极管的阴极为低电平时,发光二极管点亮。通常的 7 段 LED 显示块中有 8 个发光二极管,帮也称作 8 段显示器。其中7 个发光二极管构成 7 笔字型“8” ;一个发光二极管构成小数点的“ ”。7 段发光二极管,再加上一个小数点位,共计 8 段,因此提供给 LED 显示器的字型数据正好一个字节。其对应关系如下:D7 D6 D5 D4 D3 D2 D1 D0dp g f e d c b aLED 显示器分为静态显示和动态显示两种显示方式。(1)LED 静态显示方式。

温馨提示

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

评论

0/150

提交评论