Projenin Amacı ;
LM35 sıcaklık sensörü ile ölçülen değeri Display ekranından ortam sıcaklığını görebilmek.
Malzeme Listesi
- 1 x PIC12F675
- 3 x Bc537 Transistör
- 1 x LM35
- 3 x 330 Ohm Direnç
- 1 x 74HC164 veya 74LS164
- 4 x 1K Direnç
- 1 x LM7805
- 1 x 1N4001
- 3 x 7 segmentli display(Ortak Katot)
- 2 x 100 nf Seramik Kondansatör
Projenin Proteus programında Uygulanması
Devrenin Baskı Devre Çizimi Ve Üstten görünüşü
PIC12F675 Micro denetleyicisinin programlanması
PIC12F675 mikrodenetleyicesine ait program kodları aşağıda belirtilmiştir ;
- include 12f675
- pragma target clock 4_000_000 — kristal 4 Mhz
- pragma target OSC INTOSC_NOCLKOUT — dahili OSC
- pragma target WDT disabled watchdog Kapalı
- pragma target MCLR INTERNAL — mclr kullanılmıyor
- enable_digital_io()
- pin_A0_direction = input
- pin_A1_direction = output
- pin_A2_direction = output
- pin_A3_direction = output
- pin_A4_direction = output
- pin_A5_direction = output
- alias birler is pin_a5 — birler hanesi pin_a5
- alias onlar is pin_a4 — onlar hanesi pin_a4
- —————————- ADC İşlemleri —————————
- ADCON0_VCFG = false — Harici Vref yok
- JANSEL_ANS0 = true — Sadece AN0 kuıllanılacak
- pin_A0_direction = input — AN0 Giriş ayarlandı
- ADCON0_ADFM = true — sonuc sag yaslı gelsin
- ANSEL_ADCS = 0b_001 — ADC Çevrim Clock Seçeneği = OSC/8
- function adc_oku return word is
- pragma inline
- ADCON0_ADON = True — ADC Çevrimi Çalıştırıldı
- _usec_Delay(3)
- ADCON0_GO = true — ADC Çevrimi işlem yapıyor
- while
- ADCON0_GO loop end loop — ADC Çevriminin bitmesini Bekle
- return
- ((ADRESH *256) + ADRESL) — Okunan Degerleri Geri Döndür
- end function —————————————————————————
- ——————– 74HC164 için pin tanımlamaları ——————-
- var volatile bit clock_pin is pin_a1 — Clock Pini
- var volatile bit data_pin is pin_a2 — Data Pini
- procedure display_yolla(byte in giris_bilgi) is — veri gönderme
- var bit veri_biti at giris_bilgi : 0 — verinin sıfırıncı biti
- for 8 loop — 8 kere döngü
- data_pin = veri_biti — Verinin Düşük bitini gönder
- giris_bilgi = giris_bilgi >> 1 — Veriyi bir sag kaydır
- clock_pin = high — Clock ver
- clock_pin = low
- end loop
- end procedure———————————————————————–
- procedureanimasyon is
- pragma inline
- var byte temp
- for 2 loop — İki kere bir yöne animasyon
- temp = 0b_1000_0000
- for 6 loop
- onlar = false
- birler = false
- display_yolla(temp)
- onlar = true
- birler = true
- temp = temp >> 1
- _usec_delay(80000)
- end loop
- end loop
- for 2 loop — İki kere diğer yöne animasyon temp = 0b_0000_0100
- for 6 loop
- onlar = false
- birler = false
- display_yolla(temp)
- onlar = true birler = true
- temp = temp << 1
- _usec_delay(80000)
- end loop
- end loop
- end procedure
- animasyon procedure
- derece_al(byte out hane_10,byte out hane_1) is
- pragma inline
- var word temp_deger = 0
- var byte basamaklar[] = {252,96,218,242,102,182,190,224,254,246}
- temp_deger = ((adc_oku) * 100)/204 — adc’yi dereceye çevir
- if temp_deger > 99 then — eğer 99’dan büyük ise hane_10 = 2 — “-” — “–” göster hane_1 = 2 — “-“
- else hane_10 = basamaklar[(temp_deger / 10)] — onlar hanesini ayır hane_1 = basamaklar[(temp_deger % 10)] — birler hanesini ayır
- end if
- end procedurevar byte
- onlar_hanesi
- ,birler_hanesi
- forever
- loop derece_al(onlar_hanesi,birler_hanesi) — dereceyi al for 200 loop
- onlar = false birler = false — onlar hanesini gönder
- display_yolla(onlar_hanesi) onlar = true
- _usec_delay(2000) onlar = false
- display_yolla(birler_hanesi) — Birler hanesini gönder birler = true
- _usec_delay(2000)
- end loop onlar = falsebirler = false_usec_delay(2000)
- end loop
Devremizin Yapım Aşamaları
Baskı devrenin bakır plakete aktarılması
Baskı devre ile Birleşmiş Plaketemizin Asite atılması ve Baskı devrenin alınmış hali
ve Baskı devrenin alınmış hali
Baskı devre Plaketinin Matkap yardımı ile Delinmesi
Devre elemanların Yerleştrilmesi ve kontrolü
Devre Elemanlarının Montajı Lehimlenmesi
Devrenin tamamlanması ve Üstten görünüşü
Devrenin Çalışırken Resmi