|  8. March 2012, 01:50 PM | #1 (permalink) | 
	| Tekniker 
				 
				Üyelik tarihi: Dec 2007 
					Mesajlar: 448
				      | 
				 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
    }
} | 
	|   |   |