資料介紹
公歷是全世界通用的歷法,以地球繞太陽的一周為一年,一年365天,分為12個月,1、331天,2月為28天,其余月份為30天。事實上地球繞太陽一周共365天5小時48分46秒。比公歷一年多出5小時48分46秒,為使年誤差不累積,公歷年用閏年法來消除年誤差,由于每年多出5小時48分46秒,每4年累計多出23小時15分4秒,接近1天,天文學家就規(guī)定每4年有一個年,把2月由28天改為29天。凡是公歷年代能被4整除的那一年就是閏年。但是這樣一來,每4年又少了44分56秒,為了更準確地計時,天文學家又規(guī)定,凡能被100整除的年份,只有能被400整除才是閏年,即每400年要減掉3個閏年,經(jīng)過這樣處理后實際上每400年的誤差只有2小時53分20秒,已相當準確了農(nóng)歷與公歷不同,農(nóng)歷把月亮繞地球一周作為一月。因為月亮繞地球一周不是一整天,所以農(nóng)歷把月分為大月和小月,大月30天,小月29天。通過設置大小月,使農(nóng)歷日始終與月亮與地球的位置相對應。為了使農(nóng)歷的年份與公歷年相對應,農(nóng)歷通過設置閏月的辦法使它的平均年長度與公歷年相等。農(nóng)歷是中國傳統(tǒng)文化的代表之ー,并與農(nóng)業(yè)生產(chǎn)聯(lián)系密切,中國人民特別是廣大農(nóng)民十分熟悉并喜愛農(nóng)歷公歷與農(nóng)歷是我國目前并存的兩種歷法,各有其固有的規(guī)律。農(nóng)歷與月球的運行相對應,其影響因素多,它的大月和閏月與天體運行有關,計算十分復雜,且每年都不一致。因此要用單片機實現(xiàn)公歷與農(nóng)歷的轉換,用査表法是最方便實用的辦法系列單片機因其在功能上能滿足大部份對速度要求不高的應用場合的要求,且價格低廉,開發(fā)工具普及程度高是目前應用最多的單片機之一。本文介紹一種用51單片機實現(xiàn)從1901年到年199年公歷日到農(nóng)歷日及星期的轉換方法,并向讀者提供完整的51匯編程序
基本原理實現(xiàn)公歷與農(nóng)歷的轉換,一般采用査表法,按日査表是速度最快的方法,但51單片機尋址能力有限,不可能采用按日查表的方法。除按日査外,我們可以通過按月查表和按年査表的方法,再通過適當?shù)挠嬎?,來確定公歷日所對應的農(nóng)歷日期。本文采用的是按年査表法,最大限度地減少表格所占的程序空間對于農(nóng)歷月來說,大月為30天,小月為29天,這是固定不變的,這樣我們就可用1個BIT(位)來表示大小月信息。農(nóng)歷一年,如有聞月為13個月,否則是12個月,所以一年需要用13個BIT,間月在農(nóng)歷年中所在的月份并不固定大部分閏月分布在農(nóng)歷2-8月,但也有少量年份在9月以后,所以要表示間月的信息,至少要4BIT,在這里我們用4BIT的值來表示閏月的月份,值為0表示本年沒有間月。有了以上信息,還不足以判斷公歷日對應的農(nóng)歷日,因為還需要個參照日,我們選用農(nóng)歷正月初一所對應的公歷日期作參照日,公歷日最大為31日,需要SBIT來表示,而春節(jié)所在的月份不是1月就是2月,用1BIT就夠了,考慮到表達方便,我們用2BIT來表示春節(jié)月,2BIT的值直接表示月份。這樣一年的農(nóng)歷信息只用3個字節(jié)就全部包括了計算公歷日對應的農(nóng)歷日期的方法:先計算出公歷日離當年元旦的天數(shù),然后查表取得當年的春節(jié)日期,計算出春節(jié)離元旦的天數(shù),二者相減即可算出公歷日離春節(jié)的天數(shù),以后只要根據(jù)大小月和閏月信息,減一月天數(shù),調整一月農(nóng)歷月份,即可推算出公歷日所對應的農(nóng)歷日期。如公歷日不到春節(jié)日期,農(nóng)歷年要比公歷年小一年,農(nóng)歷大小月取前年的信息。農(nóng)歷月從12月向前推算公歷日是非常有規(guī)律的,所以公歷日所對應的星期天可以通過計算直接得到,理論上公元0年1月1日為星期日只要求得公歷日離公元0年1月1日的日子數(shù),除7后的余數(shù)就是星期天,為了簡化計算,采用月校正法,根據(jù)公歷的年月日可直接計算出星期天。其算法是:日期十年份十所過閏年數(shù)十月校正數(shù)之和除7的余數(shù)就是星期天,但如果是在閏年又不到3月份,上述之和要減一天再除7。其1-12月的校正數(shù)據(jù)為在本程序中采用1個字節(jié)表示年份,閏年數(shù)也只計算1900年以后的閏年數(shù),所以實際校正數(shù)據(jù)也和上述數(shù)據(jù)不同
- DS1302的電子萬年歷_51單片機,年月日、星期、時分秒、農(nóng)歷和溫度,帶鬧鐘,全套資料
- C語言 | 用51單片機實現(xiàn)公歷與農(nóng)歷星期的轉換(完整源代碼)
- 簡單實現(xiàn)51單片機步進電機的驅動
- 51單片機的驅動說明 7次下載
- 使用51單片機實現(xiàn)流水燈的詳細資料說明 20次下載
- 51單片機與串口通信的介紹代碼說明 16次下載
- 單片機C51編程的警告提示說明
- 如何進行51單片機的AD和DA轉換
- 51單片機教程之51單片機的串行口應用舉例資料說明 18次下載
- 51單片機轉換程序(51Hex_bin)下載綠色版 0次下載
- AD轉換器AD976與51單片機的接口設計 80次下載
- 基于51單片機實現(xiàn)公歷與農(nóng)歷、星期的轉換 93次下載
- 用51單片機實現(xiàn)公歷與農(nóng)歷、星期的轉換
- 一種公歷到農(nóng)歷日期轉換算法的實現(xiàn)
- 用51單片機實現(xiàn)公歷與農(nóng)歷星期的轉換
- 詳解STM32單片機和51單片機的區(qū)別 3.7w次閱讀
- 51單片機實現(xiàn)最小系統(tǒng)的原理和電路與編程設計說明 8437次閱讀
- 單片機的結構和原理說明 5025次閱讀
- 51單片機的最小系統(tǒng)應用說明 7719次閱讀
- 51單片機引腳簡介 5.4w次閱讀
- 如何學習51單片機 4929次閱讀
- Office的公歷轉換農(nóng)歷和隔行求和及兩頁紙打印到一頁紙上的3個小技巧 4170次閱讀
- 如何使用51單片機實現(xiàn)串口通信 2.9w次閱讀
- 如何用51單片機實現(xiàn)IIC通信 1.6w次閱讀
- 如何對51單片機進行外部擴展 1.5w次閱讀
- 51單片機和AVR單片機有什么區(qū)別 1.3w次閱讀
- 新手學習單片機的首選:51單片機 8536次閱讀
- 單片機8x8矩陣鍵盤原理說明 2.5w次閱讀
- 什么是單片機_51單片機學前預備知識 1511次閱讀
- 51單片機學習感悟與51單片機上拉電阻心得 4229次閱讀
下載排行
本周
- 1TC358743XBG評估板參考手冊
- 1.36 MB | 330次下載 | 免費
- 2開關電源基礎知識
- 5.73 MB | 6次下載 | 免費
- 3100W短波放大電路圖
- 0.05 MB | 4次下載 | 3 積分
- 4嵌入式linux-聊天程序設計
- 0.60 MB | 3次下載 | 免費
- 5基于FPGA的光纖通信系統(tǒng)的設計與實現(xiàn)
- 0.61 MB | 2次下載 | 免費
- 651單片機窗簾控制器仿真程序
- 1.93 MB | 2次下載 | 免費
- 751單片機大棚環(huán)境控制器仿真程序
- 1.10 MB | 2次下載 | 免費
- 8基于51單片機的RGB調色燈程序仿真
- 0.86 MB | 2次下載 | 免費
本月
- 1OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 2555集成電路應用800例(新編版)
- 0.00 MB | 33564次下載 | 免費
- 3接口電路圖大全
- 未知 | 30323次下載 | 免費
- 4開關電源設計實例指南
- 未知 | 21549次下載 | 免費
- 5電氣工程師手冊免費下載(新編第二版pdf電子書)
- 0.00 MB | 15349次下載 | 免費
- 6數(shù)字電路基礎pdf(下載)
- 未知 | 13750次下載 | 免費
- 7電子制作實例集錦 下載
- 未知 | 8113次下載 | 免費
- 8《LED驅動電路設計》 溫德爾著
- 0.00 MB | 6653次下載 | 免費
總榜
- 1matlab軟件下載入口
- 未知 | 935054次下載 | 免費
- 2protel99se軟件下載(可英文版轉中文版)
- 78.1 MB | 537796次下載 | 免費
- 3MATLAB 7.1 下載 (含軟件介紹)
- 未知 | 420026次下載 | 免費
- 4OrCAD10.5下載OrCAD10.5中文版軟件
- 0.00 MB | 234315次下載 | 免費
- 5Altium DXP2002下載入口
- 未知 | 233046次下載 | 免費
- 6電路仿真軟件multisim 10.0免費下載
- 340992 | 191185次下載 | 免費
- 7十天學會AVR單片機與C語言視頻教程 下載
- 158M | 183279次下載 | 免費
- 8proe5.0野火版下載(中文版免費下載)
- 未知 | 138040次下載 | 免費
評論
查看更多