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

Facebookta Paylas



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.

Programın kodları:


    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ı indirmek için tıklayın



Facebookta Paylas






Benzer Yazılar

PicBasic Pro – IF…THEN Komutu

IF..THEN komutu, bir şart sağlandığında veya sağlanmadığında çalıştırılması gereken komutları belirlemeye yarayan komuttur.

11784 Görüntüleme.

Yazar : hakki0548

“PIC İle LCD’li Ayarlı Zamanlayıcı Devresi” for 1 comment

  1. Mustafa diyor ki:

    kırmızı led yanıp sönüoda ozaman yeşil red ne işe yarıo

PIC İle LCD’li Ayarlı Zamanlayıcı Devresi Yazısı için Yorum Yapabilirsiniz