DS1302-51单片机汇编程序.doc
文本预览下载声明
DS1302汇编程序,51单片机汇编程序,仅需修改引脚定义即可。晶振大小12M,程序测试完全正确。
;端口引脚定义区
SCLK BIT P3.6 ;1302时钟线
IO BIT P3.4 ;1302数据线
RST BIT P3.5 ;1302复位线
;变量声明区
ALL_FLAG EQU 20H ;标志位
SEC EQU 32H ;秒
MIN EQU 33H ;分
HOUR EQU 34H ;时
DAY EQU 35H ;日
MON EQU 36H ;月
WEEK EQU 37H ;星期
YEAR EQU 38H ;年
DS_DAT EQU 39H
DS_ADD EQU 3AH
DS_DATA EQU 3BH
/*****************************************
延时函数,延时时间为DELAYED*0.5毫秒 0~100毫秒的延时
*****************************************/
DELAY_MS:
MOV R7,DELAYED
D1: MOV R6,#0F8H
D2: DJNZ R6,D2
DJNZ R7,D1
RET
/*****************************************
延时函数,延时时间为DELAYED*2微秒 0~500微秒的延时
*****************************************/
DELAY_US:
MOV R7,A
DU1:
DJNZ R7,DU1
RET
/*****************************************
DS1302写字节函数
*****************************************/
DS_W_BYTE:
MOV R0,#08
MOV A,DS_DAT
DS_W1:
RRC A
MOV IO,C
CLR SCLK
NOP
SETB SCLK
DJNZ R0,DS_W1
RET
/*****************************************
DS1302读字节函数
*****************************************/
DS_R_BYTE:
SETB IO
MOV A,#00H
MOV R0,#08
CLR SCLK
DS_R1:
MOV C,IO
RRC A
SETB SCLK
NOP
CLR SCLK
DJNZ R0,DS_R1
MOV DS_DAT,A
RET
/*****************************************
DS1302读数据函数
入口地址存至DS_ADD;读取到的数据存入DS_DAT
*****************************************/
DS_R_DAT:
CLR RST
NOP
CLR SCLK
NOP
SETB RST
NOP
MOV DS_DAT,DS_ADD
LCALL DS_W_BYTE
LCALL DS_R_BYTE
SETB SCLK
CLR RST
RET
/*****************************************
DS1302写数据函数
入口地址DS_ADD,入口数据DS_DATA
*****************************************/
DS_W_DAT:
CLR RST
NOP
CLR SCLK
NOP
SETB RST
NOP
MOV DS_DAT,DS_ADD
LCALL DS_W_BYTE
MOV DS_DAT,DS_DATA
LCALL DS_W_BYTE
MOV DS_DAT,A
SETB SCLK
CLR RST
RET
/*****************************************
DS1302读时间函数
入口地址DS_ADD,
**************************************
显示全部