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

📄 safe control.asm

📁 本程序使用STC单片机
💻 ASM
📖 第 1 页 / 共 2 页
字号:
        ACALL SWHL

        INC R1
        INC DPTR
        MOVX A,@DPTR
        ACALL CHANGNUM
        ACALL SWHL

        INC R1
        INC DPTR
        MOVX A,@DPTR
        ACALL CHANGNUM
        ACALL SWHL

        INC R1
        INC DPTR
        MOVX A,@DPTR
        ACALL CHANGNUM
        ACALL SWHL
        RET

;*******  THIS SUB IS FOR ONE ADDR ASCII TO TOW ASCII********
;*******  LOW ADDR IS STORE IN R1********************* 
SWHL:   NOP
        INC  R1
        MOV  @R1,A
        DEC  R1
        ANL  A,#0FH
        MOV  @R1,A
        INC  R1
        MOV  A,@R1
        SWAP A
        ANL  A,#0FH
        MOV  @R1,A
        RET

;******************显示数据转换****************** 
CHANGNUM:
        MOV  @R1,A
        MOV B,#10
        DIV AB
        MOV B,#6
        MUL AB
        ADD A,@R1
        RET
;****************   WRITE DATA INT  ************
W818:   NOP
        MOV  DPTR,#800AH
        MOV  A,#70H
        MOVX @DPTR,A
        INC  DPTR
        MOV  A,#82H
        MOVX @DPTR,A
        MOV  DPL,#00H
        CLR  A
        MOVX @DPTR,A
        MOV  DPL,#02H
        MOV  A,#00H
        MOVX @DPTR,A
        MOV  DPL,#04H
        MOV  A,#11H
        MOVX @DPTR,A
        MOV  DPL,#06H
        MOV  A,#01H
        MOVX @DPTR,A
        MOV  DPL,#07H
        MOV  A,#10H
        MOVX @DPTR,A
        INC  DPTR
        MOV  A,#12H
        MOVX @DPTR,A
        INC  DPTR
        MOV  A,#02H
        MOVX @DPTR,A
        INC  DPTR
        MOV  A,#20H     ;32.768K
        MOVX @DPTR,A
        INC  DPTR
        MOV  A,#02H
        MOVX @DPTR,A
        ACALL CLK691
        MOV  DPTR,#8010H;将安全数据存在时钟上
        MOV  A,#9
        MOVX @DPTR,A
        INC DPTR     ;11H
        MOV  A,#8
        MOVX @DPTR,A
        MOV  A,#7
        MOVX @DPTR,A
        INC DPTR     ;13H
        MOV  A,#6
        MOVX @DPTR,A
        INC DPTR   ;14H
        MOV  A,#5
        MOVX @DPTR,A
        INC DPTR   ;15H
        MOV  A,#4
        MOVX @DPTR,A
        INC DPTR   ;16H
        MOV  A,#3
        MOVX @DPTR,A
        INC DPTR   ;17H
        MOV  A,#2
        MOVX @DPTR,A
        INC DPTR    ;18H
        MOV  A,#1
        MOVX @DPTR,A
        INC DPTR     ;19H
        MOV  A,#0
        MOVX @DPTR,A
        RET

;******************************************
;**        THIS IS INT1  T=0.1S          **
;******************************************
INT1S:   NOP
         ACALL CLK691
         PUSH ACC
         PUSH PSW
         PUSH DPH
         PUSH DPL
         MOV TH1,#4CH
         MOV TL1,#00H
         SETB TR1
         MOV R1,#5FH
         CJNE @R1,#7,TIAN0
         MOV  52H,#00H
         ACALL R818
         ACALL DISPT
         ACALL RRAM
         LCALL DISPA
TIAN0:   CJNE @R1,#18,TIAN1
         MOV  52H,#0FFH
         ACALL R818
         ACALL DISPT
         ACALL RRAM
         LCALL DISPA
TIAN1:   CJNE @R1,#21,TIAN2
         MOV  @R1,#00H
TIAN2:   MOV R1,#5FH
         MOV A,@R1
         ADD A,#01H
         MOV @R1,A
ESCD0:   LCALL TSNUM
         NOP
         POP DPL
         POP DPH
         POP PSW
         POP ACC
         SETB TR1
         RETI
;*****************根据日期更改设置************************
TSNUM:
         NOP
         ACALL CLK691
         MOV  DPTR,#800AH
WAITER:  MOVX A,@DPTR
         JB   ACC.7,WAITER
         MOV  DPTR,#8007H
         MOVX A,@DPTR
         MOV 4EH,A
         MOV DPTR,#801AH
         MOVX A,@DPTR
         CJNE A,4EH,TSNEXT
         AJMP ESO
TSNEXT:
         MOV  DPTR,#8000H
         MOVX A,@DPTR
         MOV 4EH,A
         MOV DPTR,#801AH
         MOVX A,@DPTR
         CJNE A,4EH,TSNEXTT
         AJMP ESO
TSNEXTT: MOV  DPTR,#8010H
         ACALL INCNUM
         MOV  DPTR,#8012H
         ACALL INCNUM
         MOV  DPTR,#8016H
         ACALL INCNUM
         MOV  DPTR,#8018H
         ACALL DECNUM
         MOV DPTR,#801AH
         MOV A,4EH
         MOVX @DPTR,A
