PIC16F628 Jal ve Ledlerle Yapılan Işık Gösteri Devresi
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
Yorumlarınız
Bir yorum ekleyin
İzin verilen html etiketler (tag): <p><div><b><strong><i><u><del><hr><sup><sub><br>