adc uygulaması hakkında

ilker

Üye
Katılım
26 Eyl 2006
Mesajlar
73
Puanları
1
Yaş
40
merhabağlar
ben bir konuda bilgi almak istiyorum.yardımcı olabilirseniz sevinirim.
be ccs c de program yazıyorum ve sorum adc uygulamasından; ra0 ucundan analog sinyal verip dijitale çevirip kullanırken ra1 ucundanda başkabir analog sinyal verip aynı pic in başka uçlarını da kullanabilirmiyim. eğer öyleyse nasıl yapabilirim bu işi hangi komutları kullanarak ya da değiştirerek. Mesala aşşağıdaki programda örnek verirsek ra0 ucundaki voltaj1.97 ile 4 volt arsında ise rb0 ucunu high yap diyoruz. ra1 ucundaki voltajda eğer 2 ise rb3 ucunu high yap nası deriz.
Kod:
/************************************************** ****
PIC16F877A ile Analog Voltaj Kesmesi
PIC PROG/DEKA : Port B jumper'ı LED konumunda olmalı
************************************************** *****/

#include <16F877A.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.
#device ADC=10


// Denetleyici konfigürasyon ayarları
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

#use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

//#use fast_io(a) //Port yönlendirme komutları A portu için geçerli
//#use fast_io(b)
int i ;

long deger,max,min, bilgi;
float voltaj;

/********* ANA PROGRAM FONKSİYONU********/
void main ( )
{
setup_psp(PSP_DISABLED); // PSP birimi devre dışı
setup_spi(SPI_SS_DISABLED); // SPI birimi devre dışı
setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
setup_CCP1(CCP_OFF); // CCP1 adc(ADC_OFF);birimi devre dışı
setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı


set_tris_b(0x00); // B portu komple çıkış
output_b(0);

setup_adc_ports(RA0_ANALOG);
setup_adc(adc_clock_internal); 
set_adc_channel(0); 

while (true) 
{

bilgi=read_adc();
voltaj=0.0048828125*bilgi;
delay_us(100);
if ((voltaj>=1.97) && (voltaj<=4))

{
output_high(PIN_B0);


TEŞEKKÜRLER...
 
Moderatör tarafında düzenlendi:
Bu siteyi kullanmak için çerezler gereklidir. Siteyi kullanmaya devam etmek için onları kabul etmelisiniz. Daha fazla bilgi edin…