万历数字钟及可调时钟系统7.docVIP

  1. 1、本文档共53页,可阅读全部内容。
  2. 2、有哪些信誉好的足球投注网站(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  5. 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  6. 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  7. 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  8. 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
万历数字钟及可调时钟系统7

万年历数字钟及可调时钟系统.txt用快乐去奔跑,用心去倾听,用思维去发展,用努力去奋斗,用目标去衡量,用爱去生活。钱多钱少,常有就好!人老人少,健康就好!家贫家富,和睦就好。万年历数字钟及可调时钟系统 一、 引言 万年历数字钟是一种用万年历时钟芯片实现年、月、日、时、分、秒计时,并通过单片机处理后送给显示芯片显示的装置,与机械式时钟相比具有更高的准确性和直观性,且具有更长的使用寿命。本系统还可以扩展为可调的自动开关,对家电对用电设备进行控制,笔者在随后改制成为可调时的自动断电的供电系统. 二、 原理图设计 1. 单片机及其外围电路设计 复位采用X25045芯片,复位电路如图1所示。 图1 复位电路设计 单片机采用贴片封装的AT89S51,晶振为11.0592MHz。其中P1.5~P1.7为下载程序使用,电路如图2所示。 图2 单片机89S51外围电路设计 2. 时钟芯片电路设计 时钟芯片采用PCF8563,晶振采用32.768K,电容使用15pf。PCF8563 是PHILIPS 公司推出的一款工业级内含I2C 总线接口功能的具有极低功耗的多功能时钟/日历芯片。内部时钟电路、内部振荡电路、内部低电压检测电路(1.0V)以及两线制I2C 总线通讯方式,不但使外围电路及其简洁,而且也增加了芯片的可靠性。同时每次读写数据后,内嵌的字地址寄存器会自动产生增量。电路如图3所示。 图3 时钟芯片电路设计 3. 显示芯片电路设计 显示芯片采用ZLG7289,晶振为12MHz。ZLG7289A 是广州周立功单片机发展有限公司自行设计的,具有SPI 串行接口功能的可同时驱动8 位共阴式数码管(或64 只独立LED )的智能显示驱动芯片,该芯片同时还可连接多达64 键的键盘矩阵,单片即可完成LED 显示﹑键盘接口的全部功能。电路如图4所示。 图4 显示芯片电路设计 4. 双电源电路设计 系统采用双电源,平时使用V1=10V的外接电源,停电时使用电池,由V2输入。电池有6节,其电压为9V。当电池电压低于6V时,LED亮,说明电池电量不足。电路如图5所示。 图5 双电源电路设计 三、 程序设计 程序开始时先对系统初始化,并设置好各种中断。下步操作主要是对时钟芯片进行操作,首先要给时钟芯片设置初值,时钟芯片便自行计数。此时检测是否有按键按下,按键是为了调整时钟。有按键按下则执行按键中断程序,没有按键按下则执行下一步的操作,即取时钟芯片中的时钟值,然后送显示。程序流程图如下。 图6 总体流程图 四、 源程序 #include reg51.h #include intrins.h #include math.h #define uchar unsigned char /*宏定义*/ #define uint unsigned int uchar close_date,open_date; void RESWDI(void); void WREN(void); void WRDI(void); void WRSR(void); unsigned char RSDR(void); void WIPCHK(void); void OUTByte(unsigned char Byte); unsigned char INPUTByte(void); unsigned char ReadByte(unsigned char ADD); void WriteByte(unsigned char Byte,ADD); #define _Nop() _nop_() sbit zlg7289_cs =P1^1; sbit zlg7289_clk =P2^6; sbit zlg7289_dio =P2^7; sbit zlg7289_key =P3^2; sbit p07=P0^7; sbit p06=P0^6; sbit CS=P2^4; sbit SCK=P2^2; sbit SO=P2^5; sbit SI=P2^3; sbit p10=P1^0; sbit SDA=P1^2; /*模拟I2C数据传送位*/ sbit SCL=P1^3; /*模拟I2C时钟控制位*/ uchar buf[9]={0x00,0x00,0x30,0x23,0x15,0x1,0x05,0x04,0x05}; uchar bufdata,bb,date; uchar SLA=

您可能关注的文档

文档评论(0)

ipad0a + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档