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

📄 naozhong .asm

📁 定时闹钟的一个简单实用的程序
💻 ASM
字号:

        






         ORG 0000H
         LJMP MAIN

         ORG 000BH
         LJMP TIME

;************  MAIN PROGRAM  ***************
         ORG 0100H
    MAIN:MOV SP,#50H

	 MOV 20H,#00H   ;BIN  SECOND
	 MOV 21H,#00H   ;BIN  MINUTE
       	 MOV 22H,#00H   ;BIN  HOUR
         MOV 23H,#01H
         MOV 24H,#01H
         MOV 25H,#00H
         MOV 30H,#00H   ;BCD  SECOND
         MOV 31H,#00H   ;
         MOV 32H,#00H   ;BCD  MINUTE
         MOV 33H,#00H   ;
         MOV 34H,#00H   ;BCD  HOUR
         MOV 35H,#00H
         MOV 36H,#01H
         MOV 37H,#00H
         MOV 38H,#01H
         MOV 39H,#00H
      	 MOV TMOD,#01H   ;16位计数器
	 MOV TH0,#03CH
	 MOV TL0,#0B0H
	 MOV IE,#10000111B
	 SETB TR0             ;T0启动计数
         MOV R2,#14H
	 MOV P2,#0FFH
         
     
    LOOP:LCALL TIMEPRO
         LCALL DISPLAY1
         JB p1.0,M1
         LCALL SETTIME
         LJMP LOOP
       M1:JB p1.1,M2
         LCALL SETATIME
         LJMP LOOP
      M2:JB p1.3,M4
         LCALL LOOKATIME
      
        M4:LJMP LOOP

 DELAY:MOV R4,#030H
   DL00:MOV R5,#0FFH
   DL11:MOV R6,#9H
   DL12:DJNZ R6,DL12
        DJNZ R5,DL11
        DJNZ R4,DL00
        RET


 SETTIME:
         
       L0:LCALL DISPLAY1
 MM1:         JB p1.1,L1
          MOV C,P1.1
          JC MM1
          LCALL  DELAY1
          JC MM1 
MSTOP1:   MOV C,P1.1
          JNC MSTOP1
          LCALL DELAY1
          MOV  C,P1.1
          JNC  MSTOP1           
         
         
          INC 22H
          MOV A,22H
          CJNE A,#18H,GO12
          MOV 22H,#00H
          MOV 34H,#00H
          MOV 35H,#00H
          LJMP L0
       L1:JB p1.2,L2
    
          MOV C,P1.2
          JC L1
          LCALL  DELAY1
          JC L1 
MSTOP2:   MOV C,P1.2
          JNC MSTOP2
          LCALL DELAY1
          MOV  C,P1.2
          JNC  MSTOP2 
          INC 21H
          MOV A,21H
          CJNE A,#3CH,GO11
          MOV 21H,#00H
          MOV 32H,#00H
          MOV 33H,#00H
          LJMP L0
    GO11:MOV      B,#0AH
         DIV      AB
         MOV      32H,B
         MOV      33H,A
         LJMP    L0

    GO12:     MOV      B,#0AH
         DIV      AB
         MOV      34H,B
         MOV      35H,A
         LJMP     L0
      L2:JB p1.3,L0
         MOV C,p1.3
         JC  L2
         LCALL  DELAY1
         MOV  C,P1.3
         JC  L2
STOP1:   MOV  C,P1.3
         JNC STOP1
         LCALL  DELAY1
         MOV  C,P1.3
         JNC STOP1
         LJMP  LOOP

         
        
 SETATIME:LCALL DISPLAY2
       N0:LCALL DISPLAY2
MM2:          JB P1.2,N1
         
          MOV C,P1.2
          JC MM2
          LCALL  DELAY1
          JC MM2 
