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