#include <pic18.h>

//******************************************************************
//*	USART Tanımlamaları
//******************************************************************
#define BAUD	57600		//İstenilen Baud Hızı
#define FOSC	25000000	//Ana osilatör frkansı 
#define DIVIDER ((unsigned int)(FOSC/(16 * BAUD) -1))

__CONFIG(1,XINSTDIS & WDTDIS & DEBUGDIS & UNPROTECT);
__CONFIG(2,HSPLL & IESODIS );


void seri_kurulum();
void seri_Bilgi(const char *m);

void main(void)
{
	unsigned int j;
	
	
	seri_kurulum();
	while(1)
	{
		seri_Bilgi("Merhaba Dunya");
		j=0;
	j--;							// Zaman Geçikmesi
	while(j--);						//
	}
}

void seri_kurulum()
{

  BRGH = 0;
  SYNC = 0;
  SPBRG1 = DIVIDER;		//Baud rate bölücü	
  TRISC7 = 1;			//Alıcı pin
  TRISC6 = 1;			//Verici pin
  TXSTA1 = 0x04;		//Baud Rate High Speed	
  RCSTA1 = 0x80;		//Seri port ve peri port pinleri aktif
  RC1IP = 1;			//Alıcı    interrupt = yüksek öncelikli
  TX1IP = 1;			//Verici   interrupt = yüksek öncelikli
  RC1IE = 1;			//Alıcı interrupt aktif
  PEIE = 1;				//Tüm engellenmeyen peripheral kesmeler aktif
  GIE = 0;				//Tüm engellenmeyen kesmeler aktif
  CREN = 1;				//USART1 alıcısı aktif
  TX1IE = 0;			//USART1 verici interrupt pasif
  TXEN = 1;				//Verici aktif
  SPEN = 1;
}
	

void seri_Bilgi(const char *m)
{ 
	while (*m)
	{ 
	 	while(!TRMT) continue;
		TXREG1=*m;		
	    *m++;
	}
}

