

简介
本文的引用地址:
随着生活节奏的加快,人们对时间的看法越来越重,对电子时钟和日历的需求也在增加. 因此52单片机万年历程序,研究实用的电子时钟及其扩展应用具有十分重要的现实意义和实用价值.

该系统程序由主程序,中断服务功能和多个子功能组成. 主要功能主要完成每个子功能和中断功能的初始化. 定时器中断功能主要完成时钟芯片的定时扫描和键盘扫描. 时钟芯片的读写功能主要是读取时间和日历信息,并将要修改的特定值写入时钟芯片.
系统的硬件设计和电路原理
电路设计框图
系统硬件概述

该电路由AT89S52单片机控制,具有编程功能,功耗低,可在3V的超低电压下工作. 时钟电路由DS1302提供. 它是带有RAM的高性能,低功耗实时时钟电路. 它可以为年,月,日,周日,小时,分钟和秒计时. 工作电压为2.5V〜5.5V. 三线接口用于与CPU同步通信,突发模式可用于一次传输多个字节的时钟信号或RAM数据. DS1302有一个31×8 RAM寄存器,用于临时存储数据. 它可以产生年,月,日,周日,小时,分钟和秒. 具有使用寿命长,精度高,功耗低的特点. 断电时还具有自动保存功能.

主控制模块
单片机主控制模块的设计

AT89S52 MCU是具有四个I / O端口P0,P1,P2,P3的40引脚双列直插芯片,MCS-51 MCU具有四个8位I / O端口(P0,P1,P2,P3 ),每条I / O线都可以独立输出或输入.
时钟电路模块
时钟电路模块的设计
DS1302的引脚排列如图3所示52单片机万年历程序,其中Vcc1是备用电源,Vcc2是主电源. 即使关闭主电源,时钟也可以保持连续运行. DS1302由Vcc1或Vcc2中的较大者供电. 当Vcc2大于Vcc1 + 0.2V时,Vcc2为DS1302供电;当Vcc2小于Vcc1时,DS1302由Vcc1供电. X1和X2是振荡源,它们连接到32.768KHz晶体振荡器. RST是复位/芯片选择线. 通过将RST输入驱动为高电平来启动所有数据传输. RST输入具有两个功能: 首先,RST开启控制逻辑,从而允许将地址/命令序列发送到移位寄存器中;其次,RST提供了一种终止单字节或多字节数据传输的方法.

时钟电路模块的工作原理
DS1302必须在每次读取和写入过程之前初始化,首先将SCLK端子设置为“ 0”,然后将RST端子设置为“ 1”,最后提供SCLK脉冲. 读/写时序如图4所示. 表1是DS1302的控制字. 该控制字的位7必须设置为1,如果为0,则无法对DS1302进行数据读写. 对于位6,读/写程序时RAM = 1,读/写时间时CK = 0. 位1至位5是指操作单元的地址. 位0是读/写操作位. 当执行读操作时,该位为1;否则为0. 位0表示执行写操作. 控制字节始终从最低位开始输入/输出. 表2列出了DS1302的日历和时间寄存器的内容: “ CH”是时钟暂停标志位. 该位置1时,时钟振荡器停止工作,DS1302处于低功耗状态. 当该位为0时,时钟开始运行. “ WP”是写保护位. 在对时钟和RAM进行任何写操作之前,WP必须为0. 当“ WP”为1时,写保护位将阻止任何寄存器的写操作.
DS1302的控制字节
DS1302的控制字如表1所示. 控制字节的最高有效位(第7位)必须为逻辑1. 如果为0,则不能将数据写入DS1302. 如果第6位为0,则表示访问日历时钟数据,而1表示访问RAM数据;位5至1表示操作单元的地址;最低有效位(位0)(例如0)表示写操作,而1表示读操作,并且控制字节始终从最低位输出.
数据输入和输出(I / O)
在输入控制指令字之后,在SCLK时钟的下一个上升沿,数据被写入DS1302,并且数据输入从低位bit 0开始. 类似地,在下降沿读取DS1302数据当读取数据时,紧随8位控制指令字之后的下一个SCLK脉冲的位从低位0到高位7. 如图4所示.
本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/ruanjian/article-164465-1.html
省的达到咱这打工