您当前的位置:五五电子网电子知识单元电路时钟-定时电路基于52单片机电子时钟日历系统的设计 正文
基于52单片机电子时钟日历系统的设计

基于52单片机电子时钟日历系统的设计

点击数:7440 次   录入时间:03-04 11:45:41   整理:http://www.55dianzi.com   时钟-定时电路

  该系统是以52单片机为基础,以时钟日历芯片DSl2887为核心构建的时钟系统。完成的功能如下:显示年、月、日、星期、小时、分钟、秒钟,具有1OO年的日历,具有掉电不丢失性,能够通过按键调整时间。DS12887内置锂电池,可以在掉电情况下工作10年。

  一、芯片简介

  在C语言程序中要读取或写入数据非常简单,只需要一条语句即可实现。在汇编语言中就是对MOVX语句的时序分析。DS12887的英特尔读周期时序如上图,写周期时序如下图所示:

 


  
  最后简单介绍一下DS12887的控制字定义:
  
  上面已经提到DSl2887内部有128字节的存储空间。其中前14字节为特别定义区(具体定义见PDF),后114字节为随机存储区。
  
  14字节特别定义区的具体定义如上表所示。其中0x7f00~0x7f0D是由于在本系统中选用单片机P2.7引脚接CS端所决定的。这些地址的最高位都为0,对应P2.7引脚,会使得在写入或读取的过程中在P2.7引脚上恰好产生低电平,选中芯片,完成英特尔总线时序。如果我们将单片机P2.6引脚接CS端,地址范围应为:0xbf00~0xbf0D,其中b的二进制为1011,对应会使得P2.6引脚产生低电平的片选脉冲。从0~9号地址为年月等的寄存器,用户可以读取和写入。10~13号地址为控制寄存器,寄存器D为只读,寄存器A~C的各位具体定义介绍如下(如下表)

  ●UlP:只读状态标志;
  
  ●DV0~2:控制芯片内部晶振位,010组合打开晶振正常工作;
  
  ●RS0~3:设定中断速率和SQW方波输出;
  
  ●SET:读写控制位,1时可以初始时钟日历字节;
  
  ●PIE、AIE、UIE:分别为周期、闹钟、更新结束中断允许位;
  
  ●PF、AF、MF:分别为周期、闹钟、更新结束中断标志位
  
  ●IRQF:中断请求标志位,IRQF=PF·PlE+AF·AlE+MF·UIE;
  
  ●SQWE:方波输出允许位;
  
  ●DM:选择数据为二进制(1)或BCD(0)码格式;
  
  ●24/12:选择时钟为24,小时格式门2小时格式;DSE:白天节时,置0就行。

地址 内容 说明 00x7f00 Seconds 0-59秒寄存器 10x7f01 SecondsAlarm O-59秒闹钟 20x7f02 MinUteS 0-59分寄存器 3Ox7f03 MinutesAlarm O-59分闹钟 4Ox7f04 Hours 0-23时寄存器 50x7f05 HoursAlam O-23时闹钟 60x7f06 DayOftheWeek 1-7星期几 70x7f07 DateOftheMonth 1-31几号 80x7f08 Month 1-12月份 90x7f09 Year 0-99年数 100x7f0A REGISTERA 控制寄存器A 110x7f0B REGISTERB 控制寄存器B 120x7f0C REGISTERC 控制寄存器C 130x7f0D REGISTERD 控制寄存器D 控制寄存器 BIT7 BIT6 BIT5 BlT4 BIT3 BIT2 BIT1 BIT0 REGISTERA UIP DV2 DV1 DV0 RS3 RS2 RS1 RS0 REGISTERB SET PIE AIE UIE SQWE DM 24/12 DSE REGISTERC IRQF PF AF MF 0 0 O O

www.55dianzi.com

  二、实物制作

  原理图如上图所示。实际制作的电子日历系统的PCB版图如下图。在下图中WR、RD、INTO、GND和VCC标号处的焊盘是飞线用的,这里是单面板,工艺上只能达到15mil粗细程度,所以飞线之处较多。笔者认为ZLG7289在系统里边仅用来控制8个按键,有些浪费,读者可以直接挂在单片机I/O口上,不过不要忘了按键去抖,但是液晶的使用还是很有必要的,因为日历的信息比较多,如果只用8个数码管,不方便。图中考虑到在调试过程中的测试方便,将单片机的各端口都用排针引出来了。安装完成后,将程序写入,这种并口的芯片调试容易。
  
  将图中的元器件参数列表如下:
  
  AT89S52、DS12887、ZLG7289、LCDl602各一;C1、C2、C4、C5、C6:30pF瓷片电容;C3:1μF电解电容;C7:100μF电解电容;C8:1000μF电解电容;C9:10μF电解电容;R1、R4、R6:10kΩ欧姆电阻;R5、R7:1欧姆电阻;R2:2.2kΩ欧姆电阻;R3:1OO欧姆电阻;R11:100kΩ欧姆电阻;104、104J:100kΩ排阻;1602:16脚排针;P0,P1,P2,P3:8脚排针;SPI:6脚排针;D1:红色LED指示电源;LS1:蜂鸣器;Q1:PNP三极管9012;S1~S8:两脚封装的按键;Y1、Y2:12MHz晶振;

电子时钟日历系统电路

 



www.55dianzi.com

  三、程序设计

  下面是DS12887的驱动程序和调时程序。

  我们开始要在主程序的开始设置一个初始化DS12887的函数,写入使晶振开启和设置初始时间的命令。在调试成功后,应该将这个初始化函数删掉,这样在单片机掉电又重新上电后就不用重新设置时间。
  
  上面的程序就是删掉初始化函数后的样子。这样就完成了掉电后不会丢失时间的功能,这对于时钟日历来说,是一个非常实用的功能。
  
  在主程序中,可以通过编程实现人机交互,完成调整DS12887内部时间的程序,还可以设定闹钟,完成报时功能。
  
  举例如下:
  
  开启和关闭晶振.

 




本文关键字:单片机  电子  日历  时钟-定时电路单元电路 - 时钟-定时电路

《基于52单片机电子时钟日历系统的设计》相关文章>>>