猎芯旗下

全球电子硬件智造工厂

首页 电路图 资讯详情

基于PCF8563时钟芯片的万年历电路图

发布时间: 2020/11/11 12:53:11

浏览: 2089次

   时钟芯片很多,我个人认为,比起DSl302来说,采用飞利浦公司的PCF8563时钟芯片会会取得良好的效果。PCF8563是CMOS实时时钟(RTC)和日历,最适合低功耗应用。 它还提供了可编程时钟输出,中断输出和低压检测器。 所有地址和数据均通过两线双向I²C总线串行传输。 最高总线速度为400 kbit / s。 在写入或读取每个数据字节后,寄存器地址将自动递增。本篇文章将介绍一款万年历的设计,它采用89S51作主控MCU,LCM1602作显示,可以取得较理想的效果,电路图如图所示。

  PCF8563是低功耗的CMOS实时时钟/日历芯片,提供1个可编程时钟输出、1个中断输出和掉电检测器,所有的地址和数据通过I2C总线接口串行传递。最大总线速度为400kbit/s,在数据交换时只要按照I2C总线模式进行操作,对时序的要求也不是太高。PCF8563内部寄存器地址与数据格式描述如附表所示。


  本电路采用89S51作主控MCU,PCF8563产生时钟信息,LCM1602液晶模块作显示。Y1为32.768kHz晶振,Y2为12MHz晶振,BT1作为后备电源,保持时钟数据万年不丢失;RP1和RP2是9脚l0kΩ排阻;S1~S4用于调整时间。S2用于进入调整模式;并且每按一次改变调整项目;S1用于退出调整状态,S3、S4用于加1减1操作。

  LCMl602的驱动程序如下,可移植。

  #defineLCM1602_DB0_DB7PO//定义LCM1602的数据总线

  sbitLCM1602_RS=P2^6;//定义LCMl602的RS控制线

  sbitLCM1602_RW=P2^5;//定义LCM1602的RW控制线

  sbitLCM1602_E=P2^4;//定义LCM1602的E控制线

  sbitLCM1602_Busy=P0^7;//定义LCM1602的测忙线

  unsignedcharcodePCF8563[]={“PCF8563”};

  voidLCM1602_Delay(unsignedcharcount)

  {

  unsignedcharI;

  while(--count!=0)

  {

  for(I=0;I<125;I++);

  }

  }

  voidLCM1602_TestBusy(void)

  {

  do

  {

  LCM1602_DB0_DB7=0xff;

  LCM1602_RS=0;

  LCM1602_RW=1;

  LCM1602_E=0;

  LCM1602_Delay(2);

  LCM1602_E=1;

  }

  while(LCM1602_Busy);

  }

  voidLCM1602_WriteCMD(unsignedcharLCM1602_command)

  {

  LCM1602_DB0_DB7=LCM1602_command;

  LCM1602_RS=0;

  LCM1602_RW=0;

  LCM1602_E=0;

  LCM1602_TestBusy();

  LCM1602_E=1;

  }

  voidLCM1602_WriteData(unsignedcharLCM1602data)

  {

  LCM1602_DB0_DB7=LCM1602_data;

  LCMl602_RS=1;

  LCM1602_RW=0;

  LCM1602_E=0;

  LCM1602_TestBusy();

  LCM1602_E=1;

  }

  voidLCM1602_Int(void)

  {

  LCM1602_WriteCMD(0x01);//显示清屏

  LCM1602_WriteCMD(0x38);//显示模式设置:显示2行,每个字符为5x7个像素

  LCM1602_WriteCMD(0x06);//显示光标移动设置:文字不动,光标右移·

  LCM1602_WriteCMD(0x0c);//显示开及光标设置:显示开,光标关,闪烁关

  }

  voidprint(unsignedchara,unsignedchar*str)

  {

  LCM1602_WriteCMD(a);

  while(*str!=’\0’)

  {

  LCM1602_WriteData(*str++);

  }

  *str=0;

  }

  voidprint1(unsignedchara,unsignedchart)(

  LCM1602_WriteCMD(a);

  LCM1602_WriteData(t);

  }


       以上介绍了一款万年历的电路设计,89S51作主控MCU,PCF8563产生时钟信息,LCM1602液晶模块作显示,设计简单,走时精准,可以自己在家动手制作。


在线客服 800183356

服务热线:0571-86609386

0