×
单片机 > 单片机程序设计 > 详情

DS1302时钟汇编程序数码管显示时间

发布时间:2020-06-22 发布时间:
|
数码管用2个573接到p0口,电路详见单片机开发板的原理图:http://www.51hei.com/f/HL-1V6.5.pdf  段选是p0口控制的,位选是P2口控制的.;===============DS1302==================

       CLK EQU   P1.4
       RST EQU   P1.0   ;1302定义引脚
       IO  EQU   P1.2
       ORG  00H
       JMP  MAIN
;=======================================
MAIN:  MOV  P0,#0FFH
       MOV  P1,#0FFH
       MOV  P2,#0FFH
       MOV  P3,#0FFH
       MOV  30H,#01H
       MOV  31H,#02H
       MOV  32H,#03H
       MOV  33H,#04H
       MOV  34H,#00H
       MOV  35H,#06H
       MOV  SP,#70H
       CALL  CS
;============================================
LOOP:  MOV   50H,#40
LL0:   CALL  DIP
       DJNZ  50H,LL0
       CALL  READ
       JMP   LOOP
;===========================================
DIP:  ; MOV  30H,#00H
       MOV  A,30H
       CALL TABLE
       MOV  P0,A
       SETB P2.7
       CALL DELAY
       CLR   P2.7
;=============================================
     ; MOV  31H,#01H
      MOV  A,31H
      CALL TABLE
      MOV  P0,A
      SETB P2.6
      CALL DELAY
      CLR   P2.6
;=============================================
      MOV  22H,#40H
      MOV  A,22H
      MOV  P0,A
      SETB  P2.5
      CALL  DELAY
      CLR   P2.5
;============================================
    ;  MOV  32H,#00H
      MOV  A,32H
      CALL TABLE
      MOV  P0,A
      SETB P2.4
      CALL DELAY
      CLR  P2.4
;============================================
    ;  MOV  33H,#00H
      MOV  A,33H
      CALL TABLE
      MOV  P0,A
      SETB P2.3
      CALL DELAY
      CLR  P2.3
;==========================================
      MOV  24H,#40H
      MOV  A,24H
      MOV  P0,A
      SETB  P2.2
      CALL  DELAY
      CLR  P2.2
;=================================================
    ;  MOV  34H,#00H
      MOV  A,34H
      CALL TABLE
      MOV  P0,A
      SETB  P2.1
      CALL  DELAY
      CLR   P2.1
;================================================
      ;MOV  35H,#08H
      MOV  A,35H
      CALL TABLE
      MOV  P0,A
      SETB P2.0
      CALL  DELAY
      CLR   P2.0
      RET
;===============================================
TABLE:INC   A
       MOVC  A,@A+PC
       RET
   DB  3FH,06H,5BH,4FH,66H,6DH,7DH,07H,07FH,06FH
      ;0   1   2   3   4    5    6  7   8   9
;===============================================
DELAY: MOV 40H,#09H
D1:    MOV 41H,#08H
D2:    MOV 42H,#08H
D3:    NOP
       DJNZ 42H,D3
       DJNZ 41H,D2
       DJNZ 40H,D1
       RET
;================================================
CS:    MOV  R6,#8EH   ;允许写1302
       MOV  R7,#00H
       LCALL XIE
;================================================
       MOV  R6,#80H   ;1302停止振荡
       MOV      R7,#80H
       LCALL    XIE
;===============================================

         MOV      R7,#00H
         MOV      R6,#8CH   ;年
         LCALL    XIE
;================================================
         MOV      R7,#00H        ;月
         MOV      R6,#88H
         LCALL    XIE
;================================================
         MOV      R7,#00H
         MOV      R6,#86H       ;日
         LCALL    XIE
;================================================
         MOV      A,#23H
         MOV      R7,A
         MOV      R6,#84H     ;时
         LCALL    XIE
;================================================
         MOV      A,#05H
         MOV      R7,A
         MOV      R6,#82H      ;分
         LCALL    XIE
;=================================================
         MOV      R7,#00H        ;周
         MOV      R6,#8AH
         LCALL    XIE
;=================================================
         MOV      R7,#00H
         MOV      R6,#80H   ;1302开始振荡
         LCALL    XIE
;=================================================
         MOV      R6,#8EH   ;禁止写入1302
         MOV      R7,#80H
         LCALL    XIE
;==================================================
         RET
;========写1302子程序==============================
XIE:     CLR       CLK
         NOP
         SETB      RST
         NOP
         MOV       A,R6
         MOV       R5,#08H
XIE1:    RRC       A
         NOP
         MOV       IO,C
         NOP
         SETB      CLK
         NOP
         CLR       CLK
         DJNZ      R5,XIE1
         MOV       A,R7
         MOV       R5,#08H
XIE2:    RRC       A
         NOP
         MOV       IO,C
         NOP
         SETB      CLK
         NOP
         CLR       CLK
         DJNZ      R5,XIE2
         CLR       RST
         RET
;********读1302子程序*****************
DU:      CLR       CLK
         NOP
         NOP
         SETB      RST
         NOP
         NOP
         MOV       A,R6
         MOV       R5,#08H
DU1:     CLR       CLK
         NOP
         NOP
         RRC       A
         NOP
         NOP
         MOV       IO,C
         NOP
         NOP
         SETB      CLK
         DJNZ      R5,DU1
         MOV       R5,#08H
         CLR       A
         NOP
         CLR       C
         NOP
DU2:     CLR       CLK
         NOP
         NOP
         MOV       C,IO
         NOP
         NOP
         RRC       A
         NOP
         NOP
         SETB      CLK
         NOP
         NOP
         DJNZ      R5,DU2
         NOP
         MOV       R7,A
         NOP
         CLR       RST
         RET
;********1302分离程序*************************
FEN:     MOV       R3,#00H
         MOV       R4,#00H
         MOV       A,R7
         ANL       A,#0FH
         MOV       R3,A
         MOV       A,R7
         SWAP      A
         ANL       A,#0FH
         MOV       R4,A
         RET
;********读1302*****************
READ:
         MOV      R7,#00H
         MOV      R6,#85H    ;小时
         LCALL    DU
         LCALL    FEN
         MOV      30H,R4
         MOV      31H,R3
         ;-------------------
         MOV      R7,#00H
         MOV      R6,#83H    ; 分钟
         LCALL    DU
         LCALL    FEN
         MOV      32H,R4
         MOV      33H,R3
         ;---------------------------
         MOV      R7,#00H
         MOV      R6,#81H     ;秒钟
         LCALL    DU
         LCALL    FEN
         MOV      34H,R4
         MOV      35H,R3
         NOP
         RET
;=====================================================
         END

关键字:DS1302  时钟  汇编程序  数码管显示

『本文转载自网络,版权归原作者所有,如有侵权请联系删除』

热门文章 更多
如何升级STM32单片机的代码