Tasarım ve simülasyon aşaması bittikten sonra devrenin oluşturulması için ilk olarak sanal ortamdaki devrenin devre şeması oluşturulmaya çalışılmıştır.
Devre Şeması
Öncelikle oluşturulan similasyonlardan baskı devrenin çizilmesi gerçekleştirilmiştir. Ares ve Ultiboard programları ile similasyonlardan ancak çift katmanlı baskı devre şemaları elde edilmiştir. Fakat bu uygulamalarda devrenin sağlıklı çalışması zor ve riskli olduğu için PCB Express programı yardımıyla baskı devre çizimi elle , tek katman üzerine altmış beş atlama kullanılarak baştan çizilmiştir.
Devrenin Yapımı
İlk olarak devre şemasının printer çıktısı sarı kağıt üzerinde alınarak, bakır levha üzerine yollar ütü yardımıyla aktarılmıştır. Yeterince ısıtıldıktan sonra sarı kağıt levha üzerinden sökülmüştür. Bu işlem sonucunda istenildiği gibi çıkmayan bazı yollar asetat kalemi yardımıyla baştan çizilmiş veya ince olan yollar kalınlaştırılmıştır.
Tüm bu işlemlerin amacı ise HCl+perhidrol çözeltisine atılan bakır levhada çizilen yolların altında kalan yerler dışındaki bakır katmanın çözünmesidir. Böylece devre yolları ortaya çıkarılmıştır.
Kısa devre kontrolleri yapılmış ve kopuk yollar istenilen hale getirilmiştir. Daha sonra kartta önceden belirlenen yerlerin delinmesi aşamasına geçilmiştir.
Levhanın delinme aşaması da tamamlandıktan sonra malzemelerin yerleştirilmesi ve lehimlenmesi işlemine geçilmiştir. Tüm bu süreç boyuncada kısa devre kontrolleri yapılmıştır ve ortaya çıkan bazı soğuk lehim ve kısa devre gibi hatalar ortadan kaldırılmıştır.
Lehimleme aşaması bittikten sonra oluşan devrenin test aşamasında gözden kaçırılan bazı hatalar giderilmeye çalışılmış fakat yeterli olmamıştır. Bu nedenle devre şeması kontrol edilmiş ve bir hatayla karşılaşılmamıştır. Tüm bu işlemler yeniden tekrarlanmıştır.
Devrenin Çalıştırılması
Tüm baskı işlemleri bittikten sonranı devrenin çalışıp çalışmadığını kontrol etmek için gerekli beslemeler devreye uygulanmıştır.
SONUÇ
Bu projede 4 bitlik 2 adet sayının çarpılmasını sağlayan devrenin tasarlanması amaçlanmıştı. Bu devrenin gerçellenmesi amacıyla farklı çarpma algoritmaları teorik olarak incelenmiş ve daha sonra pratiğe en uygun algoritma seçilmiştir.
Simülasyon aşamsında farklı entegreler kullanılarak (tasarımda iyileştirme yapılarak) en az karmaşıklığa sahip çarpım devresi elde edilmeye çalışılmıştır. Yapılan iyileştirmeler devrenin basımını kısmen kolaylaştırmış olsada yine de devrede birçok eleman olması nedeniyle basit hatalar devrenin üretim süresini uzatmıştır.
Bu projeyle değişik çarpma algoritmaları görülüp, devrede dijital elemanlar (and kapısı, 7 segment display gibi) ve PIC kullanılması, karmaşık devre tasarlama ve oluşturulması konusunda pratik kazanılmıştır.
Aşağıda davremizde kullandığımız Pic kodları mevcuttur.
4 bitlik Çarpma işlemi için PIC kodları:
Pic Programlama
Device = 16F877A 'hangi pici kullanacağımızı seçtik
XTAL 20 'kristali seçtik
ALL_DIGITAL 1 'butun bacaklar dijital
Dim digita As Byte 'değişkenler tanımladık 1 byte lık büyüklükte
Dim digitb As Byte
Dim digitc As Byte
Dim giris As Byte
Dim i As Byte
Dim sayi As Byte
Input PORTA 'port a giriş
Input PORTE 'port e giriş
Clear PORTB
Clear PORTC
Clear PORTD
Clear TRISE.4 'portd normal giriş çıkış
Output PORTB 'portb öıkış
Output PORTC 'portc çıkış
Output PORTD 'portd çıkış
DelayMS 100 '100ms pici dinlendiriyoruz
basla: 'porte üst 3 bit onu oku 64 ile çarp ve porta ile topla
giris=PORTE * 64
giris = giris + PORTA
i = giris
While i>=10 'girişin mod 10 unu al
i=i-10
Wend
digita = i
i= giris-i 'girişin mod 100 ünü al
While i>=100
i = i-100
Wend
digitb = i/10
digitc = digitb *10
digitc = giris - digitc - digita
digitc = digitc / 100 'yüzler basamagını bul
sayi = digita 'digit a nın 7 segment değerini al gel
Call cevir
PORTB = sayi
sayi = digitb 'digit b nın 7 segment değerini al gel
Call cevir
PORTC = sayi
sayi = digitc 'digit b nın 7 segment değerini al gel
Call cevir
PORTD = sayi
GoTo basla 'ayni işlemleri baştan yap
cevir: 'binary sayıyı 7 segment formatına değiştir
Select sayi
Case 0
sayi = %00111111
Case 1
sayi = %00000110
Case 2
sayi = %01011011
Case 3
sayi = %01001111
Case 4
sayi = %01100110
Case 5
sayi = %01101101
Case 6
sayi = %01111101
Case 7
sayi = %00000111
Case 8
sayi = %01111111
Case 9
sayi = %01101111
EndSelect
Return
Hiç yorum yok:
Yorum Gönder