返回雅虎首页
雅虎数码 > 业界 > IT产业 > 正文

DS1302+AT89S51构成的万年历三(1)

  • 2007-05-22 13:36:05
  • 点击:0
  • 评论:0
  • 好评:0
  • 坏评:0
  • 第1页/共5页 << 上一页 | 下一页 >>
侠客:yanchen.zhu
“雅虎侠客”经典推荐文章
专题:足球明星都用什么手机?
专题:搜寻电影中的明星手机
专题:谴责五大品牌坑人手机
专题:数码!美女!谁更诱惑?
专题:诺基亚全面展开夏季攻势
【参赛】五一电脑城购物心得
【参赛】美丽的青海湖 清凉一夏的诱惑
【参赛】恒基伟业手机—又一胡师傅?
【参赛】如何鉴别行、欧水、港行机子
【参赛】睁开慧眼,看服务提供商的黑招

DS1302+AT89S51构成的万年历(源程序三);

*****************************************************************
;
DS1302读数据或者写数据到DS1302子程序
;
入口信息:R0中的内容是CPU_RAM中的块数据的首地址 (从高地址开始)
; R7
中的内容是块数据中有多少个数
; B
中的内容是DS1302中的块数据的首地址(从低地址开始)
; R_OR_W
是从DS1302读数据还是写数据到DS1302的位标志( R_OR_W=0,写数据.

R_OR_W=1,读数据)
;
出口信息:
;
影响资源:
;
占用资源:
;****************************************************************

RW_RTC: NOP;

RTC_1: CLR SCLK
NOP
SETB RST
MOV R6,#8
MOV A,B
RTC_2: CLR SCLK
RRC A
MOV IO,C
NOP
SETB SCLK
DJNZ R6,RTC_2;
等八位都送完

MOV R6,#8
JNB R_OR_W,RTC_3;
如果R_OR_W=0就跳转,也就是写数据
R_RTC: CLR SCLK
NOP
MOV C,IO;
读数据
RRC A
SETB SCLK
DJNZ R6,R_RTC;
等八位都读完

CJNE R0,#YEAR_SG,A1;
JB WEEK_BIT,A1;
MOV WEEK,A;
SETB WEEK_BIT;
INC R0;
AJMP RTC_6;
A1: MOV @R0,A;
SJMP RTC_6

RTC_3: NOP;
CJNE R0,#YEAR_SG,B1;
JB WEEK_BIT,B1;
MOV A,WEEK;
SETB WEEK_BIT;
INC R0;
AJMP W_RTC;
B1: MOV A,@R0;
取要写的数
W_RTC: CLR SCLK
RRC A;
MOV IO,C;
写数据
NOP
SETB SCLK
DJNZ R6,W_RTC;
等八位都写完

RTC_6: DEC R0;NEXT DATA/ADDRESS. (R0=#SECSG,SECSG=37H,

MINSG=36H........YEARSG=31H)
MOV A,B
ADD A,#00000010B;ADDRESS+1.
MOV B,A;
CLR RST
NOP
CLR SCLK
DJNZ R7,RTC_1;
等七个数都读完
NOP
RET
;**************************************************************
;
初始化DS1302子程序

  • 点击:0
  • 评论:0
  • 好评:0
  • 坏评:0

最新评论

内容 网友 时间

发表评论

您必须登陆后发表评论
登录  新用户?注册