如何利用ds1302的时序图来编写汇编语言:

本人打算利用AT89S52和DS1302编写一时钟程序,AT89S52用12MHZ,DS1302用32.768kHZ,可是读写DS1302的时候由于AT89S52的速度快... 本人打算利用AT89S52和DS1302编写一时钟程序,AT89S52用12MHZ,DS1302用32.768kHZ,可是读写DS1302的时候由于AT89S52的速度快很多,需要延时,但具体怎么延时,用几个NOP不怎么明白,哪位高手指点一下,最好能举个列子说明下,谢谢 展开
 我来答
tony_sgt
2010-08-30 · TA获得超过8423个赞
知道大有可为答主
回答量:5330
采纳率:66%
帮助的人:1200万
展开全部
给你当参考..
;************** DS1302 端口位定义 **************
IO_DATA BIT P1.1 ; 数据传送总线
SCLK BIT P1.0 ; 时钟控制总线
RST BIT P1.2 ; 复位总线

;--------------------------------------------
;DS1302 初始化子程序
; (R0)=数据 (R1)=地址
;--------------------------------------------
PROSET:
CLR RST ;DS1302复位
CLR SCLK
NOP
NOP
SETB RST
MOV R1,#90H ;写充电寄存器
MOV R0,#0ABH
LCALL WRITE
RET

;================================================
;写 DS1302 子程序
;================================================
WRITE:
CLR SCLK
NOP
NOP
SETB RST
NOP
MOV A,R1
MOV R2,#08H
WRI_01:
RRC A ;传输地址到DS1302
NOP
NOP
CLR SCLK
NOP
NOP
MOV IO_DATA,C
NOP
NOP
SETB SCLK
NOP
NOP
DJNZ R2,WRI_01
CLR SCLK
NOP
NOP
MOV A,R0
MOV R2,#08H
WRI_02:
RRC A ;传输数据到DS1302
NOP
CLR SCLK
NOP
NOP
MOV IO_DATA,C
NOP
NOP
SETB SCLK
NOP
NOP
DJNZ R2,WRI_02
CLR SCLK
NOP
NOP
CLR RST
NOP
NOP
RET
;=================================================
;读 DS1302 子程序
;=================================================
READ:
CLR SCLK
NOP
NOP
SETB RST
NOP
NOP
MOV A,R1
MOV R2,#08H
READ_01:
RRC A
NOP ;先传输地址到DS1302
MOV IO_DATA,C
NOP
NOP
SETB SCLK
NOP
NOP
CLR SCLK
NOP
NOP
DJNZ R2,READ_01
NOP
NOP
SETB IO_DATA
CLR A
CLR C
MOV R2,#08H
READ_02:
CLR SCLK
NOP
NOP
MOV C,IO_DATA
NOP
NOP
RRC A ;再从DS1302接收数据
NOP
NOP
SETB SCLK
NOP
NOP
DJNZ R2,READ_02
MOV R0,A
CLR RST
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

RET
意法半导体(中国)投资有限公司
2023-06-12 广告
STM32F103C8T6是一款基于ARM Cortex-M3内核的微控制器,具有以下基本参数:1. 工作频率:72MHz2. 外部时钟:最高可达120MHz3. 存储器容量:64K bytes4. 数据总线宽度:32位5. 输入/输出端口... 点击进入详情页
本回答由意法半导体(中国)投资有限公司提供
庭超
2010-08-28 · 超过10用户采纳过TA的回答
知道答主
回答量:60
采纳率:0%
帮助的人:20.4万
展开全部
一个nop也不要。只要根据资料里的延迟时间延迟就可以了。
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
神经火光
2010-08-28 · TA获得超过101个赞
知道答主
回答量:79
采纳率:100%
帮助的人:48.3万
展开全部
举例,你还是上网搜文库里面的内容吧,资料很多的
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式