51单片机汇编语言万年历完美版.txt

上传人:b****3 文档编号:2578744 上传时间:2022-11-02 格式:TXT 页数:19 大小:25.31KB
下载 相关 举报
51单片机汇编语言万年历完美版.txt_第1页
第1页 / 共19页
51单片机汇编语言万年历完美版.txt_第2页
第2页 / 共19页
51单片机汇编语言万年历完美版.txt_第3页
第3页 / 共19页
51单片机汇编语言万年历完美版.txt_第4页
第4页 / 共19页
51单片机汇编语言万年历完美版.txt_第5页
第5页 / 共19页
点击查看更多>>
下载资源
资源描述

51单片机汇编语言万年历完美版.txt

《51单片机汇编语言万年历完美版.txt》由会员分享,可在线阅读,更多相关《51单片机汇编语言万年历完美版.txt(19页珍藏版)》请在冰豆网上搜索。

51单片机汇编语言万年历完美版.txt

;**************����������BY----�Ź��߰�

;****************************

;*****************************

;-----------------------------------------------------------------------------------------

RCKBITP0.5

SCKBITP0.4

DATBITP0.7

RSTBITP0.6

BUZZERBITP1.3 ;������

BYTEEQU40H ;���ڸ���������������

GEWEIEQU41H ;���ڴ���������ʾ�ĵ�һλ

SHIWEIEQU42H ;���ڴ���������ʾ�ĵڶ�λ

BAIWEIEQU43H ;���ڴ���������ʾ�ĵ���λ

QIANWEIEQU44H ;���ڴ���������ʾ�ĵ���λ

TEMP1EQU45H

TEMP2EQU46H

COUNTEQU47H;������չ��ʱ������ʱ��

KTIME EQU49H

TEMP EQU50H

DMS EQU51H ;���ڴ���˶��������λ

DSECONDEQU52H ;���ڴ���˶�������

DMIN EQU53H ;���ڴ���˶����ķ���

CLKMINEQU54H;���ڴ�����ӷ���

CLKHOUREQU55H ;���ڴ������ʱ

CLKF EQU56H ;�������ӿ���ı�־λ

;-----------------------------------------------------------------------------------------

ORG0000H

AJMPMAIN

ORG000BH ;��ʱ��0�ж���ڵ�ַ

AJMPT0_INT

ORG001BH ;��ʱ��1�ж���ڵ�ַ

AJMPT1_INT

;********************************������*************************************************

;-----------------------------------------------------------------------------------------

MAIN:

MOVR4,#00;������

MOVR5,#50;������

MOVR6,#15;����ʱ

MOVR0,#14H;2013��

MOVR1,#0DH

MOVR2,#6;6��

MOVR3,#18;18��

MOVCOUNT,#0H

MOV A,#5;��ʼʹA������0�����ں�����ж�

MOV CLKMIN,#0H

MOV CLKHOUR,#0H

MOV CLKF,#0H

MOVSP,#60H

MOVTMOD,#11H;���ö�ʱ��0Ϊ����ģʽ1

MOVTH0,#03CH

MOVTL0,#0B0H;��ʱ50000us

MOVTH1,#0D8H

MOVTL1,#0F0H;��ʱ1000us=1MS

SETBET0;�����ʱ���ж�

SETBET1

SETBEA;����ȫ���ж�

SETBPT0;��ʱ���ж���Ϊ�����ȼ�

SETBEX0;�����ⲿ�ж�

SETBEX1

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

JNZ KEYCLKF ;���º���ʾ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

MOV A,TEMP

SUBB A,#24 ;ʱ�����ò�����24

JC REMAIN1

MOV TEMP,#0 ;����24��0

REMAIN1:

MOV A,TEMP

MOV CLKHOUR,A

LCALL S16

CJNEA,#7EH,KEYCLK3 ;�ٴ��ж����޵��ڵ��л�������3��Ϊȷ��������

KEYCLK4:

LCALL SHOWCLK ;���º���תΪ���ӵĽ���������ʾ

