Code:
SetTimeAndDate:
yr=0:date =0:mon =0:day=0:hr=0:mins=0:sec=0 'Clear RTC variables
A1sec=0:A1MINs=0:A1hr=0:A1day=0
A2MINS=0:A2hr=0:A2day=0
yr=$08 'This section sets the RTC Variables
mon=$06
date=$02
day=$01
hr=$19
mins=$20
sec=$30
A1hr=$10
A1MINS=$00
A1SEC=$00
A1day=%10000000
A2hr=$22
A2MINS=$00
A2day=%10000000
Pause 10
wRITE 5,1 'Write TO eeprom DST flag value (0 = EST 1 = DST)
pause 20
I2CWrite SDA, SCL, RTC, SecReg,[sec,mins,hr,day,date,mon,yr] '**Set the main Time
Pause 20
I2CWrite SDA, SCL, RTC, Alm1sec,[A1sec,A1MINs,A1hr,A1day] '**Set Alarm1 Time
Pause 20
I2CWrite SDA, SCL, RTC, Alm2min,[A2MINs,A2hr,A2day] '**Set Alarm2 Time
Pause 20
I2CWrite SDA, SCL, RTC, StatusReg,[%00000000] '**Clear Status Register
PAUSE 20
I2CWrite SDA, SCL, RTC, ContReg,[%00000111] '**Set Control Register for Alarm1 & Alarm2 outputs separately
Pause 20
Return
' This routine resets the status register after an alarm event
Clear_Status:
I2CWrite SDA, SCL, RTC, StatusReg,[%00000000] 'Reset Alarm output from DS1337
PAUSE 20
return
Display_Time:
B2 = 0
I2CRead SDA, SCL, RTC, SecReg,[sec,MINs,hr,day,date,mon,yr] '**Get current time
pause 20
I2Cread SDA, SCL, RTC, Alm1sec,[A1sec,A1MINs,A1hr,A1day] '**Get Alarm1 Time
Pause 20
I2Cread SDA, SCL, RTC, Alm2min,[A2MINs,A2hr,A2day] '**Get Alarm2 Time
serout2 LCD,Baud,[I,Clr]
serout2 LCD,Baud,[I,Line1," ",hex2 mon,"/",hex2 date,"/",hex2 yr," ",HEX2 hr,":",HEX2 MINs,":",Hex2 sec]
Serout2 LCD,Baud,[I,Line2,"Alarms: ",HEX2 A1hr,":",hex2 A1MINs," ",Hex2 A2hr,":",Hex2 A2MINs]
HTH,
Bookmarks