基于单片机的数字时钟电路毕业论文.doc_第1页
基于单片机的数字时钟电路毕业论文.doc_第2页
基于单片机的数字时钟电路毕业论文.doc_第3页
基于单片机的数字时钟电路毕业论文.doc_第4页
基于单片机的数字时钟电路毕业论文.doc_第5页
已阅读5页,还剩32页未读 继续免费阅读

下载本文档

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

文档简介

摘摘 要要 本设计基于单片机技术原理,以单片机芯片 AT89C52 作为核心控制器,通过硬件电路 的制作以及软件程序的编制,设计了多功能数字时钟系统。该时钟系统主要由时钟模块、 块、液晶显示模块以及键盘控制模块组成。系统具有简单清晰的操作界面,能在 4V7V 直流电源下正常工作。能够准确显示时间(显示格式为时时:分分:秒秒,24 小时制) , 可随时进行时间调整,具有闹钟时间设置、闹钟开/关、止闹功能,设计以硬件软件化为指 导思想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳 定性高。同时,该时钟系统还具有功耗小、成本低的特点,具有很强的实用性。由于系统 所用元器件较少,单片机所被占用的 I/O 口不多,因此系统具有一定的可扩展性。 关键词: LCD 显示 单片机 时钟芯片 DS1302 Abstract This design principle based on SCM technology to a central controller AT89C52 Microcontroller, through hardware design and preparation software program, designed to produce a multi-functional digital clock system. The clock system is composed of clock module, alarm module, the ambient temperature detection module, liquid crystal display module, keyboard control module and the signal prompt module. System is simple and clear interface, can 4V 7V DC power supply to work. Able to accurately display time (display format is hh: mm: seconds seconds, 24-hour clock), the time may be adjusted at any time, with the alarm time set, alarm on / off, alarm function only can the clock where the ambient temperature measurement and displayed. Into hardware and software design guidelines and give full play MCU functions, most of the functionality through software programming to implement, simple circuit, high stability of the system. Meanwhile, the clock system also has low power consumption, and low cost, and highly practical. As the system uses fewer components, single chip occupied by the I / O port small, so the system has some scalability. Key words : LCD display, SCM, DS1302, 目目 录录 1 绪论 1 1.1 课题的提出及研究意义.1 1.2 数字时钟的发展现状.2 1.3 课题研究目的和研究内容.5 2 多功能数字时钟硬件设计 5 2.1 主控制模块.6 2.2 显示模块.9 2.3 时钟模块11 2.4 电源转换模块17 2.5 本章小结18 3 电路仿真与制作 .18 3.1 电路仿真18 3.2 电路板制作19 3.3 本章小结19 4 软件设计部分 .20 4.1 时钟程序的设计20 4.2 本章小结21 5 总结 .21 参考文献 23 致 谢 .24 附录 25 1 1 绪论绪论 人类的生活和工作均离不开时钟。从古代的滴漏更鼓到近代的机械钟,从电子表到 目前的数字时钟,为了准确的测量和记录时间,人们一直在努力改进着计时工具。钟表 的数字化,大力推动了计时的精确性和可靠性。 1.11.1 课题的提出及研究意义课题的提出及研究意义 .1 课题的提出课题的提出 近些年,随着科技的发展和社会的进步,人们对数字钟的要求也越来越高,传统的 时钟已不能满足人们的要求。多功能数字钟不管在性能还是在样式上都发生了质的变化, 有电子闹钟、数字闹钟等等。数字钟成为人们日常生活中不可少的必需品 ,由于数字 1 集成电路的发展和石英晶体振荡器的广泛应用 ,使得数字钟的精度,远远超过老式钟表, 钟表的数字化给人们生产生活带来了极大的方便 。 在日常生活和工作中,我们常常用到定时控制,如扩印过程中的曝光定时等。早期 常用的一些时间控制单元都使用模拟电路设计制作的,其定时准确性和重复精度都不是 很理想,现在基本上都是基于数字技术的新一代产品,随着单片机性能价格比的不断提 高,新一代产品的应用也越来越广泛,大可构成复杂的工业过程控制系统,完成复杂的 控制功能。小则可以用于家电控制,甚至可以用于儿童电子玩具。它功能强大,体积小, 质量轻,灵活好用,配以适当的接口芯片,可以构造各种各样、功能各异的微电子产品 。 2 随着电子技术的飞速发展,家用电器和办公电子设备逐渐增多,不同的设备都有自 己的控制器,使用起来很不方便。根据这种实际情况,设计了一个单片机多功能数字时 钟,它可以避免多种控制器的混淆,利用一个控制器对多路电器进行控制,同时又可以 进行时钟校准和定点打铃。它可以执行不同的时间表(考试时间和日常作息时间)的 3 打铃,可以任意设置时间。这种具有人们所需要的智能化特性的产品减轻了人的劳动, 扩大了数字化的范围,为家庭数字化提供了可能。 电子钟是一种利用数字电路来显示秒、分、时的计时装置,与传统的机械钟相比, 它具有走时准确、显示直观、无机械传动装置等优点,因而得到广泛应用。随着人们生 活环境的不断改善和美化,在许多场合可以看到数字电子钟。在城市的主要营业场所、 车站、码头等公共场所使用 LCD 数字电子钟已经成为一种时尚。但目前市场上各式各样 的 LCD 数字电子钟大多数用全硬件电路实现,电路结构复杂,功率损耗大等缺点 ,因此 有必要对数字电子钟进行改进 。 .2 课题研究的意义课题研究的意义 多功能数字时钟的用途十分广泛,只要有计时的存在,便要用到数字时钟的原理及 结构;同时在日期中,它以其小巧,价格低廉,走时精度高,使用方便,功能多,便于 集成化而受广大消费者的喜爱。随着人类科技文明的发展,人们对于时钟的要求在不断 提高。时钟已不仅仅被看出一种用来显示时间的工具,在很多实际应用中它还需要能 4 够实现更多其它的功能。高精度、多功能、小体积、低功耗,是现代时钟发展的趋势。 在这种趋势下,时钟的数字化、多功能化已经成为现在时钟生产研究的主导设计方向。 1.21.2 数字时钟的发展现状数字时钟的发展现状 几种常用数字时钟设计方案: 一、基于微机系统的数字时钟设计 计时单元由定时/计数器 8253 的通道 0 来实现。定时采用硬件计数和软件技术相结 合的方式,即通过 8253 产生一定的定时时间,然后再利用软件进行计数,从而实现 24 小时制定时。8253 定时时间到了之后产生中断信号, 8253 在中断服务程序中实现时、 分、秒的累加。 时间显示采用实验平台上的 6 个 LED 数码管分别显示时、分、秒,采用动态扫描方 式实现。 校时和闹铃定时通过键盘电路和单脉冲产生单元来输入。按键包括校时键、闹钟定 时键、加 1 键和减 1 键等。 报警声响用蜂鸣器产生,将蜂鸣器接到 8255 的一个端口,通过输出电平的高低来 控制蜂鸣器的发声。 系统硬件设计主要利用微机实验平台上的电路模块。硬件电路主要由键盘电路、单脉冲产 生单元、8253 定时计数器、8255 并行接口单元、8259 中断控制器、LED 显示电路和蜂鸣 器电路等等。 图 1.1 基于微机系统的数字时钟设计框图 二、基于 VHDL 的数字时钟设计 基于 VHDL 语言,用 Top_Down 的思想进行设计。 用 CN6 无进位六进制计数器选择数码管的亮灭以及对应的数,循环扫描显示,用 SEL61 六选一选择器选择给定的信号输出对应的数送到七段码译码器。 K4 模块进行复位, 设置小时和分,输出整点报时信号和时,分,秒信号。 单元模块设计部分 对应的数模 块 CN6 信号选择模 块 SEL61 七段码译码 器模块 DISP 图 1.2 基于 VHDL 数字时钟的设计模块 单元模块设计部分分三个部分,介绍数字钟选择显示数码管和对应的数模块 CN6, 信号选择模块 SEL61,七段码译码器模块 DISP 和复位,秒,分,时显示,设置模块。 三、基于单片机数字时钟设计 基于单片机的数字时钟设计是模块化设计,以单片机做主控制模块,控制时钟芯片、 温度传感器芯片等,又将数据控制输出到显示模块。 基于 MCS-51 单片机的数字时钟系统具有显示准确、直观、易于调整等特点。单片机 自诞生以来给全世界人类的生活和工作起到了剧烈的变化,而 MCS-51 单片机是我国使 用最早、最易掌握和应用的一款单片机。通过该系统的设计,对单片机的原理和功能有 个比较系统和全面的掌握,初步学习到有关工程设计的方法和思路。这样以后的就业面 会更加宽广,也可以满足当今社会对单片机开发人才的大量需求 5 。 目前单片机渗透到我们生活的各个领域,几乎很难找到哪个领域没有单片机的踪迹。 导弹的导航装置,飞机上各种仪表的控制,计算机的网络通讯与数据传输,工业自动化 过程的实时控制和数据处理,广泛使用的各种智能 IC 卡,录象机、摄象机,以及程控 玩具、电子宠物等等,这些都离不开单片机。更不用说自动控制领域的机器人、智能仪 表、医疗器械了。因此,单片机的学习、开发与应用将造就一批计算机应用与智能化控 制的科学家、工程师。 单片机在多功能数字钟中的应用已是非常普遍的,人们对数字钟 的功能及工作顺序都非常熟悉。但是却很少知道它的内部结构以及工作原理。由单片机 作为数字钟的核心控制器,可以通过它的时钟信号进行时实现计时功能,将其时间数据 经单片机输出,利用显示器显示出来。通过键盘可以进行定时、校时功能。输出设备显 示器可以用液晶显示技术和数码管显示技术。 1.31.3 课题研究目的和研究内容课题研究目的和研究内容 .1 课题研究目的课题研究目的 日常生活中人们离不开时钟。本文介绍是基于单片机的多功能数字时钟,在传统的时 钟基础上它具有走时准确、显示直观、无机械传动装置等优点。随着电子产业的发展,时 钟的数字化、多功能化已经成为现在时钟生产研究的主导设计方向。 .2 课题研究内容课题研究内容 采用模块设计法完成多功能数字时钟的设计。基本功能是时钟显示,能准确显示“时” 、 “分” 、 “秒” ,并具有快速校准时、分、秒的功能。时钟显示同时具有实时温度显示。扩展 功能有具整点报时功能以及闹钟功能。 2 2 多功能数字时钟硬件设计多功能数字时钟硬件设计 基于单片机的多功能数字时钟的设计, 单片机芯片作为控制系统的核心部件,它除 了具备微机 CPU 的数值计算功能外,还具有灵活强大的控制功能,以便实时检测系统的 输入量、控制系统的输出量,实现自动控制。在本次设计中采用单片机技术来实现数字 钟的功能。方案的设计可以从以下几个方面来确定。微处理器的选择, AT89S51 是 2003 年 ATMEL 推出的新型品种,除了完全兼容 8051 外,还多了 ISP 编程和看门狗功能。显 示电路的设计,随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用。由于 液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。在这里采用液晶显示;校 时和定时电路的设计;实时控制电路是时钟电路的一个重要组成部分,采用的是一个时 钟芯片,单片机从中读取数据送到显示器上显示,从而实现数字钟的功能;还有一些其 他控制电路如复位电路、时钟电路等。通过这些控制电路的连接构成了完整的电路 . 按照系统设计功能的要求,初步确定设计系统由电源转换模块、主控制模块、时钟 及温度模块、显示模块、键盘接口模块共 5 个模块组成,电路系统构成框图如图 2.1 所 示: 电源模块 DS1302 89C51 主控制模块 键扫描电路 显示电路 DS18B20 图 2.1电路系统构成框图 2.12.1 主控制模块主控制模块 在本次设计中采用单片机技术来实现数字钟的功能。方案的设计可以从以下几个方 面来确定。微处理器的选择, AT89S51 是 2003 年 ATMEL 推出的新型品种,除了完全兼容 8051 外,还多了 ISP 编程和看门狗功能。89C51 是一种带 4K 字节闪烁可编程可擦除只 读存储器(FPEROMFalsh Programmable and Erasable Read Only Memory)的低电压, 高性能 CMOS8 位微处理器,俗称单片机。 89C2051 是一种带 2K 字节闪烁可编程可擦除只 读存储器的单片机。单片机的可擦除只读存储器可以反复擦除 100 次。该器件采用 ATMEL 高密度非易失存储器制造技术制造,与工业标准的 MCS-51 指令集和输出管脚相兼 容。由于将多功能 8 位 CPU 和闪烁存储器组合在单个芯片中, ATMEL 的 89C51 是一种高 效微控制器,89C51 是它的一种精简版本。 89C 单片机为很多嵌入式控制系统提供了一 种灵活性高且价廉的方案。 .1 AT89C52AT89C52 单片机的单片机的特性概述特性概述 主要特性: AT89S52 为 ATMEL 所生产的一种低功耗、高性能 CMOS8 位微控制器, 具有 8K 在系统可编程 Flsah 存储器。 (一)(一) 、AT89S52 主要功能列举如下:主要功能列举如下: 1、拥有灵巧的 8 位 CPU 和在系统可编程 Flash 2、晶片内部具时钟振荡器(传统最高工作频率可至 12MHz) 3、内部程序存储器(ROM)为 8KB 4、内部数据存储器(RAM)为 256 字节 5、32 个可编程 I/O 口线 6、8 个中断向量源 7、三个 16 位定时器/计数器 8、三级加密程序存储器 9、全双工 UART 串行通道 (二)(二) 、AT89S52 各引脚功能介绍:各引脚功能介绍: VCC: AT89S52 电源正端输入,接+5V。 VSS: 电源地端。 XTAL1: 单芯片系统时钟的反相放大器输入端。 XTAL2: 系统时钟的反相放大器输出端,一般在设计上只要在 XTAL1 和 XTAL2 上接上一只石英振荡晶体系统就可以动作了,此外可以在两引脚与地之间加入 一 20PF 的小电容,可以使系统更稳定,避免噪声干扰而死机。 RESET: AT89S52 的重置引脚,高电平动作,当要对晶片重置时,只要对此引脚电 平提升至高电平并保持两个机器周期以上的时间,AT89S51 便能完成系统重置 的各项动作,使得内部特殊功能寄存器之内容均被设成已知状态,并且至地址 0000H 处开始读入程序代码而执行程序。 EA/Vpp: “EA“为英文“External Access“的缩写,表示存取外部程序代码之意,低电平 动作,也就是说当此引脚接低电平后,系统会取用外部的程序代码(存于外部 EPROM 中)来执行程序。因此在 8031 及 8032 中,EA 引脚必须接低电平,因 为其内部无程序存储器空间。如果是使用 8751 内部程序空间时,此引脚要接 成高电平。此外,在将程序代码烧录至 8751 内部 EPROM 时,可以利用此引脚 来输入 21V 的烧录高压(Vpp) 。 ALE/PROG: ALE 是英文“Address Latch Enable“的缩写,表示地址锁存器启用信号。 AT89S52 可以利用这支引脚来触发外部的 8 位锁存器(如 74LS373) ,将端口 0 的地址总线(A0A7)锁进锁存器中,因为 AT89S52 是以多工的方式送出地 址及数据。平时在程序执行时 ALE 引脚的输出频率约是系统工作频率的 1/6, 因此可以用来驱动其他周边晶片的时基输入。此外在烧录 8751 程序代码时,此 引脚会被当成程序规划的特殊功能来使用。 PSEN: 此为“Program Store Enable“的缩写,其意为程序储存启用,当 8051 被设成 为读取外部程序代码工作模式时(EA=0) ,会送出此信号以便取得程序代码, 通常这支脚是接到 EPROM 的 OE 脚。AT89S52 可以利用 PSEN 及 RD 引脚分 别启用存在外部的 RAM 与 EPROM,使得数据存储器与程序存储器可以合并在 一起而共用 64K 的定址范围。 PORT0(P0.0P0.7): 端口 0 是一个 8 位宽的开路汲极(Open Drain)双向输出入端口,共有 8 个位,P0.0 表示位 0,P0.1 表示位 1,依此类推。其他三个 I/O 端口 (P1、P2、P3)则不具有此电路组态,而是内部有一提升电路,P0 在当做 I/O 用时可以推动 8 个 LS 的 TTL 负载。如果当 EA 引脚为低电平时(即取用外部 程序代码或数据存储器) ,P0 就以多工方式提供地址总线(A0A7)及数据总 线(D0D7) 。设计者必须外加一锁存器将端口 0 送出的地址栓锁住成为 A0A7,再配合端口 2 所送出的 A8A15 合成一完整的 16 位地址总线,而定 址到 64K 的外部存储器空间。 PORT2(P2.0P2.7): 端口 2 是具有内部提升电路的双向 I/O 端口,每一个引脚可以推动 4 个 LS 的 TTL 负载,若将端口 2 的输出设为高电平时,此端口便能当成输入端口来使 用。P2 除了当做一般 I/O 端口使用外,若是在 AT89S52 扩充外接程序存储器或 数据存储器时,也提供地址总线的高字节 A8A15,这个时候 P2 便不能当做 I/O 来使用了。 PORT1(P1.0P1.7): 端口 1 也是具有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4 个 LS TTL 负载,同样地若将端口 1 的输出设为高电平,便是由此端口来输入 数据。如果是使用 8052 或是 8032 的话,P1.0 又当做定时器 2 的外部脉冲输入 脚,而 P1.1 可以有 T2EX 功能,可以做外部中断输入的触发脚位。 PORT3(P3.0P3.7): 端口 3 也具有内部提升电路的双向 I/O 端口,其输出缓冲器可以推动 4 个 TTL 负载,同时还多工具有其他的额外特殊功能,包括串行通信、外部中断控 制、计时计数控制及外部数据存储器内容的读取或写入控制等功能。 其引脚分配如下: 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,外部数据存储器的读取信号。 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:来自反向振荡器的输出。 2.22.2 显示模块显示模块 随着科技的发展,液晶显示的使用越来越方便,已被普遍的使用,所以本次设计采用 液晶显示。液晶显示的原理是利用液晶的物理特性,通过电压对其显示区域进行控制,有 电就有显示,这样即可以显示出图形。液晶显示器具有厚度薄、适用于大规模集成电路直 接驱动、易于实现全彩色显示的特点,目前已经被广泛应用在便携式电脑、数字摄像机、 PDA 移动通信工具等众多领域。 由于液晶显示与驱动都集成在一个芯片上,因此使用起来很方便。数字钟要显示现在 的日历时间包括年、月、日、星期、时、分、秒,在这里采用 1602LCD 液晶显示。 .1 1602LCD1602LCD 显示器的结构显示器的结构 1 1602LCD 主要技术参数 显示容量为 162 个字符; 芯片工作电压为 4.55.5V; 工作电流为 2.0mA(5.0V); 字符尺寸为 2.954.35(WH)mm。 2 接口,信号说明 1602LCD 采用标准的 16 引脚(带背光)接口 编号符号引脚说明编号符号引脚说明 1VSS 电源地 9D2Date I/O 2VDD 电源正极 10D3Date I/O 3VL 液晶显示偏压信号 11D4Date I/O 4RS 数据/命令选择端(V/L) 12D5Date I/O 5R/W 读/写选择端(H/L) 13D6Date I/O 6E 使能信号 14D7Date I/O 7D0Date I/O15BLA 背光源正极 8D1Date I/O16BLK 背光源负极 图 2.3 1602 液晶接口引脚定义 1、2 组电源 一组是模块的电源 一组是背光板的电源 均为 5V 供电。 2、VL 是调节对比度的引脚调节此脚上的电压可以改变黑白对比度 3、RS 是很多液晶上都有的引脚 是命令/数据选择引脚 该脚电平为高时表示将进 行数据操作;为低时表示进行命令操作。 4、RW 也是很多液晶上都有的引脚 是读写选择端 该脚电平为高是表示要对液晶进 行读操作;为低时表示要进行写操作。 5、E 同样很多液晶模块有此引脚 通常在总线上信号稳定后给一正脉冲通知把数据 读走,在此脚为高电平的时候总线不允许变化。 6、D0D7 8 位双向并行总线,用来传送命令和数据。 7、BLA 是背光源正极,BLK 是背光源负极。 9 .2 1602LCD1602LCD 数据原理数据原理 读状态输入RS=L,R/W=H,E=H输出D0D7=状态字 写指令输入RS=L,R/W=L,D0D7=指令码,E=高 脉冲 输出无 读数据输入RS=H,R/W=H,E=H输出D0D7=数据 写数据输入RS=H,R/W=L,D0D7=数据,E=高脉 冲 输出无 图 2.4 1602LCD 基本操作时序 1602LCD 的指令码(命令码) 此液晶上电的时候需要初始化典型的指令码是 38H,也就是上电的时候需要 调用 void write_cmd(unsigned char command)这个函数写指令码,用法是 write_cmd(0x38); 执行完这个函数可以把液晶初始化成 16x2 显示 5x7 的点阵 8 位总线接口。以下指令 码用法相同。 此液晶支持的指令码有 指令码功能 00111000 设置 162 显示,57 点陈,8 位数据接口 第一行指令主要能完成的功能是 控制液晶显示否,光标显示否,光标闪烁否。 共有以下 8 种指令 0000100008H 关液晶显示 光标不闪烁 不显示光标位置 0000100109H 关液晶显示 光标不闪烁 显示光标位置 000010100AH 关液晶显示 光标不闪烁 不显示光标位置 000010110BH 关液晶显示 光标不闪烁 显示光标位置 000011000CH 开液晶显示 光标不闪烁 不显示光标位置 000011010DH 开液晶显示 光标不闪烁 显示光标位置 000011100EH 开液晶显示 光标不闪烁 不显示光标位置 000011110FH 开液晶显示 光标不闪烁 显示光标位置 第二行指令主要能完成的功能是写完字符 光标或屏幕移动方向 指令码功能 80H+地址码(0-27H,40H-67H)设置数据地址指针 2 2. .2 2. .3 3 显显示示模模块块的的数数据据连连接接 1602LCD 的 D0D7 的八位数据线分别接单片机 89C51 的 P0.0P0.7。RS 复位端接 P2.0,EN 使能端接 P2.2,读、写信号端接 P2.1 图 2.5 显示模块的数据连接图 2.32.3 时钟模块时钟模块 单片机控制时钟模块,定时时间,它通常有两种实现方法:一是用软件实现,即用 单片机内部的可编程定时 /计数器来实现,但误差很大,主要用在对时间精度要求不高的 场合;二是用专门的时钟芯片实现,在对时间精度要求很高的情况下,通常采用这种方 法,典型的时钟芯片有: DS1302,DS12887,X1203 等都可以满足高精度的要求。本次设 计采用 DS1302 芯片 .2 DS1302DS1302 数据操作原理数据操作原理 DS1302 时钟芯片简介时钟芯片简介 DS1302 是 DALLAS 公司推出的涓流充电时钟芯片,内含一个实时时钟/日历 和 31 字节静态 RAM,可以通过串行接口与单片机进行通信。实时时钟/日历电 路提供秒、分、时、日、星期、月、年的信息,每个月的天数和闰年的天数可 自动调整,时钟操作可通过 AM/PM 标志位决定采用 24 或 12 小时时间格式。D S1302 与单片机之间能简单地采用同步串行的方式进行通信,仅需三根 I/O 线 :复位(RST)、I/O 数据线、串行时钟(SCLK)。时钟/RAM 的读/写数据以 一字节或多达 31 字节的字符组方式通信。DS1302 工作时功耗很低,保持数据 和时钟信息时,功耗小于 1mW。 DS1302 的内部结构如图 4 所示,主要组成部分为:移位寄存器、控制逻辑、振荡器、实 时时钟以及 RAM。虽然数据分成两种,但是对单片机的程序而言,其实是一样的,就是对 特定的地址进行读写操作。 DS1302 含充电电路,可以对作为后备电源的可充电电池充电,并可选择充电使能和串入 的二极管数目,以调节电池充电电压。不过对我们目前而言,最需要熟悉的是和时钟相关 部分的功能, DS1302 的工作原理的工作原理 DS1302 工作时为了对任何数据传送进行初始化,需要将复位脚(RST)置为 高电平且将 8 位地址和命令信息装入移位寄存器。数据在时钟(SCLK)的上升 沿串行输入,前 8 位指定访问地址,命令字装入移位寄存器后,在之后的时钟 周期,读操作时输出数据,写操作时输出数据。时钟脉冲的个数在单字节方式 下为 8+8(8 位地址+8 位数据),在多字节方式下为 8 加最多可达 248 的数据 。 DS1302 的寄存器和控制命令的寄存器和控制命令 对 DS1302 的操作就是对其内部寄存器的操作,DS1302 内部共有 12 个寄存 器,其中有 7 个寄存器与日历、时钟相关,存放的数据位为 BCD 码形式。此外 ,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与 R AM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器以外的 寄存器。日历、时间寄存器及控制字如表 1 所示: 76543210 寄存器名称 1RAM/CKA4A3A2A1A0RD/W 秒寄存器1000000 分寄存器1000001 小时寄存器1000010 日寄存器1000011 月寄存器1000100 星期寄存器1000101 年寄存器1000110 写保护寄存器1000111 慢充电寄存器1001000 时钟突发寄存器1011111 表 1:日历、时钟寄存器与控制字对照表 最后一位 RD/W 为“0”时表示进行写操作,为“1”时表示读操作。 DS1302 内部寄存器列表如表 2 所示: 命令字各位内容 寄存器名称 写读 取值范围 76543210 秒寄存器80H81H00-59CH10SECSEC 分寄存器82H83H00-59010MINMIN 小时寄存器84H85H01-12 或 00-2312/240AHRHR 日期寄存器86H87H01-28,29,30,310010DATEDATE 月份寄存器88H89H01-1200010MMONTH 周寄存器8AH8BH01-0700000DAY 年份寄存器8CH8DH00-9910YEARYEAR 表 2:DS14302 内部主要寄存器分布表 DS1302 内部的 RAM 分为两类,一类是单个 RAM 单元,共 31 个,每个单元 为一个 8 位的字节,其命令控制字为 COHFDH,其中奇数为读操作,偶数为 写操作;再一类为突发方式下的 RAM,此方式下可一次性读写所有的 RAM 的 31 个字节,命令控制字为 FEH(写)、FFH(读)。 我们现在已经知道了控制寄存器和 RAM 的逻辑地址,接着就需要知道如何 通过外部接口来访问这些资源。单片机是通过简单的同步串行通讯与 DS1302 通讯的,每次通讯都必须由单片机发起,无论是读还是写操作,单片机都必须 先向 DS1302 写入一个命令帧,这个帧的格式如表 1 所示,最高位 BIT7 固定为 1,BIT6 决定操作是针对 RAM 还是时钟寄存器,接着的 5 个 BIT 是 RAM 或时 钟寄存器在 DS1302 的内部地址,最后一个 BIT 表示这次操作是读操作抑或是 写操作。 物理上,DS1302 的通讯接口由 3 个口线组成,即 RST,SCLK,I/O。其中 R ST 从低电平变成高电平启动一次数据传输过程,SCLK 是时钟线,I/O 是数据 线。具体的读写时序参考图 5,但是请注意,无论是哪种同步通讯类型的串行 接口,都是对时钟信号敏感的,而且一般数据写入有效是在上升沿,读出有效 是在下降沿(DS1302 正是如此的,但是在芯片手册里没有明确说明),如果不 是特别确定,则把程序设计成这样:平时 SCLK 保持低电平,在时钟变动前设 置数据,在时钟变动后读取数据,即数据操作总是在 SCLK 保持为低电平的时 候,相邻的操作之间间隔有一个上升沿和一个下降沿。 2 2. .3.33.3 时钟模块的数据连接时钟模块的数据连接 设计中时钟模块,DS1302 的 X1、X2 间接晶振起时钟振荡作用。复位端 RST 接 89C51 的 P1.5,串行数据输入端 SCLK 接 P1.6,数据双向输入、输出端 IO 接 P1.7 图 2.9 时钟模块的数据连接 2.52.5 电源转换模块电源转换模块 日常用到的都是 220V 的交流电源,所以,需要用变压器将其转换为线路设计中所用 到的直流电源。此转换后的直流电源为 +12V,而线路设计中许多芯片所用到的电压为 +5V,因 此,还需有 12V 到 5V 的转换电路。此转换采用 7805(三端稳压器)来完成,转换图如下: 图 2.11 7805 电压转换电路 当 Vin5V 时,Vout端可得到稳定的 5V 电压。 2.62.6 本章小结本章小结 本章通过对设计思想的介绍,分别对主控制模块、显示模块、时钟模块、以及电源 转换模块的设计原理进行分析阐述。对各模块所需的芯片、元器件进行介绍。 3 3 电路仿真与制作电路仿真与制作 3.13.1电路仿真电路仿真 电路图的绘制通过 Proteus7.4 完成。Proteus 的 ISIS 是一款 Labcenter 出品的电 路分析实物仿真系统,可仿真各种电路和 IC,并支持单片机,元件库齐全,使用方便, 是不可多得的专业的单片机软件仿真系统。 该软件的特点: 全部满足我们提出的单片机软件仿真系统的标准,并在同类产品中具有明显的优 势。 具有模拟电路仿真、数字电路仿真、单片机及其外围电路组成的系统的仿真、 RS-232 动态仿真、C 调试器、SPI 调试器、键盘和 LCD 系统仿真的功能;有各种虚拟仪 器,如示波器、逻辑分析仪、信号发生器等。 目前支持的单片机类型有: 68000 系列、8051 系列、AVR 系列、PIC12 系列、 PIC16 系列、PIC18 系列、Z80 系列、HC11 系列以及各种外围芯片。 支持大量的存储器和外围芯片。总之该软件是一款集单片机和 SPICE 分析于一 身的仿真软件,功能极其强大 ,可仿真 51、AVR、PIC。 根据本设计模块化思想,绘制电路图如图 3.1: 图 3.1 多功能数字时钟电路图 图错 3.23.2电路板制作电路板制作 Proteus 组合了高级原理布图、混合模式 SPICE 仿真,PCB 设计以及自动布线来实现一 个完整的电子设计系统。因此用 Proteus 制作 PCB 板。完成后将芯片焊接到对应的位置上。 检查线路,看是否焊接出现短路情况。 3.33.3本章小结本章小结 本章主要介绍本次设计中在 Proteus 软件中进行的电路图的绘制,软件的仿真,PCB 板的制作。 4 4 软件设计部分软件设计部分 本次设计用 Keil 编程软件进行软件设计。Keil 软件是目前最流行的开发 MCS-51 系列 单片机软件,近年来各仿真机厂商纷纷宣布全面支持 Keil。Keil 提供了包括 C 编译器、宏 汇编、连接器、库管理和仿真调试器在内的完整开发方案,通过集成开发环境将这些部分 组合在一起。Keil 支持汇编语言和 C 语言的程序设计,易学易用。 4.14.1 时钟程序的设计时钟程序的设计 因为使用了时钟芯片 DS1302,阳历程序只需要从 DS1302 各寄存器中读出年、周、 月、日、小时、分、秒等数据,再处理既可。对其进行初始化,然后从DS1302 中读出 数据,再经过处理后,送给显示缓存单元。 时钟程序流程图见图 4.1 所示。 开始 初始化 1302 1302 开始振荡 从 1302 中读出年、 周、月、日、小时、 分、秒 读出的数据都为 BCD 码,送显示模 块 图 4.1 时钟程序流程图 4.34.3 液晶程序模块液晶程序模块 时钟需显示时间、温度。以上两个模块都需将数值送显示模块。 液晶的一般初始化过程: 延时 15mS 写指令 38H(不检测忙信号) 延时 5mS 写指令 38H(不检测忙信号) 延时 5mS 写指令 38H(不检测忙信号) 以后每次写指令、读/写数据操作均需要检测忙信号 写指令 38H:显示模式设置 写指令 08H:显示关闭 写指令 01H:显示清屏 写指令 06H:显示光标移动设置 写指令 0CH:显示开及光标设置 void en_toggle() en=0; /_nop_(); delay(); en=1; delay(); / _nop_(); en=0; /液晶延时 4.44.4 本章小结本章小结 本章介绍了本次设计的软件部分的设计思想,即时钟程序与显示程序。 5 5 总总结结 本设计能够准确显示时间(显示格式为时时:分分:秒秒, 24 小时制) ,可随时进 行时间调整,具有闹钟时间设置、闹钟开 /关、止闹功能,设计以硬件软件化为指导思 想,充分发挥单片机功能,大部分功能通过软件编程来实现,电路简单明了,系统稳定 性高。 基于单片机的数字时钟系统具有显示准确、直观、易于调整等特点, 单片机所被占 用的 I/O 口不多,因此系统具有一定的可扩展性。 电子时代已经到来。做为新时代的我 们,更应该提高自身能力,适应新时代的发展。知识来自实践,多去生活中探询所需要 的。对于上述所提到的研究课题,我们应尽量考虑到人的因素,增强时钟的实用性和操 作性,为使用者提供切实的方便,营造一种舒适的生活氛围。所以,在设计的时候,应 该从多方面、多角度去考虑问题,而且应该进一步提高时钟的质量。 参考文献 1 刘建英.基于单片机的时钟设计J.内蒙古石油化工,2005,1. 2余永权.ATMEL89 系列单片机应用技术,北京航空航天大学出版社,2002 3李广弟等.单片机基础,北京航空航天大学出版社,2001 4郁有文,常健,程继红.传感器原理及工程应用M西安:西安电子科技大学出版社, 2008.7 5张韵华 符号计算系统 Mathematica 教程M 北京:科学出版社.2001 6张国营,陈缔缨 传感器实验指导书M.徐州:中国矿业大学物理实验中心.2008 7 张晔,王玉民.单片机应用技术M.高等教育出版社,2006. 8AT89C51 Datasheet ,ATMEL,2004 9LCD1602 Datasheet www.21IC.com 10DS1302 Datasheet ,DALLAS Semiconductor,2004 11DS18B20 Datasheet ,DALLAS Semiconductor ,2004 12李光飞.单片机 C 程序设计实例指导M. 北京:航空航天大学业出版社, 2005. 13楼燃苗,李光飞. 51 系列单片机设计实例M. 北京:航空航天大学业出版社, 2003. 14马忠梅等. 单片机的 C 语言应用程序设计M. 北京:航空航天大学业出版社, 1999. 15赖麒文. 8051单片机C语言彻底应用M . 北京:科学业出版社, 2002. 致 谢 首先,感谢学校三年来对我的培养。本课题的前期准备以及整个研究过程是在 艾明 祥老师的耐心指导下完成的, 他严谨的治学态度、扎实的理论基础、全身心投入工作的 精神以及对学生尽心尽力的态度给了我极大的帮助与鼓励,使我受益匪浅,在此谨对他 表示崇高的敬意和衷心的感谢 ! 还要衷心感谢其他所有对本课题的研究和论文撰写有过帮助的同学。 附附录录 多多功功能能数数字字时时钟钟设设计计程程序序 #include #include #include #define uchar unsigned char #define uint unsigned int sbit rs=P20; sbit rw=P21; sbit en=P22; sbit reset=P15; sbit sclk=P16; sbit io=P17; sbit DQ=P30; uint tvalue;/温度值/ uchar tflag;/温度正负标志/ unsigned int disdata4; unsigned char led_seg10 =0xC0,0xF9,0xA4,0xB0,0x99,0x92,0x82,0xF8,0x80,0x90;/显示段码 uchar str1=“date: “; uchar str2=“time: “; uchar init=0x00,0x10,0x16,0x05,0x08,0x03,0x09;/秒,分,时,日,月,星期, 年 void delay() uchar j; for(j=250;j0;j-); /-液晶模块-/ void en_toggle() en=0; /_nop_(); delay(); en=1; delay(); / _nop_(); en=0; /注意必须加延时,否则会出问题的 void is_ready() P0=0x00;/设置为输入口 /注意:现实中应该送 0xff rs=0; rw=1; en=1; while(P0 en=0; void write_cmd(uchar cmd)/写指令/ is_ready(); rs=0; rw=0; P0=cmd; en_toggle(); _nop_(); void write_data(uchar indata)/写数据/ is_ready(); rs=1; rw=0; P0=indata; en_toggle(); _nop_(); void write_str(uchar addr,uchar *p) uchar i; write_cmd(addr); while(pi!=0) write_data(pi); i+; void write_position(uchar row,uchar col) uchar p; if(row=1) p=0x80+col-1; write_cmd(p); else p=0xc0+col-1; write_cmd(p); void init_lcd()/初始化/ write_cmd(0x38); write_cmd(0x0c); write_cmd(0x06); write_cmd(0x01);/清屏幕 /-液晶模块结束- void write_byte(uchar inbyte) uchar i; for(i=8;i0;i-) sclk=0; /写的时候低电平改变数据 if(inbyte els

温馨提示

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

评论

0/150

提交评论