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

📄 时钟温度显示1114.asm

📁 时间和温度同时拥有,一次满足你两个愿望,而且友好的界面,一定合你心意.
💻 ASM
📖 第 1 页 / 共 4 页
字号:
             MOV   DATDB,A
             CLR   E
             RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
CLS:         MOV   A,#01H;清显示屏
             CALL  WRITE
             RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
PRSTRING:    PUSH  ACC
PRLOOP:      CLR   A
             mov   a,r3
             MOVC  A,@A+DPTR;查显示内容表
             JZ    EPR;判断是否查到结束标志位00H
             CALL  WRITELCDDATA
             INC   DPTR
             JMP   PRLOOP
EPR:         POP   ACC
             RET
PRSTRING1:   PUSH  ACC
PRLOOP1:     CLR   A
             mov   a,r3
             MOVC  A,@A+DPTR;查显示内容表
             CALL  WRITELCDDATA
EPR1:        POP   ACC
             RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
DELAY:       MOV   R6,#5
D1:          MOV   R7,#248
             DJNZ  R7,$
             DJNZ  R6,D1
             RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;              主菜单
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
JREADRECORD:LJMP  READRECORD;由于JB无法跳转太远,由此转跳
JMPSETTIME: LJMP  SETTIME;由于JB无法跳转太远,由此转跳
FILE:       PUSH  ACC;主菜单
            PUSH  PSW
            PUSH  00H
FUNCTION0A: LCALL CLS;     清屏
            LCALL DS20MS
            JNB   K1,$
     FF0A11:MOV   A,#10000000B;
            CALL  WRITE
            MOV   DPTR,#LINE4;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            MOV   A,#11000000B;
            CALL  WRITE
            MOV   DPTR,#LINE5;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            JNB    K2,   JREADRECORD
       FF0A:JB    K1,FF0A11
            LCALL DS20MS
            JNB   K1,FF0A
FUNCTION0B: LCALL CLS;     清屏
    FF0B1:  MOV   A,#10000000B;
            CALL  WRITE
            MOV   DPTR,#LINE6;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            MOV   A,#11000000B;
            CALL  WRITE
            MOV   DPTR,#LINE7;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            JNB   K2,JMPSETTIME
      FF0B: JB    K1,FF0B1
            LCALL DS100MS
            JNB   K1, FF0B
FUNCTION1A: LCALL  CLS;     清屏
     FF1A1 :MOV   A,#10000000B;
            CALL  WRITE
            MOV   DPTR,#LINE8;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            MOV   A,#11000000B;
            CALL  WRITE
            MOV   DPTR,#LINE9;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            JNB   K2,JMPALARM
      FF1A :JB    K1,FF1A1
            LCALL DS100MS
            JNB   K1,FF1A

FUNCTION1B: LCALL  CLS;     清屏
      FF1B1:MOV   A,#10000000B;
            CALL  WRITE
            MOV   DPTR,#LINE10;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            MOV   A,#11000000B;
            CALL  WRITE
            MOV   DPTR,#LINE11;指向显示内容
            mov   R3,#0
            LCALL PRSTRING;查显示内容
            JNB   K2,JMPCALEN
     FF1B:  JB    K1,FF1B1
            LCALL DS100MS
            JNB   K1, FF1B
;FUNCTION2A: LCALL CLS;     清屏
   ;FF2A1:  MOV   A,#10000000B;
           ; CALL  WRITE
           ; MOV   DPTR,#LINE12;指向显示内容
            ;mov   R3,#0
           ; LCALL PRSTRING;查显示内容
            ;JNB   K2,JMPDISMODE
    ; FF2B1: JB    K1,FF2A1
           ; LCALL DS100MS
           ; JNB   K1,$
OUTF:       LCALL CLS;     清屏
            POP   00H
            POP   PSW
            POP   ACC
            LJMP  START1
