Menü

Dijital Termometre

8 Aralık 2017 - Baskı Devre, Genel
Dijital Termometre
5 (99.33%) 30 votes

  Projenin Amacı ;

LM35 sıcaklık sensörü ile ölçülen değeri Display ekranından ortam sıcaklığını görebilmek.

     Malzeme Listesi

   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 ;

 

  1. include 12f675
  2. pragma target clock 4_000_000       — kristal 4 Mhz
  3. pragma target OSC  INTOSC_NOCLKOUT   — dahili OSC
  4. pragma target WDT  disabled          watchdog Kapalı
  5. pragma target MCLR INTERNAL         — mclr kullanılmıyor
  6. enable_digital_io()
  7. pin_A0_direction =  input
  8. pin_A1_direction =  output
  9. pin_A2_direction =  output
  10. pin_A3_direction =  output
  11. pin_A4_direction =  output
  12. pin_A5_direction =  output
  13. alias birler is pin_a5                   — birler hanesi pin_a5
  14. alias onlar  is pin_a4                   — onlar  hanesi pin_a4
  15. —————————- ADC İşlemleri —————————
  16.  ADCON0_VCFG = false                 — Harici Vref yok
  17. JANSEL_ANS0 = true                  — Sadece AN0 kuıllanılacak
  18. pin_A0_direction = input           — AN0 Giriş ayarlandı
  19. ADCON0_ADFM = true                  — sonuc sag yaslı gelsin
  20.  ANSEL_ADCS = 0b_001                 — ADC Çevrim Clock Seçeneği = OSC/8
  21. function adc_oku return word is
  22.  pragma inline
  23. ADCON0_ADON = True               — ADC Çevrimi Çalıştırıldı
  24. _usec_Delay(3)
  25. ADCON0_GO = true                 — ADC Çevrimi işlem yapıyor
  26. while
  27. ADCON0_GO loop end loop   — ADC Çevriminin bitmesini Bekle
  28. return
  29. ((ADRESH *256) + ADRESL)  — Okunan Degerleri Geri Döndür
  30. end function —————————————————————————
  31. ——————– 74HC164 için pin tanımlamaları ——————-
  32. var volatile bit clock_pin    is pin_a1          — Clock Pini
  33. var volatile bit data_pin     is pin_a2          — Data Pini
  34. procedure display_yolla(byte in giris_bilgi) is — veri gönderme
  35. var bit veri_biti at giris_bilgi : 0          — verinin sıfırıncı biti
  36. for 8 loop                             — 8 kere döngü
  37. data_pin = veri_biti                — Verinin Düşük bitini gönder
  38. giris_bilgi = giris_bilgi >> 1      — Veriyi bir sag kaydır
  39. clock_pin = high                    — Clock ver
  40. clock_pin = low
  41. end loop
  42. end procedure———————————————————————–
  43. procedureanimasyon is
  44.  pragma inline
  45. var byte temp
  46. for 2 loop                         — İki kere bir yöne animasyon
  47. temp = 0b_1000_0000
  48. for 6 loop
  49.  onlar  = false
  50. birler = false
  51.  display_yolla(temp)
  52. onlar  = true
  53. birler = true
  54.  temp = temp >> 1
  55. _usec_delay(80000)
  56. end loop
  57.  end loop
  58.  for 2 loop                         — İki kere diğer yöne animasyon  temp = 0b_0000_0100
  59.  for 6 loop
  60.  onlar  = false
  61. birler = false
  62.    display_yolla(temp)
  63.  onlar  = true birler = true
  64.      temp = temp << 1
  65.  _usec_delay(80000)
  66. end loop
  67. end loop
  68. end procedure
  69. animasyon procedure
  70. derece_al(byte out hane_10,byte out hane_1) is
  71. pragma inline
  72. var word temp_deger = 0
  73. var byte basamaklar[] = {252,96,218,242,102,182,190,224,254,246}
  74. temp_deger = ((adc_oku) * 100)/204   — adc’yi dereceye çevir
  75.   if temp_deger > 99 then                    — eğer 99’dan büyük ise     hane_10 = 2 —    “-”                   — “–” göster     hane_1  = 2 —    “-“
  76. else     hane_10 = basamaklar[(temp_deger / 10)] — onlar hanesini ayır     hane_1  = basamaklar[(temp_deger % 10)] — birler hanesini ayır
  77. end if
  78. end procedurevar byte
  79. onlar_hanesi
  80. ,birler_hanesi
  81. forever
  82. loop derece_al(onlar_hanesi,birler_hanesi)      — dereceyi al  for 200 loop
  83. onlar = false birler = false           — onlar hanesini gönder
  84. display_yolla(onlar_hanesi)     onlar = true
  85. _usec_delay(2000)     onlar = false
  86.  display_yolla(birler_hanesi)           — Birler hanesini gönder     birler = true
  87.   _usec_delay(2000)
  88. end loop onlar = falsebirler = false_usec_delay(2000)
  89. 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 

 

 

Bir cevap yazın

E-posta hesabınız yayımlanmayacak.

Araç çubuğuna atla