LCALL S4 ;���ж������л���ʾģʽ�ļ����£�������ת��ʾ

JZ KEYSCAN

LCALL S8 ;���ж�����������رգ����ӹ��ܵļ�����

MOV A,CLKF ;����CLKF�����ӹ���������ı�־λ��ʾ��ͬ�����ӽ���

JNZ KEYCLKF ;���ӹ����������ת��KEYCLKF��ʾ����������

GOON:

LCALL S16 ;δ��������ж����޽�����ڵļ�����

CJNE A,#7EH,KEYCLK4 ;û�а��¼���������ʾ

AJMP KEYCLK2 ;���º��ظ�KEYCLK2��ʼ������

KEYCLKF:

LCALL SHOWCLK1 ;��ʾ�����ӹ��������ı�ǣ���������λ��ǣ�

LCALL S4 ;�鿴�����л���ʾģʽ����������ȷ���󣩼�����

JZ KEYSCAN ;���º���ת����ʾʱ��Ľ���

LCALL S8 ;δ����ɨ�迪����رգ����ӹ��ܵļ�����

MOV A,CLKF

JZ KEYCLK4 ;�������ӹ��ܵı��λ��ת��ʾ�����ж����ӹ��ܹر���

;��ת��KEYCLK4��ʾ�ޱ�־������

LCALL S16 ;���ж����ӹ��ܿ�����ɨ�����޽�����ڵİ���s16����

CJNE A,#7EH,KEYCLKF ;δ�����������ʾ�б�ǵ����ӽ���

AJMP KEYCLK2 ;���º����ֽ�����ڽ���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;������������ʾ�������ý���

LCALL S16 ;�鿴���޽�����ڼ�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

MOV TEMP,#0

REMAIN2:

MOV R5,TEMP ;���������ķ����ͳ���ʾ

LCALL S16

CJNEA,#7EH,SMINUTE ;û��s16���£�������ʾ�ֵ���

SHOUR:

LCALL HOUR ;���º������ʾʱ����

MOV TEMP,R6 ;R6Ϊװʱ�ļĴ���������������е���

LCALL KEYADD2

LCALLKEYSUB2

MOV A,TEMP

SUBB A,#24 ;���ڲ�����24

JC REMAIN3

MOV TEMP,#0

REMAIN3:

MOV R6,TEMP

LCALL S16; �ٴΰ���s16����ȷ��ʱ��������

CJNEA,#7EH,SHOUR

AJMP KEYSCAN ;�����������������ʾʱ��

;---------------------------------------

;---------------------------------------

KEYSCAN1:

LCALL SHOWSECOND ;���л���s4����������ʾ

LCALL S4 ;��ʱ����ʾ��ʱ��һ���鿴�����л�ģʽ�ļ�����

JZ KEYSCAN2 ;��������ת��ʾ����

LCALL S12 ;�˴�Ϊ�鿴���޽������ӹ��ܵļ����£�������ת

JZ MARK1

LCALL S16 ;�������Ӽ����£��鿴���޽�����ڵļ�s16����

CJNEA,#7EH,KEYSCAN1

SMS:

LCALL MS ;���ڼ�������ʾ��Ҫ��������

MOV A,COUNT;��֮ǰ��һ���ѵ��ڲ���������е��ڣ��˴���������ʾ�ĵ�λ

MOV TEMP,A

LCALL KEYADD1

LCALLKEYSUB1

MOV A,TEMP

SUBB A,#60 ;���ڲ�����60

JC REMAIN4

MOV TEMP,#0

MOV A,TEMP

REMAIN4:

MOV A,TEMP

MOV COUNT,A

LCALL S16;�鿴�����л��������ݵļ�s16����

CJNEA,#7EH,SMS ;û��s16����������ʾԭ�ȵ�������

SSECOND:

LCALL SECOND;�м�s16��������ʾ������ĵ���

MOV TEMP,R4;������������

LCALL KEYADD2

LCALLKEYSUB2

MOV A,TEMP