JMPDISMODE: LJMP  DISMODE;由于JB无法跳转太远,由此转跳
JMPALARM:   LJMP  TEMPALARM;由于JB无法跳转太远,由此转跳
JMPCALEN:   LJMP   CALENDAR;由于JB无法跳转太远,由此转跳
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;    record   temperature 子菜单
;;;        读取温度
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
READRECORD:  JNB    K2,$
             LCALL  CLS;     清屏
        RE:  MOV    R1,4AH;4A为温度储存单元指针
             MOV    R0,#51H;51H,50H为查看温度时的时间显示单元
             MOV    51H,35H;当前时间放到查看温度时的时间显示单元
             MOV    50H,34H
      RE2:   DEC    R1;每按一次K1,温度指向下一单元
             MOV    TEMPL,@R1;把采集的一个温度显示出来
             DEC    R1;
             MOV    TEMPH,@R1
             LCALL  TRANNUM
             LCALL  DISPLAY3A
             LCALL  DISPLAY26
             LCALL  DISPLAY27
       RRR1: JNB    K1,OUTR
             JB     K2,RRR1
             LCALL  DS20MS
             JNB    K2,RRR1
             LCALL  DEC1;时间减一
             CLR    C
             MOV    A,R4
             CJNE   A,#00H,RE44
      RRR2:  LCALL  DISPLAY3A
             LCALL  DISPLAY26
             LCALL  DISPLAY27
             JNB    K1,OUTR
      RRR22: JB     K2,RRR2
             LCALL  DS20MS
             JNB    K2,RRR22
             MOV    51H,#02H
             MOV    50H,#03H
             JMP    RE2      
        RE44:JMP   RE2
      OUTR:  LJMP   OUTF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;           采集温度             ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
     RECORD: PUSH   ACC
             PUSH   PSW
             PUSH   00H
             PUSH   01H
             MOV    R1, 4AH;温度地址指针给R1
             MOV    @R1,TEMPH
             INC    R1
             MOV    @R1,TEMPL
             INC    R1
             MOV    4AH,R1
             MOV    A,R1
             CLR    C
             CJNE   A,#0F0H,RECORDC;是否已经存到最后一个单元
     REOUT:  POP    01H
             POP    00H
             POP    PSW
             POP    ACC
             RET
     RECORDC:JC  REOUT;没到最后单元则返回;到则重新使指针指向60H
             MOV 4AH,#60H
             POP 00H
             POP PSW
             POP ACC
             RET
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;       setting  time 子菜单     ;;;;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETTIME:    NOP
SETTIME1:   LCALL   CLS
            LCALL   DISPLAY2
            LCALL   DISPLAY4
        SS2:JNB     K2,SETHH;按K2跳到调时
            JB      K1, SS2
            LCALL   DS20MS
            JNB     K1,OUTT3
            JMP     SS2
     OUTT3: LCALL   DS200MS
            LCALL   CLS;清显示屏
            LCALL   INITIAL;启动显示
            LJMP    OUTF
      SETHH:MOV     A,#00001110B
            LCALL   WRITE
            LCALL   DS200MS
            JNB     K1,OUTT3
            JNB     K2, SETMM;按K2跳到调分
            JB      K3,SETHH
            ;LCALL   DS20MS
        SS3:MOV     A,#10000110B;显示时间在第一行
            CALL    WRITE
            LCALL   DS200MS
            MOV     R0,#35H
        SS4:JNB     K1,OUTT3
            JNB     K2, SETMM
            JB      K3,SS4
            LCALL   ADD1
            LCALL   DISPLAY2
            LCALL   DISPLAY4
            MOV     A,R2
            CLR     C
            CJNE    A,#23H,CLEARHH
            JMP     SS3
    CLEARHH:JC      SS3
            LCALL   CLR0
            CLR     C
            LCALL   DISPLAY2
            LCALL   DISPLAY4
            JMP     SS3
     SETMM: MOV     A,#10001001B;显示时间在第一行
            CALL    WRITE
            LCALL   DS200MS
            MOV     R0,#33H
            JNB     K1,OUTT3
            JNB     K2, SETSS
            JB      K3,SETMM
            LCALL   ADD1
            LCALL   DISPLAY2
            MOV     A,R2
            CLR     C
            CJNE    A,#59H,CLEARMM
            JMP     SETMM
    CLEARMM:JC      SETMM
            LCALL   CLR0
            CLR     C
            LCALL   DISPLAY2
            LCALL   DISPLAY4
            JMP     SETMM
     SETSS: MOV     A,#10001100B;显示时间在第一行
            CALL    WRITE
            LCALL   DS200MS
            MOV     R0,#31H
            JNB     K1,JMPOUTT3
            JNB     K2, JMPSS3
            JB      K3,SETSS
            LCALL   ADD1
            LCALL   DISPLAY2
            LCALL   DISPLAY4
            MOV     A,  R2
            CLR     C
            CJNE    A,#59H,CLEARSS
            JMP     SETSS
    CLEARSS:JC      SETSS
            LCALL   CLR0
            CLR     C
            LCALL   DISPLAY2
            LCALL   DISPLAY4
            JMP     SETSS
   JMPSS3:  LJMP    SS3
   JMPOUTT3:LJMP    OUTT3 
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;      temp alarm 子菜单                                ;;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
TEMPALARM:  NOP
TEMPALARM0A:LCALL  CLS;     清屏
            LCALL   DS20MS
            JNB     K1,$
