




已阅读5页,还剩25页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
智能程控打铃器智能铃摘要 提示作息时间的打铃器在各学校等单位经常被使用,其中智能程控打铃器应运最广泛。智能程控打铃器不但解除了作息管理的麻烦,而且改变了人工打铃、工控制电器等落后现象,它可以使电器自动的周期性工作。在这里我就是运用单片机以及一些具有特定功能的芯片来实现程序控制地自动周期性打铃器,除了打铃功能外还具备了电子时钟的功能,在断过电后,要继续准确的显示时间和打铃。在生活和生产的各个领域中,凡是有自动控制要求的地方几乎都有单片机的身影,都有使用单片机的需求。单片机的应用大有想象和拓展空间。单片机稳定可靠、体积小、价格廉价,所以很多科技产品都是采用单片机来完成所要完成的控制,而要完成这些控制只要把单片机与计算机编写的程序联系起来,就可以做到。因此单片机在使用中可以根据程序的不同而改变控制,增加了电路的灵活性。我在设计中使用了单片机 AT89S51和芯片 DS12887 来控制打铃器的一切任务,以及在时钟电路中用芯片 74HC164 来驱动数码管,用来显示电子时钟。 关键词 智能程控打铃器单片机AT89S51芯片DS12887芯片 74HC164智能程控打铃器Intelligent Program-Controlled Ring A BellRong XueqingCollege of Information, Huaibei, Normal University 235000Abstract Ringer which can prompts the time of working and resting is familiarity to everyone of us. It is used in all kings of schools and working units. Intelligence P- rogrammable Ringer which is one kind of the ringers is most popular used by engin-eers. It not only releases the trouble of controlling work and rest, but also changes the way people ring and the lagging phenomenon of manual control electronics and so on. It can makes the machines work proudly. Single chip on computer and chip that has s- ome specifically function are the devices I use to control auto periodic ringer.Except the function of auto periodic ring, it also has the function of electric clock. It can re- sumes accurately displaying the time and ringing on time after switching of the power. In every domain of the generative life, the single chip on the computer which is used in the place that need auto control emerges almost everywhere. It is used by factorys very common. The application of single chip on computer has much larger imagina- bly and continuations space. Single chip on computer is stable and reliable. Its volu- me is very small, and the price of it is cheapness. All these are the merits of the single chip on computer. So many science and technology products manufactures use the si- ngle chip on computer to realize the controlling. In order to complete these controlling what wo do just connect the single chip on computer to the computer programm.The use of the single chip on computer is easy to change with the difference of the progra- ms. It make the circuit much more flexi able. The type of single chip on computer that I use is AT89S51 and chip DS12887.I use these two chips to complete all the tasks of controlling ringer. In the timer circuit I use Chip 74HC164 to drive the digital trans- istor. The function of the timer circuit is displaying the time. Key words Intelligence Programmable Ringer; Single chip on computer AT89S51; Chip DS12887; Chip 74HC164 目次引言11 单片机 AT89S51 和时钟芯片 DS12887 介绍21.1 单片机 AT89S51 介绍21.2 时钟芯片 DS12C887介绍122 基本理论182.1 硬件电路182.2程序设计203 电路版制作过程223.1 电路制作223.2 原理图常见错误223.3 PCB 中常见错234 结论24参考文献25致谢2627引言打铃器是一种常见的电子产品,特别是程控智能打铃器广泛应用于学校、机关、工厂、车站、码头、医院、邮电等企事业单位。打铃器的数字化提高了打铃器的应用力度,用单片机控制的数字打铃器可以准确的对时间进行调整,以及打铃控制进行设置。由于应运了时钟芯片而使一个普通的打铃器除了本身的打铃功能还具备电子时钟,年历等功能。 智能程控打铃器显而易见是用程序控制的,而编写程序的目的是对硬件中的单片机来进行控制,从而使硬件电路达到预定的要求。何谓单片机:一台能够工作的计算机要有这样几个部份构成:CPU(进行运算、控制)、RAM(数据存储)、ROM(程序存储)、输入/输出设备(例如:串行口、并行输出口等)。在个人计算机上这些部分被分成若干块芯片,安装一个称之为主板的印刷线路板上。而在单片机中,这些部分,全部被集中到一块集成电路芯片中了,所以就称为单片(单芯片)机,而且有一些单片机中除了上述部份外,还集成了其它部分如 A/D,D/A 等。单片机的应用使得电路更加简单,开发的成本更加的节省。与早期单片机开发相比,现在单片机开发几乎不可能离开计算机,学习单片机同样也需要有计算机。现在对单片机功能的开发不仅要对它的原理和功能有所了解,更始需要我们在设计的同时把单片机与计算机编写程序联系起来,以使单片机能够更好的完成预定的任务。本次课题中就应用到了计算机为单片机编写控制程序。而且现在在单片机的开发上更有软件所占的比重大过硬件的趋势,这就意味着外部电路越来越简单而通过编写软件来完成的功能越来越多。 1 单片机 AT89S51 和时钟芯片 DS12887 介绍 由于在我的设计方案中主要是靠单片机 AT89S51和时钟芯片DS12887来实现打铃和 电子时钟功能的,所以我先详细介绍下它们。 1.1 单片机 AT89S51 介绍 AT89S51是一种带4K字节闪烁可编程可擦除只读存储器(FPEROMFalsh Program- mable and Erasable Read Only Memory)的低电压,高性能CMOS8位微处理器,俗称单片机。该器件采用ATMEL高密度非易失存储器制造技术制造,与工业标准的MCS-51指令集和输出管脚相兼容。由于将多功能8位CPU和闪烁存储器组合在单个芯片中,ATMEL的AT89S51是一种高效微控制器,为很多嵌入式控制系统提供了一种灵活性高且价廉的方案。AT89S51的引脚功能图,如图1所示:1.主要特性: 与MCS-51 兼容 4K字节可编程闪烁存储器 数据保留时间:10年 全静态工作:0Hz-24Hz 三级程序存储器锁定 128*8位内部RAM 32可编程I/O线 两个16位定时器/计数器 5个中断源 可编程串行通道 低功耗的闲置和掉电模式 片内振荡器和时钟电路 图 12.管脚说明: 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口也可作为AT89S51的一些特殊功能口,如下表所示: 口管脚 备选功能 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:来自反向振荡器的输出。 振荡器特性: XTAL1和XTAL2分别为反向放大器的输入和输出。该反向放大器可以配置为片内振荡器。石晶振荡和陶瓷振荡均可采用。如采用外部时钟源驱动器件,XTAL2应不接。有余输入至内部时钟信号要通过一个二分频触发器,因此对外部时钟信号的脉宽无任何要求,但必须保证脉冲的高低电平要求的宽度。 芯片擦除: 整个PEROM阵列和三个锁定位的电擦除可通过正确的控制信号组合,并保持ALE管脚处于低电平10ms来完成。在芯片擦操作中,代码阵列全被写1且在任何非空存储字节被重复编程以前,该操作必须被执行。 此外,AT89S51设有稳态逻辑,可以在低到零频率的条件下静态逻辑,支持两种软件可选的掉电模式。在闲置模式下,CPU停止工作。但RAM,定时器,计数器,串口和中断系统仍在工作。在掉电模式下,保存RAM的内容并且冻结振荡器,禁止所用其他芯片功能,直到下一个硬件复位为止。 3单片机的中断系统 中断技术是计算机中一项很重要的技术,中断系统由硬件和软件组成。有了中断系统能使计算机的功能更强,效率更高、更加方便灵活,本章将介绍单片机的中断系统,处理过程及其应用。(1)中断系统的组成 AT89S51 系列单片机有5个中断源,可分为2个中断优先级,即高优先级中断顺序查询逻辑亦称硬件查询逻辑,5个中断源的中断请求是否会得到响应,要受中断允许寄存器汇各位的控制,它们的优先级分别由 IP 各位来确定;同一优先级内的各中断源同时请求中断时就由内部的硬件查询逻辑来确定响应次序;不同的中断源有不同的中断矢量。(2)中断源及中断人口和低优先级;每一个中断源的优先级都可以由程序来设定。 AT89S51 的中断系统组成见图 1-4 所示它由 4 个与中断有关的特殊功能寄存器 (TCON、SCON 的相关位作中断源的标志位),中断允许控制寄存器 IE 和中断顺序查询逻辑等组成。 AT89S51 单片机有 5 个中断源:2 个外部输人中断源TNT 0 (P3. 2和TNT1 (P3,3);3 个内部中断源 T0 和 T1 的溢出中断源及串行口发送接收中断源。其中断请求信号的产生如下述: TNT 0 和TNT1:外部中断 0 和外部中断 1其中断请求信号分别由 P3. 2,P3. 3引脚输入。请求信号的有效电平由 IT0 和 IT1 设置,一旦输入信号有效,则将 TCON 中的IE0 或 IE1 标志位置 1,可向 CPU 申请中断。 TF0 和 TF1:定时器 0 和定时器 1 的溢出中断。当 T0 或 T1 计数器加 l 计数产生溢出时,则将 TCON 中的 TF0 或 TF1 置位,向 CPU 申请中断。 RI 和 TF1:串行口的接收和发送中断。当串行口接收或发送完一帧数据时,将 TCON中的 RI 或 TI 位置 1,向 CPU 申请中断。 当某中断源的中断请求被 CPU 响应之后,CPU 将自动把此中断源的中断人口地址(又称中断矢量地址)装入 PC,中断服务程序即从此地址开始执行。因此一般在此地址单元中存放一条绝对跳转指令,可以跳至用户安排的中断服务程序的人口处。AT89S51 单片机各中断源的矢量地址是固定的。如表 1。 表1 单片机中断源的矢量地址表(3)中断控制部分的功能 AT89S51 单片机中断控制部分由 4 个专用寄存器组成,它们的功能分述如下: 5个中断请求标志: 5 个中断源的外部中断和定时器中断请求标志位设置在定时控制寄存器 TCON(是一个特殊功能寄存器)中, 其各位的定义及标志位和建立本节中已述, 在此仅说明一下 TCON的 ITO 和 IT1 位,它们是外部中断的触发方式设置位,决定外部中断的复位方法。外部中断的复位方式为:当 IT0 时,外部中断为电平触发方式,该方式下 CPU 每个机器周期的 S5P2 期间对 TNT 引脚采样,若测得为低电平,则认为有中断申请,随即使 IE 标志位置位;若测得为高电平,认为无中断申请或中断申请已撤除,随即清除 IE 标志位。在电平触发方式中,CPU 响应中断后不能自动清除 IE 标志位,也不能由软件清除 IE 标志,所以在中断返回前必须撤消 TNT 引脚上的低电平,否则将再次中断造成出错。 若 IT1 时,外部中断设置为边沿触发方式。CPU 在每个机器周期的 S5P2 期间采样而引脚,若在连续两个机器周期采样到先高后低的电平变化,则将 IE 标志位置“1”此标志一直保持到 CPU 响应中断时,才由硬件自动清除。在边沿触发方式中,为保证 CPU在两个机器周朗内检测到由高至低的负跳变,输入高电平和低电平的持续时间起码要保持 12 个振荡器周期即一个机器周期的时间。TCON 的其它位在此不再重述。 串行口的中断请求标志由串行口控制寄存器 SCON 的 D0 和 D1 位来设置。 RI(SCON.0)为接收中断标志位;TI(SCON.1)为发送中断标志位。其中断申请信号的产生过程为: 发送过程:当 CPU 将一个数据写入发送缓冲器 SBUF 时,就启动发送,每发送完一帧数据。由硬件自动将 TI 位置位。但 CPU 响应中断时,并不能清除 TI 位,所以必须由软件清除。 接收过程:在串行口允许接收时即可串行接收数据,当一帧数据接收完毕,由硬件自动将则位置位。同样 CPU 响应中断时不能清除 RI 位,必须由软件清除。 AT89S51 单片机系统复位后TCON 和 SCON 中各位均清 0,应用时要注意各位的初始状态。设定为高优先级,否则为低优先级。 中断开放和屏蔽 AT89S51 单片机中,设有一个专用寄存器 IE 称为中断允许寄存器,其作用是用来对各中断源进行开放或屏蔽的控制。其各位的定义如下: IP.7 和 IP.6 保留位 PT2IP5 位为定时器 2 优先级设定位,仅适用于 52 子系列单片机。PT21 时,设定为高优先级,否则为低优先级。 PsIP.4 位为串行口优先级设定位。PS1 时,串行口为高优先级否则为低优先级。 PT1IP3 位为定时器 l 优先级设定位。PT11 时,T1 为高优先级,否则为低先级。 PX1IP.2 位为外部中断 1 优先级设定位。PX11 时,外部中断 l 为高优先级,否则为低优先级。 PT0IP.1 位为定时器 0 优先级设定位。PT01 时,T0 为高优先级,否则为低优先级。 PX0IP.0 位为外部中断 0 优先级设定位。PXO1 时,外部中断 o 为高优先级,否则为低优先级。 当系统复位后IP 各位均为 0,所有中断源设置为低优级中断。IP 也是可进行字节寻址和位寻址的专用寄存器。 (4)优先级结构 靠设置 IP 寄存器把各中断源的优先级分为高低 2 级,它们遵循 2 条基本原则; 低优级中断可以较高优先级中断所中断,反之不能。 一种中断(不管是什么优先级)一旦得到响应,与它同级的中断不能再中断它。 为了实现这 2 条规则,中断系统内部包含 2 个不可寻址的“优先级激活”触发器。其中一个指示某高优级的中断正在得到服务,所有后来的中断都被阻断。另一个触发器指示某低优先级的中断正在得到服务,所有同级的中断都被阻断,但不阻断高优先级的中断。 当 CPU 同时收到几个同一优先级的中断请求时,圆一个的请求将得到服务取决于内部的硬件查询顺序,CPU 将按自然优级顺序确定该响应四个中断请求。其自然优先级由硬件形成,排列如表 2: 表2自然优先级在每一个机器周期中,CPU 对所有中断源都顺序地检查一遍,这样到任一机器周期的 S6状态,可找到所有已激活的中断请求,并排好了优先权。在下一个机器周期的 S1 状态,只要不受阻断就开始响应其中最高优先级的中断请求。若发生下列情况,中断响应会受到阻断: r级或高优先级的中断正在进行中;现在的机器周期还不是执行指令的最后一个机器周期,即正在执行的指令还没完成前不响应任何中断; 正在执行的是中断返回指令 RETI 或是访问专用寄存器 IE 或 IP 的指令,换而言之,在 RETI 或者读写 IE 或 IP 之后,不会马上响应中断请求,至少要在执行其它一条指令之后才会响应。 若存在上述任一种情况,中断查询结果就被取消。否则,在紧接着的下一个机器周朗,中断查询结果变为有效。 (5)中断处理过程 中断处理过程可分为三个阶段:即中断响应、中断处理相中断返回。由于各计算机系统的中断系统硬件结构不同,中断响应的方式就有所不同。在此说明 AT89S51 单片机的中断处理过程。中断响应: 中断响应条件 CPU 响应中断的条件有:一有中断源发出中断请求;二中断总允许位 EA1,即 CPU开中断;三申请中断的中断源的中断允许位为 1,即没有被屏蔽。 以上条件满足,一般 CPU 会响应中断,但在上一节中所述的中断受阻断的情况下,本次的中断请求 CPU 不会响应。 中断响应的过程 如果中断响应条件满足,而且不存在中断受阻的情况下,则 CPU 将响应中断。在此情况下,CPU 首先使被响应中断的相应“优先级激活”触发器置位,以阻断同级和低级的中断。然后根据中断源的类别,在硬件的控制下内部自动形成长调用指令(LCALL),此指令的作用将自动把断点压人堆栈,但不自动保存 PSW 的内容。然后将对应的中断源 的矢量地址装入程序计数器 PC,使程序转向该中断的矢量地址,以转至中断服务程序对应的入口地址。在使用时,通常在这些地址单元中存放一条绝对跳转指令,使程序转移到用户安排的中断服务程序入口处。 中断响应的时问 CPU 不是在任何情况下对中断请求予以响应;而不同的情况下对中断响应的时间也是不同的。现以外部中断为例,说明中断响应的最短时间。 在每个机器周期的S5P2期间, 0 INT 和 1 INT 引脚的电平被锁存到TCON的IE0和IE1标志位,CPU 在下一个机器周期才会查询这些值。这时如果满足中断响应条件,下一条要执行的指令将是一条硬件长调用指令“LCALL” ,使程序转至中断源对应的矢量地址入口。硬件长调用指令本身要化费 2 个机器周期,这样,从外部中断请求有效到开始执行中断服务程序的第一条指令,中间要隔 3 个机器周期,这是最短的响应时间。 如果遇到中断受阻的情况,则中断响 应时间会更长一些。例如,一个同级或高级优先级的中断正在进行;则附加的等待时间将取决于正在进行的中断服务程序。如果正在执行的一条指令还没有进行到最后一个机器周期,附加的等待时间为13 个机器周期,因为一条指令的最长执行时间为4个机器周期(MUL和DIV指令), 如果正在执行的是RETI指令或者是读写IE或IP的指令,则附加的时间在5个机器周期之内(为完成正在执行的指令,还需要1个机器周期,加上为完成下一条指令所需的最长时间为4个周期、故最长为5个机器周期)。 若系统中只有一个中断源,则响应时间 38个机器周期之间。 中断处理:CPU 响应中断结束后即转至中断服务程序的入口。从中断服务程序的第一条指令开始到返回指令为止、这个过程称为中断处理或称中断服务。不同的中断源服务的内容及 要求各不相同,其处理过程也就有所区别。一般情况下,中断处理包括两部分内容:一是保护现场,二是为中断源服务。 现场通常有 PSW、工作寄存器、专用寄存器等。如果在中断服务程序中要用这些寄存器,则在进入中断服务之前应将它们的内容保护起来称保护现场;同时在中断结束,执行 RETI 指令之前应恢复现场。 中断服务是针对中 19t 源的具体要求进行处理。其次,用户在编写中断服务程序时应注意以下几点; 各中断肠的入口矢量地址之间, 只相隔 8 个单元, 一股中断服务程是容纳不下的,因而最常用的方法是在中断人口矢量地址单元处存放一条无条件转移指令,而转至存储器其它的任何空间去。 若要在执行当前中断程序时禁止更高优先级中断,应用软件关闭 CPU 中断,或屏 蔽更高级中断源的中断,在中断返回前再开放中断。 在保护现场和 恢复现场时,为了不使现场信息受到破坏或造成混乱一般在此情况下,应关 CPU 中断,使 CPU 暂不响应新的中断请求。这样就要求在编写中断服务程序时,应注意在保护现场之前要关中断,在保护现场之后若允许高优先级中断打断它,则应开中断。同样在恢复现场之前应关中断,恢复之后再开中断。中断返回: 中断处理程序的最后一条指令是中断返回指令 RET1。它的功能是将断点弹出送回PC 中,使程序能返回到原来被中断的程序继续执行。 AT89S51 的 RET1 指令除了弹出断点之外,它还通知中断系统已完成中断处理,并将“优先级激活”触发器清除(该触发器在响应中断时放置位)。应与于程序区分开来中断系统的应用。从软件角度看,中断控制实质上是对 4 个特殊功能寄存器 TCON、SCON、IE 和 IP行进管理和控制。只要这些寄存器的相应位,按照人们的要求进行状态预置,CPU 就会按人们的意志对中断源进行管理和控制。在 AT89S51 单片机中,管理和控制的项目有:某个中断源中断请求的允许或屏蔽;各中断肠优先级别的设定; 外部中断请求的触发方式。中断管理和控制程序一般都包含在主程序中,根据需要通过几条指令来完成。1.1.4 定时器计数器的结构与工作原理 (1)定时器的结构 AT89S51单片机内部没有两个16位可编程的定时器计数器,简称定时器0和定时器1分别用T0和Tl表示。它们的工作方式、定时时间、量程、启动方式等均可以通过程序来设置和改变。 AT89S51单片机内部定时器的逻辑结构见图2。它由两个特殊功能寄存器TCON和TMOD及T0、Tl组成。其中TMOD为模式控制寄存器,主要用来设置定时器计数器的操作模式;TCOK为控制寄存器,主要用来控制定时器的启动与停止。两个16位的定时器计数T0和T1均可以分成2个独立的8位计数器即TH0、TL0、THl、TLl,它们用于存定时或计数的初值。它们是个加1的计数器。图2 AT89S51定时器逻辑结构框图1.2 时钟芯片 DS12C887介绍 随着 2000 年的即将来临, “千年虫”问题成为困扰当今世界的一大难题。过去采用两位数表示年度的日历系统将要用四位数来表示,因此有关的计算机操作系统和应用软件都要作相应的修改。据此,美国 Dallas 公 司推出两款数字时钟芯片DS12887/DS12C887,两款时钟芯片都将在 1999 年 12 月 31 日 23 时 59 分 59 秒时利地跳到2000年1月1日零时, 并能实现 2000年2月29 日的闰年提示, 是时钟芯片 DS1287的增强品种,结构上相当于 MC146818 的改进型。芯片都采用 24 引脚双列直插式封装,其引脚接口逻辑和内部操作方式与 MC146818 基本一致,所不同的是 DS12887/DS12C887芯片的晶体振荡、振荡电路、充电电路和可充电锂电池等一起封装在芯片的上方,组成一个加厚的集成电路模块,因此,DS12887/DS12C887时钟片无需MC146818 的电源电位检测端(PS),电路通电时其充电电路便自动对可充电电池充电,充足一次电可供芯片时钟运行半年之久, 正常工作时可保证时钟数据十年内不会丢失。此外,片内通用的 RAM为 MC146818 的两倍以上。DS12887/DS12C887 内部有专门的接口电路,从而使得外部电路的时序要求十分简单,使它与各种微处理器的接口大大简化。使用时无需外围电路元件,只要选择引脚 MOT 电平,即可和不同计算机总线连接。 1.2.1 主要技术特点 DS12887/DS12C887 具有下列主要技术特点: (1)具有完备的时钟、闹钟及到 2100 年的日历功能,可选择 12 小时制或 24 小时制计时,有 AM 和 PM、星期、夏令时间操作,闰年自动补偿等功能。 (2)具有可编程选择的周期性中断方式和多频率输出的方波发生器功能。 (3)DS12887 内部有14个时钟控制寄存器,包括10个时标寄存器,4个状态寄存器和114bit作掉电保护用的低功耗 RAM。 (4)由于该芯片具有多种周期中断速率时钟中断功能,因此可以满足各种不同的待机要求,最长可达24小时,使用非常方便。 (5)时标可选择二进制或 BCD 码表示。 (6)工作电压:+4.55.5V。 (7)工作电流:715mA。 (8)工作温度范围:070。 1.2.2 DS12887/DS12C887 的引脚排列 DS12887/DS12C887 的引脚排列见图 3 所示。图4为 DS12887/DS12C887 的内部图3 DS12887/DS12C887 的引脚排列图4 DS12887/DS12C887 的内部电路芯片各引脚功能如下: MOT:计算机总线选择端; SQW:方波输出,速率和是否输出由专用寄存器 A、B 的预置参数决定;AD0AD7:地址/数据(双向)总线,由 AS 的下降沿锁存 8 位地址; R/W:读/写数据; AS:地址锁存信号端; DS:数据读信号端; CS:选通信号端,低电平有效; IRQ;中断申请,由专用寄存器决定; RESET:复位端; NC:空引脚。 1.2.3 DS12887/DS12C887 内部寄存器的功能 因DS12887和DS12C887结构功能上类似,现以 DS12887为例说明如下:CPU 通过读DS12887的内部时标寄存器得到当前的时间和日历,也可通过选择二进制码或BCD码初始化芯片的 10 个时标寄存器。其114bit非易失性静态 RAM 可供用户使用, 对于没有 RAM 的单片机应用系统,可在主机掉电时来保存一些重要的数据。DS12887的4个状态寄存器用来控制和指出DS12887模块的当前工作状态,除数据更新周期外,程序可随时读写这4个寄存器,各寄存器的功能和作用如下。(1)DS12887 内部 RAM 各专用寄存器地址功能表3 为 DS12887 内部 RAM 和各专用寄存器地址分布表,其中,地址 00H03H 单元取值范围是 00H3BH(10进制为059);04H05H 单元按12小时制取值范围是上午(AM)01H0CH(112),下午(PM)81H8CH(8192)按24小时制取值范围是00H17H(123);06H 单元取值范围是 00H07H(07);07H 单元取值范围01H1FH(131);08H 单元取值范围是 01H0CH(112);09H 单元的取值范围是00H63H(099)。DS12887 的 RAM 和各专用寄存器的访问如下实现,若片选地址DS=#0DDXXH,则芯片内部RAM和寄存器和地址为#0DD00H#0DD7FH。应指出的是,尽管DS12887 的专用时标年寄存器只有一个,但通过软件编程可利用其内部的不掉电的RAM区的一个字节实现年度的高两位显示,所以DS12887跨越2000年的计时不成问题。表3 DS12887 内部RAM 和各专用寄存器地址地址单元 用途 地址单元 用途地址00H 秒 地址01H 秒闹地址02H 分 地址03H 分闹地址04H 时 地址05H 时闹地址06H 星期 地址07H 日(两位数)地址08H 月(两位数) 地址09H 年(两位数)地址0AH 寄存器A 地址0BH 寄存器B地址0CH寄存器C 地址0CH 寄存器D0EH7EH 不掉电RAM区 1.2.4 DS12887/DS12C887 的中断和更新周期 DS12887/DS12C887 处于正常工作状态时,每秒钟将产生一个更新周期,芯片处于更新周期的标志是寄存器 A 中的UIP位为“1”。在更新周期内,芯片内部时标寄存器数据处于更新阶段,故在该周期内,微处理器不能读芯片时标寄存器的内容,否则将得到不确定数据。更新周期的基本功能主要是刷新各个时标寄存器中的内容,同时秒时标寄存器内容加 1,并检查其他时标寄存器内容是否有溢出。如果有溢出则相应进位日、月、年。另外一个功能是检查三个时、分、秒报警时标寄存器的内容是否与对应时标寄存器的内容相符,如果相符则寄存器 C 中的AF位置“1”。如果报警时标寄存器的内容为C0H到FFH之间的数据,则为不关心状态。为了采样时标寄存器中的数据,DS12887/DS12C887 提供了两样种避开更新周期内访问时标寄存器的方案:第一种是利用更新周期结束发出的中断。它可以编程允许在每次更新周期结束后发生中断申请,提醒 CPU 将有 998ms 左右的时间去获取有效的数据,在中断之后的 998ms 时间内,程序可先将时标数据读支芯片内部的不掉电静态 RAM 中。因为芯片内部的静态RAM和状态寄存器是可随时读写的,在离开中断服务子程序前应清除寄存器C中的IRQF位。另一种是:利用寄存器A中的UIP位来指示芯片是否处于更新周期。在 UIP 位从低变高244us后,芯片将开始其更新周期,所以检测到UIP位为低电平时,则利用224us的间隔时间去读取时标信息。如检测到UIP位为“1”,则可暂缓读数据,等到UI 变成低电平再去读数据。 1.2.5 DS12887/DS12C887 的编程方法及用法 (1)DS12887/DS12C887 初始化方法 DS12887/DS12C887 采取连续工作制,一般无须每次都初始化,即使是系统复位时也如此。但初始化时,首先应禁止芯片内部的更新周期操作,所以先将 DS12887/DS12C887状态寄存器B中的SET位置“1”,然后初始化00H09H 时标参数寄存器和状态寄存器A,此后再通过读状态寄存器C,清除寄存器C中的周期中断标志位PF, 报警中断标志位 AF,更新周期结束中断标志位UF。通过读寄存器口D中的VRT位,读状态寄存器口后VRT位将自动置“1”,最后将状态寄存器 B 中的SET位置“0”,芯片开始计时工作。 (2)闹钟单元的使用方法 DS12887/DS12C887共有3个闹钟单元,分别为时、分、秒闹钟单元。在其中写入闹钟时间值并且在时钟中断允许的情况下每天到刻就会产生中断申请信号。但这种方式每天只提供一次中断信号。另一种方式是在闹钟单元写入“不关心码”,在时闹钟单元写入C0HFFH之间的数据,可每小时产生一次中断;在时、分闹钟单元写入C0HFFH之间的数据,可每分钟产生一次中断;而时、分、秒闹钟单元全部写入FFH,则每秒钟产生一次中断。但这种方式也只能在整点、整分或整秒产生一次中断。但控制系统要求的定 时间隔不是整数时,则应该通过软件来调整实现。 (3)DS12887/DS12C887 的编程 图1所示的是 AT89S51单片机与DS12887/DS12C887的接口电路,片选地址#0DDXXH。DS12887/DS12C887状态寄存器的参数设置如下:状态寄存器 A 置为 20H,表示采用的时钟频率为32.678kHz(00100000),禁止脚 SQW 输出。状态寄存器B置为,它表示允许报警中断,禁止其他中断,置24(00100010)小时模式,时标寄存器容用BCD码表示,禁止方波输出和夏令时服务。如果要求定时间隔为1秒到59分钟中断申请,那么时报警寄存器置FFH,这就表示了该报警时标处于不关心状态。2 基本理论我所制作的智能程控打铃器要实现的要求是:设计完成一个可以实际使用的教学楼用数字打铃器。要求每次打铃时间为 60 秒,作为打铃器的同时要有电子钟的功能。可以设置多个打铃时间,比如:8:00,8:50,8:55 等(完全实现一天的上课下课打铃)。正常工作时,控制器可以作为电子表,时间到,打铃。掉电,重新来电后,要按原设定情况继续工作,电子钟要求仍能正确的体现当前的时间。 我在制作智能程控打铃器过程中主要分为 2 个部分,一个是硬件电路,它主要包括了单片机模块和显示模块,另一个是软件设计,在这里我是应用汇编语言来编写所预定的打铃任务。而硬件电路中主要的就是时钟芯片 DS12887 和单片机 AT89S51的应运,打铃器的基本功能就是由他们的结合再加上程序的引导而表现出来的。2.1 硬件电路 硬件电路分为3个部分:电源电路、单片机模块电路和显示模块电路。 2.1.1 电源电路 该电路部分主要是由一个稳压集成芯片7805和整流二极管组成的简单电路,输入9V的交流电,经过整流输出+5V的电压以备单片机模块电路和显示模块电路使用,其原理如图5:图5 电源电路图 2.1.2 单片机模块电路 单片机模块电路主要由芯片 DS12887 和单片机 AT89S51 组成,以及其他的辅助芯片和元器件,其主要是用来向显示模块电路输入所显示的电子钟信息以及调节和控制电子钟,另外一个主要作用就是控制喇叭闹铃,其电路原理图参见附录图1。该电路要在程序编译完,然后把程序烧进单片机 AT89S51 后才可以使用。 2.1.3 有程序的硬件结果首先单片机作为主要核心器件,它在加电后,首先让喇叭短响一声表示芯片复位成功,开始初始化 DS12887 的一些开始地址寄存器,接着发测试数据到数码管上显示2.34,这是通过让单片机的串口工作在方式0来实现的,它通过把RXD脚作为串行数据的输出端接到74LS164的数据输入端A和B脚,同时把TXD脚作为串行数据的时钟端接到74LS164的时钟CLOCK脚上来实现数据的移位。而作为串行的好处就是可以实现多片级连,在该电路里用了4片74LS164的级连,它们之间的级连是通过把时钟端 CLOCK脚全部连接在一起和前一片的 Q7 脚与下一片的A和B脚相连即实现了级连。每一片的4LS164的Q0到Q7分别接数码管的AG段和小数点段H,每一片74LS164 接一个数码管。在显示12.34两秒之后,喇叭在短响一声表示自检完成。接着单片机开始读DS12887芯片内部的当前时间并按刚才的显示方法送出到数码管上显示出来。这时单片机程序开始开外部中断来相应按键的中断,键盘的按下主要是通过一个4输入与门实现的,当有任何一个键按下的话,4输入与门的其中一个输入端即为低电平,经过与门以后输出即为低电平触发单片的外部中断来相应外部有按键按下,接着单片机再去查询P1口来判断到底是那个按键按下了。按键对应操作是这样的:(对照电路板从右到左规定为14的话。 ) (1)当首先按下第1个按键一次时,数码管的数字开始闪烁,表示可以修改当前时间;这时按2键即为退出到正常状态;这时如果按3、4键即可修改对应的时间的时和分;当再次按下第1个按键时,对应可以修改月日,再次按下第1个时,对应可以修改年和星期。 (2)当首先按下第2个按键时,这时可以通过3、4 键来修改打铃时间,每按一次第2键,打铃次数加1, 一共可以设置19个打铃时间,这时可以按1键退出到正常状态。 (3)当首先按下第3个按键时,可以查询当前的年和秒,放开按键就回到正常状态。 (4)当首先按下第3个按键时,可以查询当前的月和日放开按键就回到正常状态。DS12887的读写:程序开始时初始化了DS12887,让它每1秒在它的IRQ脚上输出脉冲来驱动74LS74来使绿色的发光二极管1秒闪烁一次。 DS12887兼容INTEL的时序,所以可以直接把它当作一个外部的数据存储器来访问。单片机主要从DS12887中读出时间和设置的打铃时间看时间的时与分是否相等来确定是否打铃的。DS12887有掉电保护功能,所以一旦设置好的时间和的打铃时间都可以在掉电时保存完好。2.2程序设计由于程序过于繁长,在这里只出示程序流程图来说明打铃器的工作原理及程序设计时的编译过程,如流程图6开始单片机初始化测试喇叭调用BTXD,串出编码喇叭短叫测试数码管DC12C887初始化读时间到R4,R5,R6,R7中设置中断0,为边沿触发开中断0开单片机中断等
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年OLED检测系统项目建议书
- 2025年汽车内外饰件合作协议书
- 抢修安全培训课件
- 2025年用户自行开发的专用集成电路(ASIC)项目建议书
- 抗菌药物的正确使用
- 抗美援朝胜利原因
- 2025年环境污染防治专用设备项目发展计划
- 2025年江苏省苏州市工业园区景城学校中考数学二模试卷(含简略答案)
- 2025-2026学年河北省承德市双滦实验中学高二(上)开学数学试卷(含答案)
- 教师考试压轴题及答案
- 勤俭节约主题班会课件
- GA 1010-2012看守所床具
- 3000储罐预制安装施工方案
- 食品工程原理(课堂)课件
- 河道清淤施工方案(定稿)
- 五年级上册数学课件-《练习一》北师大版 (共10张PPT)
- 苏教版 六年级数学上册全套下载(全册)合集(含整理与复习)课件
- 《安徒生童话》读书分享名著导读ppt
- 部编版五年级上册语文 第10课 牛郎织女(一) 课后习题重点练习课件
- 生命科学上游产业专题研究:下一个10年的高景气大赛道
- 第1章制图基础-金大鹰
评论
0/150
提交评论