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

📄 计时.txt

📁 基于C51的多用计时器
💻 TXT
📖 第 1 页 / 共 2 页
字号:
ANJIAN3:
       CJNE   A,#04H,BACK3         ;是否是减一键,返回
       LCALL  JIANJIAN             ;是,调减一子程序
BACK3:
       MOV  KEYB, #07FH
       RET
*****************功能键GONGNENG*****************
GONGNENG:
     JB  MB,AA2                  ;是否为菜单态,否转AA2
AA1:
       LCALL  DISPLAY              ;等待按键松开
       JNB  P1.1,AA1 
       SETB  MB                    ;设菜单标识
       MOV  QUEDB,#00H             ;显示菜单
       MOV  MENUB,#30H
       LCALL  WWW
       AJMP  BACK5
AA2:
     LCALL  PLAY                 ;等待按键送开返回
       JNB  P1.1,AA2
       CLR  MB
BACK5:
       RET
***************加一键JIAJIAN**************
JIAJIAN:
       JNB  MB,BACK6               ;是否为菜单键,否返回
BB1:
       LCALL  PLAY                 ;等待按键送开
       JNB  P1.2,BB1
       MOV  A,QUEDB                ;是否为初始菜单,否转BB2
       CJNE  A,#00H,BB2
       MOV  A,MENUB                ;是,显示下一级菜单
       CJNE  A,#3FH,BB11
       MOV  MENUB,#30H
       SJMP  BB12
BB11:
       ADD  A,#05H
       MOV  MENUB,A
BB12:
       LCALL  WWW
       AJMP  BACK6
BB2:
       CJNE  A,#03H,BB3            ;是否为取消闹钟菜单,否转BB3
BB20:
       MOV  A,NAOB                 ;显示下一个存储的闹钟
       CJNE  A,#62H,BB21
       MOV  A,#50H
       SJMP  BB22
BB21:
       ADD  A,#02H
BB22:
       MOV  NAOB,A
       MOV  R0,NAOB
       MOV  A,@R0
       CJNE  A,#0FFH,BB23
       SJMP  BB20
BB23:
       MOV  R0,NAOB
       CLR  SI
       LCALL  DISPLAY1
       AJMP  BACK6
BB3:
       JB  SB,BB31                 ;是否为调分钟位?是转BB31
                         JNB  HB,BB300               ;否,小时位加一显示
       LCALL HUANWEI
       CLR  HB
BB300:
       MOV  A,0BH
       CJNE  A,#02H,BB30
       INC  0CH
       MOV  A,0CH
       CJNE  A,#05H,BACK6
       MOV  0BH,#00H
       MOV  0CH,#00H
       SJMP  BACK6
BB30:
       INC  0CH
       MOV  A,0CH
       CJNE  A,#0AH,BACK6
       MOV  0CH,#00H
       INC  0BH
BACK6:     
RET
BB31:
       JNB  HB,BB311               ;分钟位加一显示
       LCALL HUANWEI
       CLR  HB
BB311:     
INC  0FH
       MOV  A,0FH
       CJNE  A,#0AH,BACK6
       MOV  0FH,#00H
       INC  0EH
       MOV  A,0EH
       CJNE  A,#06H,BACK6
       MOV  0EH,#00H
       RET
*********************减一键JIANIAN********************
JIANJIAN:
       JNB  MB,BACK7               ;是否菜单态,否返回
CC1:
       LCALL  PLAY                 ;是,等待按键松开
       JNB  P1.4,CC1 
       MOV  A,QUEDB                 
       CJNE  A,#00H,CC2            ;是否为初始菜单,否转CC2
       MOV   A,MENUB               ;是,显示下一级菜单
       CJNE   A,#30H,CC11            
       MOV   MENUB,#3FH
       SJMP   CC12
CC11:
       MOV   A,MENUB
       SUBB A,#05H
       MOV  MENUB,A
CC12:
       LCALL  WWW
       LJMP   BACK7
