51单片机汇编语言万年历完美版.txt资料文档下载
- 文档编号:15494298
- 上传时间:2022-11-02
- 格式:TXT
- 页数:19
- 大小:25.31KB
51单片机汇编语言万年历完美版.txt资料文档下载
《51单片机汇编语言万年历完美版.txt资料文档下载》由会员分享,可在线阅读,更多相关《51单片机汇编语言万年历完美版.txt资料文档下载(19页珍藏版)》请在冰豆网上搜索。
SETBIT0;
�ⲿ�ж���Ϊ�½
��ش���
SETBIT1
SETBTR0;
�����ʱ��
---------------------------------------
START:
MOV DPTR,#TABLE
LJMP KEYSCAN;
���Ƚ���ʱ����ʾ�����ڵ�ַ���̫Զ���Դ���˳�������ı�
--------------------------------------
MARK2:
LJMP KEYSCAN;
��ַ����Զ����ת���˴������м���ת��ʱ����ʾ����
KEYCLK:
MOV A,CLKF ;
�˴�Ϊ�������ø
ս���ʱ�ij����ɰ���s12����
JNZ KEYCLKF ;
�����ͨ��CLKF���ж����ӹ����Ƿ������δ���ʱ����
;
��ʾΪSHOWCLKF�����ʱ��ʾSHOWCLKF1����������ʾ��һ����������λ��־�ĵ�
KEYCLK1:
LCALL SHOWCLK;
�˴��ж�δ������ӹ���ʱ����ʾ
LCALL S4 ;
�����ӽ���鿴�����л���ʾģʽ���˴�Ҳ����Ϊ��ȷ��
;
�������İ���s4���£
�
JZ MARK2;
���º
���ת��ʱ����ʾ
LCALL S8 ;
��������ʾ�����²
鿴������ӹ��ܵļ�s8�Ƿ���
MOV A,CLKF
���ʾSHOWCLKF1����ʾ
LCALL S16 ;
δ��������ʾû
�����ӱ�־���������ʾ���ٲ鿴����
;
�����s16�ļ����£
�
CJNEA,#7EH,KEYCLK1;
δ���¼
������ӽ�����ʾ
KEYCLK2:
LCALL SCLKMIN;
���½
MOV A,CLKMIN ;
��ʾ���÷
��ӵĵ���
MOV TEMP,A
LCALL KEYSUB1 ;
ͨ���Ӽ���s8��s12����������
LCALL KEYADD1
MOV A,TEMP
SUBB A,#60 ;
���ڷ��Ӳ�����59
JC REMAIN0
MOV TEMP,#0
REMAIN0:
MOV A,TEMP
MOV CLKMIN,A
LCALL S16 ;
�鿴���������s16�ļ����£
CJNEA,#7EH,KEYCLK2;
�����ʾ���ӵ���
KEYCLK3:
LCALL SCLKHOUR ;
�����ʾʱ����
MOV A,CLKHOUR
MOV TEMP,A ;
���������ͨ���Ӽ������е�������
LCALL KEYSUB2
LCALL KEYADD2
SUBB A,#24 ;
ʱ�����ò
�����24
JC REMAIN1
MOV TEMP,#0 ;
����24��0
REMAIN1:
MOV CLKHOUR,A
LCALL S16
CJNEA,#7EH,KEYCLK3 ;
�ٴ��ж������ڵ��л�������3��Ϊȷ��������
KEYCLK4:
LCALL SHOWCLK ;
���תΪ���ӵĽ���������ʾ
���ж������л���ʾģʽ�ļ����£
�������ת��ʾ
JZ KEYSCAN
���ж�����������رգ����ӹ��ܵļ�����
����CLKF�����ӹ���������ı�־λ��ʾ��ͬ�����ӽ���
���ӹ����������ת��KEYCLKF��ʾ����������
GOON:
δ��������ж���������ڵļ�����
CJNE A,#7EH,KEYCLK4 ;
û
�а��¼
���������ʾ
AJMP KEYCLK2 ;
��ظ�KEYCLK2��ʼ������
KEYCLKF:
LCALL SHOWCLK1 ;
��ʾ�����ӹ��������ı�ǣ���������λ��ǣ�
�鿴�����л���ʾģʽ����������ȷ���
�����
JZ KEYSCAN ;
���ת����ʾʱ��Ľ���
δ����ɨ�迪����رգ����ӹ��ܵļ�����
JZ KEYCLK4 ;
�������ӹ��ܵı��λ��ת��ʾ�����ж����ӹ��ܹر���
��ת��KEYCLK4��ʾ�ޱ�־������
���ж����ӹ��ܿ�����ɨ����������ڵİ���s16����
CJNE A,#7EH,KEYCLKF ;
δ�����������ʾ�б�ǵ����ӽ���
����ֽ�����ڽ���KEYCLK2
--------------------------------------------------
MARK3:
LJMPMARK1;
��ַ����Զ����ת���˴������м���ת�����ӽ���
----------------------------------------------------
KEYSCAN:
LCALL HOURMINUTE;
��ʾʱ��
PUSH ACC;
Ϊs12���ж��Ȱ�A���ջ������s12��������жϴ���
LCALL S4 ;
�鿴�����л���s4���£
�������ת��ʾ��
JZ KEYSCAN1
MOV A,CLKF;
����ʾʱ��ʱ�ж����ӹ����Ƿ����δ������ת��ʾ
JZ GO
MOV A,R6;
�ж��Ƿ����������õ
�ʱ����ȣ�R6---ʱ
CJNE A,CLKHOUR,GO
MOV A,R5 ;
R5--��
CJNE A,CLKMIN,GO
LCALL SOUND ;
���ӹ��ܿ����ʱ����ȣ���������
GO:
POP ACC ;
�����pop��A=0һֱ��������ʱ���ִ�����ת
LCALL S12;
�鿴�������������õ
ļ�����
JZ MARK3;
������������ʾ�������ý
���
�鿴��������ڼ�s16���£
����½
CJNEA,#7EH,KEYSCAN ;
δ������������ʾʱ��
SMINUTE:
LCALL MINUTE;
s16���º
����ֵ�����ʾ
MOV TEMP,R5 ;
��Ҫ���ڵķ������뺯������
LCALL KEYADD1;
������ں�鿴�Ƿ��¼
ӷ���s8�����¼
�һ
LCALLKEYSUB1 ;
�����s8�����¼
�һ
MOV A,TEMP
SUBB A,#60 ;
���ڲ�����60
JC REMAIN2
REMAIN2:
MOV R5,TEMP ;
���������ķ����ͳ���ʾ
CJNEA,#7EH,SMINUTE ;
��s16���£
�������ʾ�ֵ���
SHOUR:
LCALL HOUR ;
������ʾʱ����
MOV TEMP,R6 ;
R6Ϊװʱ�ļĴ���������������е���
LCALLKEYSUB2
SUBB A,#24 ;
���ڲ�����24
JC REMAIN3
REMAIN3:
MOV R6,TEMP
LCALL S16;
�ٴΰ���s16����ȷ��ʱ��������
CJNEA,#7EH,SHOUR
AJMP KEYSCAN ;
�����������������ʾʱ��
KEYSCAN1:
LCALL SHOWSECOND ;
���л���s4����������ʾ
��ʱ����ʾ��ʱ��һ���鿴�����л�ģʽ�ļ�����
JZ KEYSCAN2 ;
��������ת��ʾ����
LCALL S12 ;
�˴�Ϊ�鿴���������ӹ��ܵļ����£
�������ת
JZ MARK1
�������Ӽ����£
��鿴��������ڵļ�s16����
CJNEA,#7EH,KEYSCAN1
SMS:
LCALL MS ;
���ڼ�������ʾ��Ҫ��������
MOV A,COUNT;
��֮ǰ��һ���ѵ��ڲ���������е��ڣ��˴���������ʾ�ĵ�λ
LCALLKEYSUB1
JC REMAIN4
REMAIN4:
MOV COUNT,A
LCALL S16;
�鿴�����л��������ݵļ�s16����
CJNEA,#7EH,SMS ;
��s16����������ʾԭ�ȵ�������
SSECOND:
LCALL SECOND;
�м�s16��������ʾ������ĵ���
MOV TEMP,R4;
������������
LCALL KEYADD2
LCALLKEYSUB2
JC REMAIN9
REMAIN9:
MOV R4,TEMP
LCALL S16 ;
�ٴΰ���s16����ȷ��ʱ��������
CJNEA,#7EH,SSECOND ;
δ�����������ʾѡ�еĵ�������
AJMP KEYSCAN1
----------------------------------------
MARK1:
LJMP KEYCLK ;
KEYSCAN2:
LCALL SHOWDAY;
�˴�Ϊ������ʾ�����л�ģʽ���������º
������ʾ
LCALL S4;
JZ KEYSCAN3 ;
��������ת��ʾ���
LCALL S12 ;
JZ MARK1
LCALL S16 ;
CJNEA,#7EH,KEYSCAN2
SDAY:
LCALL DAY ;
���ڼ�������ʾ��Ҫ�������ݣ��˴�Ϊ��
MOVTEMP,R3;
�����ڼĴ���R2��ֵ������ʱ�������ڵ���
LCALL KEYADD1 ;
���ü
Ӽ�����ɨ�裬���º
�����
LCALLKEYSUB1
SUBB A,#32 ;
���ڲ�����31
JC REMAIN5
REMAIN5:
MOV R3,TEMP
CJNEA,#7EH,SDAY ;
SSMOUNTH:
LCALL MOUNTH ;
�м�s16��������ʾ�����µ
ĵ���
MOVTEMP,R2
SUBB A,#13 ;
���ڲ�����12
JC REMAIN6
REMAIN6:
MOVR2,TEMP
CJNEA,#7EH,SSMOUNTH ;
AJMP KEYSCAN2
---------------------------------------------
----------------------------------------------
KEYSCAN3:
LCALL SHOWYEAR ;
LCALL S4
JZ SHOW0 ;
��������ݳ�����ʾ�����ݲ�ͬ���������ϵ�һ��
LCALL S12
CJNEA,#7EH,KEYSCAN3
SYEAR1:
LCALL YEAR1
MOV TEMP,R1
SUBB A,#100 ;
���ڲ�����99
JC REMAIN7
REMAIN7:
MOV R1,TEMP
LCALL S16;
CJNEA,#7EH,SYEAR1
SYEAR2:
LCALL YEAR2
MOV TEMP,R0
JC REMAIN8
REMAIN8:
MOV R0,TEMP
CJNEA,#7EH,SYEAR2
AJMP KEYSCAN3
------------------------------------------
MARK:
------------------------------------------
SHOW0:
MOVDMS,#0 ;
�л��������Ĵκ��ʱ�л����˶�����ʱ��0��ʼ��ʱ
MOVDMIN,#0
MOVDSECOND,#0
LCALL SHOWDD;
�ս����˶����ģʽ����ʾȫΪ0
JZ MARK
CJNE A,#7EH,SHOW0;
�˶�����ʼ�����£
����ʱ��ʼ�����������ʾ0
SETB TR1 ;
�����ʱ��1
SHOWD:
LCALL SHOWDD ;
��ʼ��s16���º
���ʾ�仯������
�鿴����ģʽ��ʾ���İ���
JZ MARK ;
��������ת��ʾ
�鿴s16���ް���
CJNE A,#7EH,SHOWD ;
�ٴΰ��¸
ü
�s16��ֹͣ��ʱ
CLR TR1 ;
�رն�ʱ��1
SHOWTING:
LCALL SHOWDD ;
��ʾΪ��ʱ������
JZ MARK
CJNE A,#7EH,SHOWTING;
�ٴΰ���s16����ʾ�����ϴ�״̬��ʼ��ʱ
�ٴο����ʱ��
SHOWTING1:
��ʾ��ʱ�仯�Ķ�ʱ����
JZ MARK
CJNE A,#7EH,SHOWTING1 ;
�ٰ�һ��s16�ٴν�����ͣ״̬
CLR TR1
SHOWTING2:
LCALL SHOWDD
CJNE A,#7EH,SHOWTING2
AJMP SHOW0 ;
�ٰ�һ��s16�������㣬���½
����ʼ���˶����ģʽ
---------------------------------------------�˶���ҪΪ���ڡ���ʾ�Ĺ�������
************���������******************************************************************
--------------�����������һ��Ϊ�����Ӻ���
��74hc595����һ����,����ʾ����
SENDBYTE:
MOVBYTE,A ;
������Ҫд���������IJ���
MOVA,#1 ;
��1����λѡȡ����λ������
ANLA,BYTE ;
������ѡȡ����
JNZSEND
CLRDAT ;
������Ϊ0������0
CLRSCK ;
��д������ݽ�������
SETBSCK
AJMPLOOP ;
��ת�����ظ�7��
SEND:
SETBDAT ;
�������Ϊ0������������1
CLRSCK
SETBSCK;
--------�����һλ����
LOOP:
MOVR7,#7
MOVA,#1
LOOP1:
RLA
MOVB,A
ANLA,BYTE
JNZSEND1
SEND0:
CLRDAT ;
��0
AJMPSUOCUN
SEND1:
SETBDAT ;
��1
AJMPSUOCUN
SUOCUN:
SETBSCK
MOVA,B
DJNZR7,LOOP1
CLRRCK
SETBRCK
RET
;
------------------------����Ϊ���ݽ�����������
DISPLAY:
ACALLJISUAN
DISPLAY1:
MOVP0,#00H
MOVA,GEWEI
ACALLSENDBYTE
ORLP0,#08H ;
�������������ܵ�λѡ
MOVR7,#10H
LCALLDLY;
-----------��ʾ����ߵ������
MOVP0,#00H
MOVR7,#03H
LCALLDLY
MOVA,SHIWEI
ACALLSENDBYTE
ORLP0,#04H ;
�����ڶ�λ����ܵ�λѡ
--------------��ʾ�ڶ�λ�����
MOVP0,#00H
LCALLDLY
MOVA,BAIWEI
ORLP0,#02H ;
��������λ����ܵ�λѡ
LCALLDLY;
----------------��ʾ����λ�����
MOVA,QIANWEI
ORLP0,#01H ;
-------------------��ʾ����λ�����
;
------------------------����Ϊ������ʾ
�����λ����ֵ��Ҫ��ʾ�������зֽ�
-----------------------------------------
JISUAN:
MOVA,TEMP1
MOVB,#10
DIVAB
MOVTEMP1,B
MOVCA,@A+DPTR
MOVSHIWEI,A
MOVA,TEMP1
MOVCA,@A+DPTR
MOVGEWEI,A
MOVA,TEMP2
MOVTEMP2,B
MOVQIANWEI,A
MOVBAIWEI,A
RET;
-----------------������������
��ʾ����λ�������ڵ��ڵ�ʱ����ʾ��
----------------------------------------------------------------------------------------
DISPLAY4:
ACALLJISUAN
MOVA,BAIWEI
ORLP0,#02H
ORLP0,#01H
------------------------------------------------------------------------------------------
ֻ��ʾ����λ�������ڵ��ڵ�ʱ����ʾ��
DISPLAY2:
LCALLJISUAN
LCALLSENDBYTE
ORLP0,#08H
LCALLSENDBYTE
ORLP0,#04H
��ʾʱ���ӳ���
HOURMINUTE:
MOVTEMP2,R6
MOVTEMP1,R5
LCALLJISUAN
ORLBAIWEI,#01H;
--------�������������ʾС����
LCALL DISPLAY1
RET;
����ֻ���ĸ�����ܣ��˴���ʾʱ����
SHOWSECOND:
MOVTEMP2,R4
MOVA,COUNT
MOVTEMP1,A
LCALL JISUAN
ORL BAIWEI,#01H
LCALLDISPLAY1
RET;
�˴�������ʾ��
SHOWYEAR:
MOVTEMP2,R0
MOVTEMP1,R1
LCALLDISPLAY
RET
SHOWDAY:
MOVTEMP2,R2
MOVTEMP1,R3
SHOWCLK:
MOV TEMP2,CLKHOUR
MOV TEMP1,CLKMIN
SHOWCLK1:
ORL GEWEI,#01H
����ʱ������ʱ������ʾÿ
��λ�����ڵ��ڵ�ʱ����ʾ��
MS:
MOV TEMP1,COUNT
LCALL DISPLAY2
RET
SECOND:
MOV TEMP2,R4
LCALL DISPLAY4
MINUTE:
MOV TEMP1,R5
HOUR:
MOV TEMP2,R6
DAY:
MOV TEMP1,R3
MOUNTH:
MOV TEMP2,R2
YEAR1:
MOV TEMP1,R1
YEAR2:
MOV TEMP2,R0
SCLKMIN:
MOV TEMP1,CLKMIN
SCLKHOUR:
MOV TEMP2,CLKHOUR
����ɨ�躯��
�л�������ʾ���ݼ�
S16:
MOV P2,#0FFH
CLR P2.7
JB P2.0,S16END
MOVR7,#18H
LCALLDLY
JNB P2.0,$;
�������ɿ�ʱ����ִ�з���ͣ������һ��
MOV A,#7EH
S16END:
�л�ģʽ��ʾ���ݼ�
S4:
JB P2.3,S4END
JNB P2.3,$;
MOV A,#0H ;
����ɨ���־λA=0
S4END:
�������Ӽ�ɨ���������λͬһ��s12
S12:
JB P2.1,S12END
JNB P2.1,$;
MOV A,#0 ;
S12END:
����ȷ��������ӹ��ܵļ���ɨ�裬��ӷ���λͬһ��
S8:
JB P2.2,S8END
JNB P2.2,$;
MOV A,CLKF
CPL A ;
����ɨ���־λA=1
MOV CLKF,A
S8END:
�������������ڼӷ���
KEYADD2:
MOV P2,#0FFH
JB P2.2,ADDEND2
JT1:
JNB P2.2,KT1
INC TEMP
AJMP ADDEND2
KT1:
INC KTIME
MOV R7,#10H
LCALLDLY ;
���ڵ��ڸ���λ
MOV A,KTIME
CJNE A,#30,JT1
ADD2:
INC TEMP
MOV A,TEMP
CJNE A,#99,ON2
MOV TEMP,#0
ON2:
MOV R7,TEMP
MOV TEMP2,R7
LCALLDISPLAY4
MOVR7,#30H
JNB P2.2,ADD2
ADDEND2:
KEYADD1:
JB P2.2,ADDEND1
JT2:
JNB P2.2,KT2
AJMP ADDEND1 ;
���ڵ��ڵ���λ
KT2:
CJNE A,#30,JT2
ADD1:
CJNE A,#99,ON3
ON3:
MOV TEMP1,R7
LCALLDISPLAY2
JNB P2.2,ADD1
ADDEND1:
�������������ڼ�����
KEYSUB2:
JB P2.1,SUBEND2
JT3:
JNB P2.1,KT3
DEC TEMP
AJMP SUBEND2
KT3:
MOV R7,#10H;
CJNE A,#30,JT3
SUB2:
DEC TEMP
CJNE A,#0,ON
MOV TEMP,#99
ON:
JNB P2.1,SUB2
SUBEND2:
KEYSUB1:
JB P2.1,SUBEND1
JT4:
JNB P2.1,KT4
KT4:
CJNE A,#30,JT4
SUB1:
DEC TEMP ;
CJNE A,#0,ON1
ON1:
JNB P2.1,SUB1
SUBEND1:
����������ӳ���
SOUND:
CLRBUZZER
MOVR7,#5H
LCALLDLY
SETBBUZZER
MOVR7,#04H
��ʱ�ӳ���
DLY:
PUSH07H
DY1:
DY2:
DY3:
DJNZR7,DY3
POP07H
DJNZR7,DY2
DJNZR7,DY1
DJNZR7,DLY
RET
��ʱ���жϳ���
T0_INT:
MOVTH0,#3CH ;
��ʱ�ж��ӳ�����װ��ʱ����
MOVTL0,#0B0H ;
3CB0=15536;
65536-15536=50000
INCCOUNT
MOVA,COUNT
CJNEA,#20,T0INTR ;
50000*20=1S��δ��20�Σ������ж��ӳ���
MOVCOUNT,#0 ;
���20��COUNT����
INCR4
CJNER4,#60,T0INTR ;
�����ʱ��ת
MOVR4,#0 ;
���ʱ��ת��R5��0
INCR5
CJNER5,#60,T0INTR ;
�����ʱ��ת
;
���㱨ʱ����
MOVR5,#0 ;
INCR6
CJNER6,#24,T0INTR ;
�����ʱ��ת
MOVR6,#0 ;
���ʱ��ת��R0��0
CJNER2,#2,JBOS;
�������2�£
��жϴ���orС��
LCALLJLEAP;
����Ƕ��£
��ж�����orƽ��
CJNEA,#0,J29
CJNER3,#28,INCR3;
ƽ������ж�28��
MOVR3,#1
INCR2
CJNER2,#12,T0INTR
MOVR2,#1
INCR0
AJMPT0INTR
J29:
CJNER3,#29,INCR3;
��������ж�29��
MOVR3,#1
JBOS:
LCALLJMOUNTH;
���Ƕ��£
��жϴ�С��
MOVA,B
CJNEA,#0,JBIG
CJNER3,#30,INCR3;
С���ж�30��
JBIG:
CJNER3,#31,INCR3;
�����ж�31��
INCR3:
INCR3
T0INTR:
RETI
�ж��Ƿ�Ϊ�������
JLEAP:
MOVB,#4;
���ǵ�ʵ��Ӧ���е����Ӳ����õ
�һ���꣬����ֻ�ж�
;
����λ�ܱ�4������Ϊ����
MOVA,R1
DIVAB
MOVA,B
CJNEA,#0,UNLEAP
MOVA,#1;
���������־
AJMPLEAPEND
UNLEAP:
MOVA,#0
LEAPEND:
RET
�жϴ���С��
JMOUNTH:
MOVA,R2
CJNEA,#4,JMOUNTH6
AJMPSMOUNTH
JMOUNTH6:
CJNEA,#6,JMOUNTH9;
�ж��Ƿ���4.6.9.11����һ��
AJMPSMOUNTH
JMOUNTH9:
CJNEA,#9,JMOUNTH11
JMOUNTH11:
CJNEA,#11,BMOUNTH
BMOUNTH:
MOVB,#1;
���ô
�С�±
�־
AJMPJEND
SMOUNTH:
MOVB,#0
JEND:
RET
�����˶����Ķ�ʱ��1
T1_INT:
MOVTL1,#0F0H
INC DMS
MOV A,DMS
CJNE A,#100,T1_INTEND
MOV DMS,#0
INC DSECOND
MOV A,DSECOND
CJNE A,#60,T1_INTEND
MOV DSECOND,#0
INC DMIN
MOV A,DMIN
CJNE A,#10,T1_INTEND
MOV DMIN,#0;
��ʱ���ֻ��10����
T1_INTEND:
RETI
�˶������ʾ����
SHOWDD:
MOV B,#10
DIV AB
MOVC A,@A+DPTR
MOV GEWEI,A
MOV TEMP,B
MOV BAIWEI,A
ORL A,#01H
MOV SHIWEI,A
MOV QIANWEI,A
LCALL DISPLAY1
TABLE:
DB0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6;
��ʾ����0~9
END
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 51 单片机 汇编语言 万年历 完美