网站公告列表     本站开通全国范围代收货款业务,详情请点击  [dycxin  2008年5月14日]        
加入收藏
设为首页
联系站长
您现在的位置: EDA加油站 >> 51单片机 >> 实验板DIY >> 初级实验板 >> 正文
  [推荐]DS1302子程序(时钟芯片)          【字体:
DS1302子程序(时钟芯片)
DS1302子程序(时钟芯片)
作者:admin    51单片机来源:网络    点击数:    更新时间:2007-8-4    
;DS1302时钟芯片
;说明:
;入口条件: 日(30H) 月(31H) 年(32H)
;      秒(30H) 分(31H) 时(32H)
;           星期(30H)
;出口信息: 日(30H) 月(31H) 年(32H)
; 秒(30H) 分(31H) 时(32H)
; 星期(30H)
;影响资源:PSW、R7、A    堆栈需求: 6字节

DS_SCK BIT P1.6
DS_RST BIT P3.5
DS_IO BIT P1.7
READ_HMS:            ;读时钟芯片的时分秒
CLR DS_IO
JB DS_IO, READ_HMS_END
MOV A, #81H
LCALL DS_READ1
MOV 30H, A
MOV A, #83H
LCALL DS_READ1
MOV 31H, A
MOV A, #85H
LCALL DS_READ1
MOV 32H, A

CLR DS_RST
MOV A, 30H
CLR C
SUBB A, #60H
JC READ_HMS_END
MOV 30H, #00H
LCALL SET_HMS
READ_HMS_END:
RET
READ_WEEK:                   ;读时钟芯片的星期
CLR DS_IO
JB DS_IO, READ_WEEK_END
MOV A, #8BH
LCALL DS_READ1
MOV 32H, A
READ_WEEK_END:
RET
DS_SEND1:
CLR DS_RST
CLR DS_SCK
NOP
NOP
NOP
SETB DS_RST
LCALL DS_SEND
MOV A, 10H
LCALL DS_SEND
RET
SET_YMD: ;去除写保护----写时钟芯片的年月日
MOV A, #8EH
MOV 10H, #00H
LCALL DS_SEND1
MOV A, #8CH
MOV 10H, 32H
LCALL DS_SEND1
MOV R0, #86H
MOV R1, #30H
MOV R6, #02H
LJMP NEXT_WRITE_SP
RET
SET_HMS:                    ;去除写保护-----写时钟芯片的时分秒
MOV A, #8EH
MOV 10H, #00H
LCALL DS_SEND1

MOV R0, #80H
MOV R1, #30H
MOV R6, #03H
LJMP NEXT_WRITE_SP
SET_WEEK:                      ;写时钟芯片的星期
MOV A, #8EH
MOV 10H, #00H
LCALL DS_SEND1
MOV A, #8AH
MOV 10H, 30H
LCALL DS_SEND1
RET
NEXT_WRITE_SP:
MOV A, R0
MOV 10H, @R1
LCALL DS_SEND1
INC R0
INC R0
INC R1
DJNZ R6, NEXT_WRITE_SP
MOV A, #8EH ;打上写保护
MOV 10H, #80H
LCALL DS_SEND1
CLR DS_RST
RET
NEXT_READ_SP:
MOV A, R1
LCALL DS_READ1
MOV @R0, A
INC R1
INC R1
INC R0
DJNZ R6, NEXT_READ_SP
CLR DS_RST
RET
READ_YMD:           ;读时钟芯片的年月日
MOV A, #8DH
LCALL DS_READ1
MOV 32H, A
MOV R1, #87H
MOV R6, #02H
MOV R0, #30H
LJMP NEXT_READ_SP
RET
DS_SEND: ;发命令
MOV R7, #08H
NEXT_BIT:
NOP
NOP
NOP
RRC A
MOV DS_IO, C
SETB DS_SCK
NOP
NOP
NOP
NOP
NOP
CLR DS_SCK
NOP
NOP
NOP
NOP
NOP
DJNZ R7, NEXT_BIT
RET
DS_READ: ;收数据
MOV R7, #08H
NEXT_BIT1:
NOP
NOP
NOP
MOV C, DS_IO
RRC A
SETB DS_SCK
NOP
NOP
NOP
NOP
NOP
CLR DS_SCK
NOP
NOP
NOP
NOP
NOP
DJNZ R7, NEXT_BIT1
RET
DS_READ1:
CLR DS_RST
CLR DS_SCK
NOP
NOP
NOP
SETB DS_RST
LCALL DS_SEND
LCALL DS_READ
RET 
51单片机录入:dycxin    责任编辑:dycxin 
  • 上一个51单片机:

  • 下一个51单片机:
  • 发表评论】【加入收藏】【告诉好友】【打印此文】【关闭窗口
    最新热点 最新推荐 相关文章
    SMC1602A液晶显示器子程序
    实时时钟DS1302读写程序(C51…
    时钟芯片DS1302和MCS51单片机…
    部分网上实验板例程(C51)-仅…
      网友评论:(只显示最新10条。评论内容只代表网友观点,与本站立场无关!)
    EDA加油站|我要EDA网|山东电子网--东营市荣燕商贸有限公司版权所有! 站长:阿荣
    联系电话:0546-7870320,13371507828 电邮:51edacn@163.com
    山东东营西城济南路百祥电脑商城B302室 邮编:257000 鲁ICP备07018763号  鲁ICP备07000091号 鲁ICP备05003434号
    公司帐号:1615011209000037682 户名:东营市荣燕商贸有限公司 开户行:工行西城支行石油大学分理处