ImageVerifierCode 换一换
格式:DOCX , 页数:13 ,大小:20.43KB ,
资源ID:17192504      下载积分:3 金币
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,免费下载
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.bdocx.com/down/17192504.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: 微信登录   QQ登录  

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(用51 单片机实现公历与农历星期的转换程序Word文档格式.docx)为本站会员(b****6)主动上传,冰豆网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰豆网(发送邮件至service@bdocx.com或直接QQ联系客服),我们立即给予删除!

用51 单片机实现公历与农历星期的转换程序Word文档格式.docx

1、temp_Byte2 DATA 38htemp_Byte3 DATA 39htemp_Byte4 DATA 3Ahtemp_Byte5 DATA 3Bhtime_week DATA 40h ;星期天出口以下为公历转农历子程序CONvert: MOV A,time_year ;将年月日转化为HEX 格式MOV B,#16DIV ABMOV CONvert_yeAr,BMOV B,#10MUL ABADD A,CONvert_yeArMOV CONvert_yeAr,AMOV A,time_monthMOV C,ACC.7MOV f0,C ;f0暂存世纪标志,仅用于数据表定位CLR ACC.7JN

2、B ACC.4,CON_02- 4 -CLR ACC.4 ;ACC.4 为1 表示大于10 月ADD A,#10CON_02: MOV CONvert_mONth,AMOV A,time_dateMOV CONvert_dAte,BADD A,CONvert_dAteMOV CONvert_dAte,AMOV dptr,#mONth_dAtA ;以下定位本年数据在表格中的位置MOV A,CONvert_yeArJB f0,CON_06 ;当前为19 世纪年跳转ADD A,#100 ;从19 世纪起定义表格起始年,20 世纪要加100 年CON_06: CLR CSUBB A,#stArt_ye

3、ArMOV B,#3 ;表格每年3 字节ADD A,dplMOV dpl,AMOV A,BADDC A,dphMOV dph,AMOV A,#2MOVC A,A+dptr ;读本年表格最后一字节(春节日期)CLR ACC.7 ;ACC.7 是闰年第13 个月大小,在此不用MOV B,#32MOV temp_Byte1,A ;春节月份MOV temp_Byte2,B ;春节日 以下计算当前日期距元旦天数MOV temp_Byte3,#0 ;设距元旦天数高位为0MOV A,CONvert_mONthCJNE A,#10,CON_08CON_08: JC CON_09 ;9月以前日子数小于256 天

4、,高字节为0(9 月份过去的整月为8 个月)MOV temp_Byte3,#1CON_09: MOV A,CONvert_yeArANL A,#03h ;ACC 为除4 的余数JNZ CON_10 ;转常年处理 年除4 余数为0 是闰年- 5 -LCALL get_ruN_dAys_lOw ;取得闰年过去月的天数的低字节SJMP CON_12CON_10: MOV A,CONvert_mONthLCALL get_dAys_lOw ;取得常年过去月的天数的低字节CON_12: MOV B,CONvert_dAteDEC B ;因为日期从1 日起,而不是0 日起ADD A,B ;过去的整月天数加

5、当月天数MOV temp_Byte4,AJNC CON_14INC temp_Byte3 ;temp_Byte3,temp_Byte4 分别为公历年过去的天数的高低字节 以下求春节距元旦天数,因肯定小于256 天所以只用一字节表示CON_14: MOV A,temp_Byte1春节不会在3 月份,不用考虑闰年DEC A ;因为日期从1 日起ADD A,temp_Byte2MOV temp_Byte5,A ;temp_Byte5,为春节距元旦天数CJNE A,temp_Byte1,CON_20 ;转换月与春节月比较MOV A,CONvert_dAteCJNE A,temp_Byte2,CON_2

6、0 ;转换日与春节日比较CON_20: JC CON_22LJMP CON_60 ;当前日大于等于春节日期,公历年与农历年同年份CON_22: MOV A,CONvert_yeAr ;不到春节,农历年比公历年低一年JNZ CON_24MOV A,#100 ;年有效数0-99CON_24: DEC AMOV A,dplCLR CSUBB A,#3JNC CON_26DEC dph ;表格指针指向上一年CON_26: MOV A,temp_Byte5SUBB A,temp_Byte4MOV temp_Byte3,A ;temp_Byte3 中为当前日离春节的天数MOV CONvert_mONth,

7、#12 ;农历月为12 月CLR f0 ;1901-2099 年没有闰12 月,清闰月标志CLR AMOVC A,A+dptr- 6 -ANL A,#0f0hSWAP A;MOV temp_Byte4,A ;temp_Byte4 中为闰月JZ CON_30 ;没有闰月转移MOV A,#2 ;有闰月,取第13 个月天数MOV A,#1RLC A ;ACC 中为最后6 个月的大小值SJMP CON_34CON_30: MOV A,#1CON_34: MOV temp_Byte5,ACON_40:RRC AMOV temp_Byte5,AJC CON_42MOV B,#29 ;小月29 天SJMP

