ds 1302 içerisinde saat ve takvim bilgileri yüklü olan entegredir, ds18b20 sıcaklık ölçümü yapan entegredir bu entegrelerle pic ile lcd ekranlı sıcaklık ve saat takvim devresi yapmak istiyorum fakat ds1302 ye ve ds18b20 için pic e hangi komutları(basic dilinde ) veirsem ekranda saat takvim ve sıcaklık değerlerini gösterebilirim lütfen yardım edin 2 senedir bunu yapabilmeye uğraşıyorum...(pin entegresi olarak farketmez ama 16f628 olabilir)
bu adresde picc ile yazılmış bir örnek var. amacın devreyi yapmak ise basic veya c farketmez diye düşünüyorum.
hocam harikasın amacım sadece devreyi yapnmak değil yaparken öğrenmek bu yüzden basic kodları olarak çözmeliyim anlayacağın amacım kendimi geliştirmek ama c nin açık kodlarından bişeyler anladım çok treşekkür ederim acayip işime yarayacak şimdi c deki bi kaç komutun basic teki karşılığını ve ne işe yaradığını söyleyen arkadaşlar bulmakta tekrardan teşekkür ettim.
#define
#include
#lcd_init
#rtc_set_datetime(6,5,8,2,52) ; // tarih saat ayarları yapılıyor
{ //Sıcaklık bilgisi okunuyor ve çevriliyor temp = ds1820_read();
rtc_get_time(saat,dakika,saniye);
rtc_get_date(gun,ay,yil,haftanin_gunu);
rtc_get_date(gun,ay,yil,haftanin_gunu);
cese printif break printif(lcd_ptc," %02d:%02d:%02d" ,saat dakika saniye );
yukarıda yazdığım c kodlarının basic karşılığını bilen varmı c kodlaını bilmiyorum basic kullanıyorum teşekkür ederim
PBP dilinde yazılmış.Pil olarak şarjlı pil kullandım.Devre enerjideyken pil şarj oluyor.
Include "MODEDEFS.BAS"
DEFINE OSC 4
DEFINE LCD_DREG PORTB DEFINE LCD_DBIT 4 DEFINE LCD_EREG PORTB DEFINE LCD_EBIT 3 DEFINE LCD_RSREG PORTB DEFINE LCD_RSBIT 2 DEFINE LCD_BITS 4 DEFINE LCD_LINES 2 DEFINE LCD_COMMANBUS 2000 ;komut gecikme süresi mikrosaniye olarak DEFINE LCD_DATAUS 50 ;veri gecikme süresi mikrosaniye olarak
DAKIKA VAR Byte SAAT VAR Byte HAFTA VAR Byte GUN VAR Byte AY VAR Byte YIL VAR Byte SAY VAR Byte SANIYE VAR Byte TARIH VAR Byte KONTROL VAR Byte SAYI var Byte SAYILAR VAR BYTE
BAS1 VAR Byte BAS2 VAR Byte BAS3 VAR Byte BAS4 VAR Byte
ARA VAR BYTE SINYAL VAR BIT
Busy VAR BIT ' Busy Status-Bit HAM VAR WORD ' Sensör HAM okuma değeri ISI VAR WORD ' Hesaplanmış ISI değeri Float VAR WORD ' Holds remainder for + temp C display X VAR WORD SIGN_BITI VAR HAM.Bit11 ' +/- sıcaklık İşaret biti, 1 = olursa eksi sıcaklık NEGAT_ISI CON 1 ' Negatif_Cold = 1 Deg CON 223 ' ° işareti SIGN VAR BYTE ' ISI değeri için +/- işaret TEMP VAR BYTE ' Div32 bit hesap için geçici değişken
RESET1 VAR PORTC.0 DTA VAR PORTC.1 SCLK VAR PORTC.2
SET VAR PORTD.0 YUKARI VAR PORTD.1 ASAGI VAR PORTD.2
SINYAL=0
SARJ var byte RTCCmd VAR BYTE
;CMCON=7 '16F628 de komparatör pinleri iptal hepsi giriş çıkış ADCON1=7
Tric CON %10010000
'Trickle time charger settings O_FF CON %11110000 'turns off trickle charge D1R1 CON %10100101 '1 diode 1 resistor D1R2 CON %10100110 '1 diode 2 resistor D1R3 CON %10100111 '1 diode 3 resistor D2R1 CON %10101001 '2 diode 1 resistor D2R2 CON %10101010 '2 diode 2 resistor D2R3 CON %10101011 '2 diode 3 resistor
Symbol COMM_PIN=PORTC.3 ' One-wire Data-Pin "DQ" PortB.0 da ;Comm_Pin VAR PortB.4 ' One-wire Data-Pin "DQ" PortB.0 da
SARJ = D1R2 'changes this variable to off or the setting that you want the ds1302 to charge at see data sheet RTCCmd = TRIC GOSUB trick
case 1 lcdout $fe,$CB,"Pts. " case 2 lcdout $fe,$CB,"Sal",7," " case 3 lcdout $fe,$CB,5,"ar. " case 4 lcdout $fe,$CB,"Per. " case 5 lcdout $fe,$CB,"Cuma " case 6 lcdout $fe,$CB,"Cts. " case 7 lcdout $fe,$CB,"Pazar" end select