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, B portunun b1 ucuna 1-0 çıkışı kullanırken ra1 ucundan da başka bir analog voltaj verip yine B portunun b1 ucunu kontrol edebilirmiyim. Yani 2 analog sinyal ile Bportunun 1 ucunu kontrol etmek istiyorum.-----atıyorum A0 girişinde 1.97 ile 4V. arası voltajda b1 i high yap ; A1 girişinde 2 ile 3V.arasında bir voltaj varsa low yap demek istiyorum----
/************************************************** ****
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...
otomasyon
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, B portunun b1 ucuna 1-0 çıkışı kullanırken ra1 ucundan da başka bir analog voltaj verip yine B portunun b1 ucunu kontrol edebilirmiyim. Yani 2 analog sinyal ile Bportunun 1 ucunu kontrol etmek istiyorum.-----atıyorum A0 girişinde 1.97 ile 4V. arası voltajda b1 i high yap ; A1 girişinde 2 ile 3V.arasında bir voltaj varsa low yap demek istiyorum----
/************************************************** ****
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...
otomasyon