Site içi Arama

Ara

PIC16F628 Jal ve Ledlerle Yapılan Işık Gösteri Devresi

Mehmet Yılmaz - 20.01.2010

Bu yazıda ledlerle yapılmış basit bir ışık gösterisi devresi tanıtılacaktır. Mikrokontrolör olarak Microchip PIC16F628 kullanılmıştır. PIC'in kodlanması JAL V2.4l ile yapılmıştır. Bu kodlamada JalEdit programı kullanılmıştır.

JAL Kodlamada portlara yön verilerek bekleme yapılması sağlanmıştır. Devrenin Jal kaynak dosyalarını indirmek için tıklayınız. Jal kodlamada Jal V2 derleyici ve Jallib kütüphanesi kullanılmıştır.

Devreye ait şema ve baskı devre dosyalarını indirmek için tıklayınız. Devre şeması ve baskı devresi KiCad ile hazırlanmıştır.

Devreye ait Proteus ISIS simülasyon dosyasını indirmek için tıklayınız.

Devrenin çalışma voltaj aralığı 78L05 entegresinin giriş aralığı olup, 6,5 volt ile 30 volt arasıdır.

Devre Şeması

Devre şemasını PDF dosya olarak açmak için tıklayınız.

Malzeme Listesi:
U1: PIC16F628A
U2: 78L05 (smd, kılıf: SO-8)
C1: 100nF (smd, kılıf: 1206)
D1, D2, D3, D4, D5, D6, D7, D8: Led 5mm, kırmızı
R1, R2, R3, R4, R5, R7, R8: 470 Ohm (SMD, kılıf:807)
R6: 470 Ohm (smd, kılıf: 1206)
P1: Besleme girişi.
Plaket: 3x6,2 cm tek yüz

Baskı devre lehim yüzü taslağı

Lehim tarafı yerleşim planı

Malzeme tarafı yerleşimi

Montaja hazır baskı devre

Montajı yapılmış halde baskı devre


Montajlı baskı devre lehim tarafı

Çalışan devre videosu

Devrenin Jal V2.4l compiler ile derlenen kodları:

-- ------------------------------------------------------
-- BASLIK: JAL VE MICROCHIP PIC16F628 ILE ISIK GOSTERISI
--
-- YAZAR: Mehmet YILMAZ, mehmet.yilmaz@teknomerkez.net
--
-- TARIH: 30.12.2009
--
-- Derleyici: JAL V2.4l
--
-- Bu dosyada jallib kutuphanesi kullanilmistir
--   (http://jallib.googlecode.com)
--
-- Released under the BSD license
--   (http://www.opensource.org/licenses/bsd-license.php)
--
-- ------------------------------------------------------
--
include 16f628
pragma target clock 4_000_000
pragma target fuses 0x3F10
--
enable_digital_io()
--
portb_direction = output
porta_direction = output
--
forever loop
portb = 0b00000001
_usec_delay(50000)
portb = 0b00000010
_usec_delay(50000)
portb = 0b00000100
_usec_delay(50000)
portb = 0b00001000
_usec_delay(50000)
portb = 0b00010000
_usec_delay(50000)
portb = 0b00100000
_usec_delay(50000)
portb = 0b01000000
_usec_delay(50000)
portb = 0b10000000
_usec_delay(50000)
--
portb = 0b00000001
_usec_delay(50000)
portb = 0b00000011
_usec_delay(50000)
portb = 0b00000110
_usec_delay(50000)
portb = 0b00001100
_usec_delay(50000)
portb = 0b00011000
_usec_delay(50000)
portb = 0b00110000
_usec_delay(50000)
portb = 0b01100000
_usec_delay(50000)
portb = 0b11000000
_usec_delay(50000)
portb = 0b10000000
_usec_delay(50000)
--
portb = 0b00000001
_usec_delay(50000)
portb = 0b00000011
_usec_delay(50000)
portb = 0b00000111
_usec_delay(50000)
portb = 0b00001110
_usec_delay(50000)
portb = 0b00011100
_usec_delay(50000)
portb = 0b00111000
_usec_delay(50000)
portb = 0b01110000
_usec_delay(50000)
portb = 0b11100000
_usec_delay(50000)
portb = 0b11000000
_usec_delay(50000)
portb = 0b10000000
_usec_delay(50000)
--
portb = 0b00000001
_usec_delay(50000)
portb = 0b00000011
_usec_delay(50000)
portb = 0b00000111
_usec_delay(50000)
portb = 0b00001111
_usec_delay(50000)
portb = 0b00011110
_usec_delay(50000)
portb = 0b00111100
_usec_delay(50000)
portb = 0b01111000
_usec_delay(50000)
portb = 0b11110000
_usec_delay(50000)
portb = 0b11100000
_usec_delay(50000)
portb = 0b11000000
_usec_delay(50000)
portb = 0b10000000
_usec_delay(50000)
portb = 0b10000000
_usec_delay(50000)
for 4 loop
  portb = 0b00001111
  _usec_delay(50000)
  portb = 0b11110000
  _usec_delay(50000)
end loop
for 4 loop
  portb = 0b00000000
  _usec_delay(100000)
  portb = 0b11111111
  _usec_delay(100000)
end loop
for 10 loop
  portb = 0b01010101
  _usec_delay(50000)
  portb = 0b10101010
  _usec_delay(50000)
end loop
for 3 loop
  portb = 0b10000001
  _usec_delay(50000)
  portb = 0b01000010
  _usec_delay(50000)
  portb = 0b00100100
  _usec_delay(50000)
  portb = 0b00011000
  _usec_delay(50000)
  portb = 0b00100100
  _usec_delay(50000)
  portb = 0b01000010
  _usec_delay(50000)
  portb = 0b10000001
  _usec_delay(50000)
end loop
for 2 loop
  portb = 0b11000011
  _usec_delay(50000)
  portb = 0b01100110
  _usec_delay(50000)
  portb = 0b00111100
  _usec_delay(50000)
  portb = 0b00011000
  _usec_delay(50000)
  portb = 0b00111100
  _usec_delay(50000)
  portb = 0b01100110
  _usec_delay(50000)
  portb = 0b11000011
  _usec_delay(50000)
end loop
for 4 loop
  portb = 0b00000011
  _usec_delay(100000)
  portb = 0b00001100
  _usec_delay(100000)
  portb = 0b00110000
  _usec_delay(100000)
  portb = 0b11000000
  _usec_delay(100000)
  portb = 0b00110000
  _usec_delay(100000)
  portb = 0b00001100
  _usec_delay(100000)
end loop
for 6 loop
  portb = 0b00000001
  _usec_delay(30000)
  portb = 0b00000010
  _usec_delay(30000)
  portb = 0b00000100
  _usec_delay(30000)
  portb = 0b00001000
  _usec_delay(30000)
  portb = 0b00010000
  _usec_delay(30000)
  portb = 0b00100000
  _usec_delay(30000)
  portb = 0b01000000
  _usec_delay(30000)
  portb = 0b10000000
  _usec_delay(30000)
  portb = 0b01000000
  _usec_delay(30000)
  portb = 0b00100000
  _usec_delay(30000)
  portb = 0b00010000
  _usec_delay(30000)
  portb = 0b00001000
  _usec_delay(30000)
  portb = 0b00000100
  _usec_delay(30000)
  portb = 0b00000010
  _usec_delay(30000)
  portb = 0b00000001
  _usec_delay(30000)
end loop
end loop


Adana'da dünyaya geldi. Televizyon tamirciliğınde çırak olarak erken dönemde iş hayatına başladı. Daha sonraları Adana ve Ankara'da imalat, bilgisayar ve danışmanlık sektöründe iş hayatına devam etti. Şu anda kendisine ait işyerinde çalışmalarına devam etmektedir.
Web adresi: www.teknimer.com
E-posta: mehmet@teknimer.com
İçerik Yan Blok
Konular
Tasarım: Teknimer Teknoloji
Yukarı