TT0A1:      MOV     A,#10000000B;
            CALL    WRITE
            MOV     DPTR,#LINE30;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            MOV     A,#11000000B;
            CALL    WRITE
            MOV     DPTR,#LINE31;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            JNB     K1,OUTTT
            JNB     K3,SETALARMH
     TMP0A: JB      K2,TT0A1
            LCALL   DS100MS
            JNB     K2,TMP0A
TEMPALARM0B: LCALL  CLS;     清屏
    TT0B1:  MOV     A,#10000000B;
            CALL    WRITE
            MOV     DPTR,#LINE32;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            MOV     A,#11000000B;
            CALL    WRITE
            MOV     DPTR,#LINE33;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            JNB     K1,OUTTT
            JNB     K3,SETALARML
     TMP0B: JB      K2,TT0B1
            LCALL   DS100MS
            JNB     K2, TMP0B
            JMP     TT0A1
OUTTT:      LCALL   CLS;     清屏
            LJMP    OUTF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;;;;       TEMP  ALARM              ;
;;        报警温度调整              ;
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETALARMH:  LCALL   CLS;       上限时间调整
SETALARMH1: LCALL   DISPLAY21
            JNB     K1, JMPONOFF
   SETALA1: JB      K3,SETALARMH1
            LCALL   DS20MS
            JNB     K3,SETALA1
       ALA3:LCALL   DS200MS
            MOV     R0,#41H
       ALA4:JNB     K1, JMPONOFF
            JNB     K2,ALARADEC
            JB      K3,ALA4
            LCALL   ADD1
            LCALL   INITIAL; 启动显示
            LCALL   DISPLAY21
            JMP     ALA3
  ALARADEC: LCALL   DS200MS
            MOV     R0,#41H
       ALA5:JNB     K1, ONOFF
            JNB     K3,ALA3
            JB      K2,ALA4
            LCALL   DEC1
            LCALL   INITIAL; 启动显示
            LCALL   DISPLAY21
            JMP     ALARADEC
   JMPONOFF:LJMP    ONOFF
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
;         报捷温度下限调整
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
SETALARML:  LCALL   CLS;
SETALARML1: LCALL   DISPLAY22
            JNB     K1,  ONOFF
   SETALAL1:JB      K3,SETALARML1
            LCALL   DS20MS
            JNB     K3,SETALAL1
      ALAL3:LCALL   DS200MS
            MOV     R0,#43H
      ALAL4:JNB     K1,	  ONOFF
            JNB     K2,ALALRADEC
            JB      K3,ALAL4
            LCALL   ADD1
            LCALL   INITIAL; 启动显示
            LCALL   DISPLAY22
            JMP     ALAL3
  ALALRADEC:LCALL   DS200MS
            MOV     R0,#43H
      ALAL5:JNB     K1, ONOFF
            JNB     K3,ALAL3
            JB      K2,ALAL4
            LCALL   DEC1
            LCALL   INITIAL; 启动显示
            LCALL   DISPLAY22
            JMP     ALALRADEC
  OUTT0B1:  LJMP    OUTTT
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ;;;        ONOFF  alarm  ;;;;;;
 ;;;;;;;;;;;;;;;;;;;;;;;;;;;;
 ONOFF:     LCALL   CLS;     清屏
            LCALL   DS20MS
            JNB     K1,$
ONOFF0A1:   MOV     A,#10000000B;
            CALL    WRITE
            MOV     DPTR,#LINE34;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            MOV     A,#11000000B;
            CALL    WRITE
            MOV     DPTR,#LINE35;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            JNB     K3,ON
   ONOFF0A: JB      K2,ONOFF0A1
            LCALL   DS100MS
            JNB     K2,ONOFF0A
ONOFFALARM0B:LCALL   CLS;     清屏
  ONOFF0B1:  MOV     A,#10000000B;
            CALL    WRITE
            MOV     DPTR,#LINE36;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            MOV     A,#11000000B;
            CALL    WRITE
            MOV     DPTR,#LINE37;指向显示内容
            mov     R3,#0
            LCALL   PRSTRING;查显示内容
            JNB     K3,OFF
   ONOFF0B: JB      K2,ONOFF0B1
            LCALL   DS100MS
            JNB     K2, ONOFF0B
            JMP     ONOFF0A1
   ON:      SETB    ONALARM;开报警,标志位致1
            LCALL   CLS;     清屏
            lcall   dl05s
            lcall   display28
            lcall   display29
            lcall   dl2s
            LCALL   CLS;     清屏
            lcall   dl05s
            JMP     OUTT0B1
   OFF:     CLR     ONALARM;关报警,标志位致0
            CLR      ALARMM 
            CLR      ALARMM1
            LCALL   CLS;     清屏

⌨️ 快捷键说明

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