21.08.2013 Views

Mikro Bilgisayarlı Sistem Tasarımı - Fırat Üniversitesi

Mikro Bilgisayarlı Sistem Tasarımı - Fırat Üniversitesi

Mikro Bilgisayarlı Sistem Tasarımı - Fırat Üniversitesi

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

Bu deney PIC lab kartında denenmek üzere hazırlanmıştır.<br />

****************************************************************<br />

Title “A/D çevrim uygulaması”<br />

list p=16f877<br />

#include ;MPASM standart değişken tanımları<br />

_CONFIG(_CP_OFF&WDT_ON&_PWRTE_OFF&_RC_OSC)<br />

errolevel-302 ;ignore error when storing to bank 1<br />

****************************************************************<br />

Değişken tanımları<br />

****************************************************************<br />

variable KRAM=0x03 CBLOK…ENDC<br />

cblock KRAM<br />

AN0 ;Analog değişkenler *AN0 EQU „20‟<br />

AN1 *ANI EQU „21‟<br />

AN3 *AN3 EQU‟22‟<br />

SAYAC<br />

Endc<br />

Variable KRAM=SAYAC+1<br />

****************************************************************<br />

org 0x03 ;program başlangıç adresi<br />

goto Basla<br />

****************************************************************<br />

Altprogramlar ve altprogram kitaplıkları<br />

#inlude ; Buton kontrol rutini<br />

#inlude;<br />

#include;<br />

****************************************************************<br />

A/D dönüştürmede dahili RC saati kullanılır. Okunan her kanal kendisine ait bir yazmaçta saklanmaktadır. A0<br />

kanalı yani RA0 bacağında okunan analog değer 8 bit olarak AN0 yazmacında saklanmaktadır.Aynı şekilde RA1<br />

bacağındaki değer AN1 , RA3 „deki değerse AN3 yazmacında saklanır.<br />

****************************************************************<br />

AN0_KanalınıOku<br />

Movlw b‟11000001‟ ; RC osilatör ve A0 kanalının seçilmesi.<br />

movwf ADCON0<br />

call Gecikme<br />

bsf ADCON0,GO ; A/D dönüştürme işlemini başlatan bit.<br />

btfsc ADCON0,GO<br />

goto $-1<br />

movf ADRESH,W<br />

movwf AN0<br />

return<br />

AN1_KanalınıOku<br />

movlw b‟11001001‟ ; RC osilatör ve A0 kanalının seçilmesi.<br />

movwf ADCON0<br />

call Gecikme<br />

bsf ADCON0,GO ;A/D dönüştürme işlemini başlatılmaktadır<br />

btfsc ADCON0,GO<br />

goto $-1<br />

movf ADRESH,W<br />

movwf AN1<br />

return<br />

AN3_KanalınıOku<br />

movlw b‟11011001‟ ; RC osilatör ve A0 kanalının seçilmesi.<br />

movwf ADCON0 ; birlikte seçilmesi<br />

call Gecikme<br />

bsf ADCON0,GO ; A/D dönüştürme işlemini başlatılmakta.<br />

btfsc ADCON0,GO<br />

goto $-1<br />

movf ADRESH,W<br />

movwf AN03<br />

İbrahim Türkoğlu, <strong>Fırat</strong> <strong>Üniversitesi</strong> - Elektronik ve Bilgisayar Eğitimi Bölümü, Elazığ- 2010. 133

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!