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

📄 时钟温度显示1114.asm

📁 时间和温度同时拥有,一次满足你两个愿望,而且友好的界面,一定合你心意.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
            lcall   dl05s
            lcall   display28
            lcall   display30
            lcall   dl2s
            LCALL   CLS;     清屏
            lcall   dl05s
            JMP     OUTT0B1
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;  setting calendar 子菜单           ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 CALENDAR:  NOP
CALENDAR1:  LCALL   CLS
            LCALL   DISPLAY25
        CC2:JNB     K2,SETYEAR
            JB      K1, CC2
            LCALL   DS20MS
            JNB     K1,OUTT4
            JNB     K2,SETYEAR
            JMP     CC2
  SETYEAR:  JB      K3,$
            LCALL   DS20MS
       CC3: MOV     A,#00001110B
            LCALL   WRITE
            MOV     A,#10000110B;显示时间在第一行
            CALL    WRITE
            LCALL   DS20MS
            LCALL   DS200MS
            MOV     R0,#49H
            JNB     K2, SETMOON
        CC4:JNB     K1,OUTT4
            JNB     K2, SETMOON
            JB      K3,CC4
            LCALL   ADD1          
            LCALL   DISPLAY25
            MOV     A,R2
            CLR     C
            CJNE    A,#20H,CLEARYEAR
            JMP     CC3
  CLEARYEAR:JC      CC3
            LCALL   CLR0
            CLR     C
            LCALL   DISPLAY25
            JMP     CC3
     OUTT4: LCALL   DS200MS
            LCALL   CLS
            LCALL   INITIAL;
            LJMP    OUTF
   SETMOON: MOV     A,#10001001B
            CALL   WRITE
            LCALL   DS200MS
            MOV     R0,#47H
            JNB     K1,OUTT4
            JNB     K2, SETDAY
            JB      K3,SETMOON
            LCALL   ADD1
            LCALL   DISPLAY25
            MOV     A,R2
            CLR     C
            CJNE    A,#12H,CLEARMOON
            JMP     SETMOON
 CLEARMOON: JC      SETMOON
            LCALL   CLR0
            CLR     C
            LCALL   DISPLAY25
            JMP     SETMOON
    SETDAY:  MOV     A,#10001100B
             LCALL   WRITE
            LCALL   DS200MS
            MOV     R0,#45H
            JNB     K1,OUTT4
            JNB     K2, JMPSETYEAR
            JB      K3,SETDAY
            LCALL   ADD1
            LCALL   DISPLAY25
            MOV     A,  R2
            CLR     C
            CJNE    A,#31H,CLEARDAY
            JMP     SETDAY
   CLEARDAY:JC      SETDAY
            LCALL   CLR0
            CLR     C
            LCALL   DISPLAY25
            JMP     SETDAY
JMPSETYEAR: LJMP    cc3
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;    display   mode子菜单             ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 DISMODE:   LCALL  CLS
       DIS0:LCALL  DISPLAY5
            LCALL  DISPLAY6
       DIS1:LCALL  DS20MS
            JNB    K1,OUTT2
            JNB    K3,DIS11
            JB     K2,DIS1
            LCALL  DS20MS
            JNB    K2,$
            LCALL  CLS
       DIS2:LCALL  DS20MS
            LCALL  DISPLAY7
            LCALL  DISPLAY8
            JNB    K1,OUTT2
            JNB    K3,DIS21
            JB     K2,DIS2
            LCALL  DS20MS
            JNB    K2,$
            LCALL  CLS
     DIS3:  LCALL  DS20MS
            LCALL  DISPLAY9
            JNB    K1,OUTT2
            JNB    K3,DIS31
            JB     K2,DIS3
            LCALL  DS20MS
            JNB    K2,$
            LCALL  CLS
            JMP    DIS0
     OUTT2: LJMP   OUTF
     DIS11: CLR    7EH
            CLR    7DH
            JMP    OUTT2
     DIS21: SETB   7EH
            CLR    7DH
            JMP    OUTT2
     DIS31: CLR    7EH
            SETB   7DH
            JMP    OUTT2
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;         定时器0中短服务程序
;;           1秒定时 程 序             ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
INTT0:        PUSH  ACC
              PUSH  PSW
              PUSH  00H
              PUSH  02H
              CLR   ET0
              CLR   TR0
              MOV   A,   #0B7H      ;中断同步修正
              ADD   A,   TL0
              MOV   TL0, A
              MOV   A,   #3CH
              ADD   A,   TH0
              MOV   TH0, A
              SETB  TR0
              DJNZ  R4,  OUTT0
              CLR   ADR1
              CLR   ADR2
              CLR   ADR3
              CLR   ADR4
ADDSS:        MOV   R4,  #14H
              MOV   R0,  #31H
              LCALL ADD1
              MOV   A,   R2
              CLR   C
              CJNE  A,   #60H,ADDMM