SUBB A,#60 ;���ڲ�����60

JC REMAIN9

MOV TEMP,#0

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 ;�������Ӽ����£��鿴���޽�����ڵļ�s16����

CJNEA,#7EH,KEYSCAN2

SDAY:

LCALL DAY ;���ڼ�������ʾ��Ҫ�������ݣ��˴�Ϊ��

MOVTEMP,R3;�����ڼĴ���R2��ֵ������ʱ�������ڵ���

LCALL KEYADD1 ;���üӼ�����ɨ�裬���º���в���

LCALLKEYSUB1

MOV A,TEMP

SUBB A,#32 ;���ڲ�����31

JC REMAIN5

MOV TEMP,#0

REMAIN5:

MOV R3,TEMP

LCALL S16 ;�鿴�����л��������ݵļ�s16����

CJNEA,#7EH,SDAY ;û��s16����������ʾԭ�ȵ�������

SSMOUNTH:

LCALL MOUNTH ;�м�s16��������ʾ�����µĵ���

MOVTEMP,R2

LCALL KEYADD2

LCALLKEYSUB2

MOV A,TEMP

SUBB A,#13 ;���ڲ�����12

JC REMAIN6

MOV TEMP,#0

REMAIN6:

MOVR2,TEMP

LCALL S16 ; �ٴΰ���s16����ȷ��ʱ��������

CJNEA,#7EH,SSMOUNTH ;δ�����������ʾѡ�еĵ�������

AJMP KEYSCAN2

;---------------------------------------------

;----------------------------------------------

KEYSCAN3:

LCALL SHOWYEAR ;�˴�Ϊ������ʾ�����л�ģʽ���������º������ʾ

LCALL S4

JZ SHOW0 ;��������ݳ�����ʾ�����ݲ�ͬ���������ϵ�һ��

LCALL S12

JZ MARK1

LCALL S16

CJNEA,#7EH,KEYSCAN3

SYEAR1:

LCALL YEAR1

MOV TEMP,R1

LCALL KEYADD1

LCALLKEYSUB1

MOV A,TEMP

SUBB A,#100 ;���ڲ�����99

JC REMAIN7

MOV TEMP,#0

REMAIN7:

MOV R1,TEMP

LCALL S16;

CJNEA,#7EH,SYEAR1

SYEAR2:

LCALL YEAR2

MOV TEMP,R0

LCALL KEYADD2

LCALLKEYSUB2

MOV A,TEMP

SUBB A,#100 ;���ڲ�����99

JC REMAIN8

MOV TEMP,#0

REMAIN8:

MOV R0,TEMP

LCALL S16

CJNEA,#7EH,SYEAR2

AJMP KEYSCAN3

;------------------------------------------

MARK:

LJMP KEYSCAN;��ַ����Զ�޷���ת���˴������м���ת��ʱ����ʾ����

;------------------------------------------

SHOW0:

MOVDMS,#0 ;�л��������Ĵκ��ʱ�л����˶�����ʱ��0��ʼ��ʱ

MOVDMIN,#0

MOVDSECOND,#0

LCALL SHOWDD;�ս����˶����ģʽ����ʾȫΪ0

LCALL S4

JZ MARK

LCALL S16

CJNE A,#7EH,SHOW0;�˶�����ʼ�����£����ʱ��ʼ�����������ʾ0

SETB TR1 ;�����ʱ��1

SHOWD:

LCALL SHOWDD ;��ʼ��s16���º���ʾ�仯������

LCALL S4 ;�鿴����ģʽ��ʾ���İ���

JZ MARK ;��������ת��ʾ

LCALL S16 ;�鿴s16���ް���

CJNE A,#7EH,SHOWD ;�ٴΰ��¸ü�s16��ֹͣ��ʱ

CLR TR1 ;�رն�ʱ��1

SHOWTING:

LCALL SHOWDD ;��ʾΪ��ʱ������

LCALL S4 ;�鿴����ģʽ��ʾ���İ���

JZ MARK

LCALL S16

