Şimdi Ara

pic c

Daha Fazla
Bu Konudaki Kullanıcılar: Daha Az
1 Misafir - 1 Masaüstü
5 sn
4
Cevap
0
Favori
266
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • elimde keypad ile yaptığım bir uyglama var. keypad ile sayıları oktuyoırum 10 a kadr fakat 10 dan sonrasını nasıl okutucam bilemedim. yardımcı olurmsunuz?



  • Programınızı paylaşırsanız yardımcı olmak daha kolay olur.
  • #include <16f876A.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.
    #if defined(__PCM__)
    #use fast_io(b) //Port yönlendirme komutları B portu için geçerli
    #use fast_io(c) //Port yönlendirme komutları C portu için geçerli
    #define use_portb_lcd TRUE
    #include <lcd.c>
    #byte portb=0x06 // B portu “tus” ismine eşitleniyor.

    #define sut1 pin_c0 // sut1 ifadesi pin_d0 ifadesine eşitleniyor
    #define sut2 pin_c1 // sut2 ifadesi pin_d1 ifadesine eşitleniyor
    #define sut3 pin_c2 // sut3 ifadesi pin_d2 ifadesine eşitleniyor
    #define sut4 pin_c3 // sut3 ifadesi pin_d2 ifadesine eşitleniyor

    #define sat1 pin_c4 // sat1 ifadesi pin_d4 ifadesine eşitleniyor
    #define sat2 pin_c5 // sat2 ifadesi pin_d5 ifadesine eşitleniyor
    #define sat3 pin_c6 // sat3 ifadesi pin_d6 ifadesine eşitleniyor
    #define sat4 pin_c7 // sat4 ifadesi pin_d7 ifadesine eşitleniyor
    #define LCD_ENABLE_PIN PIN_B0
    #define LCD_RS_PIN PIN_B1
    #define LCD_RW_PIN PIN_B2
    #define LCD_DATA4 PIN_B4
    #define LCD_DATA5 PIN_B5
    #define LCD_DATA6 PIN_B6
    #define LCD_DATA7 PIN_B7
    char tus=0; // karakter tipinde değişken tanımlanıyor
    int bas=0;
    int i=0;
    int dizi[];
    int girilen;
    //*********** Keypad Tarama Fonksiyonu *********
    char keypad_oku() // Fonksiyon ismi
    {
    output_c(0x00); // D portu çıkışı sıfırlanıyor
    tus=0;
    output_high(sat1); // 1. satır lojik-1 yapılıyor
    if (input(sut1)) // 1. sütun okunuyor
    { delay_ms(20); tus=tus+1; }
    if (input(sut2)) // 2. sütun okunuyor
    { delay_ms(20); tus=tus+2; }
    if (input(sut3)) // 3. sütun okunuyor
    { delay_ms(20); tus=tus+3; }

    output_low(sat1); // 1. satır lojik-0 yapılıyor

    output_high(sat2); // 2. satır lojik-1 yapılıyor
    if (input(sut1)) // 1. sütun okunuyor
    { delay_ms(20); tus=tus+4; }
    if (input(sut2)) // 2. sütun okunuyor
    { delay_ms(20); tus=tus+5; }
    if (input(sut3)) // 3. sütun okunuyor
    { delay_ms(20); tus=tus+6; }

    output_low(sat2); // 2. satır lojik-0 yapılıyor

    output_high(sat3); // 3. satır lojik-1 yapılıyor
    if (input(sut1)) // 1. sütun okunuyor
    { delay_ms(20); tus=tus+7; }
    if (input(sut2)) // 2. sütun okunuyor
    { delay_ms(20); tus=tus+8; }
    if (input(sut3)) // 3. sütun okunuyor
    { delay_ms(20); tus=tus+9; }

    output_low(sat3); // 3. satır lojik-0 yapılıyor

    output_high(sat4); // 3. satır lojik-1 yapılıyor


    if (input(sut1)) // 1. sütun okunuyor
    { delay_ms(20); tus=tus+11; }
    if (input(sut2)) // 2. sütun okunuyor
    { delay_ms(20); tus=tus+10; }
    if (input(sut3)) // 3. sütun okunuyor
    { delay_ms(20); tus=tus+12; }

    output_low(sat4); // 3. satır lojik-0 yapılıyor
    if(tus>0) delay_ms(200);
    return tus; // Fonksiyon “tus” değeri ile geri döner
    }

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

    void main ( )
    {
    int x=0;
    while(x<9){
    output_high(pin_a0); // RB0 pini çıkışı lojik-1 yapılıyor
    delay_ms(500); // 500 ms gecikme veriliyor
    output_low(pin_a0); // RB0 pini çıkışı lojik-1 yapılıyor

    delay_ms(500);
    x++;

    }
    setup_spi(SPI_SS_DISABLED); // SPI 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ışı
    lcd_init();
    set_tris_b(0x00); // B portu komple çıkış
    set_tris_c(0x0F); // Yüksek değerlikli 4 bit çıkış, düşük değerlikli 4 bit giriş

    output_b(0x00); // İlk anda B portu çıkışı sıfırlanıyor

    lcd_putc("atom no gir");
    {char count=0,keypad,sayi[2],k,sayikont[20];

    for(;;){
    sayi[0]=keypad_oku();
    if (sayi[0]<11){


    don: if (keypad_oku()=11)
    {if(sayi[0]<11){

    sayi[1]=keypad_oku();
    }}
    else
    {goto don;}


    }


    girilen=sayi[0]+sayi[1]+sayi[2];

    lcd_gotoxy(1,2);
    lcd_putc(girilen);
    }}



    }




  • yardım edebilcek varmı?
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.