带红外调时的万年历
一、目的要求
1.利用实时时钟芯片DS1302、DS12887制作带红外调时功能的万年历,用0.5寸7段共阳数码管显示实时时间和温度数据。
2.依据读取的时间数据,计算出当前的农历日期。
3.利用按键进行DS1302和DS12887进行时间的校正及实时时钟芯片的切换并显示在数码管上。
二、所用器件
本项目所用到的器件有DS1302,DS12887,74LS595,STC89C51,0.5寸7段共阳数码管,74LS08,红外接收头,红外遥控器
1、DS1302 是 DALLAS 公司推出的涓流充电时钟芯片 内含有一个实时时钟/日历和31字节静态RAM,通过简单的串行接口与单片机进行通信。实时时钟/日历电路提供秒、分、时、日、日期、月、年的信息。DS1302与单片机之间能简单地采用SPIJ接口进行通信DS1302工作时功耗很低,保持数据和时钟信息时功率小于1mV。DS1302使用双电源管脚用于主电源和备份电源。
2、DS12887提供一个实时时钟/日历、定时闹钟、三个可屏蔽中断(共用一个中断输出)、可编程方波输出和114 字节的电池备份静态RAM (DS12C887和DS12C887A 包含113 字节RAM)。DS12887内部集成了晶体和锂电池。DS12C887 在地址32h 内增加了世纪字节。
3、红外接收部分,用的是HS0038 一体化红外接收头,接收到红外信号放大后,传给AT89C51进行红外解码。
4、74LS595串口转换并口的芯片,单片机串口发送数据,经74LS595输出数码管的段码
三、系统组成
单片机间断的读取时钟芯片的时间数据,经过一系列的计算,通过串口发送到三路数码管显示出来。在调时状态下,对应的数码管会不断闪烁,单片机不断的判断按键和红外键码,进行相应的处理。
四、软件设计
①单片机的通过响应DS12887的更新中断,利用并口读取时钟数据
②利用单片机自身的定时中断读取(SPI接口)DS1302的时钟数据
③使用单片机的外部中断接收红外数据、解码
④农历转换采用的是按年查表法,先计算出公历日离当年元旦的天数,然后查表取得当年的春节日期,计算出春节离元旦的天数,二者相减即可算出公历日离春节的天数,以后只要根据大小月和闰月信息,减一月天数,调整一月农历月份,即可推算出公历日所对应的农历日期
五、使用情况
通过硬件电路的焊接和软件的调试,实现红外解码;使用红外和按键两种调时方式共同调节时间,当前调时位表现为闪烁;按键和红外双方式切换时钟芯片DS1302,DS12887;DS1302采用备用电源实现掉电保护;利用查表方式查询当天农历日期。