使用51單片機(jī)實(shí)現(xiàn)公歷農(nóng)歷與星期的轉(zhuǎn)換說明
資料介紹
公歷是全世界通用的歷法,以地球繞太陽的一周為一年,一年365天,分為12個(gè)月,1、331天,2月為28天,其余月份為30天。事實(shí)上地球繞太陽一周共365天5小時(shí)48分46秒。比公歷一年多出5小時(shí)48分46秒,為使年誤差不累積,公歷年用閏年法來消除年誤差,由于每年多出5小時(shí)48分46秒,每4年累計(jì)多出23小時(shí)15分4秒,接近1天,天文學(xué)家就規(guī)定每4年有一個(gè)年,把2月由28天改為29天。凡是公歷年代能被4整除的那一年就是閏年。但是這樣一來,每4年又少了44分56秒,為了更準(zhǔn)確地計(jì)時(shí),天文學(xué)家又規(guī)定,凡能被100整除的年份,只有能被400整除才是閏年,即每400年要減掉3個(gè)閏年,經(jīng)過這樣處理后實(shí)際上每400年的誤差只有2小時(shí)53分20秒,已相當(dāng)準(zhǔn)確了農(nóng)歷與公歷不同,農(nóng)歷把月亮繞地球一周作為一月。因?yàn)樵铝晾@地球一周不是一整天,所以農(nóng)歷把月分為大月和小月,大月30天,小月29天。通過設(shè)置大小月,使農(nóng)歷日始終與月亮與地球的位置相對(duì)應(yīng)。為了使農(nóng)歷的年份與公歷年相對(duì)應(yīng),農(nóng)歷通過設(shè)置閏月的辦法使它的平均年長(zhǎng)度與公歷年相等。農(nóng)歷是中國(guó)傳統(tǒng)文化的代表之ー,并與農(nóng)業(yè)生產(chǎn)聯(lián)系密切,中國(guó)人民特別是廣大農(nóng)民十分熟悉并喜愛農(nóng)歷公歷與農(nóng)歷是我國(guó)目前并存的兩種歷法,各有其固有的規(guī)律。農(nóng)歷與月球的運(yùn)行相對(duì)應(yīng),其影響因素多,它的大月和閏月與天體運(yùn)行有關(guān),計(jì)算十分復(fù)雜,且每年都不一致。因此要用單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷的轉(zhuǎn)換,用査表法是最方便實(shí)用的辦法系列單片機(jī)因其在功能上能滿足大部份對(duì)速度要求不高的應(yīng)用場(chǎng)合的要求,且價(jià)格低廉,開發(fā)工具普及程度高是目前應(yīng)用最多的單片機(jī)之一。本文介紹一種用51單片機(jī)實(shí)現(xiàn)從1901年到年199年公歷日到農(nóng)歷日及星期的轉(zhuǎn)換方法,并向讀者提供完整的51匯編程序
基本原理實(shí)現(xiàn)公歷與農(nóng)歷的轉(zhuǎn)換,一般采用査表法,按日査表是速度最快的方法,但51單片機(jī)尋址能力有限,不可能采用按日查表的方法。除按日査外,我們可以通過按月查表和按年査表的方法,再通過適當(dāng)?shù)挠?jì)算,來確定公歷日所對(duì)應(yīng)的農(nóng)歷日期。本文采用的是按年査表法,最大限度地減少表格所占的程序空間對(duì)于農(nóng)歷月來說,大月為30天,小月為29天,這是固定不變的,這樣我們就可用1個(gè)BIT(位)來表示大小月信息。農(nóng)歷一年,如有聞月為13個(gè)月,否則是12個(gè)月,所以一年需要用13個(gè)BIT,間月在農(nóng)歷年中所在的月份并不固定大部分閏月分布在農(nóng)歷2-8月,但也有少量年份在9月以后,所以要表示間月的信息,至少要4BIT,在這里我們用4BIT的值來表示閏月的月份,值為0表示本年沒有間月。有了以上信息,還不足以判斷公歷日對(duì)應(yīng)的農(nóng)歷日,因?yàn)檫€需要個(gè)參照日,我們選用農(nóng)歷正月初一所對(duì)應(yīng)的公歷日期作參照日,公歷日最大為31日,需要SBIT來表示,而春節(jié)所在的月份不是1月就是2月,用1BIT就夠了,考慮到表達(dá)方便,我們用2BIT來表示春節(jié)月,2BIT的值直接表示月份。這樣一年的農(nóng)歷信息只用3個(gè)字節(jié)就全部包括了計(jì)算公歷日對(duì)應(yīng)的農(nóng)歷日期的方法:先計(jì)算出公歷日離當(dāng)年元旦的天數(shù),然后查表取得當(dāng)年的春節(jié)日期,計(jì)算出春節(jié)離元旦的天數(shù),二者相減即可算出公歷日離春節(jié)的天數(shù),以后只要根據(jù)大小月和閏月信息,減一月天數(shù),調(diào)整一月農(nóng)歷月份,即可推算出公歷日所對(duì)應(yīng)的農(nóng)歷日期。如公歷日不到春節(jié)日期,農(nóng)歷年要比公歷年小一年,農(nóng)歷大小月取前年的信息。農(nóng)歷月從12月向前推算公歷日是非常有規(guī)律的,所以公歷日所對(duì)應(yīng)的星期天可以通過計(jì)算直接得到,理論上公元0年1月1日為星期日只要求得公歷日離公元0年1月1日的日子數(shù),除7后的余數(shù)就是星期天,為了簡(jiǎn)化計(jì)算,采用月校正法,根據(jù)公歷的年月日可直接計(jì)算出星期天。其算法是:日期十年份十所過閏年數(shù)十月校正數(shù)之和除7的余數(shù)就是星期天,但如果是在閏年又不到3月份,上述之和要減一天再除7。其1-12月的校正數(shù)據(jù)為在本程序中采用1個(gè)字節(jié)表示年份,閏年數(shù)也只計(jì)算1900年以后的閏年數(shù),所以實(shí)際校正數(shù)據(jù)也和上述數(shù)據(jù)不同
- DS1302的電子萬年歷_51單片機(jī),年月日、星期、時(shí)分秒、農(nóng)歷和溫度,帶鬧鐘,全套資料
- C語言 | 用51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷星期的轉(zhuǎn)換(完整源代碼)
- 簡(jiǎn)單實(shí)現(xiàn)51單片機(jī)步進(jìn)電機(jī)的驅(qū)動(dòng)
- 51單片機(jī)的驅(qū)動(dòng)說明 7次下載
- 使用51單片機(jī)實(shí)現(xiàn)流水燈的詳細(xì)資料說明 21次下載
- 單片機(jī)C51編程的警告提示說明
- 如何進(jìn)行51單片機(jī)的AD和DA轉(zhuǎn)換
- 51單片機(jī)系列命名規(guī)則資料說明
- 51單片機(jī)教程之51單片機(jī)的串行口應(yīng)用舉例資料說明 18次下載
- 51單片機(jī)轉(zhuǎn)換程序(51Hex_bin)下載綠色版 0次下載
- AD轉(zhuǎn)換器AD976與51單片機(jī)的接口設(shè)計(jì) 82次下載
- 基于51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷、星期的轉(zhuǎn)換 93次下載
- 用51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷、星期的轉(zhuǎn)換
- 一種公歷到農(nóng)歷日期轉(zhuǎn)換算法的實(shí)現(xiàn)
- 用51單片機(jī)實(shí)現(xiàn)公歷與農(nóng)歷星期的轉(zhuǎn)換
- 什么是51單片機(jī)最小系統(tǒng) 2802次閱讀
- 詳解STM32單片機(jī)和51單片機(jī)的區(qū)別 3.8w次閱讀
- 51單片機(jī)實(shí)現(xiàn)最小系統(tǒng)的原理和電路與編程設(shè)計(jì)說明 8867次閱讀
- 單片機(jī)的結(jié)構(gòu)和原理說明 5517次閱讀
- 51單片機(jī)的最小系統(tǒng)應(yīng)用說明 8207次閱讀
- 51單片機(jī)引腳簡(jiǎn)介 5.4w次閱讀
- 如何學(xué)習(xí)51單片機(jī) 5082次閱讀
- Office的公歷轉(zhuǎn)換農(nóng)歷和隔行求和及兩頁紙打印到一頁紙上的3個(gè)小技巧 4357次閱讀
- 如何使用51單片機(jī)實(shí)現(xiàn)串口通信 3w次閱讀
- 如何用51單片機(jī)實(shí)現(xiàn)IIC通信 1.6w次閱讀
- 如何對(duì)51單片機(jī)進(jìn)行外部擴(kuò)展 1.5w次閱讀
- 51單片機(jī)和AVR單片機(jī)有什么區(qū)別 1.3w次閱讀
- 新手學(xué)習(xí)單片機(jī)的首選:51單片機(jī) 8836次閱讀
- 單片機(jī)8x8矩陣鍵盤原理說明 2.6w次閱讀
- 51單片機(jī)學(xué)習(xí)感悟與51單片機(jī)上拉電阻心得 4295次閱讀
下載排行
本周
- 1常用電子元器件集錦
- 1.72 MB | 24490次下載 | 免費(fèi)
- 2PC2456高壓浪涌抑制器控制器數(shù)據(jù)手冊(cè)
- 3.03 MB | 12次下載 | 免費(fèi)
- 3PC2464具理想二極管的浪涌抑制控制器數(shù)據(jù)手冊(cè)
- 4.42 MB | 8次下載 | 免費(fèi)
- 4PC2466高電壓浪涌抑制器數(shù)據(jù)手冊(cè)
- 3.37 MB | 8次下載 | 免費(fèi)
- 5ssd1306單片 CMOS OLED/PLED 驅(qū)動(dòng)芯片中文手冊(cè)
- 1.66 MB | 5次下載 | 1 積分
- 6PC2596 40V 輸入 150KHz 3A 降壓型電源轉(zhuǎn)換器數(shù)據(jù)手冊(cè)
- 2.44 MB | 3次下載 | 免費(fèi)
- 7松下 rq-sx3隨身聽電路圖資料
- 2.93 MB | 2次下載 | 5 積分
- 8臺(tái)式主板DDR5內(nèi)存插槽引腳功能表資料
- 0.17 MB | 2次下載 | 5 積分
本月
- 1常用電子元器件集錦
- 1.72 MB | 24490次下載 | 免費(fèi)
- 2三相逆變主電路的原理圖和PCB資料合集免費(fèi)下載
- 27.35 MB | 111次下載 | 1 積分
- 3運(yùn)算放大器基本電路中文資料
- 1.30 MB | 16次下載 | 免費(fèi)
- 4蘋果iphone 11電路原理圖
- 4.98 MB | 12次下載 | 5 積分
- 5PC2456高壓浪涌抑制器控制器數(shù)據(jù)手冊(cè)
- 3.03 MB | 12次下載 | 免費(fèi)
- 6常用電子元器件介紹
- 3.21 MB | 11次下載 | 免費(fèi)
- 7PC2570低Iq理想二極管控制電路數(shù)據(jù)手冊(cè)
- 1.54 MB | 8次下載 | 免費(fèi)
- 8PC2557正向高壓理想二極管控制電路中文手冊(cè)
- 1.80 MB | 8次下載 | 免費(fèi)
總榜
- 1matlab軟件下載入口
- 未知 | 935130次下載 | 10 積分
- 2開源硬件-PMP21529.1-4 開關(guān)降壓/升壓雙向直流/直流轉(zhuǎn)換器 PCB layout 設(shè)計(jì)
- 1.48MB | 420064次下載 | 10 積分
- 3Altium DXP2002下載入口
- 未知 | 233089次下載 | 10 積分
- 4電路仿真軟件multisim 10.0免費(fèi)下載
- 340992 | 191390次下載 | 10 積分
- 5十天學(xué)會(huì)AVR單片機(jī)與C語言視頻教程 下載
- 158M | 183345次下載 | 10 積分
- 6labview8.5下載
- 未知 | 81591次下載 | 10 積分
- 7Keil工具M(jìn)DK-Arm免費(fèi)下載
- 0.02 MB | 73816次下載 | 10 積分
- 8LabVIEW 8.6下載
- 未知 | 65990次下載 | 10 積分
評(píng)論