CJNE A,#7EH,SHOWTING;�ٴΰ���s16����ʾ�����ϴ�״̬��ʼ��ʱ

SETB TR1 ;�ٴο����ʱ��

SHOWTING1:

LCALL SHOWDD ;��ʾ��ʱ�仯�Ķ�ʱ����

LCALL S4

JZ MARK

LCALL S16

CJNE A,#7EH,SHOWTING1 ;�ٰ�һ��s16�ٴν�����ͣ״̬

CLR TR1

SHOWTING2:

LCALL SHOWDD

LCALL S4

JZ MARK

LCALL S16

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:

CLRSCK

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 ;�����ڶ�λ����ܵ�λѡ

MOVR7,#10H

LCALLDLY;--------------��ʾ�ڶ�λ�����

MOVP0,#00H

MOVR7,#03H

LCALLDLY

MOVA,BAIWEI

ACALLSENDBYTE

ORLP0,#02H ;��������λ����ܵ�λѡ

MOVR7,#10H

LCALLDLY;----------------��ʾ����λ�����

MOVP0,#00H

MOVR7,#03H

LCALLDLY

MOVA,QIANWEI

ACALLSENDBYTE

ORLP0,#01H ;��������λ����ܵ�λѡ

MOVR7,#10H

LCALLDLY;-------------------��ʾ����λ�����

RET

;------------------------����Ϊ������ʾ

;�����λ����ֵ��Ҫ��ʾ�������зֽ�

;-----------------------------------------

JISUAN:

MOVA,TEMP1

MOVB,#10

DIVAB

MOVTEMP1,B

MOVCA,@A+DPTR

MOVSHIWEI,A

MOVA,TEMP1

MOVCA,@A+DPTR

MOVGEWEI,A

MOVA,TEMP2

MOVB,#10

DIVAB

MOVTEMP2,B

MOVCA,@A+DPTR

MOVQIANWEI,A

MOVA,TEMP2

MOVCA,@A+DPTR

MOVBAIWEI,A

RET;-----------------������������

;-----------------------------------------------------------------------------------------

;��ʾ����λ�������ڵ��ڵ�ʱ����ʾ��

;----------------------------------------------------------------------------------------

DISPLAY4:

ACALLJISUAN

MOVP0,#00H

MOVA,BAIWEI

ACALLSENDBYTE

ORLP0,#02H

MOVR7,#03H

LCALLDLY;----------------��ʾ����λ�����

MOVP0,#00H

MOVR7,#03H

LCALLDLY

MOVA,QIANWEI

ACALLSENDBYTE

ORLP0,#01H

MOVR7,#03H

LCALLDLY;-------------------��ʾ����λ�����

RET

;------------------------------------------------------------------------------------------

;ֻ��ʾ����λ�������ڵ��ڵ�ʱ����ʾ��

;------------------------------------------------------------------------------------------

DISPLAY2:

LCALLJISUAN

MOVP0,#00H

MOVA,GEWEI

LCALLSENDBYTE

ORLP0,#08H

MOVR7,#03H

LCALLDLY;-----------��ʾ����ߵ������

MOVP0,#00H

MOVR7,#03H

LCALLDLY

MOVA,SHIWEI

LCALLSENDBYTE

ORLP0,#04H

MOVR7,#03H

LCALLDLY;--------------��ʾ�ڶ�λ�����

MOVP0,#00H

MOVR7,#03H

LCALLDLY

RET

;-----------------------------------------------------------------------------------------

;��ʾʱ���ӳ���

;-----------------------------------------------------------------------------------------

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

LCALLDISPLAY

RET

SHOWCLK:

MOV TEMP2,CLKHOUR

MOV TEMP1,CLKMIN

LCALL JISUAN

ORL BAIWEI,#01H

LCALL DISPLAY1

RET

SHOWCLK1:

MOV TEMP2,CLKHOUR

MOV TEMP1,CLKMIN

LCALL JISUAN

ORL BAIWEI,#01H

ORL GEWEI,#01H