ESO:     RET
INCNUM:  ;显示加一
         MOVX A,@DPTR
         CJNE A,#99,ESOTTT
         MOV A,#0
         MOVX @DPTR,A
         INC DPTR
         MOVX A,@DPTR
         CJNE A,#99,ESOTTTT
         MOV A,#0
         MOVX @DPTR,A
         AJMP ESOTT
ESOTTTT: INC A
         MOVX @DPTR,A
         AJMP ESOTT
ESOTTT:  INC A
         MOVX @DPTR,A
ESOTT:   RET
DECNUM:  NOP ;显示减一
         MOVX A,@DPTR
         JZ ESOT
         DEC A
         MOVX @DPTR,A
         AJMP ESOO
ESOT:    MOV A,#99
         MOVX @DPTR,A
         INC DPTR
         MOVX A,@DPTR
         JZ ESOTTU
         DEC A
         MOVX @DPTR,A
         AJMP ESOO
ESOTTU:  MOV A,#99
         MOVX @DPTR,A
ESOO:    RET

S_PORT: PUSH    DPH
	PUSH    DPL
	PUSH    ACC
	PUSH    B
	PUSH    PSW
	SETB    RS1   ;以免影响主程序中寄存器值
	SETB    RS0
        JBC     TI,SPERR
	LCALL   SPIN
	CJNE    A,#55H,SPERR ;前导码
	LCALL   SPIN
	CJNE    A,#0AAH,SPERR
	LCALL   SPIN
	CJNE    A,#0FFH,SPERR
	LCALL   SPIN
        MOV     FX_TEM,A ;缓存功能码
        CJNE    A,#0FAH,REVSD
        LCALL   SPIN
        MOV 66H,A  ;年
        LCALL   SPIN
        MOV 65H,A  ;月
        LCALL   SPIN
        MOV 64H,A  ;日
        LCALL   SPIN
        MOV 63H,A  ;星期
        LCALL   SPIN
        MOV 62H,A   ;时
        LCALL   SPIN
        MOV 61H,A   ;分
        LCALL   SPIN
        MOV 60H,A  ;秒
        MOV DPTR,#8000H
        MOV R0,#60H
        MOV A,@R0
        MOVX    @DPTR,A ;秒

        INC DPTR
        INC DPTR
        INC R0
        MOV A,@R0
        MOVX @DPTR,A   ;分

        INC DPTR
        INC DPTR
        INC R0
        MOV A,@R0
        MOVX @DPTR,A    ;时

        INC DPTR
        INC DPTR
        INC R0
        MOV A,@R0
        MOVX @DPTR,A   ;星期

        INC DPTR
        INC R0
        MOV A,@R0
        MOVX @DPTR,A   ;日

        INC DPTR
        INC R0
        MOV A,@R0
        MOVX @DPTR,A    ;月

        INC DPTR
        INC R0
        MOV A,@R0
        MOVX @DPTR,A       ;年
SPERR:  LJMP     EXITSP
REVSD:  MOV     A,FX_TEM
        CJNE    A,#0FBH,REVHS  ; 离上次损工事故的天数
        LCALL   SPIN
        MOV DPTR,#8011H
        MOVX  @DPTR,A ;高位
        LCALL   SPIN
        MOV DPTR,#8010H
        MOVX  @DPTR,A ;低位
        LJMP     EXITSP
REVHS:  MOV     A,FX_TEM
        CJNE    A,#0FCH,REVRET  ; 离上次有记录的事故/伤病天数
        LCALL   SPIN
        MOV DPTR,#8013H
        MOVX  @DPTR,A ;高位
        LCALL   SPIN
        MOV DPTR,#8012H
        MOVX  @DPTR,A ;低位
        LJMP     EXITSP
REVRET: MOV     A,FX_TEM
        CJNE    A,#0FDH,REVREX  ; 今年离岗事故次数
        LCALL   SPIN
        MOV DPTR,#8015H
        MOVX  @DPTR,A ;高位
        LCALL   SPIN
        MOV DPTR,#8014H
        MOVX  @DPTR,A ;低位
        LJMP     EXITSP
REVREX: MOV     A,FX_TEM
        CJNE    A,#0FEH,REVREA  ; 离上次离岗事故的天数
        LCALL   SPIN
        MOV DPTR,#8017H
        MOVX  @DPTR,A ;高位
        LCALL   SPIN
        MOV DPTR,#8016H
        MOVX  @DPTR,A ;低位
        LJMP     EXITSP
REVREA: MOV  A,FX_TEM
        CJNE    A,#0FFH,EXITSP  ; 离下次颁奖日天数
        LCALL   SPIN
        MOV DPTR,#8019H
        MOVX  @DPTR,A ;高位
        LCALL   SPIN
        MOV DPTR,#8018H
        MOVX  @DPTR,A ;低位
EXITSP: NOP
	POP     PSW
	POP     B
	POP     ACC
	POP     DPL
	POP     DPH
        RETI
SPIN:   MOV     R6,#80H
SPIN2:  MOV     R7,#0FFH
SPIN1:  JB      RI,SPIN0                ;WAITING RECEIVER
	DJNZ    R7,SPIN1
	DJNZ    R6,SPIN2
	RET
SPIN0:  MOV     A,SBUF  ;无校验
	CLR     RI
	RET
;*****************输出字型码(6B595)***********************************************
TABDIP: DB    0FCH,60H,0DAH      ;0,1,2
        DB    0F2H,66H,0B6H      ;3,4,5
        DB    0BEH,0E0H,0FEH     ;6,7,8
        DB    0F6H,00H           ;9
        END

⌨️ 快捷键说明

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