PIC16F877 Sayı 3
PIC16F877 ile Analog /Digital çevirim işleminin nasıl yapılacağını öğrenmek isteyenler icin mükemmel bir yazı kaçırmayın! 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