MOVwf DS1302_TX
call Write_byte
bsf T_CLK
bcf T_RST
return
;**********************************************************
;子程序名:Get_DS1302
;功 能:从DS1302 读时间
;说 明:
;调 用:Write_byte,Read_byte
;入口参数:时间保存在:R_Second,R_Minute,R_Hour,R_Day,R_Month,R_Week.R_YearL
;出口参数:无
;消耗资源: counter,SecAddr(预先定义)
;设 计:zhengYanbo 日 期:2005.4.21
;修 改: 日 期:
;**********************************************************
Get_DS1302:
MOVlw R_Second ;准备地址
MOVwf FSR
MOVlw D’7’
MOVwf counter
MOVlw 81h ;秒读地址
MOVwf SecAddr
G13021
bcf T_RST
bcf T_CLK
bsf T_RST
MOVf SecAddr,W
MOVwf DS1302_TX
call Write_byte
call Read_byte
MOVf DS1302_RX,W
MOVwf INDF
incf FSR
incf SecAddr
incf SecAddr
bsf T_CLK
bcf T_RST
decfsz counter,F ;接受7个数据
goto G13021
return
;**********************************************************
;功 能:写1302一字节 (内部子程序)
;入口:数据预先在DS1302_TX中
;出口:无
;消耗资源:cnt(预先定义)
;**********************************************************
Write_byte
MOVlw D’8’
MOVwf tmp_cnt
W_shift
rrf DS1302_TX,F ;带C移位(低位在前)
btfsc STATUS,C
goto send_1
bcf T_IO
goto send_0
send_1
bsf T_IO
send_0
bsf T_CLK ;上升沿写
nop
bcf T_CLK
decfsz cnt,F
goto W_shift
return
;**********************************************************
;功 能:读1302一字节 (内部子程序)
;入口:无
;出口:数据保存在DS1302_RX中
;消耗资源:cnt(预先定义)
;**********************************************************
Read_byte
bsf STATUS,RP0 ;bank1
bsf TRISE,2 ;设置串行数据口为输入
bcf STATUS,RP0 ;bank0
MOVlw D’8’
MOVwf cnt
R_shift
btfsc T_IO
goto get_1
上一页 [1] [2] [3] 下一页
本文关键字:单片机 子程序 PIC单片机,单片机-工控设备 - PIC单片机