(完整版)单片机电子日历2毕业设计(4)

2019-01-19 17:52

图7

4.1.1电子日历优化算法 1.阳历算法

阳历的算法比较简单,每十月的总的天数相对来说是固定的。只有2月份,在闰年是29天,在非闰年是28天。每个月的日历排法.主要是确定每个月第一天是星期几。我们知道1901年1月1日是星期二,星期的变化是7天一个周期,比如说要计算1901年2月1日是星期几,可以这样推算:从1901年1月1日到1901年2月1日总共经过了31天(从表2可 看出),31对7取模是3:1901年1月1日是星期二,加三后,是星期五。因此1901年2月1日是星期五。同理,可以推算出从1901—2100年任何一天是星期几。

表2

月份 闰年 1 2 3 4 5 31 31 6 30 30 7 31 31 8 31 31 9 30 30 10 31 31 11 30 30 12 31 31 31 29 31 30 非闰年 31 28 31 30 2.阴历算法

阴历的算法比较复杂,它包含两个部分。一部分是阳历日和阴历日的对应关系;另一部分则是阳历日和农历节气的对应关系。下面只介绍与设计有关的阴历和阳历的关系。

表3

比特数 数据 ! ! ! ! ! 1 ! ! ! 1 ! 1 x x x x 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 我们先要做一个数据表,这个数据表里面每2个字节,表示T一个阴所年彝个月份的天教 2个字节(共16bit)的具体意义如表2。

其中“!(01)中“0”表示30天,“1”表示29天。“x x x x(4个比特可表示数值范围0~15)”表示该年中是否有闰月,数值“0”表示无闰月,“ 1~12” 表示某一个闰月。闰月一般是29天;在200年中(1901~2100年),闰月是30天的,可用一个特殊语句来解决。这里2OO年需要200 x 2=400个字节,构成阴历压缩数据表。

有了阴历的数据表后,主要是要确定阳历日和胡历日的对应关系。我们知道阳历年1901年1月1日,对应的阴历年是对应的阴历日,可用以下算法:

(1)从阳历年1901年1月1日到1901年2月1日,计算出经过了31天; (2)根据阴历数据表知道阴历年1900年11月有29天,因此31—29=2

天。原来阳历年1901年1月1日对应的阴历日是11日,则有11+1=12; (3)因为阴历1901年12月份有30天,而12<=30,所以阳历年1901年2月1日对应的阴历年是1900年12月13日。如果上一步相加得出的散大于当前阴历月的总的天敢,别应该继续减去当前阴历月的总的天数,直到符合条件。 对于月份增加时,还要通过数据表查看是否要经过闰月。

对于其他任何一个阳历日和阴历日的对应关系,都可以通过以上算法求得结果。

4.2 实现时钟,日历显示设计

DS1302可以对年、月、日、周日、时、分、秒进行计时,且具有闰年补偿等多种功能. 4.2.1 DS1302 的寄存器

DS1302 有12 个寄存器,其中有7 个寄存器与日历、时钟相关,存放的数据位为BCD 码形式。

此外,DS1302 还有年份寄存器、控制寄存器、充电寄存器、时钟突发寄存器及与RAM 相关的寄存器等。时钟突发寄存器可一次性顺序读写除充电寄存器外的所有寄存器内容。 DS1302 与RAM 相关的寄存器分为两类:一类是单个RAM 单元,共31 个,每个单元组态为一个8 位的字节,其命令控制字为C0H~FDH,其中奇数为读操作,偶数为写操作;另一类为突发方式下的RAM 寄存器,此方式下可一次性读写所有的RAM 的31 个字节,命令控制字为FEH(写)、FFH(读)。

4.2.2 DS1302 实时显示时间的软硬件

DS1302 与CPU 的连接需要三条线,即SCLK(7)、IO(6)、RST(5)。图9 示出DS1302 与89C2051 的连接图,其中,时钟的显示用LCD。 4.2.3 DS1302 与CPU 的连接

实际上,在调试程序时可以不加电容器,只加一个32.768kHz 的晶振即可。只是选择晶振时,不同的晶振,误差也较大。另外,还可以在上面的电路中加入DS18B20,同时显示实时温度。只要占用CPU 一个口线即可。 LCD 还可以换成LED,还可以使用北京卫信杰科技发展有限公司生产的10 位多功能8 段液晶显

示模块LCM101,内含看门狗(WDT)时钟发生器及两种频率的蜂鸣器驱动电路,并有内置显示RAM,可显示任意字段笔划,具有3-4 线串行接口,可与任何单片机、IC 接口。功耗低,显示状态时电流为2μA(典型值),省电模式时小于1μA,工作电压为2.4V~3.3V,显示清晰。

图8 DS1302与CPU链接的电路原理图

4.3整体设计

实现过程:由串行的时钟芯片DS1302,送给单片机,单片机处理后输出。而74LS164将串行信号变成并行信号,每个164对应LED七段码,三个164对应三行LED数码管。单片机P2.6-P2.0连接七个三极管作列驱动,共七列数码管,(实际有两行是六列)行列扫描共同形成电子日历。

其整个过程,如原理图所示。


(完整版)单片机电子日历2毕业设计(4).doc 将本文的Word文档下载到电脑 下载失败或者文档不完整,请联系客服人员解决!

下一篇:危险化学品重大危险源辨识GB18218-2009

相关阅读
本类排行
× 注册会员免费下载(下载后可以自由复制和排版)

马上注册会员

注:下载文档有可能“只有目录或者内容不全”等情况,请下载之前注意辨别,如果您已付费且无法下载或内容有问题,请联系我们协助你处理。
微信: QQ: