ds 1302

Başlatan darkman2, 22 Haziran 2004, 12:07:08

darkman2

slm arkadaşlar elinde ds1302 için Pic Basic Pro kaynak kodu olan var mı ??

ete

Aşağıdaki kodu bir incele bakalım. Aradığın her şey var.

ETE

'-------------------------- Clock Variables ---------------------------------

rst var portb.2 ' DS1302 Reset Pin
clk var portb.1 ' DS1302 Clock Pin
dq var portb.0 ' DS1302 Data Pin

'----------------------- Write Commands For DS1302 --------------------------

writectrl con $8E ' Control byte
writeram con $80 ' Write to RAM
writeprotect con $00 ' Write-protect DS1302
writesec con $80 ' Write seconds
writemin con $82 ' Write minutes
writehour con $84 ' Write hour
writedate con $86 ' Write date
writemonth con $88 ' Write month
writeyear con $8C ' Write year

'------------------------- Read Commands For DS1302 -------------------------

readsec con $81 ' Read seconds from DS1302
readmin con $83 ' Read minutes from DS1302
readhour con $85 ' Read hours from DS1302
readdate con $87 ' Read date from DS1302
readyear con $8D ' Read year from DS1302
readmonth con $89 ' Read month from DS1302

'------------------------------ Time Variables ------------------------------

mem var byte ' Temporary data holder
outbyte var byte ' Second byte to ds1302
reg_adr var byte ' First byte to DS1302
date var byte ' Date variable
ss var byte ' Seconds variable
mm var byte ' Minutes varibale
hh var byte ' Hours variable
mo var byte ' Month variable
yr var byte ' Year variable

'------------------------ Initial Settings For Ports ------------------------

low rst ' Set reset pin low
low clk ' Set clock pin low

trisb = 0
trisa = 0

'----------------------- Set Initial Time Variables -------------------------

if portb.4 = 1 then START ' Set inital clock start up if jumper is present
reg_adr = writectrl ' Set to control byte 
outbyte = writeprotect ' Set turn off protection
gosub w_out ' Send both bytes
reg_adr = writesec ' Set to write seconds register
outbyte = $00 ' Set to write 00 to seconds register
gosub w_out
reg_adr = writemin
outbyte = $30
gosub w_out
reg_adr = writehour
outbyte = $00
gosub w_out
reg_adr = writedate
outbyte = $01
gosub w_out
reg_adr = writemonth
outbyte = $01
gosub w_out
reg_adr = writeyear
outbyte = $00
gosub w_out
reg_adr = writectrl
outbyte = writeprotect
gosub w_out

start:
reg_adr = readsec ' Read seconds
gosub w_in
ss = mem
reg_adr = readmin ' Read minutes
gosub w_in
mm = mem
reg_adr = readhour ' Read Hours
gosub w_in
hh = mem
reg_adr = readyear ' Read Year
gosub w_in
yr = mem
reg_adr = readdate ' Read Date
gosub w_in
date = mem
reg_adr = readmonth ' Read Month
gosub w_in
mo = mem
lcdout $fe,1,"TIME:",HEX2 hh,":",HEX2 mm,":",HEX2 ss
pause 500
goto start

'----------------------- Time Commands Subroutines --------------------------

w_in:
mem = reg_adr ' Set mem variable to reg_adr contents
high rst ' Activate the DS1302
shiftout dq,clk,0, [mem] ' Send control byte
shiftin dq,clk,1, [mem] ' Retrieve data in from the DS1302
low rst ' Deactivate DS1302
return 

w_out:
mem = reg_adr ' Set mem variable to reg_adr contents
high rst ' Activate the DS1302
shiftout dq,clk,0, [mem] ' Send control byte
mem = outbyte ' Set mem variable to outbyte contents
shiftout dq,clk,0, [mem] ' Send data stored in mem variable to DS1302
low rst ' Deactivate DS1302
return
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com

darkman2

Çok teşekkürler dostum inceliycem ellerine sağlık ben 1302 ye yeni başladım daha tam tanımıyorum 1302 yi elinde link falan varsa burada yazabilirsen çok sevinirim

tekrar teşekkürler

ete

Aslında PBPro için tek kaynak verdiğim. Işı geliştirmen için aşağıdaki adresleride bir incele.

http://www.phanderson.com/stamp/ds1302_des.html

http://forums.basicmicro.net/ShowPost.aspx?PostID=6043

http://www.basicmicro.com/downloads/docs/DS1302RTC.pdf


Aslında Google ile aratırsan daha pek çok kaynak var. Ancak Pic Basic Pro konusunda fazla bir şey yok. Aslında işin temeli DataSheetinde açıklanıyor. Dolayısıyla fazla birşeye ihtiyacın yok. İlk örnek ve datasheeti incelersen işi başarırsın sanırım.

Kolay Gelsin
ETE
Bilgi hazinedir paylaştıkça büyür.            http://etepic.com