一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

電子發(fā)燒友App

硬聲App

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

電子發(fā)燒友網(wǎng)>電子技術(shù)應(yīng)用>電子技術(shù)>電路圖>數(shù)字時鐘電路圖>基于PCF8563時鐘芯片的萬年歷制作 - 全文

基于PCF8563時鐘芯片的萬年歷制作 - 全文

  基于PCF8563時鐘芯片的萬年歷制作

  萬年歷時鐘芯片很多,筆者認(rèn)為,比起DSl302來說,采用飛利浦公司的PCF8563時鐘芯片,LCM1602作顯示,可以取得較理想的效果。電路圖如圖1所示。

基于PCF8563時鐘芯片的萬年歷制作

  PCF8563是低功耗的CMOS實時時鐘/日歷芯片,提供1個可編程時鐘輸出、1個中斷輸出和掉電檢測器,所有的地址和數(shù)據(jù)通過I2C總線接口串行傳遞。最大總線速度為400kbit/s,在數(shù)據(jù)交換時只要按照I2C總線模式進行操作,對時序的要求也不是太高。PCF8563內(nèi)部寄存器地址與數(shù)據(jù)格式描述如附表所示。

基于PCF8563時鐘芯片的萬年歷制作

  本電路采用89S51作主控MCU,PCF8563產(chǎn)生時鐘信息,LCM1602液晶模塊作顯示。Y1為32.768kHz晶振,Y2為12MHz晶振,BT1作為后備電源,保持時鐘數(shù)據(jù)萬年不丟失;RP1和RP2是9腳l0kΩ排阻;S1~S4用于調(diào)整時間。S2用于進入調(diào)整模式;并且每按一次改變調(diào)整項目;S1用于退出調(diào)整狀態(tài),S3、S4用于加1減1操作。

  LCMl602的驅(qū)動程序如下,可移植。

  #defineLCM1602_DB0_DB7PO//定義LCM1602的數(shù)據(jù)總線

  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);//顯示模式設(shè)置:顯示2行,每個字符為5x7個像素

  LCM1602_WriteCMD(0x06);//顯示光標(biāo)移動設(shè)置:文字不動,光標(biāo)右移·

  LCM1602_WriteCMD(0x0c);//顯示開及光標(biāo)設(shè)置:顯示開,光標(biāo)關(guān),閃爍關(guān)

  }

  voidprint(unsignedchara,unsignedchar*str)

  {

  LCM1602_WriteCMD(a);

  while(*str!=’