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