Kullanılan fonksiyonlar kopyala yapıştır yöntemi ile alınıp kullanılabilir. Derlenmiş dosya ve başlık dosyası şeklinde de hazırlayacaktım ama IAR, GCC kadar tanıdık değil.
#include <io16f877.h>
#include <string.h>
void UsartInit(int BAUDRATE){
TRISC|= 0xC0; // TX ve RX bacaklarini giris yap
SPBRG = BAUDRATE; // Desimal olarak hesaplanmis deger
TXSTA = 0x24; // Gönderim etkin ve yüksek hizda
RCSTA = 0x90; // Usart etkin ve sürekli alma durumunda
}
void UsartTransmit_Char(char c){
while( !TXIF ); // Veri gönderimi tamamlana kadar bekle
TXREG = c; // Tamamlandiktan sonra yeni veri yolla
}
void UsartTransmit_Array(char *c){
char i;
for( i=0; i <= strlen(c); i++ ){
UsartTransmit_Char(c[i]); // Tek tek karekterleri yolla
}
}
char UsartReceive(void){
while( !RCIF ); // Veri alimi tamamlana kadar bekle
return RCREG; // Veriyi döndür
}
void main(void){
unsigned char b;
UsartInit(25); // 4MHz, 9600 Baud Rate
UsartTransmit_Array("Engin SAVSATLI"); //
UsartTransmit_Char(0x0d); // Enter karekteri yolla
while(1){
b = UsartReceive(); // Basilan Tusu al
UsartTransmit_Char(0x0d); // Enter karekteri yolla
UsartTransmit_Char( b ); // Basilan tusu geri yolla
}
}