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