Tekil Mesaj gösterimi
Alt 8. March 2012, 12:50 PM   #1 (permalink)
ULAGA
Tekniker
 
ULAGA - ait Kullanıcı Resmi (Avatar)
 
Üyelik tarihi: Dec 2007
Mesajlar: 448
Standart SwitchViewer Projesi - PIC Portlarının Durumunu Bilgisayar Arayüzünde Gösterme

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...

[Sadece Üyelere Linkler Açıktır.Üye Olun !!! Tıklayarak Üye Olun !!!]

RAR Şifresi : YARARMAN





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("A%03u" pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
        
        pState = input_b();                // PORTB'yi oku ve pState'e yaz  
        printf("B%03u" 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("C%03u" pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
        
        pState = input_d();                // PORTD'yi oku ve pState'e yaz  
        printf("D%03u" 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("E%03u" pState);        // Okunan bilgiyi RS232'ye yolla
        delay_ms(1);                        // 1ms bekle
        
        delay_ms(250);                    // 250ms bekle
    }
}
ULAGA isimli Üye şimdilik offline konumundadır   Alıntı ile Cevapla