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

📄 safe control.asm

📁 本程序使用STC单片机
💻 ASM
📖 第 1 页 / 共 2 页
字号:
;程序注释:
;1.包括时间部分与其他显示
;a.定时器0 -----保留
;b.定时器1 -----更新显示用
;C.定时器2------串口用(使用AT89C52/STC89C52,当使用STC时,烧写要禁止内部RAM)
;显示格式:2088-18-88 3 18:88
;其他显示包括:离上次损工事故的天数;离上次有记录的事故/伤病天数;今年离岗事故次数;离上次离岗事故的天数;离下次颁奖日天数
;24小时制
;
;
TRXD      EQU   P1.0;更新时间数据
TTXD      EQU   P1.1
TLATCH    EQU   P1.2

SRXD      EQU   P1.3;更新其他数据
STXD      EQU   P1.4
SLATCH    EQU   P1.5
DOG       EQU   P3.5 ;看门狗
TME_ADDR  EQU   53H
BD_RATEH  EQU   0FFH   ;9600 BOAD_RATE VALUE 11.059M
BD_RATEL  EQU   0DBH   ;9600 BOAD_RATE VALUE 11.059M
TADDR     EQU   30H
FX_TEM    EQU   4FH  ;串口功能码缓存


          ORG      0000H
          LJMP     FORMAT
          ORG      001BH
          LJMP     INT1S
          ORG      0023H
	  LJMP     S_PORT
;
          ORG      0100H
FORMAT:
          ACALL D01S
          ACALL CLK691
          ACALL D01S
          ACALL CLK691
          MOV  DPTR,#800FH ;根据标志位判断是否首次运行,是则初始化
          MOVX A,@DPTR
          CJNE A,#0AAH,STAR1
          LJMP FORMAT1
STAR1:    NOP
          MOV A,#0AAH
          MOVX @DPTR,A
          ACALL W818

FORMAT1:  MOV     0CAH,#BD_RATEL  ;RCAP2L
	  MOV     0CBH,#BD_RATEH  ;RCAP2H
	  MOV     0C8H,#00110100B ;T2CON
          MOV     PCON,#00000000B ;SMOD=0
          MOV     TMOD,#00010010B ;
	  MOV     TCON,#01000000B ;0100 0000 (TR1=1 )
	  MOV     SCON,#11010000B ;1101 0000 (MODE 3 ;RECEIVE ENABLE)
	  MOV     IP,#00010010B   ;
	  MOV     IE,#10011010B   ;1001,1010 ET0=1 ET1=1 (S_PORT  INT)
          MOV     TH1,#4CH
          MOV     TL1,#00H
          MOV     P1,#0FFH
          SETB    TR1
          ACALL DISPT
          ACALL DISPA

MAINLOP:  NOP
          ACALL D01S
          ACALL CLK691
          AJMP    MAINLOP  ;等待

;************** 时间发送 ***********
TSENDNUM: NOP           ;CPL     A    ;确定6B595 NOP 或HC595 CPL A
	  MOV     R3,#08
TDISPLP : RRC  A        ;RLC     A    ;确定先移高位或低位
	  MOV     TRXD,C
       	  SETB    TTXD
       	  NOP
	  CLR     TTXD
	  DJNZ    R3,TDISPLP
	  RET
;************** 看门狗 ***********
CLK691:   NOP
          CLR  DOG
          NOP
          SETB DOG
          NOP
          CLR  DOG
          RET
;************** 时间显示 ***********
LAS:      CLR TLATCH
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          SETB TLATCH
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          CLR TLATCH
          RET
;************** 安全数据发送 ***********
SSENDNUM: NOP           ;CPL     A    ;确定6B595 NOP 或HC595 CPL A
	  MOV     R3,#08
SDISPLP : RRC  A        ;RLC     A    ;确定先移高位或低位
	  MOV     SRXD,C
	  SETB    STXD
  	  NOP
	  CLR     STXD
	  DJNZ    R3,SDISPLP
	  RET