CC2:                                       
CJNE   A,#03H,CC3           ;是否为取消闹钟菜单,否转CC3
CC20:
       MOV  A,NAOB                 ;显示下一个存储的闹钟
       CJNE  A,#50H,CC21
       MOV   A,#62H
       SJMP  CC22
CC21:
       SUBB  A,#02H
CC22:
       MOV   NAOB,A
       MOV   R0,NAOB
       MOV   A,@R0
       CJNE   A,#0FFH,CC23
       SJMP   CC20
CC23:
        MOV   R0,NAOB
        CLR   SI
        LCALL  DISPLAY1
        LJMP  BACK7
CC3:
        JB    SB,CC32              ;是否为调分钟位?是转CC32
JNB   HB,CC30              ;否,小时位加一显示
        LCALL  HUANWEI
        CLR    HB
CC30:        
MOV   A,0CH
        CJNE  A,#00H,CC300
        MOV   A,0BH
        CJNE  A,#00H,CC31
        MOV   0BH,#02H
        MOV   0CH,#04H
        SJMP  BACK7
CC300:
        DEC   0CH
        SJMP  BACK7
CC31:
        MOV   0CH,#09H
        DEC   0BH
BACK7:
        RET
CC32:
        JNB   HB,CC320             ;分钟位加一显示
        LCALL  HUANWEI
        CLR    HB
CC320:
        MOV   A,0FH
        CJNE   A,#00H,CC33
        MOV   A,0EH
        CJNE  A,#00H,CC34
        MOV   0EH,#05H
        MOV   0FH,#09H
        RET
CC33:
        DEC   0FH
        RET
CC34:
        MOV   0FH,#09H
        DEC   0EH
        RET
****************确定键QUEDING****************
QUEDING:
     JNB    MB,BACK8            ;是否为菜单态,否返回
DD1:
        LCALL   PLAY               ;等待按键送开
        JNB     P1.3,DD1
        MOV    A,QUEDB             ;是否为初始菜单,否转DD2
        CJNE    A,#00H,DD2
        MOV    A,MENUB             ;是,是否进入设时钟功能
        CJNE   A,#30H,DD11         ;转DD11
        MOV    QUEDB,#01H          ;是,进入时钟功能
        CLR     SB
        CLR     SI
        LCALL   DISPLAY            ;显示当前时钟,准备调时
        LJMP   BACK8
DD11:
        CJNE   A,#35H,DD12         ;是否进入闹钟设定功能
        MOV    QUEDB,#02H          ;否转DD12
        CLR    SB                  ;是,进入闹钟设定功能
        MOV    0BH,#00H            ;显示“00-00”,准备调时
        MOV    0CH,#00H
        MOV    0DH,#10H
        MOV    0EH,#00H
        MOV    0FH,#00H
        LJMP   BACK8
DD12:
        CJNE   A,#3AH,DD13         ;是否进入闹钟取消功能
        MOV    QUEDB,#03H          ;否,转DD13
        MOV    R0,#4EH             ;是,进入闹钟取消功能
        MOV    R1,#0AH             ;显示存储的一个闹钟
DD121:
        INC    R0
        INC    R0
        MOV    A,@R0
        CJNE   A,#0FFH,PPP
        DJNZ   R1,DD121
        MOV    0BH,#11H            ;如果没有存储闹钟,显示“NULL”
        MOV    0CH,#14H
        MOV    0DH,#15H
        MOV    0EH,#13H
        MOV    0FH,#13H
        LCALL  DL2S                ;显示两秒,返回
        CLR    MB
        LJMP   BACK8
PPP:
        MOV     NAOB,R0            ;有存储,显示存储的一个闹钟
CLR     SI
        LCALL   DISPLAY1
BACK8:
        RET
DD13:
        CJNE    A,#3FH,BACK8       ;是否进入秒表计时功能,否返回
        MOV     QUEDB,#04H         ;是,设标识,显示“00-00”
        MOV     0BH,#00H
        MOV     0CH,#00H
        MOV     0DH,#10H
        MOV     0EH,#00H
        MOV     0FH,#00H
        LJMP    BACK8