8、CON_44CON_42: MOV B,#30 ;大月30 天CON_44: MOV A,temp_Byte3SUBB A,BJZ CON_46 ;正好够减,就是农历日1 日JNC CON_50不够减一月天数,结束农历月调整CPL A ;求补取绝对值INC ACON_46: INC A ;加1 即为农历日MOV B,#10 ;转换并保存农历日,月,年SWAP AORL A,BMOV C,f0MOV ACC.7,CMOV CONvert_mONth,A- 7 -RET ;结束转换CON_50: MOV temp_Byte3,A ;temp_Byte3 存减去一月后的天数JB f0,CON_52

9、;是闰月,前推一月,月份不减DEC CONvert_mONth;CON_52:CJNE A,temp_Byte4,CON_54CPL f0 ;当前月与闰月相同,更改闰月标志CON_54: SJMP CON_40CON_60: MOV A,temp_Byte4 ;春节日小于当前日,农历年同公历年SUBB A,temp_Byte5JNC CON_62DEC temp_Byte3 ;temp_Byte3 temp_Byte4 中为公历日离春节的天数CON_62: MOV CONvert_mONth,#1 ;农历月为1 月XCH A,temp_Byte5 ;temp_Byte5 中为闰月,ACC 为当

10、年农历表第一字节第一个月肯定不是闰月ANL A,#0fhMOV temp_Byte1,AMOV temp_Byte2,AORL A,temp_Byte1MOV A,temp_Byte2- 8 -MOV ACC.3,C;MOV temp_Byte2,A ;以上temp_Byte1,temp_Byte2 各BIT 存农历年大小CON_70: MOV A,temp_Byte2RLC AMOV A,temp_Byte1JC CON_72小月29 天处理SJMP CON_74CON_72:CON_74: MOV A,temp_Byte4JNC CON_78 ;低字节够减跳转MOV B,A ;低字节不够减

11、, B 暂存减后结果,MOV A,temp_Byte3JZ CON_76 ;高字节为0,不够减DEC temp_Byte3MOV temp_Byte4,BSJMP CON_80CON_76:不够减结束月调整LJMP CON_46 ;转日期加1 后,处理并保存转换后农历年月日CON_78: MOV temp_Byte4,A ;temp_Byte3 temp_Byte4 天数为减去一月后天数CON_80:CJNE A,temp_Byte5,CON_82JNB f0,CON_82 ;更改标志后是非闰月,月份加1SJMP CON_70CON_82: INC CONvert_mONth;get_dAys

12、_lOw:MOVC A,A+PC ;RETDB 0,31,59,90,120,151,181,212,243,17,48,78get_ruN_dAys_lOw:DB 0,31,60,91,121,152,182,213,244,18,49,79mONth_dAtA:公历年对应的农历数据,每年三字节,格式第一字节BIT7-4 位表示闰月月份,值为0 为无闰月,BIT3-0 对应农历第1-4 月的大小第二字节BIT7-0 对应农历第5-12 月大小,第三字节BIT7 表示农历第13 个月大小月份对应的位为1 表示本农历月大(30 天),为0 表示小(29 天).第三字节BIT6-5 表示春节的公历

13、月份,BIT4-0 表示春节的公历日期DB 004h,0Aeh,053h; 1901;DB 00Ah,057h,048h; 1902DB 055h,026h,0Bdh; 1903DB 00dh,026h,050h; 1904DB 00dh,095h,044h; 1905DB 046h,0AAh,0B9h; 1906DB 005h,06Ah,04dh; 1907DB 009h,0Adh,042h; 1908DB 024h,0Aeh,0B6h; 1909DB 004h,0Aeh,04Ah; 1910DB 06Ah,04dh,0Beh; 1911DB 00Ah,04dh,052h; 1912DB 0

14、0dh,025h,046h; 1913DB 05dh,052h,0BAh; 1914DB 00Bh,054h,04eh; 1915DB 00dh,06Ah,043h; 1916DB 029h,06dh,037h; 1917DB 009h,05Bh,04Bh; 1918DB 074h,09Bh,0C1h; 1919DB 004h,097h,054h; 1920DB 00Ah,04Bh,048h; 1921DB 05Bh,025h,0BCh; 1922DB 006h,0A5h,050h; 1923DB 006h,0d4h,045h; 1924DB 04Ah,0dAh,0B8h; 1925DB 00

15、2h,0B6h,04dh; 1926DB 009h,057h,042h; 1927DB 024h,097h,0B7h; 1928DB 004h,097h,04Ah; 1929DB 066h,04Bh,03eh; 1930DB 00dh,04Ah,051h; 1931DB 00eh,0A5h,046h; 1932DB 056h,0d4h,0BAh; 1933DB 005h,0Adh,04eh; 1934DB 002h,0B6h,044h; 1935DB 039h,037h,038h; 1936DB 009h,02eh,04Bh; 1937DB 07Ch,096h,0Bfh; 1938DB 00C