;************** 安全数据显示 ***********
SLAS:     CLR SLATCH
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          SETB SLATCH
          NOP
          NOP
          NOP
          NOP
          NOP
          NOP
          CLR SLATCH
          RET
;***************DELAY 0.1 S***************
D01S:     MOV R5,#0FFH
D01:      MOV R6,#0FFH
D02:      DJNZ R6,D02
          DJNZ R5,D01
          RET
;****************************************
;*       DISPT                          *
;****************************************
DISPT:   NOP
         ACALL CLK691
         PUSH 00H
         PUSH ACC
         CLR     TRXD
	 CLR     TTXD
	 CLR     TLATCH
         MOV DPTR,#TABDIP
         MOV A,#2            ;年千位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,#0            ;年百位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,5DH            ;年十位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,5CH            ;年个位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,5BH            ;月十位
         CJNE A,#00H,WE1      ;月十位不显示零
         MOV A,#0AH
WE1:     MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,5AH            ;月个位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,59H            ;日十位
         CJNE A,#00H,WE2      ;日十位不显示零
         MOV A,#0AH            ;日个位
WE2:     MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,58H            ;日个位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,57H            ;星期位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
WE2A:    MOV A,56H            ;小时十位
         CJNE A,#00H,WE3      ;小时十位不显示零
         MOV A,#0AH
WE3:     MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,55H            ;小时个位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,52H            ;:
         LCALL  TSENDNUM
         MOV A,54H            ;分钟十位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
         MOV A,53H            ;分钟个位
         MOVC A,@A+DPTR
         LCALL  TSENDNUM
WE5:     ACALL LAS
         POP ACC
         POP 00H
         RET
;****************************************
;*       DISPA                         *
;****************************************
DISPA:   NOP ;数据分位输出,每数据包括四单位
         ACALL CLK691
         PUSH 00H
         PUSH ACC
         CLR     SRXD
	 CLR     STXD
	 CLR     SLATCH
         MOV DPTR,#TABDIP
         MOV A,33H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,32H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,31H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,30H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,37H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,36H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,35H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,34H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,3BH
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,3AH
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,39H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,38H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,3FH
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,3EH
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,3DH
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,3CH
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,43H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,42H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,41H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         MOV A,40H
         MOVC A,@A+DPTR
         LCALL  SSENDNUM
         ACALL SLAS
         POP ACC
         POP 00H
         RET
;************************* 读日期 ***************************
R818:    NOP
         MOV  DPTR,#800AH
waitr:   MOVX A,@DPTR
         JB   ACC.7,waitr
         MOV R1,#TME_ADDR
;******* THIS IS S *********
;        MOV DPL,#00H
;        MOVX A,@DPTR
;        ACALL SWHL
;        INC R1
;******** THIS IS MUNITE *******
         MOV  DPL,#02H
         MOVX A,@DPTR
         ACALL SWHL
;******** THIS IS HOUR ********
         MOV  DPL,#04H
         MOVX A,@DPTR       ;小时的十位,在十二小时制时,下午时
         INC  R1
         ACALL SWHL
         INC R1
;******* THIS IS WEEK ********
         MOV  DPL,#06H
         MOVX A,@DPTR
         MOV  @R1,A
;******* THIS IS DAY ***********
         MOV  DPL,#07H
         MOVX A,@DPTR
         INC  R1
         ACALL SWHL
;****** THIS IS MONTH ***********
        INC  DPTR
        MOVX A,@DPTR
        INC  R1
        ACALL SWHL
;****** THIS IS YEAR ***********
        INC  DPTR
        MOVX A,@DPTR
        INC  R1
        ACALL SWHL
        RET
;************************* 读其他数据 ***************************
RRAM:
        MOV  DPTR,#8010H
        MOV R1,#TADDR
        MOV  DPL,#10H
        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

        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

        INC R1
        INC DPTR
        MOVX A,@DPTR
        ACALL CHANGNUM

⌨️ 快捷键说明

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