DD2:
        CJNE    A,#01H,DD3         ;是否是设时钟中,否转DD3
        JB      SB,DD21            ;是,是否是分调,是转DD21
        JNB     HB,DD20            ;否,进入分调状态
        LCALL   HUANWEI
        CLR     HB
DD20:         
SETB      SB
        RET
DD21:
        JNB     HB,DD211           ;保存设定的时间
        LCALL   HUANWEI
        CLR     HB
        MOV     16H,#11H
        MOV     17H,#11H
DD211:
        MOV     A,0BH
        MOV     B,#0AH
        MUL     AB
        ADD     A,0CH
        MOV     HOUR,A
        MOV     A,0EH
        MOV     B,#0AH
        MUL     AB
        ADD     A,0FH
        MOV    MIN,A
        CLR    TR0                 ;重设定时器,开始显示
        MOV    MSEC,#00H
        MOV    TL0,#0F0H
        MOV    TH0,#0D8H
MOV    SEC,#00H
            SETB   TR0
        CLR    MB
        MOV    16H,#11H
        MOV    17H,#11H
        RET
DD3:
        CJNE   A,#02H,DD4          ;是否在闹钟设置功能中,否转DD4
        JB     SB,DD31             ;是,是否为分调,是转DD31
        SETB    SB                 ;否,开始进入分调
        RET
DD31:
        MOV   R1,#4EH              ;寻找空位,存储设定的闹钟
        MOV   R3,#0BH
DD311:      DJNZ  R3,DD32              ;没有空位,显示“ FULL”,返回
        MOV   0BH,#11H
        MOV   0CH,#0FH
        MOV   0DH,#15H
        MOV   0EH,#13H
        MOV   0FH,#13H
        LCALL  DL2S
        SJMP  DD33
DD32:
        INC   R1                        
        INC   R1
        MOV   A,@R1
        CJNE   A,#0FFH,DD311
        MOV   A,0BH                ;找到空位转换存储
        MOV   B,#0AH
        MUL    AB
        ADD    A,0CH
        MOV   @R1,A
        MOV    A,0EH
        MUL   AB
        ADD   A,0FH
        INC    R1
        MOV   @R1,A
DD33:
        CLR     MB
        LJMP   BACK81
DD4:
        CJNE   A,#03H,DD5          ;是否为取消闹钟态,否转DD5
        MOV   R1,NAOB              ;把当前设定闹钟单元清空
        MOV   @R1,#0FFH
        LNC     R1
        MOV   @R1,#0FFH
        CLR    MB
        LJMP  BACK81
DD5:
        CJNE  A,#04H,DD6           ;是否为秒表功能,否转DD6
        MOV   QUEDB,#05H           ;设定秒表计时开始标志
        SETB  PB
        LJMP  BACK81
DD6:
        CJNE  A,#05H,DD7           ;是否为秒表计时中,否转DD7
        CLR   PB                   ;是,停止秒表计时,显示数据
        LJMP  BACK81
DD7:
CLR  MB                    ;退出秒表功能,返回
BACK81:        
RET
***************菜单显示WWW******************
WWW:
MOV  R2,#05H               ;菜单显示
        MOV  R0,MENUB
        MOV  R1,#0BH
WW:
        MOV  A,@R0
        MOV  @R1,A
        INC  R0
        INC  R1
        DJNZ  R2,WW
        RET
****************闪烁HUANWEI **************
HUANWEI:   
JB   SB,HUANWEI1           ;时钟设定闪烁
        MOV  A,16H
        XCH  A,0BH
        MOV  16H,A
        MOV  A,17H
        XCH  A,0CH
        MOV  17H,A
        SJMP  BACK9
HUANWEI1:
        MOV  A,16H
        XCH  A,0EH
        MOV  16H,A
        MOV  A,17H
        XCH  A,0FH
        MOV  17H,A
BACK9:
        RET
**********闹钟子程序NAOZHONG *************
NAOZHONG:   CLR P1.7
        RET

⌨️ 快捷键说明

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