"Enter"a basıp içeriğe geçin

Seri İletişim -2 (pic’in seriport’tan karakter alması)

Çift yönlü iletişimin temel mantığı daha önceden belirlenmiş bir mesaj geldiğinde cevap vermektir. Örneğin bu uygulamamızda PC’den ya da başka bir mikrodenetleyiciden ‘A’ harfi geldiğinde bize cevap veren bir program yazalım. Test devremiz bir öncekinde olduğu gibi aynı.

Ayrıca bu uygulamada ‘sprintf’ komutunuda kullandım. Sprintf komutu metin veya rakamları tek bir metin dizisinde toplamaya yarıyor. Sprintf‘e sadece metin değil herhangi bir değişkeni de koyabiliriz, değişkenin içerisindeki değeri char’a dönüştürerek bir metin dizisi haline getirir.

ISIS Professional - C:programlarpiccsite_orneklerornek1simu

[php]
//////////////////////////////////////////////////////////////
// //
// Seri İletişim uygulaması 2 V1.0 //
// //
// 27/01/2013 *Emrah BUDAK //
// //
//////////////////////////////////////////////////////////////
#include <16F628A.h>
#include <string.h>
#FUSES NOWDT //No Watch Dog Timer
#FUSES NOBROWNOUT //No brownout reset
#FUSES NOLVP //No low voltage prgming, B3(PIC16) or B5(PIC18) used for I/O

#use delay(clock=4000000)
#use rs232(baud=9600,parity=N,xmit=PIN_B2,rcv=PIN_B1,bits=8,stream=PORT1)

#use fast_io(a)
#use fast_io(b)

#define Buton input(pin_a0)
char Metin1[15]={"emrahbudak.com"};
char Metin2[25]={"seri iletisim uyg. 2"};
char Metin3[40];
char Gelen=0;

#int_RDA
void RDA_isr(void)
{
Gelen = getch();
}

#int_TIMER0
void TIMER0_isr(void)
{

}

void main()
{
set_tris_a(0b11111111);
set_tris_b(0b11111011);
setup_timer_0(RTCC_INTERNAL|RTCC_DIV_1|RTCC_8_bit); //256 us overflow

enable_interrupts(INT_RDA);
enable_interrupts(INT_TIMER0);
enable_interrupts(GLOBAL);

while(TRUE)
{
if(Gelen==’A’)
{
Gelen=0; //Gelen değişkenini temizle
sprintf(Metin3,"%s\r\n%s\r\n",Metin1,Metin2);
fprintf(PORT1,"%s",Metin3);
}
}

}

[/php]

dfd

İlk Yorumu Siz Yapın

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir