[摘要]: 本文描述了一种利用华邦四位机来设计带有农历24节气的万年历的设计方法,同时对于其中软件的算法和硬件的电路设计进行了计算和分析。
[关键字]:节气, 列表法, 微处理器, 单片机, 算法
在当前的产品设计中,人们在追求产品高性能的同时,也在追求产品的低成本。这就对开发工程师提出了更高的要求。
对于万年历的产品市场上已经有了很多,但是带有农历24节气,同时用LED数码管显示的万年历在市场上的销售价明显偏高,究其原因是因为如果将农历24节气设计加入其中,就要增加软件程序,这样就会使相应的程序存贮空间加大,自然硬件成本就会随之增加。所以,最好可以找到一种既可以实现其功能,又可以节约成本的单片机来实现。
以下就是丰宝电子科技公司开发部门研发出的一种只是利用的华邦的四位机就可以实现的带有农历24节气的万年历的产品设计思路,由于用的是4位机,它的ROM空间和RAM空间比起8位机就少得多,这样对软件的设计提出了更高的要求,要求能够找到适合4位机上使用的简易算法。
对于阳历农历的算法比较简单,而且规律很容易找到。这里就不再赘述。我们这里重点讨论一下对于农历中二十四个节气的算法。还考虑到单片机的性能情况和万年历的使用寿命,我们设计的是有限年(如50年)万年历,因此这里我们的算法也是按着50年为年限来设计。
一、万年历农历节气算法:
为了便于考察50年的无规律的农历节气分布时间,我们利用C语言在计算机中,实现了50年(2000~2049年)的阳历和农历节气分布时间表。由于数据庞大,所以仅仅列出其中部分阳历年对应的前6个节气日期,简表见表1。
这张复杂冗长的节气表中,每年的节气具体日期虽然都在一定的范围内变动,但是变动的趋势毫无规律可寻,每个月的具体节气日期有时候推前一两天,有时候推后一两天。
但是,从这张复杂的表格中的众多数据中,我们发现这样一个规律:虽然,这些节气的日期变化趋势无法获得,但是,这些日期的变化总是在3天之内变化的。
表格1、阳历年中农历节气日期表
年\月
1
2
3
4~12
2000
6
21
4
19
5
20
上半月节气日期
下半月节气日期
⋯⋯
⋯⋯
2043
5
20
4
19
6
21
上半月节气日期
下半月节气日期
2044
6
20
4
19
5
20
上半月节气日期
下半月节气日期
2045
5
20
3
18
5
20
上半月节气日期
下半月节气日期
⋯⋯
⋯⋯
2049
5
19
3
18
5