⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 at89c2051日期闹钟.asm

📁 用at89c2051时间加日期显示的闹钟
💻 ASM
📖 第 1 页 / 共 3 页
字号:
                  ML8:CJNE    A,#0AH,ML9
                      LJMP    MLL 
                  ML9:CJNE    A,#0BH,INT 
                      LJMP    MHL
                  INT:JMP  INTT1OUT
                  MLL:MOV     72H,7AH 
                      MOV     73H,7AH               ;显示单元(72-73H),将不显示分数据 
                      MOV     74H,78H 
                      MOV     75H,79H 
                      AJMP    INTT1OUT 
                  MHL:MOV     72H,76H 
                      MOV     73H,77H 
                      MOV     74H,7AH               ;显示单元(74-75H),小时数据将不显示 
                      MOV     75H,7AH 
                      AJMP    INTT1OUT 
                 MNN1:MOV     72H,7AH 
                      MOV     73H,7AH               ;显示单元(72-73H),将不显示1闹钟分数据 
                      MOV     74H,7DH 
                      MOV     75H,7EH 
                      AJMP    INTT1OUT 
                MNN11:MOV     72H,7BH               ;显示单元(74-75H),将不显示1闹钟时数据
                      MOV     73H,7CH 
                      MOV     74H,7AH 
                      MOV     75H,7AH                
                      AJMP    INTT1OUT 
                 MNN2:MOV     72H,7AH               ;显示单元(72-73H),将不显示2闹钟分数据
                      MOV     73H,7AH                
                      MOV     74H,52H 
                      MOV     75H,53H 
                      AJMP    INTT1OUT 
                MNN22:MOV     72H,50H               ;显示单元(74-75H),将不显示2闹钟时数据
                      MOV     73H,51H 
                      MOV     74H,7AH 
                      MOV     75H,7AH                
                      AJMP    INTT1OUT
                 MNN3:MOV     72H,7AH               ;显示单元(72-73H),将不显示3闹钟分数据
                      MOV     73H,7AH                
                      MOV     74H,56H 
                      MOV     75H,57H 
                      AJMP    INTT1OUT 
                MNN33:MOV     72H,54H               ;显示单元(74-75H),将不显示3闹钟时数据
                      MOV     73H,55H 
                      MOV     74H,7AH 
                      MOV     75H,7AH                
                      AJMP    INTT1OUT 
                 MNN4:MOV     70H,7AH;
                      MOV     71H,7AH;      ;显示单元(70H-71H),将不显示日数据 
                      MOV     72H,43H;
                      MOV     73H,44H ;
                      mov     74h,45H;
                      mov     75h,46H;
                      AJMP    INTT1OUT; 
                MNN44:MOV     70H,41H; 
                      MOV     71H,42H;         ;显示单元(72H-73H),将不显示月数据 
                      MOV     72H,7aH;
                      MOV     73H,7aH ;
                      mov     74h,45H;
                      mov     75h,46H;
                      AJMP    INTT1OUT;
               MNN444:MOV     70H,41H;
                      MOV     71H,42H;      ;显示单元(74H-75H),将不显示年数据 
                      MOV     72H,43H;
                      MOV     73H,44H ;
                      mov     74h,7ah;
                      mov     75h,7ah;
                      AJMP    INTT1OUT; 					        
      ;-------------------------显示-------------------------------; 
DISPLAY:MOV    DPTR,#DISDATA 
        MOV A,31H;
        CJNE  A,#01H,RQ;31H=1时显示时间,30H=0时显示日期
        JMP SJ
RQ:     MOV R1,#41H          ;年月日显示
        JMP XS
