16f628A İleri Geri Sayıcı

Ir led kullanılarak cisim algılaması yapılmaktadır.Algılanan cisim ile devrede bulunan switch sayesinde arttırma ve ya azaltma yapabiliriz.İki adet verici göz bulunmaktadır.Engel solda bulunan ır led sayesinde algılanırsa sagdaki ledin önünden geçmeden sayı artımı yapmaz.Amacı cisimin tamamen sensörün önünden geçmesini beklemektir. Devrede bulunan buton sayesinde sayma işlemi sıfırlanır. Değerler lcd ekranda görünmektedir.

  • 2 ad. 16f682a

  • Lcd 16×2

  • 10 k pot

  • Ir led

  • Tsop1138

  • 1k

  • 10

  • 100ohm

  • 47k

  • 10uf

  • Buton

  • switch

  • 7805

  • Led

  • 4 mhz

  • 22pf

 

@ __config _INTRC_OSC_NOCLKOUT & _WDT_OFF & _MCLRE_OFF & _LVP_OFF & _CP_OFF

DEFINE LCD_DREG          PORTB ‘‘LCD  data bacakları hangi porta bağlı?

DEFINE LCD_DBIT                           4 ‘‘LCD data  bacakları hangi bitten başlıyor?

DEFINE LCD_RSREG        PORTB’ ‘LCD  RS Bacağı Hangi Porta bağlı ?

DEFINE LCD_RSBIT          1 ‘‘LCD RS  bacağı Hangi Bite bağlı ?

DEFINE LCD_RWREG      PORTB

DEFINE LCD_RWBIT        2

DEFINE LCD_EREG          PORTB ‘‘LCD  Enable Bacağı Hangi Porta bağlı?

DEFINE LCD_EBIT                            3 ‘‘LCD  Enable Bacağı Hangi bite bağlı ?

DEFINE LCD_BITS                            4 ‘‘LCD 4  bit mi yoksa 8 bit olarak bağlı?

DEFINE LCD_LINES          2 ‘‘LCD Kaç  sıra yazabiliyor

‘‘——————————————————————-

CMCON=7 ‘‘16F628 de  komparatör pinleri iptal hepsi giriş çıkış

OPTION_REG.7=1’ ‘portB deki  dahili PULL-UP lar iptal edildi.

 

TRISB=%00000000

TRISA=%11111111

 

x VAR WORD

X=0

LCDOUT $FE,1

LCDOUT $FE,$80,”www.robotdevreleri.com”

LCDOUT $FE,$C0,”*****robotbeyin*****”

PAUSE 2000

LCDOUT $FE,1

LCDOUT $FE,$80,”Gecen Kisi” ‘‘LCD ye devre yapimi yazdı

LCDOUT $FE,$C0,”Sayisi =”,#x

 

Basla:

 

IF PORTA.2=1 THEN GOTO sil

IF PORTA.3=1 THEN GOTO arttir

IF PORTA.3=0 THEN GOTO azalt

 

goto basla

 

arttir:

IF PORTA.0=1 or PORTA.1=1 THEN yukari

goto basla

azalt:

IF PORTA.0=1 or PORTA.1=1 THEN asagi

goto basla

 

yukari:

x=x+1

LCDOUT $FE,1

LCDOUT $FE,$80,”Gecen Kisi +” ‘‘LCD ye devre yapimi yazdı

LCDOUT $FE,$C0,”Sayisi =”,#x

PAUSE 300

bekle:

IF PORTA.0=1 or PORTA.1=1 then bekle

IF PORTA.0=0 and PORTA.1=0 then basla

 

asagi:

x=x-1

IF x=65535 THEN X=0

LCDOUT $FE,1

LCDOUT $FE,$80,”Gecen Kisi -” ‘‘LCD ye devre yapimi yazdı

LCDOUT $FE,$C0,”Sayisi =”,#x

PAUSE 300

 

IF PORTA.0=1 or PORTA.1=1 then bekle

IF PORTA.0=0 and PORTA.1=0 then basla

 

sil:

x=0

LCDOUT $FE,1 ‘‘LCD ‘yi sil

LCDOUT $FE,$80,”Ekran Temizlendi”

LCDOUT $FE,$C0,”Sayisi =”,#x

PAUSE 300

LCDOUT $FE,1

LCDOUT $FE,$80,”Gecen Kisi” ‘‘LCD ye devre yapimi yazdı

LCDOUT $FE,$C0,”Sayisi =”,#x

goto basla

END

 

Sosyal Medyada Paylaş Facebook Twitter Google+

Etiketler: , , , , ,
Eklenme Tarihi: 1 Ocak 2018

Konu hakkında yorumunuzu yazın

UA-46017808-1

HOŞ GELDİNİZ

Youtube kanalıma Abone Olabilirsiniz.