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

📄 闹钟.asm

📁 定时闹钟原代码
💻 ASM
字号:
ORG   0000H
LJMP  MAIN
ORG   0003H
LJMP  SECTION
ORG   000BH
LJMP  TIME
ORG   0013H
LJMP  SECTION0
ORG   001BH
LJMP  T1INT


ORG   0020H
MAIN:RING EQU 46H
    MOV   SP,#50H
    MOV    TCON,#05H
    MOV    20H,#00H
    MOV    21H,#00H
    MOV    22H,#00H
    MOV    23H,#00H
    MOV    30H,#00H
    MOV    31H,#00H
    MOV    32H,#00H
    MOV    33H,#00H
    MOV    34H,#00H
    MOV    35H,#00H
    MOV    24H,#00H
    MOV    25H,#00H
    MOV    26H,#00H
    MOV    27H,#00H
    MOV    40H,#00H
    MOV    41H,#00H
    MOV    42H,#00H
    MOV    43H,#00H
    MOV    44H,#00H
    MOV    45H,#00H
    MOV    TMOD,#11H
    MOV    TH0,#03CH
    MOV    TL0,#0B0H
    MOV    TH1,#0EFH
    MOV    TL1,#0FFH
    MOV    IE,#10001111B
    SETB   TR0
    SETB   TR1
    MOV    R2,#0AH
    MOV    P2,#0FFH
    
ML1:LCALL  DISP
    MOV  A,21H
    CJNE A,25H,K0
    MOV  A,22H
    CJNE A,26H,K0
    SETB RING
K0: JB  P1.1,K1
    MOV C,P1.1
    JC  K1
    LCALL  DELAY
    MOV C,P1.1
    JC  K1
STOP2:MOV C,P1.1
     JNC STOP2
     LCALL DELAY
     MOV C,P1.1
     JNC STOP2
ML2: LCALL DISP1
     LJMP  QQQ
FEAR:LJMP  ML1

QQQ: JB 27H.0,ML1
     JB  P1.0,ML2
     MOV C,P1.0
     JC  ML2
     LCALL DELAY
     MOV C,P1.0
     JC  ML2
STOP4:MOV C,P1.0
      JNC STOP4
      LCALL DELAY
      MOV C,P1.0
      JNC STOP4
      JB 23H.0 ,HOUR1
MIN1:INC  25H
     MOV  A,25H
     CJNE A,#3CH,GO33
     MOV 25H,#0
     MOV 42H,#0
     MOV 43H,#0
     SJMP ML2
GO33:MOV B,#0AH
     DIV AB
     MOV 42H,B
     MOV 43H,A
     AJMP ML2
HOUR1:INC 26H
     MOV A,26H
     CJNE A,#18H,GO44
     MOV 26H,#0
     MOV 44H,#0
     MOV 45H,#0
     SJMP ML2
GO44:MOV B,#0AH
     DIV AB
     MOV 44H,B
     MOV 45H,A
     AJMP ML2
K1:JB  P1.0,FEAR
    MOV    C,P1.0
    JC     FEAR
    LCALL  DELAY
    MOV    C,P1.0
    JC     FEAR
STOP1:MOV  C,P1.0
    JNC    STOP1
    LCALL  DELAY
    MOV    C,P1.0
    JNC    STOP1
    JB     23H.0,HOUR
MIN:INC    21H
    MOV    A,21H
    CJNE   A,#3CH,GO11
    MOV    21H,#0
    MOV    32H,#0
    MOV    33H,#0
    AJMP   FEAR
GO11:MOV   B,#0AH
    DIV    AB
    MOV    32H,B
    MOV    33H,A
    AJMP   ML1
HOUR:INC   22H
    MOV    A,22H
    CJNE   A,#18H,GO22
    MOV    22H,#0
    MOV    34H,#0
    MOV    35H,#0
    AJMP   FEAR
GO22:MOV   B,#0AH
    DIV    AB
    MOV    34H,B
    MOV    35H,A
    AJMP   FEAR
DELAY:MOV  R4,#14H
DL00:MOV   R5,#0FFH
DL11:DJNZ  R5,DL11
     DJNZ  R4,DL00
     RET

TIME:PUSH  ACC
    PUSH   PSW
    MOV    TH0,#03CH
    MOV    TL0,#0B0H
    DJNZ   R2,RET0
    MOV    R2,#0AH
    MOV    A,20H
    CLR    C
    INC    A
    CJNE   A,#3CH,GO1
    MOV    20H,#0
    MOV    30H,#0
    MOV    31H,#0
    MOV    A,21H
    INC    A
    CJNE   A,#3CH,GO2
    MOV    21H,#0
    MOV    32H,#0
    MOV    33H,#0
    MOV    A,22H
    INC    A
    CJNE   A,#18H,GO3
    MOV    22H,#0H
    MOV    34H,#0
    MOV    35H,#0
    AJMP   RET0
GO1:MOV    20H,A
    MOV    B,#0AH
    DIV    AB
    MOV    31H,A
    MOV    30H,B
    AJMP   RET0
GO2:MOV    21H,A
    MOV    B,#0AH
    DIV    AB
    MOV    33H,A
    MOV    32H,B
    AJMP   RET0
GO3:MOV    22H,A
    MOV    B,#0AH
    DIV    AB
    MOV    35H,A
    MOV    34H,B
    AJMP   RET0
RET0:POP   PSW
    POP    ACC
    RETI


DISP:MOV   R0,#30H
    MOV    R3,#0FEH
    MOV    A,R3
PLAY:MOV   P2,A
    MOV    A,@R0
    MOV    DPTR,#DSEG1
    MOVC   A,@A+DPTR
    MOV    P0,A
    LCALL  DL1
    MOV    P2,#0FFH
    MOV    A,R3
    RL     A
    JNB    ACC.6,LD1
    INC    R0
    MOV    R3,A
    LJMP   PLAY
LD1:RET


DISP1:MOV R0,#40H
      MOV R3,#0FEH
      MOV A,R3
      LCALL  PLAY
LD2:RET







DL1:MOV    R7,#05H
DL:MOV     R6,#0FFH
DL6:DJNZ   R6,$
    DJNZ   R7,DL
    RET
DSEG1:DB 3FH,06H,5BH,4FH,66H
    DB 6DH,7DH,07H,7FH,6FH



SECTION:PUSH   ACC
    PUSH       PSW
    MOV        C,P3.2
    JC         PPP
    ACALL      DELAY
    MOV        C,P3.2
    JC         PPP
STOP:MOV      C,P3.2
    JNC        STOP
    ACALL      DELAY
    MOV        C,P3.2
    JNC        STOP
    CPL        23H.0
PPP:POP        PSW
    POP        ACC
    RETI


SECTION0:PUSH   ACC
    PUSH       PSW
    MOV        C,P3.3
    JC         WWW
    ACALL      DELAY
    MOV        C,P3.3
    JC         WWW
STOP0:MOV      C,P3.3
    JNC        STOP0
    ACALL      DELAY
    MOV        C,P3.3
    JNC        STOP0
    CPL        27H.0
WWW:POP        PSW
    POP        ACC
    RETI

;=====T1溢出中断(响铃程序)=====
T1INT:  MOV TH1,#0EFH
        MOV TL1,#0FFH
        JNB RING,OUT;
        CPL P3.0   ;RING标志位为1时候P3.6口不短取反使喇叭发出一定频率的声音
OUT:    RETI

END




























⌨️ 快捷键说明

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