ze_tr
Üye
- Katılım
- 25 Kas 2006
- Mesajlar
- 520
- Puanları
- 6
gets fonksiyonu girilen stringin sonunda \n var mı diye bakıyor ve varsa okumayı kesip \n olan yere 0 koyuyor. (\n=enter tuşu) Size gönderdiğim program çalışıyor. Sadece lcd.c dosyasında ciddi değişiklikler yapılmış olduğundan maalesef kitapta gördüğünüz yazım çalışmayabilir.
Kod:
#include <16f877.h> // Kullanylacak denetleyicinin ba?lyk dosyasy tanytylyyor.
#fuses XT, NOWDT,NOBROWNOUT, NOPUT
#use delay (clock=4000000) // Gecikme fonksiyonu için kullanylacak osilatör frekansy belirtiliyor.
#use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1) // RS232 protokolünün 9600 bit/sn baud hyzynda olaca?yny ve
// TX,RX uçlarynyn hangi pinler olaca?yny tanymlyyor
// parity bitinin olmady?yny, stop bitinin 1 bit olaca?y belirtiliyor
//#define use_portd_lcd TRUE // LCD B portuna ba?ly
#include <lcd.c> // lcd.c dosyasy tanytylyyor
char klavye[80]; // klavye isminde 80 üyeli bir dizi tanymlanyyor
#int_rda // RX ucuna veri gelince meydane gelen kesme
void serihaberlesme_kesmesi ()
{ output_high(pin_c5); // RC5 çyky?y lojik-1
// klavye=getch(); // String ifadeyi al ve "klavye" adly dizi de?i?kenine aktar.
gets(&klavye[0]);
printf("\n\rYazdiginiz Metin> %s\n",klavye); // Satyr atla, yeni satyr,RS232 üzerinden klavye string ifadesini gönder,satyr atla
printf(lcd_putc,"\f%s",klavye); //LCD'yi temizle ve klavye string ifadesini LCD'de göster
output_low(pin_c5); // RC5 çyky?y lojik-0
printf("\n\rKlavyeden bir metin giriniz ve enter tusuna basiniz>"); // Satyr atla, yeni satyr,RS232 üzerinden belirtilen metni gönder
}
/********* ANA PROGRAM FONKSYYONU********/
void main ( )
{
setup_psp(PSP_DISABLED); // PSP birimi devre dy?y
setup_timer_1(T1_DISABLED); // T1 zamanlayycysy devre dy?y
setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayycysy devre dy?y
setup_adc_ports(NO_ANALOGS); // ANALOG giri? yok
setup_adc(ADC_OFF); // ADC birimi devre dy?y
setup_CCP1(CCP_OFF); // CCP1 birimi devre dy?y
setup_CCP2(CCP_OFF); // CCP2 birimi devre dy?y
output_low(pin_c5); // RC5 çyky?y ilk anda syfyrlanyyor
lcd_init(); // LCD'yi hazyrla
printf("\r**************** Merhaba *********************"); // Yeni satyr, RS232 üzerinden belirtilen metni gönder ve satyr atla.
printf("\n\rKlavyeden girdiginiz bilgiler LCD'de gorunecektir\n\n"); // Satyr atla, yeni satyr, RS232 üzerinden belirtilen metni gönder
printf("\n\rKlavyeden bir metin giriniz ve enter tusuna basiniz>"); // Satyr atla, yeni satyr,RS232 üzerinden belirtilen metni gönder
enable_interrupts(int_rda); // int_rda kesmesi aktif
enable_interrupts(GLOBAL); // Aktif edilen tüm kesmelere izin ver
printf(lcd_putc,"\fDeneme"); //LCD'yi temizle ve klavye string ifadesini LCD'de göster
while(1) // Sonsuz döngü
{
}
}