MSTOP3:   MOV C,P1.2
          JNC MSTOP3
          LCALL DELAY1
          MOV  C,P1.3
          JNC  MSTOP3 
          INC 24H
          MOV A,24H
          CJNE A,#24,GO22
          MOV 24H,#00H
          MOV 38H,#00H
          MOV 39H,#00H
          LJMP N0
       N1:JB P1.0,N2
          
          MOV C,P1.0
          JC N1
          LCALL  DELAY1
          JC N1 
MSTOP4:   MOV C,P1.0
          JNC MSTOP4
          LCALL DELAY1
          MOV  C,P1.0
          JNC  MSTOP4 
          INC 23H
          MOV A,23H
          CJNE A,#60,GO21
          MOV 23H,#00H
          MOV 36H,#00H
          MOV 37H,#00H
          LJMP N0
    GO21:MOV      B,#0AH
         DIV      AB
         MOV      36H,B
         MOV      37H,A
         LJMP    N0

    GO22:     MOV      B,#0AH
         DIV      AB
         MOV      38H,B
         MOV      39H,A
         LJMP     N0
      N2:JB P1.3 ,N0
         MOV C,P1.3
         JC  N2
         LCALL  DELAY1
         MOV  C,P1.3
         JC  N2
STOP2:   MOV  C,P1.3
         JNC STOP2
         LCALL  DELAY1
         MOV  C,P1.3
         JNC STOP2
         LJMP LOOP


   TIMEPRO:MOV A,21H
            MOV B,23H
            CJNE A,B,BK
            MOV A,22H
            MOV B,24H
            CJNE A,B,BK
            SETB 25H.0
            MOV C,25H.0
            JC XX
         XX:   LCALL TIMEOUT
      BK:RET



   TIMEOUT: 
            
         X1:LCALL BZ
            LCALL DISPLAY2
            CLR 25H.0
            JB P1.3, X1
           LCALL    DELAY
           CLR 25H.0
         LJMP DISPLAY1
         
       

       BZ:
            CLR P3.7
          MOV R7,#250
       T2:   MOV R6,#124
       T3:  DJNZ R6,T3                     
           
            DJNZ R7,T2
            
            
            SETB P3.7
            RET

    LOOKATIME:LCALL DISPLAY2
 MM:     JB P1.3,LOOKATIME
         MOV C,P1.3
         JC  MM
         LCALL  DELAY1
         MOV  C,P1.3
         JC  MM
STOP3:   MOV  C,P1.3
         JNC STOP3
         LCALL  DELAY1
         MOV  C,P1.3
         JNC STOP3
         LJMP  LOOP



  DELAY1:  MOV  R4,#14H
DL001:   MOV  R5,#0FFH
DL111:   DJNZ R5,DL111
         DJNZ R4,DL001
         RET




          

;***********  TIME  PROCESS  **************
TIME:   PUSH ACC
        PUSH PSW
        MOV	TH0,#03CH
 	MOV	TL0,#0B0H
	DJNZ	R2,RET0
	MOV	R2,#14H
	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,#0H
    MOV  32H,#0
    MOV  33H,#0
	MOV	A,22H
	INC	A
	CJNE	A,#18H,GO3
	MOV   22H,#00H
    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
;;;////*******--DISPLAY  PART---+++++
DISPLAY1:	MOV	R0,#30H
	    MOV	R3,#0FEH
	    MOV	A,R3
PLAY1:  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  PLAY1
LD1:   RET





DISPLAY2:  PUSH ACC
    PUSH PSW
MOV	R0,#36H
	    MOV	R3,#0FBH
	    MOV	A,R3
PLAY2:  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,LD2
       INC      R0
       MOV   R3,A
       LJMP  PLAY2
LD2:   POP PSW
   POP ACC
 RET
;;;;;;;;;;;;;;;DELAY
DL1:	MOV	R7,#02H
DL:	    MOV	R6,#0200H
DL6:	DJNZ	R6,$
	    DJNZ	R7,DL
	    RET
DSEG1:DB 3FH,06H,5BH,4FH,66H
      DB 6DH,7DH,07H,7FH,6FH

END

⌨️ 快捷键说明

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