设计的汇编程序 求大神给出详细解释 高分
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 展开
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 展开
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询