时钟芯片DS1302 8位数码管显示
点击数:7467 次 录入时间:03-04 11:33:32 整理:http://www.55dianzi.com 51单片机
LCALL COMP ;实时时间与定时时间比较
JB K1,MAIN1
CALL BEEP_BL
MAIN2:
LCALL CHULI ;日期数据处理
MOV R0,#DATE_DATA
LCALL DISP ;显示年、月、日
MOV R0,#DATE_DATA
LCALL TIME_DISPLAY
JB K1,MAIN2
CALL BEEP_BL
MAIN3:
LCALL DS_CHULI ;定时时间数据处理
MOV R0,#DS_DATA
LCALL DS_SP ;显示定时时间
MOV R0,#DS_DATA
LCALL DS_DISPLAY
JB K1,MAIN3
CALL BEEP_BL
AJMP MAIN1
;--------------------------------------------
;中断服务子程序
;300MS对闪动标记取反一次
;--------------------------------------------
INT_T0:
PUSH ACC
PUSH PSW
MOV TL0,TIME_L
MOV TH0,TIME_H
INC T_CONU
MOV A,T_CONU
CJNE A,#06H,INT_END
MOV T_CONU,#00H
CPL 0AH
INT_END:
POP PSW
POP ACC
RETI
;--------------------------------------------
;DS1302 初始化子程序
; (R0)=数据 (R1)=地址
;--------------------------------------------
PROSET:
CLR RST ;DS1302复位
CLR SCLK
NOP
NOP
SETB RST
;MOV R1,#80H ;写秒寄存器
;MOV R0,#00H ;启动振荡器
;LCALL WRITE
;MOV R1,#82H ;写分寄存器
;MOV R0,#58H
;LCALL WRITE
;MOV R1,#84H ;写时寄存器
;MOV R0,#80H
;LCALL WRITE
MOV R1,#90H ;写充电寄存器
MOV R0,#0ABH
LCALL WRITE
RET
;===============================================
;读时间、日期数据子程序
;存放单元 40H - 46H
;===============================================
GET_TIME:
MOV R1,#81H ;读秒
LCALL READ
MOV 40H,R0
MOV R1,#83H ;读分
LCALL READ
MOV 41H,R0
MOV R1,#85H ;读时
LCALL READ
MOV 42H,R0
MOV R1,#87H ;读出日期
LCALL READ
MOV 43H,R0
MOV R1,#89H ;读出月份
LCALL READ
MOV 44H,R0
MOV R1,#8BH ;读出星期
LCALL READ
MOV 46H,R0
MOV R1,#8DH ;读出年
LCALL READ
MOV 45H,R0
上一页 [1] [2] [3] [4] [5] [6] [7] [8] [9] [10] [11] 下一页
本文关键字:数码管 51单片机,单片机-工控设备 - 51单片机