利用華邦四位機實現帶農曆24節氣萬年曆的低成本設計

2020-12-21 電子產品世界

[摘要]: 本文描述了一種利用華邦四位機來設計帶有農曆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

20

上半月節氣日期

下半月節氣日期


  例如:每年的第一個節氣(小寒)出現的1月的5日,6日兩天中的某一天;每年的第二個節氣(大寒)出現在1月的20日,21日,19日三天中的某一天。

  這樣,我們只要固定每個節氣的基本日期,然後專門針對這兩三天編制一個相對日期的表格就可以了。考慮到最多變化範圍是3天,所以這個相對日期可以取值為1、0和-1。

  我們選定的基本日期如下:

  一月到三月的節氣基本日期: 6/20 、4/19、 6/21;

  四月到六月的節氣基本日期: 5/20 、6/21、 6/21;

  六月到九月的節氣基本日期: 7/23 、8/23、 8/23;

  十月到十二月的節氣基本日期:8/24 、8/22、 7/22;

  根據以上的思想,我們得到了下面的表格2。

  並且,仔細觀察表2,我們還可以得到以下關於節氣日期相對值的規律性結論:

  1、 只有以下四個節氣(2、12、19、22)同時出現三個相對值(1,-1和0)的情況。

  2、 其它的20個節氣中僅僅出現了0和-1這兩個相對值。

  3、 在有三個相對值的四個節氣(2、12、19、22)中,2044年以前,出現的非零相對值都是1;而2044年以及2044年以後,出現的非零相對值都是-1;

表格2、陽曆年中農曆節氣日期固定日期和相對值表

陰曆

節氣

1

2

3

4

5

6

7~23

8-24

陽曆

年\月

1

2

3

4~12

基本

日期

6

20

4

19

6

21

上半月節氣日期固定值

下半月節氣日期固定值

2000

0

1

0

0

-1

-1

上半月節氣日期相對值

下半月節氣日期相對值

⋯⋯

⋯⋯

2043

-1

0

0

0

0

0

上半月節氣日期相對值

下半月節氣日期相對值

2044

0

0

0

0

-1

-1

上半月節氣日期相對值

下半月節氣日期相對值

2045

-1

0

-1

-1

-1

-1

上半月節氣日期相對值

下半月節氣日期相對值

⋯⋯

⋯⋯

2049

-1

-1

-1

-1

-1

-1

上半月節氣日期

下半月節氣日期

  也就是說在50年內,大寒(2)、夏至(12)、寒露(19)和小雪(22)這四個節氣日期變化相對較多,一共有3天,它們的日期相對值可能需要使用三個狀態值來表示。


  下面是以上三條農曆節氣日期規律的相對值分布簡圖。

 

圖1、農曆節氣日期相對值分布簡圖


  根據表格2和圖1所示意的農曆節氣日期排布規律和形式,我們就可以構造一個表格,並且結合相應的算法來計算某個陽曆日期所對應的陰曆節氣了。

  利用上節分析結果,我們設想使用最少的字節來編制一個表格,使得它包含了50年內的所有相對值分布信息。由於一年包含農曆的24個節氣,也就是說共有24個日期相對值狀態量。

  為了能夠儘量減少存儲空間,我們使用一個位來代表一個農曆的節氣日期相對值。這樣1年的24個節氣就可以用24個位來表示,也就是3個字節(每個字節8個位)表示。

  由於農曆節氣日期相對值最多有三種狀態:-1、0和1,而一個位僅僅有2種狀態:0和1,為了能夠把3種狀態融合進兩種狀態中 ,我們根據上節中節氣日期相對值的規律性結論,採取了具有條件的二值狀態來表示三值狀態,制定了如下的編碼規則:


表格3、位狀態編碼規則

位值

節氣日期相對值

備註

0

0

適合於表格的50年所有節氣

1

1

適合於2044年以前的2、12、19、22四個節氣

-1

2044年和其後的2、12、19、22四個節氣

以及其它20個節氣

  利用以上的規則我們就可以對於50年的24個節氣進行編碼,得到如下的編碼表:

表格4、最終的編碼表

年份

LBA表值

2000

4E A6 99

2001

 

9C A2 98

2002

 

80 00 18

2003

00 10 24

⋯⋯

⋯⋯

2042

9E A2 98

2043

80 82 18

2044

0F EF FB

2045

BF E6 D9

2046

9E A6 98

2047

80 82 18

2048

0F FF FF

2049

FC EF D9

  由此看出,使用這種編碼的方式對農曆日期相對值進行編碼方法,一年的24個節氣的日期只需要3個字節表示就可以明確表示了。50年的節氣表,只需要150個字節的存儲空間。年份越多,這種編碼發方式能夠節約的存儲空間越大,優勢越明顯。

