Ana Sayfa
Antrak Gazetesi
Eski Sayılar
Antrak Ana Sayfası
Yorumlariniz ve Sorularınız için mail adresimiz. Editör Burçak Çubukçu'ya bu adresten ulaşabilirsiniz


İnternette İlk 
Türk Amatör Telsiz Gazetesi

PIC16F877 / SAYI - 3

 


TA5CPO Adnan Işık
E-Mail: isikadnan@isikelektronik.com
Bu ay ki yazı dizimizde sizinle A/D  çeviri işleminin 16F877’le  nasıl    gerçekleştirildiğini  göreceğiz. Sade bir örnekle bunu inceleyelim. Bu devre potansiyometredeki analog değişimleri çıkışta dijital olarak binary şekilde 0 dan 255 e kadar saymaktadır. RA0 dan portundan girilen 0 la ......5 V arasındaki analog değişimleri 10 bit RB0 la RB7 arasında binary olarak sayısala dönüşüm işlemi ledlerle gözlenir ve program  MPLAB programı ile hem derlenir hem de simüle edilir. MPLAB programını www.microchip.com dan ücretsiz olarak temin edilebilir.


A/D çevirme işlemi 4 adet kaydediciyle yapılmaktadır.
· A/D yüksek kaydedicisi (ADRESH)
· A/D düşük kaydedicisi   (ADRESL)
· A/D kontrol kaydedici 0 (ADCON0)
· A/D kontrol kaydedici 1 (ADCON1)
 
 
 

ADCON0 kaydedicisi A/D işlemlerini kontrol registeri portlardan A0 A1 A2 A3 ün durumlarını belirler.
Bit 7-6 :ADCS1:ADCS0
             00=Fosc/2
  01=Fosc/8
  10=Fosc/32
  11=Frc
Bit 5-3 CHS2:CHS0
    000=kanal0,(RA0/AN0)
  001=kanal1,(RA1/AN1)
   010=kanal2,(RA2/AN2)
             011=kanal3,(RA3/AN3)
             100=kanal4,(RA4/AN4)
             101=kanal5,(RA5/AN5)
             110=kanal6,(RA6/AN6)
             111=kanal7,(RA7/AN7)
Bit 2:    GO/DONE
  If ADON=1
            1=A/D dönüştürerek ilerle
            0=A/D dönüştürmeden ilerle
Bit 1:   unimplemented:oku ‘0’
Bit 0:   ADON:A/D on bit
            1=A/D çevirici modülü çalıştır
            0=A/D çevirici modülü çalıştırma
 
 

;-         IŞIK ELEKTRONİK VE BİLİŞİM TEKNOLOJİLERİ          - 
;-          HARDWARE & SOFTWARE RESEARCH LABORATORY          -
;-            COPYRIGHT & COPYWRITE (C) 2001 
                                                                         TEL:0388 2322889
;- **********  DENEME  LED PROJECT ************         -
;-                       Ver 1.0                             -
;------------------------------------------------------------- 

 PROCESSOR 16F877
 INCLUDE P16F877.INC
 RADIX DEC
 __IDLOCS H'0100'
 __CONFIG _CP_OFF & _PWRTE_ON & _WDT_OFF & _BODEN_ON & _XT_OSC 

 ORG 0

  BCF STATUS,RP0 ; Bank 0
 BCF STATUS,RP1 ; Bank 0        0. sayfanın seçimi
 MOVLW B'00100000'
 MOVWF INTCON
 MOVLW B'00000000'
 MOVWF PORTA
 MOVLW B'00000000'
 MOVWF PORTB
  MOVLW B'00000000'
 MOVWF PORTC
 MOVLW B'00000000'
 MOVWF PORTD
 MOVLW B'00000000'
 MOVWF PORTE
 movlw B'01000001' ;Konum/8, A/D enabled
 movwf ADCON0

 BSF STATUS,RP0 ; Bank 1 
 BCF STATUS,RP1 ; Bank 1
 MOVLW B'10000111' ;TMR0 prescaler, 1:256 Bölme palsı
 MOVWF OPTION_REG
 MOVLW B'00001110' ;Left seçme,1 analog channel 
 MOVWF ADCON1
 MOVLW B'00000001'
 MOVWF TRISA
 MOVLW B'00000000'
 MOVWF TRISB
 MOVLW B'00000000'
 MOVWF TRISC
 MOVLW B'00000000'
 MOVWF TRISD
  MOVLW B'00000000'
 MOVWF TRISE
 BCF STATUS,RP0 ; Bank 0
 BCF STATUS,RP1 ; Bank 0
;-------------------------------------program baslangıcı-------------------------------------

MAIN
YENILE
 btfss INTCON,T0IF ;Bekleme  Timer0 to çikışı
 goto YENILE
 bcf INTCON,T0IF
 bsf ADCON0,GO ;basla A/D cevirmeye
Wait
 btfss PIR1,ADIF ;islem bitene kadar bekle
 goto Wait
 movf ADRESH,W ;yaz A/D sonuç to PORTD
 movwf RAM  ;LED displeye