微波EDA网,见证研发工程师的成长!
首页 > 硬件设计 > 嵌入式设计 > DS1302时钟汇编程序数码管显示时间

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

时间:12-02 来源:互联网 点击:
数码管用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

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top