adc

Başlatan silence_yener, 27 Kasım 2005, 22:22:18

silence_yener

selam arkadaslar,
adc li piclerin adc leri nasil kullaniliyor misal 16f877. yardimci olursaniz sevinirim.

XX_CİHAN_XX

Alıntı yapılan: "silence_yener"selam arkadaslar,
adc li piclerin adc leri nasil kullaniliyor misal 16f877. yardimci olursaniz sevinirim.
Yapacagın işlemler sırayla şunlar:
1 ADCON1 i kullanarak istediğiniz portları dijital / anolog / referans olarak ayarlayın 16f877 nın pdf ını ıncelersenız bu ayarlamaları yaparsınız.
2 ADCON1 in 7. bitini set edin.
3 ADCON0 ı kullanarak cevrim bolenlerını ve cevrim yapıcagınız kanalı secınız.
4 AD cevrim bitini on yapın
5 Cevrim yapmaya hazırız.Cevrimin baslamasını istediğiniz zaman adcon0 go/done bitini set edin.Cevrim basladı....
6 bu asamalardan sonra cevrımın bıtmesını beklıyeceksınız bunuda devamlı go/done bıtı sıfır oldu mu dıye sorarak ogrenıceksınız.Tabı adc cevrım kesmesını kullanırsanız bu sorguya gerek kalmaz.
Neyse go/done bıtı sıfırsa cevrım bıttı demektır.
ADRESL de olculen anolog verının dıjıtal olarak cevrılmıs alt byte olur.
ADRESH da yuksek degerlıklı olan 2 bit bulunur.
Bu bilgileri microchıp in sitesinden 16f877 nin pdf ini indirip ogrenebılırsınız
Kolay gelsin,
Yirmi yaşındaki bir insan, dünyayı değiştirmek ister . Yetmiş yaşına gelince , yine dünyayı değiştirmek ister, ama yapamayacağını bilir.

silence_yener

Tesekkur ederim...

camby

Bende de 16c72a var ve ADC okuyamadım birtürlü nerede yanlış yapıyorum?

Alıntı Yap;==========KONFİGÜRASYON===========

PRG      bsf               STATUS,5      
      movlw       0
      movwf      TRISB      
      movlw        b'00000001'
      movwf       TRISA      
      movlw      b'00000000'
      movwf      ADCON1      
      bcf               STATUS,5   
      movlw      b'00000001'
      movwf      ADCON0   
      clrf              PORTB      

;==========ANA PROGRAM============

TEKRAR      bsf      ADCON0,2             
      
ADCBEKLE           btfsc      ADCON0,2   
              GOTO   ADCBEKLE
              movf        ADRES,W      
              sublw   .122   
              btfsc      STATUS,0   
              bsf      PORTB,0         
              bcf      PORTB,0      
              CALL      BEKLE
              GOTO   TEKRAR
   END

Tagli

Birincisi A/D dönüştürücü clock kaynağı yanlış olabilir. Datasheet'te yazdığına göre bunun Tad denilen zamanın 1.6 us'den küçük olmayacağı bir şekilde ayarlanması gerekiyor. Veya kaynak olarak dahili RC osilatörü seçilerek sorun çıkmayacağından emin olmak mümkün. Bunun için ADCON0'a 11000001 yazmak gerekiyor.

İkinci nokta da acquisition time denilen bekleme süresi. Bu beklemenin kanal seçiminden sonra GO/DONE 1 yapılmadan önce yapılması gerekiyor. Bu süre voltaj, sıcaklık vs. ile değişmekle birlikte (ki formülü datasheette var) sanırım 10- 15 us yeterli olacaktır (yine datasheetteki örneğe göre).

Datasheet'in 51. sayfasında yapılması gerekenler adım adım anlatılmış. Başvurulması gereken birincil kaynak orası.
Gökçe Tağlıoğlu