dijital bir sensör değerinin 16f876 dan okunması

Başlatan a4tech33, 03 Mart 2015, 08:25:23

a4tech33

öncelikler günaydın abilerim, öğretmenlerim, ustalarım..

aynı yazılımın analoğ sensörle yaptığım projemde
'****************************************************************
Device 16F876

Xtal=20


Declare LCD_DTPin =PORTC.4
Declare LCD_RSPin =PORTC.1
Declare LCD_ENPin =PORTC.3
Declare LCD_Interface = 4
Declare LCD_Lines = 2
Declare LCD_Type = 0
Declare LCD_CommandUs = 2000
Declare LCD_DataUs = 50


Declare Adin_Res = 10
Declare Adin_Tad = 8_fosc
Declare Adin_Stime = 50
Dim SICAKLIK As Word
TRISA=%11111111
ADCON1 = %10000000
ADCON0 = %11000000
SICAKLIK = ADIn   0


basla:

AdcIn 3 , SICAKLIK
Print At 1,1, "SICAKLIK=", 5 , Dec  SICAKLIK

DelayMS 400

Cls
GoTo basla
End

şu yazılımı yapmış olup çalışmasına kendim şahit oldum hatta plakaya basıp denediğim için sizlere yeni projemi 3 4 gün ara vererek sormak zorunda kaldım




şimdiki projemin ana konusu  bu topic in başlığıdır




projemde değitirdiğim tek sey analog sensör yerine dijitalini koymuş olmam yeni yazdığım yazılım kitabında çok yardımı ile şu şekildedir




Device 16F876

Xtal=20


Declare LCD_DTPin =PORTC.4
Declare LCD_RSPin =PORTC.1
Declare LCD_ENPin =PORTC.3
Declare LCD_Interface = 4
Declare LCD_Lines = 2
Declare LCD_Type = 0
Declare LCD_CommandUs = 2000
Declare LCD_DataUs = 50


Dim TEMP As Word
Dim C As Byte
Dim CPERD As Byte
Cls

TRISA=%11111111
Symbol dQ = PORTA.3



basla:
OWrite dQ , 1 , [$CC,$44]
Repeat
DelayMS 25

ORead dQ , 4  ,[C]
Until C < > 0
OWrite dQ , 1 ,[$CC , $BE]
ORead dQ ,2,[TEMP.LowByte,TEMP.HighByte,C,C,C,C,C,CPERD]


Print At 1,1, Dec TEMP/ 100, ".",Dec2 TEMP,"",At 1 ,8 , "C"


GoTo basla
End



fakat yukardaki ısıs devremde gördüğünüz gibi ekran bomboş çıkıyor burdaki tanımlamalarımda yanlışı nerde yaptım çözmeye çalıştım sonra size sordum. şimdiden teşekkür ederim.

ferit06

PORTA.3 ü giriş olarak tanımlamanız okuma için yeterli olmayabilir. Digital olduğunuda belirtmelisiniz.

Maxim

analoğ değil analog :)

kodu incelemedim
keşke isis dosyasını verseydiniz denerdik

Declare All_Digital= true
yazıp deneyin belki porta.3 analog kalıyordur




a4tech33

yazıp denedim olmadı ısıs dosyasını atamadım yukarıda sadece temel resim yükleme modunu görüyorum oda ne yazıkki ısıs dosyasını almıyor. benm aklıma gelen herseyi denedim aslında neden olmuyor anlamıyorum. bu olmamalar iyiki beni pes ettirmiyor ama genede tıkanıyorum. ne güzel analogtaki
Declare Adin_Res = 10
Declare Adin_Tad = 8_fosc
Declare Adin_Stime = 50
Dim SICAKLIK As Word
TRISA=%11111111
ADCON1 = %10000000
ADCON0 = %11000000
SICAKLIK = ADIn   0

protokolleri hemen oldu ama dijitali neden okumadıkiiii

ferit06

#4
ADCON1 i datasheetin 112.ci sayfasındaki tabloya göre değiştir. yukarıdaki tanımlaman PORTA.3 analog....

Maxim

@a4tech33
isis dosyasını internette bir yerlere yüklemen lazım buraya koyamazsın
onu araştırıp yüklersen biz burada hemen devreni test edebiliriz
yoksa kimse 2 saat sıfırdan devre çizmez
hem senin işin çabucak çözülmüş olur

a4tech33


ferit06

#7
DS18B20 din DQ pinini 10 K ile pull-up yap.....


Düzeltme datasheets te 4K7 diyor..  simülasyonda 10 k ile çalışır ancak gerçek devrede 4K7 kullanman gerekir.

Maxim

bende hazır bir kod vardı onu kullandım uğraşmadan, şimdi çalışıyor
şemada ve kod içinde dikkat gereken etmen yerler var

-her kod içerisinde en üstte config tanımlamalarını mutlaka yapmalısın
-osc hızın ne ise isis te işlemci hızınıda öyle ayarlaman şart
-18b20 de pull-up direnci kullanmalısın (4K7)
-lcd nin 5 numaralı ayağını gnd ye verebilirsin

http://www.yukletr.com/download.php?file=2308398aea25c5dded38dae5efdbc43a

a4tech33




derece hiç değişmiyor bu sayı sabit kaldı bir de senin yolladığın ısıs i acınca şöyle bir sey geliyor





Maxim

heralde isis versiyon uyuşmazlığı var, bende düzgünce çalışıyor.
bendeki 7.10 SP0 versiyonu

a4tech33

olabilir devreyi yapıp deneyeceğim genede çok teşekkür ederim. son 1 sorum olacak şimdilik 12f675 te dahili osilatörü kullanmam için hangi kodu yazmam gerekir

Maxim

bu şekilde
Device 12F675
Declare Xtal=4
Config CPD_OFF,CP_OFF,BODEN_ON,MCLRE_OFF,PWRTE_ON,WDT_OFF,INTRC_OSC_NOCLKOUT

a4tech33





ABİ DEVREYİDE YAPTIM  ama bu dereceden başkasınıda göstermiyor aynı benim ısıstaki gibi sorun nedir acaba bir fikir verin oradan gideyim

Maxim