Şimdi Ara

yardıma ihtiyacım var

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
2 Misafir - 2 Masaüstü
5 sn
2
Cevap
0
Favori
873
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • iyi günler arkadaslar asagıda verdigim pic c ile hazırlanmıs dosya ile lcd ekranda azı yazıyoruz ama bunu kayan yazı olarak hazırlamam gerek bunu da bi sekilde yaptım ama hatalı oldu bu konuda bana yardımcı olabilecek birisi var mı? şimdiden yardımcı olabilecek arkadaslara teşekkür ederim

    orjinal pic c dosyası

    #include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

    // Denetleyici konfigürasyon ayarları
    #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

    #use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

    #define use_portb_lcd TRUE // LCD B portuna bağlı

    #include <lcd.c> // lcd.c dosyası tanıtılıyor

    #use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1) // RS232 protokolünün 9600 bit/sn baud hızında olacağını ve
    // TX,RX uçlarının hangi pinler olacağını tanımlıyor
    // parity bitinin olmadığını, stop bitinin 1 bit olacağı belirtiliyor

    char klavye[80]; // klavye isminde 80 üyeli bir dizi tanımlanıyor

    #int_rda // RX ucuna veri gelince meydane gelen kesme
    void serihaberlesme_kesmesi ()
    {
    disable_interrupts(int_rda); // int_rda kesmesini pasif yap
    output_high(pin_c5); // RC5 çıkışı lojik-1
    gets(klavye); // String ifadeyi al ve "klavye" adlı dizi değişkenine aktar.
    printf("\n\rYazdiginiz Metin> %s\n",klavye); // Satır atla, yeni satır,RS232 üzerinden klavye string ifadesini gönder,satır atla
    printf(lcd_putc,"\f%s",klavye); //LCD'yi temizle ve klavye string ifadesini LCD'de göster
    output_low(pin_c5); // RC5 çıkışı lojik-0
    printf("\n\rKlavyeden bir metin giriniz ve enter tusuna basiniz>"); // Satır atla, yeni satır,RS232 üzerinden belirtilen metni gönder
    }

    /********* ANA PROGRAM FONKSİYONU********/

    void main ( )
    {
    setup_psp(PSP_DISABLED); // PSP birimi devre dışı
    setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
    setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
    setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
    setup_adc(ADC_OFF); // ADC birimi devre dışı
    setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
    setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

    output_low(pin_c5); // RC5 çıkışı ilk anda sıfırlanıyor
    lcd_init(); // LCD'yi hazırla

    printf("\r**************** Merhaba *********************"); // Yeni satır, RS232 üzerinden belirtilen metni gönder ve satır atla.
    printf("\n\rKlavyeden girdiginiz bilgiler LCD'de gorunecektir\n\n"); // Satır atla, yeni satır, RS232 üzerinden belirtilen metni gönder
    printf("\n\rKlavyeden bir metin giriniz ve enter tusuna basiniz>"); // Satır atla, yeni satır,RS232 üzerinden belirtilen metni gönder

    enable_interrupts(GLOBAL); // Aktif edilen tüm kesmelere izin ver

    while(1) // Sonsuz döngü
    {
    enable_interrupts(int_rda); // int_rda kesmesi aktif
    }
    }


    bu da benim ayarlamaya calıstıgım dosya

    #include <16f877.h> // Kullanılacak denetleyicinin başlık dosyası tanıtılıyor.

    // Denetleyici konfigürasyon ayarları
    #fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD

    #use delay (clock=4000000) // Gecikme fonksiyonu için kullanılacak osilatör frekansı belirtiliyor.

    #define use_portb_lcd TRUE // LCD B portuna bağlı

    #include <lcd.c> // lcd.c dosyası tanıtılıyor

    #use rs232 (baud=9600, xmit=pin_C6, rcv=pin_C7, parity=N, stop=1) // RS232 protokolünün 9600 bit/sn baud hızında olacağını ve
    // TX,RX uçlarının hangi pinler olacağını tanımlıyor
    // parity bitinin olmadığını, stop bitinin 1 bit olacağı belirtiliyor

    char klavye[80]; // klavye isminde 80 üyeli bir dizi tanımlanıyor
    int i,j;

    #int_rda // RX ucuna veri gelince meydane gelen kesme
    void serihaberlesme_kesmesi ()
    {
    disable_interrupts(int_rda); // int_rda kesmesini pasif yap
    output_high(pin_c5); // RC5 çıkışı lojik-1
    gets(klavye); // String ifadeyi al ve "klavye" adlı dizi değişkenine aktar.
    printf("\n\rYazdiginiz Metin> %s\n",klavye); // Satır atla, yeni satır,RS232 üzerinden klavye string ifadesini gönder,satır atla
    printf(lcd_putc,"\f%s",klavye); //LCD'yi temizle ve klavye string ifadesini LCD'de göster
    output_low(pin_c5); // RC5 çıkışı lojik-0
    printf("\n\rKlavyeden bir metin giriniz ve enter tusuna basiniz>"); // Satır atla, yeni satır,RS232 üzerinden belirtilen metni gönder
    {
    for(j=0 ; j<klavye+1 ; j++)
    {
    for(i=j ; i<klavye ;i++)
    {
    printf(lcd_putc,"%c",*(klavye+i));
    }
    for(i=0 ; i<j ;i++)
    {
    printf(lcd_putc,"%c",*(klavye+i));
    }
    delay_ms(150);
    lcd_gotoxy(1,1);
    }
    }
    }


    /********* ANA PROGRAM FONKSİYONU********/

    void main ( )
    {
    setup_psp(PSP_DISABLED); // PSP birimi devre dışı
    setup_timer_1(T1_DISABLED); // T1 zamanlayıcısı devre dışı
    setup_timer_2(T2_DISABLED,0,1); // T2 zamanlayıcısı devre dışı
    setup_adc_ports(NO_ANALOGS); // ANALOG giriş yok
    setup_adc(ADC_OFF); // ADC birimi devre dışı
    setup_CCP1(CCP_OFF); // CCP1 birimi devre dışı
    setup_CCP2(CCP_OFF); // CCP2 birimi devre dışı

    output_low(pin_c5); // RC5 çıkışı ilk anda sıfırlanıyor
    lcd_init(); // LCD'yi hazırla

    printf("\r**************** Merhaba *********************"); // Yeni satır, RS232 üzerinden belirtilen metni gönder ve satır atla.
    printf("\n\rKlavyeden girdiginiz bilgiler LCD'de gorunecektir\n\n"); // Satır atla, yeni satır, RS232 üzerinden belirtilen metni gönder
    printf("\n\rKlavyeden bir metin giriniz ve enter tusuna basiniz>"); // Satır atla, yeni satır,RS232 üzerinden belirtilen metni gönder

    enable_interrupts(GLOBAL); // Aktif edilen tüm kesmelere izin ver

    while(1) // Sonsuz döngü
    {
    enable_interrupts(int_rda); // int_rda kesmesi aktif
    }
    }







  • hocalarım bana yardımcı olabilecek kimse yok mu :(
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.