1. Bu site çerez kullanmaktadır. Siteyi kullanmaya devam etmeniz halinde çerez kullanımı ile ilgili site koşullarını kabul etmiş sayılırsınız. Daha Fazlasını Öğren.
  2. Forum İllegal Uyarısı Forum kuralları gereği forumda video ve illagal paylaşım yapmak yasaktır.Program Arşivimizde ise kısıtlanmış sürüm yada dağıtımı serbest olan (trial - freeware) yazılımlar yayınlayınız..Aksi takdirde mesajlarınız silinecektir..

PIC İle LCD’li Ayarlı Zamanlayıcı Devresi

Konusu 'Pic Uygulama Ve Devreleri' forumundadır ve guclusat tarafından 29 Nisan 2016 başlatılmıştır.

  1. guclusat
    Offline

    guclusat Tanınmış Üye Süper Moderatör

    Katılım:
    14 Haziran 2009
    Mesajlar:
    9.754
    Ödül Puanları:
    48
    PIC ile yapılmış, LCD kullanılarak zamanlama ayarı yapılan güzel bir zamanlayıcı devresi

    Butonlarla zamanlayıcının süresi ayarlanıp zamanlama başlatılıyor. Zamanlayıcı geri saydıktan sonra süre sıfırlandığında 27 nolu pine bağlı led yanıp sönüyor. Devrede değişiklik yapıp 27 nolu pine transistör ve röle bağlanarak başka cihazlar kontrol edilebilir.

    zamanlayici.jpg

    Programın kodları:

    Kod:
    DEVICE = 18F452
            XTAL = 4
            LCD_DTPIN = PORTB.0
            LCD_RSPIN = PORTB.4
            LCD_ENPIN = PORTB.5
            LCD_INTERFACE = 4    ' 4-bit Interface
            LCD_LINES = 2
            LCD_TYPE = 0
    
            Dim minute  as     byte
            Dim second  as     byte    ' Define second variable
            Dim ticks   as     byte    ' Define pieces of seconds variable
            Dim i       as     WORD    ' Debounce loop variable
    
            minute = 0
            second = 0
            ticks = 0
            I=0
    
    ;*********************************************************
            TRISC=0
            TRISB=0
               TRISD=%00001111
            PORTD=0
            PORTB=0
            PORTC=0
            PORTD.7=1
    ;*************************SIFIR***************************
    SIFIR:
    
    CLS
       Delayms 100
           minute = 0
            second = 0
            ticks = 0
            I=0
      ;*********************************************************
    
         PRINT AT 1 , 5 ,"ZAMANI"
         PRINT AT 2 , 5 , "AYARLA"
         DELAYMS 2000
    
    MAINLOOP1:
          cls
    ;*************************ANA PROGRAM**********************
             Print at 1,1,"Dak",105,"ka = ",dec2 minute
             PRINT AT 2,1,"San",105,"ye = ",dec2 second
       mainloop:
            If PORTD.0 = 0 Then SIFIR
            If PORTD.1 = 0 Then sil
            If PORTD.2 = 0 Then decSN
            If PORTD.3 = 0 Then incSN
    
      Goto mainloop
    ;****************************ARTIRMA**********************
    IncSN:
            second = second + 1
             If second >= 60 Then
                second = 0
               minute = minute + 1
            Endif
    
            If minute >= 60 Then
                minute = 0
    
                  Endif
            GOTO ZAM
    
    ;**************AZALTMA*************************************
    DecSN:
          second = second - 1
             DELAYMS 100
            If second >= 60 Then
            second = 59
            minute = minute - 1
    
            ENDIF
    DAK:
               If minute >= 60 Then
                minute = 59
    
                  Endif
              Goto ZAM
    ;*****************************TUS GEÇİKMESİ****************
    ZAM:
             Print at 1,1,"Dak",105,"ka = ",dec2 minute
             PRINT AT 2,1,"San",105,"ye = ",dec2 second
    
            For i = 1 to 20
                Delayms 15
            Next
    
              Goto mainloop
    
    ;*******************************KONTROL******************
    sil:
    cls
    KONT:
           If minute = 0 AND SECOND =0 Then KONT_SAY
    basla:
    
            Print at 1,2, "DAK",105,"KA = " ,dec2 minute
            PRINT AT 2,2 ,"SAN",105,"YE = " ,dec2 second
             If minute = 0 AND SECOND =0 Then KONTROL
            second = second - 1
    
            FOR I=0 TO 100
            DELAYMS 9
            If PORTD.0 = 0 Then SIFIR
            NEXT
            If second >= 60 Then
                second = 59
             endIF
             If second =0 Then
             If minute = 0 AND SECOND =0 Then BASLA
             Minute = minute - 1
    
          Endif
           GOTO BASLA
    
    KONT_SAY:
            Print at 1,1, "DAK",105,"KA VE SAN",105,"YE"
            PRINT AT 2,2 ,"AYARI YAPINIZ"
            DELAYMS 1000
             Goto mainloop1
    KONTROL:
           PORTD.4=1
           DELAYMS 1000
           PORTD.4=0
         Goto mainloop1
    Devrenin Proteus ISIS dosyasını, HEX ve BAS dosyalarını ekten indirebilirsiniz.
     

    Ekli Dosyalar:

Yüklüyor...

Sayfayı Paylaş