16、h,095h,053h; 1939DB 00dh,04Ah,048h; 1940- 10 -DB 06dh,0A5h,03Bh; 1941DB 00Bh,055h,04fh; 1942DB 005h,06Ah,045h; 1943DB 04Ah,0Adh,0B9h; 1944DB 002h,05dh,04dh; 1945DB 009h,02dh,042h; 1946DB 02Ch,095h,0B6h; 1947DB 00Ah,095h,04Ah; 1948DB 07Bh,04Ah,0Bdh; 1949DB 006h,0CAh,051h; 1950DB 00Bh,055h,046h; 1951D

17、B 055h,05Ah,0BBh; 1952DB 004h,0dAh,04eh; 1953DB 00Ah,05Bh,043h; 1954DB 035h,02Bh,0B8h; 1955DB 005h,02Bh,04Ch; 1956DB 08Ah,095h,03fh; 1957DB 00eh,095h,052h; 1958DB 006h,0AAh,048h; 1959DB 07Ah,0d5h,03Ch; 1960DB 00Ah,0B5h,04fh; 1961DB 004h,0B6h,045h; 1962DB 04Ah,057h,039h; 1963DB 00Ah,057h,04dh; 1964DB

18、 005h,026h,042h; 1965DB 03eh,093h,035h; 1966DB 00dh,095h,049h; 1967DB 075h,0AAh,0Beh; 1968DB 005h,06Ah,051h; 1969DB 009h,06dh,046h; 1970DB 054h,0Aeh,0BBh; 1971DB 004h,0Adh,04fh; 1972DB 00Ah,04dh,043h; 1973DB 04dh,026h,0B7h; 1974DB 00dh,025h,04Bh; 1975DB 08dh,052h,0Bfh; 1976DB 00Bh,054h,052h; 1977DB

19、00Bh,06Ah,047h; 1978DB 069h,06dh,03Ch; 1979DB 009h,05Bh,050h; 1980DB 004h,09Bh,045h; 1981DB 04Ah,04Bh,0B9h; 1982DB 00Ah,04Bh,04dh; 1983DB 0ABh,025h,0C2h; 1984- 11 -DB 006h,0A5h,054h; 1985DB 006h,0d4h,049h; 1986DB 06Ah,0dAh,03dh; 1987DB 00Ah,0B6h,051h; 1988DB 009h,037h,046h; 1989DB 054h,097h,0BBh; 19

20、90DB 004h,097h,04fh; 1991DB 006h,04Bh,044h; 1992DB 036h,0A5h,037h; 1993DB 00eh,0A5h,04Ah; 1994DB 086h,0B2h,0Bfh; 1995DB 005h,0ACh,053h; 1996DB 00Ah,0B6h,047h; 1997DB 059h,036h,0BCh; 1998DB 009h,02eh,050h; 1999DB 00Ch,096h,045h; 2000DB 04dh,04Ah,0B8h; 2001DB 00dh,04Ah,04Ch; 2002DB 00dh,0A5h,041h; 200

21、3DB 025h,0AAh,0B6h; 2004DB 005h,06Ah,049h; 2005DB 07Ah,0Adh,0Bdh; 2006DB 002h,05dh,052h; 2007DB 009h,02dh,047h; 2008DB 05Ch,095h,0BAh; 2009DB 00Ah,095h,04eh; 2010DB 00Bh,04Ah,043h; 2011DB 04Bh,055h,037h; 2012DB 00Ah,0d5h,04Ah; 2013DB 095h,05Ah,0Bfh; 2014DB 004h,0BAh,053h; 2015DB 00Ah,05Bh,048h; 2016

22、DB 065h,02Bh,0BCh; 2017DB 005h,02Bh,050h; 2018DB 00Ah,093h,045h; 2019DB 047h,04Ah,0B9h; 2020DB 006h,0AAh,04Ch; 2021DB 00Ah,0d5h,041h; 2022DB 024h,0dAh,0B6h; 2023DB 004h,0B6h,04Ah; 2024DB 069h,057h,03dh; 2025DB 00Ah,04eh,051h; 2026DB 00dh,026h,046h; 2027DB 05eh,093h,03Ah; 2028- 12 -DB 00dh,053h,04dh;

23、 2029DB 005h,0AAh,043h; 2030DB 036h,0B5h,037h; 2031DB 009h,06dh,04Bh; 2032DB 0B4h,0Aeh,0Bfh; 2033DB 004h,0Adh,053h; 2034DB 00Ah,04dh,048h; 2035DB 06dh,025h,0BCh; 2036DB 00dh,025h,04fh; 2037DB 00dh,052h,044h; 2038DB 05dh,0AAh,038h; 2039DB 00Bh,05Ah,04Ch; 2040DB 005h,06dh,041h; 2041DB 024h,0Adh,0B6h;

24、2042DB 004h,09Bh,04Ah; 2043DB 07Ah,04Bh,0Beh; 2044DB 00Ah,04Bh,051h; 2045DB 00Ah,0A5h,046h; 2046DB 05Bh,052h,0BAh; 2047DB 006h,0d2h,04eh; 2048DB 00Ah,0dAh,042h; 2049DB 035h,05Bh,037h; 2050DB 009h,037h,04Bh; 2051DB 084h,097h,0C1h; 2052DB 004h,097h,053h; 2053DB 006h,04Bh,048h; 2054DB 066h,0A5h,03Ch; 20

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1