(完整版)基于51单片机电子万年历毕业论文 联系客服

发布时间 : 星期三 文章(完整版)基于51单片机电子万年历毕业论文更新完毕开始阅读19e602a0c67da26925c52cc58bd63186bceb9210

;减一程序~~~~~~~~~~~~~~~~~~~~~~~~~ MOV A,R0 JIAN1: MOV A,R7 DEC A

CJNE A,#4FH,KK1 MOV A,#49H KK1:

CJNE A,#3FH,KK2 MOV A,#39H KK2:

CJNE A,#2FH,KK3 MOV A,#29H KK3:

CJNE A,#1FH,KK4 MOV A,#19H KK4:

CJNE A,#0FH,KK5 MOV A,#09H KK5: RET

;分离程序~~~~~~~~~~~~~~~~~~~~~~~~~ DIVIDE: MOV A,R0 ANL A,#0FH MOV R1,A

SWAP A ANL A,#0FH MOV R2,A RET ;

1302

~~~~~~~~~~~~~~~~~~~~~~~~~~ WRITE: CLR SCLK NOP SETB RST NOP MOV A,32H MOV R4,#8 WRITE1:

RRC A ;送地址给1302 NOP NOP CLR SCLK NOP NOP NOP MOV IO,C NOP NOP

NOP SETB SCLK NOP NOP

DJNZ R4,WRITE1 CLR SCLK NOP MOV A,31H MOV R4,#8 WRITE2: RRC A

NOP ;送数据给1302 CLR SCLK NOP NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP

DJNZ R4,WRITE2 CLR RST RET

;读1302程序

~~~~~~~~~~~~~~~~~~~~~~~~~ READ: CLR SCLK NOP NOP SETB RST NOP MOV A,32H MOV R4,#8 READ1:

RRC A ;送地址给1302 NOP MOV IO,C NOP NOP NOP SETB SCLK NOP NOP NOP CLR SCLK NOP NOP

DJNZ R4,READ1

MOV R4,#8 READ2: CLR SCLK

NOP ;从1302中读出数据 NOP NOP MOV C,IO NOP NOP NOP NOP NOP RRC A NOP NOP NOP NOP SETB SCLK NOP

DJNZ R4,READ2 MOV 31H,A CLR RST RET

;BCD码转换为10进制程序~~~~~ BCD_10:

MOV A,R0 ANL A,#0FH

MOV R1,A ;高位×10, 加低位 MOV A,R0 SWAP A ANL A,#0FH MOV B,#10 MUL AB ADD A,R1 MOV R0,A RET

;查一年数据程序~~~~~~~~~~~~~~~~ CHECKMONTH: LCALL BCD_10 ;农历和公历为同一年,

;NEW此时R2中的值为FFH时,R3有值,否则为0 NEW: NOP M1:

MOV A,R2 ;R2减一月天数 CLR C SUBB A,#29 MOV R1,A MOV A,R6

JB ACC.6,SM11 MOV A,R2 CLR C SUBB A,#30 MOV R1,A SM11: JC SM12

MOV A,R1 ;R2减1月天数,够减

MOV R2,A ;转二月 AJMP M2 SM12:

CJNE R3,#00H,M13 ;R2减1月天数 LJMP Y1 ;不够减,判R3为0否 M13:

MOV A,R2 ;不为0,R3加到R2中

ADD A,R3 ;再让一月减 MOV R2,A ;还不够,则转Y1 MOV R3,#00H AJMP M1 M2:

CLR C ;R2减一月天数,够减 MOV A,R2 ;转三月

SUBB A,#29 MOV R1,A MOV A,R6 JB ACC.5,M21 MOV A,R2 CLR C SUBB A,#30 MOV R1,A M21: JC M22

MOV A,R1 ;R2减2月天数,够减 MOV R2,A AJMP MM2 M22:

CJNE R3,#00H,M23 ;R2减2月天数 LJMP Y2 ;不够减,判,R3为0否 M23:

MOV A,R2 ;不为0,R3加到R2中

ADD A,R3 ;再让二月减 MOV R2,A ;还不够,则转Y2 MOV R3,#00H AJMP M2 MM2: