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

📄 液晶timeend555555xin.txt

📁 用89S51做的液晶时钟走的很好 用keil3.0打开
💻 TXT
📖 第 1 页 / 共 3 页
字号:
CLC_RUNNING_1: SETB P3.6
CLC_RUNNING_OUT:RET
;3333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333333
CLC_44H:    MOV A,JHM_CLC
            CJNE A,#0,CLC_441
 	    LCALL CLC_ADHOUR
	    AJMP CLC_44OUT
CLC_441:    CJNE A,#1,CLC_442
            LCALL CLC_ADMIN
	    AJMP CLC_44OUT
CLC_442:    MOV JHM_CLC,#0
CLC_44OUT:  RET
;---------------------------------------------------------------------------------------------------
CLC_ADHOUR:    MOV N0_JZH1,#44H
               LCALL JZH_SEE
	       CJNE R7,#11H,CLC_ADHOUR_OUT
CLC_ADHOUR_1:  LCALL JZH_STOP1
               LCALL DEL10MS
               MOV A,HOUR1_CLC
               CJNE A,#2,CLC_ADHOUR_2
	       MOV A,HOUR2_CLC
               CJNE A,#3,CLC_ADHOUR_3
               MOV HOUR1_CLC,#0
	       MOV HOUR2_CLC,#0
	       AJMP CLC_ADHOUR
CLC_ADHOUR_2:  MOV A,HOUR2_CLC
               CJNE A,#9,CLC_ADHOUR_3
               MOV HOUR2_CLC,#0
	       INC HOUR1_CLC
	       AJMP CLC_ADHOUR
CLC_ADHOUR_3:  INC HOUR2_CLC
               AJMP CLC_ADHOUR
CLC_ADHOUR_OUT:  RET

CLC_ADMIN:   MOV N0_JZH1,#44H
             LCALL JZH_SEE
	     CJNE R7,#11H,CLC_ADMIN_OUT
CLC_ADMIN_1: LCALL JZH_STOP1
             LCALL DEL10MS
             MOV A,MIN1_CLC
	     CJNE A,#5,CLC_ADMIN_2
	     MOV A,MIN2_CLC
	     CJNE A,#9,CLC_ADMIN_3
	     MOV MIN1_CLC,#0
	     MOV MIN2_CLC,#0
	     AJMP CLC_ADMIN
CLC_ADMIN_2: MOV A,MIN2_CLC
             CJNE A,#9,CLC_ADMIN_3
	     MOV MIN2_CLC,#0
	     INC MIN1_CLC
	     AJMP CLC_ADMIN
CLC_ADMIN_3: INC MIN2_CLC
             AJMP CLC_ADMIN
CLC_ADMIN_OUT: RET


CLC_54H:    MOV A,JHM_CLC
            CJNE A,#0,CLC_541
	    LCALL CLC_DEHOUR
	    AJMP CLC_54OUT
CLC_541:    MOV A,JHM_CLC
            CJNE A,#1,CLC_542
	    LCALL CLC_DEMIN
	    AJMP CLC_54OUT
CLC_542:    MOV JHM_CLC,#0
CLC_54OUT:  RET

CLC_DEHOUR:      MOV N0_JZH1,#54H
                 LCALL JZH_SEE
	         CJNE R7,#11H,CLC_DEHOUR_OUT
CLC_DEHOUR_1:    LCALL JZH_STOP1
                 LCALL DEL10MS
                 MOV A,HOUR1_CLC
                 CJNE A,#0,CLC_DEHOUR_2
	         MOV A,HOUR2_CLC
                 CJNE A,#0,CLC_DEHOUR_3
                 MOV HOUR1_CLC,#2
	         MOV HOUR2_CLC,#3
	         AJMP CLC_DEHOUR
CLC_DEHOUR_2:    MOV A,HOUR2_CLC
                 CJNE A,#0,CLC_DEHOUR_3
                 MOV HOUR2_CLC,#9
	         DEC HOUR1_CLC
	         AJMP CLC_DEHOUR
CLC_DEHOUR_3:    DEC HOUR2_CLC
                 AJMP CLC_DEHOUR
CLC_DEHOUR_OUT:  RET

CLC_DEMIN:     MOV N0_JZH1,#54H
               LCALL JZH_SEE
	       CJNE R7,#11H,CLC_DEMIN_OUT
CLC_DEMIN_1:   LCALL JZH_STOP1
               LCALL DEL10MS
               MOV A,MIN1_CLC
	       CJNE A,#0,CLC_DEMIN_2
	       MOV A,MIN2_CLC
	       CJNE A,#0,CLC_DEMIN_3
	       MOV MIN1_CLC,#5
	       MOV MIN2_CLC,#9
	       AJMP CLC_DEMIN
CLC_DEMIN_2:   MOV A,MIN2_CLC
               CJNE A,#0,CLC_DEMIN_3
	       MOV MIN2_CLC,#9
	       DEC MIN1_CLC
	       AJMP CLC_DEMIN
CLC_DEMIN_3:   DEC MIN2_CLC
               AJMP CLC_DEMIN
CLC_DEMIN_OUT: RET

CLC_C4H:     MOV N0_JZH1,#0C4H
             LCALL JZH_SEE
	     CJNE R7,#11H,CLC_C4OUT
             LCALL JZH_STOP1
             LCALL DEL10MS
	     MOV A,JHM_CLC
             CJNE A,#0,CLC_C42
	     MOV JHM_CLC,#1
	     AJMP CLC_C4H
CLC_C42:     CJNE A,#1,CLC_C43
	     MOV JHM_CLC,#0
	     AJMP CLC_C4H
CLC_C43:     MOV JHM_CLC,#0
             AJMP CLC_C4H
CLC_C4OUT:   RET


;44444444444444444444444444444444444444444444444444444444444444444444444444444444444

CLC_40H:     MOV N0_JZH1,#40H
             LCALL JZH_SEE
	     CJNE R7,#11H,CLC_40OUT
             LCALL JZH_STOP1
             LCALL DEL10MS
	     MOV A,OPEN_CLC
             CJNE A,#0,CLC_402
	     MOV OPEN_CLC,#1
	     AJMP CLC_40H
CLC_402:     CJNE A,#1,CLC_403
	     MOV OPEN_CLC,#0
	     AJMP CLC_40H
CLC_403:     MOV OPEN_CLC,#0
             AJMP CLC_40H
CLC_40OUT:   RET

CLC_4CH:    MOV A,OPEN_CLC
            CJNE A,#1,CLC_4COUT
            MOV N0_JZH1,#4CH
	    LCALL JZH_SEE
	    CJNE R7,#11H,CLC_4COUT
            LCALL CLC_CH
	    LCALL JZH_STOP0
CLC_4C0:    LCALL JHUO_CLC
            LCALL CLC_44H
	    LCALL CLC_54H
	    LCALL CLC_C4H
            MOV N0_JZH1,#4CH
            LCALL JZH_SEE
            CJNE R7,#11H,CLC_4C0
	    LCALL JZH_STOP0
CLC_4COUT:    RET

CLC_DISP:
           MOV P1,#0C5H
           LCALL ENABLE
	   MOV A,HOUR1_CLC
	   ADD A,#30H
	   LCALL DISP1
	   MOV P1,#0C6H
	   LCALL ENABLE
	   MOV A,HOUR2_CLC
	   ADD A,#30H
	   LCALL DISP1
	   MOV P1,#0C8H
	   LCALL ENABLE
	   MOV A,MIN1_CLC
	   ADD A,#30H
	   LCALL DISP1
	   MOV P1,#0C9H
	   LCALL ENABLE
	   MOV A,MIN2_CLC
	   ADD A,#30H
	   LCALL DISP1
           RET

CLC_CH:     MOV P1,#0C0H
            LCALL ENABLE
            MOV DPTR ,#TABLE7
            LCALL DISP
	    LCALL CLC_DISP
	    RET

JHUO_CLC:   DJNZ TIMER1,JHUO_CLC_1
	    MOV TIMER1,#0FFH
	    LCALL CLC_DISP
JHUO_CLC_1: LCALL JUDGE
            MOV P1,#0EH
	    LCALL ENABLE
	    MOV A,JHM_CLC
            CJNE A,#1,JHUO_CLC_2
	    MOV A,#0C6H
	    MOV P1,A
            LCALL ENABLE
	    AJMP JHUO_CLC_OUT
JHUO_CLC_2: MOV A,#0C9H
	    MOV P1,A
            LCALL ENABLE
JHUO_CLC_OUT:    RET

;55555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555555

DSWD:         CLR EA
              LCALL RST
              JNB F0,OUT0 ;如果没有应答,返回主程序
              MOV R0,#0CCH
              LCALL SEND_BYTE ;跳过ROM匹配
              MOV R0,#44H ;发出温度转换命令
              LCALL SEND_BYTE
              MOV R7,#1 ;廷时75ms以上准备读
SS2:          MOV R6,#255
SS1:          MOV R5,#255
SS0:          DJNZ R5,SS0
              DJNZ R6,SS1
              DJNZ R7,SS2
              LCALL RST
              JNB F0,OUT0
              MOV R0,#0CCH ;跳过ROM匹配
              LCALL SEND_BYTE
              MOV R0,#0BEH ;发出读温度命令
              LCALL SEND_BYTE
              LCALL READ_BYTE
              MOV R2,A
              LCALL READ_BYTE
              MOV R3,A
              LCALL TRANS12
OUT0:         SETB EA
              RET




SEND_BYTE:    MOV A,R0;发送一个字节程序
              MOV R5,#8
SEN3:         CLR C
              RRC A
              JC SEN1
              LCALL WRITE_0
              SJMP SEN2
SEN1:         LCALL WRITE_1
SEN2:         DJNZ R5,SEN3 ; 循环8次,写一个字节
              RET
READ_BYTE:    MOV R5,#8	          ;读一个字节程序

READ1:        LCALL READ
              RRC A
              DJNZ R5,READ1 ; 循环8次,读一个字节
              MOV R0,A
              RET
;复位程序,如果复位置位F0,没有就复位F0
RST:          SETB DAT
              NOP
              NOP
              CLR DAT
              MOV R6,#250 ;主机发复位脉冲持续3μs×200=600μs
              DJNZ R6,$
              MOV R6,#50
              DJNZ R6,$
              SETB DAT ;主机释放总线,口线改为输入
              MOV R6,#15
              DJNZ R6,$
              CALL CHCK ;调用应答检查程序
              MOV R6,#60
              DJNZ R6,$
              SETB DAT
              RET
CHCK:         MOV C,DAT
              JC RST0
              SETB F0 ;检测到信号,置位F0
              SJMP CHCK0
RST0:         CLR F0 ;未准备好F0复位
CHCK0:        RET

WRITE_0:      CLR DAT;写0
              MOV R6,#30
              DJNZ R6,$
              SETB DAT
              RET
WRITE_1:      CLR DAT ;写1
              NOP
              NOP
              NOP
              NOP
              NOP
              SETB DAT
              MOV R6,#30
              DJNZ R6,$
              RET

;读一位数据程序
READ:         SETB DAT ;先复位至少1US产生读起始信号
              NOP
              NOP
              CLR DAT
              NOP
              NOP
              SETB DAT ;置位DAT准备接收数据
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              NOP
              MOV C,DAT
              MOV R6,#23
              DJNZ R6,$
              RET




TRANS12:      MOV A,R2
              ANL A,#0F0H
              MOV R0,A
              MOV A,R3
              ANL A,#0FH
              ORL A,R0
              SWAP A
              MOV B,#10
              DIV AB
              MOV R7,A
              MOV R6,B
              MOV DPTR,#TABB
              MOV A,R2
              ANL A,#0FH
              MOV B,#2
              MUL AB
              MOVC A,@A+DPTR
              MOV R5,A
              MOV A,R2
              ANL A,#0FH
              MOV B,#2
              MUL AB
              INC A
              MOVC A,@A+DPTR
              MOV R4,A
              RET
TABB: DB 0,0,0,6,1,2,1,8,2,5,3,1,3,7,4,3,5,0
DB 5,6,6,2,6,8,7,5,8,1,8,7,9,3

;66666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666666
SECRUN:      MOV START_SR,#0
             MOV N0_JZH1,#80H
             LCALL JZH_SEE
             CJNE R7,#11H,SECRUN_OUT
             LCALL JZH_STOP1
             LCALL SR_CLEAR
SECRUN_1:    LCALL SR_90H
             LCALL SR_98H
	     LCALL SR_DISP
             MOV N0_JZH1,#80H
             LCALL JZH_SEE
             CJNE R7,#11H,SECRUN_1
	     LCALL JZH_STOP1
	     LCALL TIME_AP
	     LCALL DISP_INIT
	     LCALL DISPTIME
SECRUN_OUT:   RET



SR_CLEAR:      MOV P1,#1H
               LCALL ENABLE
               MOV P1,#80H
               LCALL ENABLE
               MOV DPTR,#TABLE11
               LCALL DISP
               MOV P1,#0C0H
               LCALL ENABLE
               MOV DPTR,#TABLE12
               LCALL DISP
                 RET

SR_DISP:    MOV P1,#0C4H
	    LCALL ENABLE
	    MOV A,#30H
	    ADD A,MIN1_SR
 	    LCALL DISP1
            MOV P1,#0C5H
	    LCALL ENABLE
	    MOV A,#30H
	    ADD A,MIN2_SR
 	    LCALL DISP1
            MOV P1,#0C7H
	    LCALL ENABLE
	    MOV A,#30H
	    ADD A,SEC1_SR
 	    LCALL DISP1
            MOV P1,#0C8H
	    LCALL ENABLE
	    MOV A,#30H
	    ADD A,SEC2_SR
 	    LCALL DISP1
            MOV P1,#0CAH
	    LCALL ENABLE
	    MOV A,#30H
            ADD A,MSEC1_SR
 	    LCALL DISP1
            MOV P1,#0CBH
	    LCALL ENABLE
	    MOV A,#30H
	    ADD A,MSEC2_SR
 	    LCALL DISP1
             RET

TABLE11: DB "   RUN_SECOND   "
TABLE12: DB "    00:00:00    "







SR_90H:      MOV N0_JZH1,#90H
             LCALL JZH_SEE
             CJNE R7,#11H,SR_90_OUT
             LCALL JZH_STOP1
	     LCALL JZH_STOP1
	     LCALL JZH_STOP1
	     MOV START_SR,#0
             MOV MIN1_SR ,#0
             MOV MIN2_SR ,#0
             MOV SEC1_SR ,#0
             MOV SEC2_SR ,#0
             MOV MSEC1_SR ,#0
             MOV MSEC2_SR ,#0
SR_90_OUT:      RET


SR_98H:      MOV N0_JZH1,#98H
             LCALL JZH_SEE
             CJNE R7,#11H,SR_98_OUT
             MOV A,START_SR
	     CJNE A,#0,SR_98_1
	     MOV START_SR,#1
	     AJMP SR_98_OUT
SR_98_1:     CJNE A,#1,SR_98_2
SR_98_2:     MOV START_SR,#0
             LCALL SR_DISP
             LCALL JZH_STOP1
             LCALL SR_DISP
             LCALL JZH_STOP1
             LCALL SR_DISP
             LCALL JZH_STOP1
             LCALL SR_DISP
             LCALL JZH_STOP1
SR_98_OUT:  RET





SR_ADMSEC2:  MOV A,MSEC2_SR
             CJNE A,#9,SR_MSEC21
             MOV MSEC2_SR,#0
             ACALL SR_ADMSEC1
             AJMP SR_MSEC2_OUT
SR_MSEC21:   INC MSEC2_SR
SR_MSEC2_OUT:        RET


SR_ADMSEC1:   MOV A,MSEC1_SR
              CJNE A,#9,SR_MSEC11
              MOV MSEC1_SR,#0
              ACALL SR_ADSEC2
	      AJMP SR_MSEC1_OUT
SR_MSEC11:    INC MSEC1_SR
SR_MSEC1_OUT:     RET




SR_ADSEC2:  MOV A,SEC2_SR
            CJNE A,#9,SR_SEC21
            MOV SEC2_SR,#0
            ACALL SR_ADSEC1
            AJMP SR_SEC2_OUT
SR_SEC21:   INC SEC2_SR
SR_SEC2_OUT:        RET


SR_ADSEC1:   MOV A,SEC1_SR
             CJNE A,#5,SR_SEC11
             MOV SEC1_SR,#0
             ACALL SR_ADMIN2
	     AJMP SR_SEC1_OUT
SR_SEC11:    INC SEC1_SR
SR_SEC1_OUT:     RET

SR_ADMIN2:   MOV A,MIN2_SR
             CJNE A,#9,SR_MIN21
             MOV MIN2_SR,#0
	     ACALL SR_ADMIN1
	     AJMP SR_MIN2_OUT
SR_MIN21:    INC MIN2_SR
SR_MIN2_OUT:   RET

SR_ADMIN1: MOV A,MIN1_SR
           CJNE A,#5,SR_MIN11
           MOV MIN1_SR,#0
           AJMP SR_MIN1_OUT
SR_MIN11:    INC MIN1_SR
SR_MIN1_OUT:   RET















END

⌨️ 快捷键说明

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