LCALL DISPLAY1

RET

;-----------------------------------------------------------------------------------------

;����ʱ������ʱ������ʾÿ��λ�����ڵ��ڵ�ʱ����ʾ��

;----------------------------------------------------------------------------------------

MS:

MOV TEMP1,COUNT

LCALL DISPLAY2

RET

SECOND:

MOV TEMP2,R4

LCALL DISPLAY4

RET

MINUTE:

MOV TEMP1,R5

LCALL DISPLAY2

RET

HOUR:

MOV TEMP2,R6

LCALL DISPLAY4

RET

DAY:

MOV TEMP1,R3

LCALL DISPLAY2

RET

MOUNTH:

MOV TEMP2,R2

LCALL DISPLAY4

RET

YEAR1:

MOV TEMP1,R1

LCALL DISPLAY2

RET

YEAR2:

MOV TEMP2,R0

LCALL DISPLAY4

RET

SCLKMIN:

MOV TEMP1,CLKMIN

LCALL DISPLAY2

RET

SCLKHOUR:

MOV TEMP2,CLKHOUR

LCALL DISPLAY4

RET

;-----------------------------------------------------------------------------------------

;����ɨ�躯��

;----------------------------------------------------------------------------------------

;�л�������ʾ���ݼ�

S16:

MOV P2,#0FFH

CLR P2.7

JB P2.0,S16END

MOVR7,#18H

LCALLDLY

JNB P2.0,$;�������ɿ�ʱ����ִ�з���ͣ������һ��

MOV A,#7EH

S16END:

RET

;�л�ģʽ��ʾ���ݼ�

S4:

MOV P2,#0FFH

CLR P2.7

JB P2.3,S4END

MOVR7,#18H

LCALLDLY

JNB P2.3,$;�������ɿ�ʱ����ִ�з���ͣ������һ��

MOV A,#0H ;����ɨ���־λA=0

S4END:

RET

;�������Ӽ�ɨ���������λͬһ��s12

S12:

MOV P2,#0FFH

CLR P2.7

JB P2.1,S12END

MOVR7,#18H

LCALLDLY

JNB P2.1,$;�������ɿ�ʱ����ִ�з���ͣ������һ��

MOV A,#0 ;����ɨ���־λA=0

S12END:

RET

;����ȷ��������ӹ��ܵļ���ɨ�裬��ӷ���λͬһ��

S8:

MOV P2,#0FFH

CLR P2.7

JB P2.2,S8END

MOVR7,#18H

LCALLDLY

JNB P2.2,$;�������ɿ�ʱ����ִ�з���ͣ������һ��

MOV A,CLKF

CPL A ;����ɨ���־λA=1

MOV CLKF,A

S8END:

RET

;�������������ڼӷ���

;-----------------------------------------------------------------------------------------

;-----------------------------------------------------------------------------------------

KEYADD2:

MOV P2,#0FFH

CLR P2.7

JB P2.2,ADDEND2

MOVR7,#18H

LCALLDLY

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

LCALLDLY

JNB P2.2,ADD2

ADDEND2:

RET

KEYADD1:

MOV P2,#0FFH

CLR P2.7

JB P2.2,ADDEND1

MOVR7,#18H

LCALLDLY

JT2:

JNB P2.2,KT2

INC TEMP

AJMP ADDEND1 ;���ڵ��ڵ���λ

KT2:

INC KTIME

MOV R7,#10H

LCALLDLY

MOV A,KTIME

CJNE A,#30,JT2

ADD1:

INC TEMP

MOV A,TEMP

CJNE A,#99,ON3

MOV TEMP,#0

ON3:

MOV R7,TEMP

MOV TEMP1,R7

LCALLDISPLAY2

MOVR7,#30H

LCALLDLY

JNB P2.2,ADD1

ADDEND1:

RET

;-----------------------------------------------------------------------------------------

;�������������ڼ�����

KEYSUB2:

MOV P2,#0FFH

CLR P2.7

JB P2.1,SUBEND2