ADDMM:        JC    OUTT0
              LCALL CLR0
              MOV   R0,#33H
              LCALL ADD1
              MOV   A,R2
              CLR   C
              CJNE  A,#60H,ADDHH
ADDHH:        JC    OUTT0
              LCALL CLR0
              MOV   R0,#35H
              LCALL ADD1
              LCALL RECORD
              MOV   A,R2
              CLR   C
              CJNE  A,#24H,day
DAY:          JC    OUTT0
              LCALL CLR0
              MOV   R0,#45H
              LCALL ADD1
              MOV   A,R2
              CLR   C
              CJNE  A,#31H,MOON
MOON:         JC    OUTT0
              LCALL CLR0
              MOV   R0,#47H
              LCALL ADD1
              MOV   A,R2
              CLR   C
              CJNE  A,#12H,YEAR
YEAR:         JC    OUTT0
              CALL CLR0
              MOV   R0,#49H
              lCALL ADD1
              MOV   A,R2
              CLR   C
              CJNE  A,#20H,HOUR
HOUR:         JC    OUTT0
              CALL CLR0
OUTT0:        POP   02H
              POP   00H
              POP   PSW
              POP   ACC
              SETB  ET0
              RETI
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

;;           加1程序                   ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ADD1:        MOV    A,   @R0
              DEC    R0
              SWAP   A
              ORL    A,   @R0
              ADD    A,   #01H
              DA     A
              MOV    R2,  A
              ANL    A,   #0FH
              MOV    @R0, A
              MOV    A,   R2
              INC    R0
              SWAP   A
              ANL    A,   #0FH
              MOV    @R0, A
              RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;            减1程序                  ;;

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DEC1:        PUSH   ACC
             PUSH PSW
             MOV    A,@R0
              DEC    R0
              SWAP   A
              ORL    A,@R0
              ADD    A,#99H
              DA     A
              MOV    R4,A
              ANL    A,#0FH
              MOV    @R0,A
              MOV    A,R4
              INC    R0
              SWAP   A
              ANL    A,#0FH
              MOV    @R0,A
              POP    PSW
              POP    ACC
              RET
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           单元数据清零程序
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 CLR0:       CLR    A
             MOV    @R0,A
             DEC    R0
             MOV    @R0,A
             RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;           各显示内容
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

 DISPLAY1:    MOV   A,#11000000B;显示TEMP
              CALL  WRITE
              MOV   DPTR,#LINE1;指向显示内容
              mov   R3,#0
              LCALL PRSTRING;查显示内容
              MOV   A,#10000000B;显示TEMP
              CALL  WRITE
              MOV   DPTR,#LINE3;指向显示内容
              mov   R3,#0
              LCALL PRSTRING;查显示内容
              RET
DISPLAY2:     PUSH  ACC
              PUSH  PSW
              PUSH  00H
              MOV   A,#10000101B;显示时间在第一行
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,35H
              LCALL PRSTRING1;查显示内容
              MOV   A,#10000110B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,34H
              LCALL PRSTRING1;查显示内容
              MOV   A,#10000111B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,#13
              LCALL PRSTRING1;查显示内容
              MOV   A,#10001000B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,33H
              LCALL PRSTRING1;查显示内容
              MOV   A,#10001001B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,32H
              LCALL PRSTRING1;查显示内容
              MOV   A,#10001010B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,#13
              LCALL PRSTRING1;查显示内容
              MOV   A,#10001011B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,31H
              LCALL PRSTRING1;查显示内容
              MOV   A,#10001100B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,30H
              LCALL PRSTRING1;查显示内容
              POP   00H
              POP   PSW
              POP   ACC
              RET
 DISPLAY2A:   PUSH  ACC
              PUSH  PSW
              PUSH  00H
              MOV   A,#11000101B;显示时间在第二行
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,35H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11000110B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,34H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11000111B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,#13
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001000B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,33H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001001B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,32H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001010B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,#13
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001011B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,31H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001100B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,30H
              LCALL PRSTRING1;查显示内容
              POP  00H
              POP  PSW
              POP  ACC
              RET
DISPLAY2B:    PUSH  ACC
              PUSH  PSW
              PUSH  00H
              MOV   A,#11001000B;显示时间在第二行
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,35H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001001B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,34H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001010B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,#13
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001011B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,33H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001100B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,32H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001101B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,#13
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001110B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,31H
              LCALL PRSTRING1;查显示内容
              MOV   A,#11001111B
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,30H
              LCALL PRSTRING1;查显示内容
              POP  00H
              POP  PSW
              POP  ACC
              RET
DISPLAY3:     PUSH  ACC
              PUSH  PSW
              PUSH  00H
              MOV   A,#11000101B;显示温度在第二行
              CALL  WRITE
              MOV   DPTR,#LINE2
              MOV   R3,4FH
              LCALL PRSTRING1;查显示内容
              MOV   A,#11000110B
              CALL  WRITE
              MOV   DPTR,#LINE2

⌨️ 快捷键说明

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