二、萬年曆的硬體實現

  我們使用的單片機是華邦公司的四位機。這種單片機的結構跟8位機的類似,雖然它的功能不如8位單片機。但是,它具有結構簡單、成本低的優勢,同時還包括了普通單片機的基本功能。它包含了128個字節的RAM,2k的ROM,定時器,外部中斷,內部中斷,此外,還有省電功能和驅動LED的功能。下圖就是利用華邦四位機W741E260實現萬年曆功能的原理框圖,

  其中,對於陽曆日期,農曆日期的顯示,是利用LED數碼顯示來實現,而對於二十四節氣則是利用24個發光二極體,在製做外觀模具時,可以將二十四節氣標誌在外觀模具上,如果到了相對應的節氣,相應的發光二極體就會點亮。

  利用了此方案實現 ,就用一個華邦的4位機,硬體成本就可以大大降低。

三、萬年曆的軟體實現

  由於萬年曆的其它的功能程序已經佔用了較大的存儲空間。所以能夠用於農曆節氣查詢的程序的空間不大,僅僅有0.5k的容量。也就是說表格和查表程序一共只有0.5k的空間,表格佔用的空間越大,可寫程序的空間就越小。

  如果使用把50年農曆24節氣日期表格1,僅僅表格就需要使用50

相關焦點

  • 農曆24節氣兒歌
    雨水節氣回娘家,帶上娃娃看爸媽;一段紅綢一罐肉,春意濃濃綻新芽。 註:雨水是農曆24節氣中的第2個節氣。我國北方雨水節氣的一個主要習俗是出嫁的女兒要和丈夫回娘家探望父母,給父母送一段紅綢和燉一罐肉.
  • 中華黃曆萬年曆下載_中華黃曆萬年曆手機版下載_中華黃曆萬年曆...
    中華黃曆萬年曆 生活工具 大小: 9.23M
  • 農曆與24節氣的由來
    農曆其實是陰曆(月亮歷),24節氣其實是陽曆(太陽曆)。今天農曆,其實是清順治年間的《時憲歷》,是由德意志傳教士湯若望同志搞出來的,冬至日的測算是以太陽直射南回歸線為準。與中國古代的平氣法測算二十四節氣完全不是一碼事。
  • 八字萬年曆
    【八字萬年曆,生活裡的好幫手】:萬年曆,老黃曆,農曆日曆,奇門日曆,方便中國傳統文化愛好者查詢、記錄.一目了然,方便快捷準確.
  • 二十四節氣表 24節氣表圖大全
    那時候有二十四個節氣,每6個節氣是一個季節,因此大家的農事活動都是根據節氣而來的。那麼,二十四節氣表去哪找呢?以下是萬年曆小編帶來的24節氣表圖大全,一起去看看吧。24節氣節氣指二十四時節和氣候,二十四節氣是中國古代訂立的一種用來指導農事的補充曆法,二十四節氣能反映季節的變化,指導農事活動,影響著千家萬戶的衣食住行。
  • 十二地支之「子時與凌晨」,農曆節氣陰曆陽曆排八字之注意點
    時辰達標一天24小時,歸納為12個時辰,12個時辰拍上地支,然後從子時起即為凌晨。說到這裡,現在可以排八字了,但是如今手機APP和電腦在線查詢排八字如此方便,還要不要學的排八字?我個人認為很有必要,你得知道它裡面的流程和邏輯才會深刻理解和記憶下來。基本辦法即根據《萬年曆》查,按照12個節氣進行排。
  • 萬年曆順歷:《節氣說丨清明》
    同時清明也是二十四節氣的第五個節氣,根據靈機文化旗下專業黃曆順歷提供「精準到秒」的曆法大數據,今年春分節氣的準確時間為4月5日04時12分,由艾茸中醫和順歷聯合提供專業指導的《節氣說》兩分鐘節氣動畫本日全新上線,艾茸中醫郭強中博士表示,清明時節戶外春光最濃,大自然生機勃勃,最適合郊遊踏青,親近自然。
  • 萬年曆農曆查詢_在線實用萬年曆查詢表-閩南網
    萬年曆農曆查詢說明萬年曆是記錄具體陽曆和陰曆的年曆,可以快速查詢更多年的陰曆與陽曆對照表及相關節日等信息。萬年曆農曆查詢 在線實用萬年曆查詢表關於萬年曆我國古代傳說中最古老的一部太陽曆,為紀念曆法編撰者萬年功績,便將這部曆法命名為「萬年曆」。
  • 萬年曆
    萬年曆簡介 萬年曆,全球3億用戶選擇的日曆App!
  • 實用21位多功能大屏幕遙控萬年曆
    LED萬年曆廣泛應用於家庭、銀行、郵電、賓館、學校、企業、商店等場所。本文介紹的HB40MA萬年曆IC,採用飛利浦高性能、低功耗、強抗幹擾晶片開發,能顯示21位年/月/日/星期/時/分/秒/農曆(或安全日、倒計時)/溫度。
  • 分享給大家一款mac好用的日曆軟體(萬年曆)
    萬年曆 for mac版強大好用的日曆軟體,萬年曆可以顯示農曆,顯示天氣預報,全國全球天氣,未來15天天氣預報,全國pm2.5實時顯示,節假日等等特點,萬年曆 mac版還具備記事日記功能,可以添加提醒任務,工作任務,提高工作效率。
  • 盲人算命是怎麼背誦《萬年曆》的?
    盲人算命是怎麼背誦《萬年曆》的? 盲人背誦的萬年曆叫「銀盤子」 盲人心算萬年曆法:只需記住十四字的歌訣,可迅速算出幹。 萬年曆是一種將公曆、農曆、幹支歷相互對應,編排在一起的歷學工具書。
  • 古代百年不傳秘法:不用萬年曆排作八字!
    以前要知道某一天的天幹地支最便捷的的方法就是帶一本萬年曆,如果沒有萬年曆怎麼辦,那麼就得學會盲人中流傳的「流星趕月法」,此法雖好也準確無誤,但是能背下這麼多口訣也是不容易的
  • 立秋日曆:中華萬年曆日曆節氣提醒
    中華萬年曆日曆App提醒您,今天是中國傳統二十四節氣中的第十三個節氣——立秋,也是秋天的第一個節氣。立秋的到來,標誌著孟秋時節的正式開始。中伏已經接近尾聲,三伏天已過大半,即將迎來秋高氣爽的天氣。
  • 天幹地支齊全的中華萬年曆?中國風寶珀巍巍若山
    不過,最具代表性的,還是有著中國計時曆法的寶珀中華萬年曆。這款表除了有正常的計時功能外,還按照中國古代的時間,按照地支:子醜寅某辰巳午未申酉戌亥的計時方法顯示時間,子時對應的就是23點到次日一點,如果是這樣還是可以理解的,中國也有手錶是這樣的。
  • 中華萬年曆日曆:今日小寒
    中華萬年曆日曆提醒您,今天是小寒。小寒是農曆二十四節氣中的第二十三個節氣,也是冬季的第五個節氣,標誌著季冬時節的正式開始。據中國的氣象資料,小寒是氣溫最低的節氣,只有少數年份的大寒氣溫低於小寒的。中華萬年曆日曆提醒您,小寒時節,吃羊肉防寒,也需注意節制,否則易生痤瘡。更多小寒養生知識可進入中華萬年曆資訊養生頻道查看。中華萬年曆,讓時光充滿樂趣!
  • 萬年曆老黃曆免費下載
    下載萬年曆老黃曆免費下載後,你就會被它深深吸引住。萬年曆老黃曆免費下載官方介紹:頭疼找不到有趣的軟體?下載萬年曆老黃曆免費下載吧,享受別樣的樂趣。
  • 風靡全中國的萬年曆,你了解嗎?
    現代的萬年曆能同時顯示公曆、農曆和幹支歷等多套曆法,更能包含黃曆相關吉兇宜忌、節假日、提醒等多種功能信息,極為方便人們查詢使用。一天,他上山砍柴,坐在樹陰下休息,樹影的移動啟發了他,他設計了一個測日影計天時的晷儀。可是,天陰雨霧,影響測量。後來,山崖上的滴泉引起了他的興趣,他又動手做了一個五層漏壺。天長日久,他發現每隔三百六十多天,天時的長短就會重複一遍。當時的國君叫祖乙,天氣風雲的不測,使他很苦惱。一個名叫阿衡的大臣,為討好皇上,奏稱要設天台敬祭天神。
  • 互動百科聯合中華萬年曆推出那年今日
    就在此時,互動百科與中華萬年曆合作啦!電影排期?萬年曆幫你解決,不錯過每一部經典;電影劇情?互動百科全方位權威解讀,知劇情、知演員、知報導,掌握最新情報。7月3日,互動百科微信公眾號與中華萬年曆微信公眾號正式達成合作啦!這對小夥伴充分利用自身優勢取長補短,為用戶提供更加便利的使用體驗。
  • 萬年曆的「萬年」,居然是這個意思
    萬年曆是遠古時期商朝一位名叫「萬年」的樵夫所發明的,為紀念編寫這部曆法者的功績,就把這部曆法命名為「萬年曆」,樵夫萬年也因此被封作日月壽星。2019-31二十四節氣 特殊版式小型張在過年的時候,人們所掛的壽星圖便是為了紀念這位德高望重的萬年。