设计的汇编程序 求大神给出详细解释 高分

WR1302:;程序名MOVDS1302_ADDR,#8EH;终止写入MOVDS1302_DATA,#00H;允许写1302LCALLWRITEMOVDS1302_ADD... WR1302: ;程序名
MOV DS1302_ADDR,#8EH ;终止写入
MOV DS1302_DATA,#00H ;允许写1302
LCALL WRITE
MOV DS1302_ADDR,#80H
MOV DS1302_DATA,#80H ;1302停止振荡
LCALL WRITE
MOV DS1302_ADDR,#8CH ;年写入1302
MOV DS1302_DATA,YEAR
LCALL WRITE
MOV DS1302_ADDR,#88H ;月写入1302
MOV DS1302_DATA,MONTH
LCALL WRITE
MOV DS1302_ADDR,#86H ;日写入1302
MOV DS1302_DATA,DAY
LCALL WRITE
MOV DS1302_ADDR,#84H ;时写入1302
MOV DS1302_DATA,HOUR
LCALL WRITE
MOV DS1302_ADDR,#82H ;分写入1302
MOV DS1302_DATA,MIN
LCALL WRITE
MOV DS1302_ADDR,#80H ;秒写入1302 ;重新开始振荡
MOV DS1302_DATA,SEC
LCALL WRITE

RET

WRITE:
CLR T_CLK ;初始化引脚值
NOP
SETB T_RST
NOP
MOV A,DS1302_ADDR ;放入寄存器A
MOV R4,#8 ;设置计数 8
WRITE1:
RRC A
CLR T_CLK ;上升沿读取指令
NOP
MOV T_IO,C
NOP
SETB T_CLK
NOP
DJNZ R4,WRITE1
CLR T_CLK
NOP
MOV A,DS1302_DATA
MOV R4,#8
WRITE2: RRC A
NOP
CLR T_CLK ;上升沿写入值
NOP
MOV T_IO,C
NOP
SETB T_CLK ;
DJNZ R4,WRITE2
CLR T_RST
RET
展开
 我来答
百度网友7247a56
2014-01-07 · TA获得超过4616个赞
知道大有可为答主
回答量:1422
采纳率:92%
帮助的人:483万
展开全部
对着1302的数据手册中的时序图去看,你会发现其实很简单。代码就是根据时序图写的。
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

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

类别

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

说明

0/200

提交
取消

辅 助

模 式