MOVR7,#18H

LCALLDLY

JT3:

JNB P2.1,KT3

DEC TEMP

AJMP SUBEND2

KT3:

INC KTIME

MOV R7,#10H;���ڵ��ڸ���λ

LCALLDLY

MOV A,KTIME

CJNE A,#30,JT3

SUB2:

DEC TEMP

MOV A,TEMP

CJNE A,#0,ON

MOV TEMP,#99

ON:

MOV R7,TEMP

MOV TEMP2,R7

LCALLDISPLAY4

MOVR7,#30H

LCALLDLY

JNB P2.1,SUB2

SUBEND2:

RET

;-----------------------------------------------------------------------------------------

KEYSUB1:

MOV P2,#0FFH

CLR P2.7

JB P2.1,SUBEND1

MOVR7,#18H

LCALLDLY

JT4:

JNB P2.1,KT4

DEC TEMP

AJMP SUBEND2

KT4:

INC KTIME

MOV R7,#10H;

LCALLDLY

MOV A,KTIME

CJNE A,#30,JT4

SUB1:

DEC TEMP ;���ڵ��ڵ���λ

MOV A,TEMP

CJNE A,#0,ON1

MOV TEMP,#99

ON1:

MOV R7,TEMP

MOV TEMP1,R7

LCALLDISPLAY2

MOVR7,#30H

LCALLDLY

JNB P2.1,SUB1

SUBEND1:

RET

;����������ӳ���

;-----------------------------------------------------------------------------------------

SOUND:

CLRBUZZER

MOVR7,#5H

LCALLDLY

SETBBUZZER

MOVR7,#04H

LCALLDLY

RET

;-----------------------------------------------------------------------------------------

;��ʱ�ӳ���

;-----------------------------------------------------------------------------------------

DLY:

PUSH07H

DY1:

PUSH07H

DY2:

PUSH07H

DY3:

DJNZR7,DY3

POP07H

DJNZR7,DY2

POP07H

DJNZR7,DY1

POP07H

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 ;���ʱ��ת��R5��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

INCR2

CJNER2,#12,T0INTR

MOVR2,#1

INCR0

AJMPT0INTR

JBOS:

LCALLJMOUNTH;���Ƕ��£��жϴ�С��

MOVA,B

CJNEA,#0,JBIG

CJNER3,#30,INCR3;С���ж�30��

MOVR3,#1

INCR2

CJNER2,#12,T0INTR

MOVR2,#1

INCR0

AJMPT0INTR

JBIG:

CJNER3,#31,INCR3;�����ж�31��

MOVR3,#1

INCR2

CJNER2,#12,T0INTR

MOVR2,#1

INCR0

AJMPT0INTR

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

AJMPSMOUNTH

JMOUNTH11:

CJNEA,#11,BMOUNTH

AJMPSMOUNTH

BMOUNTH:

MOVB,#1;���ô�С�±�־

AJMPJEND

SMOUNTH:

MOVB,#0

JEND:

RET

;-----------------------------------------------------------------------------------------

;�����˶����Ķ�ʱ��1

;-----------------------------------------------------------------------------------------

T1_INT:

MOVTH1,#0D8H

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 A,DMS

MOV B,#10

DIV AB

MOVC A,@A+DPTR

MOV GEWEI,A

MOV A,DSECOND

MOV B,#10

DIV AB

MOV TEMP,B

MOVC A,@A+DPTR

MOV BAIWEI,A

MOV A,TEMP

MOVC A,@A+DPTR

ORL A,#01H

MOV SHIWEI,A

MOV A,DMIN

MOVC A,@A+DPTR

ORL A,#01H

MOV QIANWEI,A

LCALL DISPLAY1

RET

;-----------------------------------------------------------------------------------------

;----------------------------------------------------------------------------------------

TABLE:

DB0xfc,0x60,0xda,0xf2,0x66,0xb6,0xbe,0xe0,0xfe,0xf6;��ʾ����0~9

END

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 财务管理

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

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