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ı:

[code]

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

[/code]

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.

13109 Görüntüleme.

Yazar : hakki0548

“PIC İle LCD’li Ayarlı Zamanlayıcı Devresi” for 2 comments

  1. HUSEYİN DAL diyor ki:

    merhaba, ısıs programında bas dosyasına edıtleme yappıp tekrar hex’e cevırmem mumkunmu onerebılcegınız program varmı ben sanıye basladıgı anda ledın yanmasını yapmaya calısıcam tesekkurler

  2. 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