;================================================
;DS1302控制子程序
;=================================================
;程序包括:DS1302初始化,时间数据写入和读取程序
;DS1302_init ;init ds1302
;Set_DS1302 ;set time to ds1302
;Get_DS1302 ;get time from ds1302
;=================================================
;============== 1302定义 ===========================================
#DEFINE T_IO PORTE,2 ;1302 I_O
#DEFINE T_CLK PORTE,1 ;1302时钟
#DEFINE T_RST PORTE,0 ;1302使能位
#DEFINE DS1302_RX 20H ;保存接受的1个数据
#DEFINE DS1302_TX 28H ;准备写入到DS1302的一个数据
counter equ xxxh
cnt equ xxxh
;**************************************************
; DS1302初始化程序
;**************************************************
DS1302_init
;未写
return
;**********************************************************
;子程序名:Set_DS1302
;功 能:设置DS1302 初始时间,并启动计时。
;说 明:
;调 用:Write_byte
;入口参数:初始时间在:W_Second,W_Minute,W_Hour,W_Day,W_Month,W_Week.W_YearL(地址连续)
;出口参数:无
;消耗资源:counter,SecAddr(预定义)
;设 计:zhengYanbo 日 期:2005.4.21
;修 改: 日 期:
;**********************************************************
Set_DS1302:
bcf T_RST
bcf T_CLK
bsf T_RST
movlw 8eh
movwf DS1302_TX ;数据发送寄存器
call Write_byte ;发送字节
movlw 00h ;WP=0
movwf DS1302_TX
call Write_byte
bsf T_CLK
bcf T_RST
movlw W_Second
movwf FSR
movlw counter,D’7’
movlw 80h
movwf SecAddr ;秒写地址
S13021:
bcf T_RST
bcf T_CLK
bsf T_RST
movf SecAddr,W
movwf DS1302_TX
call Write_byte ;写秒地址
movf INDF,W
movwf DS1302_TX
call Write_byte ;写秒数据
incf FSR
incf SecAddr
incf SecAddr
bsf T_CLK
bcf T_RST
decfsz counter,F
goto S13021
bcf T_RST
bcf T_CLK
bsf T_RST
movlw 8eh ;控制寄存器
movwf DS1302_TX
call Write_byte
movlw 80h ;控制WP=1,写保护
movwf DS1302_TX
call Write_byte
bsf T_CLK
bcf T_RST
return
[1] [2] [3] 下一页
本文关键字:程序 接口 PIC单片机,单片机-工控设备 - PIC单片机