SJ:     MOV R1,#70H          
XS:     MOV a,@R1
        MOVC   A,@A+DPTR 
        MOV    P1,A 
        CLR    P3.0
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        SETB   P3.0 
        INC R1
        MOV    A,@R1 
        MOVC   A,@A+DPTR 
        MOV    P1,A 
        CLR    P3.1
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        SETB   P3.1 
        INC R1
        MOV    A,@R1 
        MOVC   A,@A+DPTR 
        MOV    P1,A 
        CLR    P3.2
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        SETB   P3.2 
        INC R1
        MOV    A,@R1
        MOVC   A,@A+DPTR 
        MOV    P1,A 
        CLR    P3.3
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        SETB   P3.3 
        INC R1
        MOV    A,@R1 
        MOVC   A,@A+DPTR 
        MOV    P1,A 
        CLR    P3.4
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        SETB   P3.4 
        INC R1
        MOV    A,@R1 
        MOVC   A,@A+DPTR 
        MOV    P1,A 
        CLR    P3.5
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        NOP
        SETB   P3.5 
outa:   RET 
;;;;;;;;;;;;;;;;;;;;;;;;;查询闹钟;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
BEEP:   MOV   A,68H           ;查询标志 
               CJNE  A,#1,BEERE 
               MOV   A,78H           ;查询闹钟时个位 
               CJNE  A,7DH,BEEP1 
               MOV   A,79H           ;查询闹钟时十位 
               CJNE  A,7EH,BEEP1 
               MOV   A,76H           ;查询闹钟分个位 
               CJNE  A,7BH,BEEP1 
               MOV   A,77H           ;查询闹钟分十位 
               CJNE  A,7CH,BEEP1 
               CLR  P3.7 
               LCALL DDL 
               SETB   P3.7 
               LCALL DDL
               JNB   P1.7,BEERR
        BEEP1: MOV   A,68H       ;查询标志 
               CJNE  A,#1,BEERE  ;不是1返回
               mov   a,78h       ;查询2闹钟时个位不相等返回相等往下
               cjne  a,52h,BEEP2
               mov   a,79h       ;查询2闹钟时十位不相等返回相等往下
               cjne  a,53h,BEEP2
               mov   a,76h       ;查询2闹钟分个位不相等返回相等往下
               cjne  a,50h,BEEP2
               mov   a,77h       ;查询2闹钟分十位不相等返回相等往下          
               cjne  a,51h,BEEP2
               CLR  P3.7         ;闹钟输出
               LCALL DDL 
               SETB   P3.7       ;闹钟关闭
               LCALL DDL
               JNB   P1.7,BEERR
         BEEP2:MOV   A,68H       ;查询标志 
               CJNE  A,#1,BEERE  ;不是1返回
               MOV   A,78H       ;查询3闹钟时个位不相等返回相等往下 
               CJNE  A,56H,BEERE 
               MOV   A,79H       ;查询3闹钟时十位不相等返回相等往下 
               CJNE  A,57H,BEERE 
               MOV   A,76H       ;查询3闹钟分个位不相等返回相等往下 
               CJNE  A,54H,BEERE 
               MOV   A,77H       ;查询3闹钟分十位不相等返回相等往下 
               CJNE  A,55H,BEERE
               CLR  P3.7         ;闹钟输出
               LCALL DDL 
               SETB   P3.7       ;闹钟关闭
               LCALL DDL
	            JNB   P1.7,BEERR  
         BEERE:RET 
         BEERR:SETB  P3.7 
               MOV   68H,#0 
               LCALL DISPLAY 
               JNB   P1.7,BEERR 
               JMP   BEERE 
 ;;;;;;;;;;;;;;;;;;;显示时间或日期判断 ;;;;;;;;;;;;;;;;;;;
       BJ:     MOV A,30H;
               CJNE A,#12,bj1;前12秒显示时间
               MOV A,31H;
               Clr ACC.0;
               mov 31h,a;
               ret;
       bj1:    cjne a,#13,bj2;前13-15秒显示日期
               ret;
       bj2:    cjne a,#14,bj3;
               ret;
       bj3:    cjne a,#15,bjret;
               MOV 30H,#00;
               MOV A,31H;
               setb ACC.0;
               mov 31h,a;
BJRET:         RET;
DISDATA:DB 0BFH,86H,0DBH,0CFH,0E6H,0EDH,0FDH,87H,0FFH,0EFH,80H   
               ;0123456789空白
;;;;;;;;;;;;;;;;;显示延时;;;;;;;;;;;
               END

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -