SwitchViewer Projesi - PIC Portlarının Durumunu Bilgisayar Arayüzünde Gösterme

ULAGA

Üye
Katılım
9 Ocak 2012
Mesajlar
589
Puanları
1
Bu proje, PIC16F877A MCU'sunun port durumlarını okur ve RS232 üzerinden bilgisayara gönderir.
Bilgisayardaki arayüz yazılımı ise port durumlarını LED benzeri şekilde gösterir.
Proje çok basit olmasına rağmen;
Geliştirilmeye açık olduğundan dolayı, paylaşılacağı zaman kaynak belirtilirse sevinirim.
Zira az çok emek harcadım... :eek:


softwarec.png


circuitv.png


Kod:
//**********************************************************
//*  Geliştirici : YARARMAN                                *
//*  Proje Adı   : SwitchViewer                            *
//*  Tarih       : 07.03.2012                              *
//*  Sürüm       : 1.0                                     *
//*  MCU         : PIC16F877A                              *
//*  Derleyici   : CCS PIC C Compiler                      *
//*  Uyarı       : Telifhakkı (c) 2012 YARARMAN Tasarım    *
//*                Tüm Hakları Saklıdır                    *
//*  URL         : http://www.yararman.com/                *
//*  Açıklama    : Portlardaki giriş durumunu RS232        *
//*                üzerinden bilgisayara gönderir.         *
//**********************************************************
#include <16f877a.h>
#fuses HS, NOWDT, NOPROTECT, NOBROWNOUT, NOLVP, NOPUT, NOWRT, NODEBUG, NOCPD
#use delay (clock=20000000)
#use RS232 (baud=9600, bits=8, parity=N, xmit=PIN_C6, rcv=PIN_C7)
//#use fast_io(a)
//#use fast_io(b)

void main()
{
    char pState;
  
    setup_comparator(NC_NC_NC_NC);    // Karşılaştırıcılar devre dışı
    setup_adc_ports(NO_ANALOGS );        // Analog girişler devre dışı
    setup_adc(ADC_OFF);                    // A2D devredışı
  
    set_tris_a(0xFF);
    set_tris_b(0xFF);
    set_tris_c(0xBF);
    set_tris_d(0xFF);
    set_tris_e(0xFF);                      // Portların IO ayarı yapılıyor...                
  
    while(1)
    {
        pState = input_a();                // PORTA'yı oku ve pState'e yaz                   
        pState&=0x3F;                        // PORTA'daki olmayan bitleri ele
        printf("Au", pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
      
        pState = input_b();                // PORTB'yi oku ve pState'e yaz
        printf("Bu", pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
      
        pState = input_c();                // PORTC'yi oku ve pState'e yaz
        pState&=0x3F;                        // PORTC'deki olmayan bitleri ele
        printf("Cu", pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
      
        pState = input_d();                // PORTD'yi oku ve pState'e yaz
        printf("Du", pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
      
        pState = input_e();                // PORTE'yi oku ve pState'e yaz
        pState&=0x07;                        // PORTE'deki olmayan bitleri ele
        printf("Eu", pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
      
        delay_ms(250);                    // 250ms bekle
    }
}
 

ocomrun

Üye
Katılım
5 Eyl 2008
Mesajlar
74
Puanları
1
Konum
izmir
Siz üstadları izlerken, insanın elektronikçi olası geliyor..;)
 

MAIN_LOOP

Onursal Üye
Onursal Üye
Katılım
28 Ara 2011
Mesajlar
2,184
Puanları
935
Yaş
42
Konum
ANKARA
c6 ,c7 yide isteriz. şaka şaka :) güzel olmuş eline sağlık
 

hkeskin

Üye
Katılım
1 Ağu 2008
Mesajlar
56
Puanları
1
Yaş
38
usta sağol ellerine ve gözlerine sağlık :)

bazı arkadaşlar buna ne gerek vardı gibi düşünebilir ama röle, opto vs ile swichler tetiklettirilirse istenilen herşeyin çalışıp çalışmadığını takip edebilirsiniz.. ben mesela telefon hatlarında deneyeceğim...

bu devre ile ya 31 tane telefon hattının sadece çalıştığını yada 15 telefonun hem çalışıp hem meşgul olup olmadığını takip edebileceğim...

usta emeğine sonsuz teşekkür...


ilerde de bi multiplexer düşünürüz artık ;)
 
Son düzenleme:

hkn_blt

Üye
Katılım
31 Ağu 2009
Mesajlar
1,145
Puanları
31
arayüz programını c# ilemi yazdınız?
 

hkeskin

Üye
Katılım
1 Ağu 2008
Mesajlar
56
Puanları
1
Yaş
38
herkese selam..

devreyi nihayet yapıp denedim sonuç mükemmel...
4mhz lik kristalle 31 tane girişi tetikletip ekrandaki ledleri yaktım...

yardımını esirgemeyen YARARMAN arkadaşıma sonsuz teşekkürler
 

Yeni mesajlar

Forum istatistikleri

Konular
122,209
Mesajlar
861,990
Kullanıcılar
438,712
Son üye
GürhanK.

Yeni konular

Üst