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