
Hazırlayan: Mustafa PATAN Proje Açıklamasının Tamamı ve Kaynak şema pcb kod isis simülasyon .dsn .lyt .bas dosyaları Emeği geçen Kişilere Teşekkürler
Neden P1C16F628A
Burada programlanması ve örnek uygulamaları verilen PIC’in 16F628A olmasının en önemli nedeni, analog dijital çeviricisi olması, PIC16F628A mikrodenetleyicisinin program belleğinin silinip yazılabilen teknolojisi ile üretilmiş olması ve giriş çıkış port sayısının fazla olmasıdır.
Çok kez programlanabilen hafıza teknolojisi ile üretilen bir belleğe yüklenen program, entegreye uygulanan enerji kesilse bile silinmez. Yine bu tip bir belleğe istenirse yeniden yazılabilir. Çok kez programlanabilen bellekler bu özellikleri ile EEPROM bellekler ile aynı görünmektedirler. Gerçekten de çok kez programlanabilen ile EEPROM bellek aynı şeylerdir.
Kullanıcılar tarafından çok kez programlanabilen belleğe sahip olan P1C16F628A’yı programlayıp, deneylerde kullandıktan sonra, silip yeniden program yazmak, büyük kolaylıktır. Böylece işe yeni başlayanlar yaptıkları programlama hataları nedeniyle entegreyi atmak zorunda kalmayacaklardır. Gerçi EPROM program hafızası olan camlı entegrelere de yeniden yazmak mümkündür ama, bu durumda bir EPROM silici cihazına ihtiyaç vardır.
Bir silici cihaz bulunsa bile programı bellekten silmek için en azından 10-15 dakika beklemek zorunda kalınacaktır. İşte PIC16F628A’nın bu özelliği mikrodenetleyici kullanmaya yeni başlayanlar için ideal bir seçenektir.
Pic Basic Pro Nedir?
Pic basic pro; koyun postundan kıl ayıklar gibi assembly dilinde program yazmaktan yorulanların akıllılık edipte bir sürü luzumsuz bitlerle uğraşmak yerine daha basit ve kullanıcı dostu bir arabirim geliştirmesi sonucu ortaya çıkan bir derleyicidir ki, pic assembly dilinde 20, 30 sayfa süren bir program hiç hilafsız Pic Basic Pro’da bi iki sayfa ya tutar ya tutmaz. Bu projede kullanılan programın uzunluğuna ve yaptığı işe bakmak bu işi anlatmak için kafidir.
Devrenin Özellikleri
Projede yaptığımız devre şu fonksiyonları gerçekleştirmektedir
İki adet dahili telefon devreye bağlanmaktadır.
Bu dahili telefonlardan önce hangisi 9’u tuşlarsa onu harici hatta bağlamaktadır.
Harici hattan bir çağrı geldiğinde 1 nolu dahili telefonu çaldırmaktadır.
Devrenin Çalışma Prensibi
Devre iki adet telefonun iki adet röle ile hatta bağlanmasını sağlar. Her iki telefonun kendisine ait bir rölesi vardır. Bu röle aktif olduğunda telefonun harici hatta bağlanmasını, pasif olduğunda ise dahili bir yapay telefon hattına bağlanmasını sağlar. Bu yapay telefon hattı sadece dtmf kod çözücü entegresiyle (CM8870) telefondan basılan tuşu anlamaya yarar.
Böylece hangi telefondan önce 9 tuşlandığı anlaşılır ve bu telefon harici telefon hattına bağlanır. Dışardan bir çağrı gelmesi halinde ise, çağrı geldiğini anlayan devre ile çağrının geldiği tespit edilir ve 1 nolu telefon harici hatta bağlanarak 1 nolu telefonun çalması sağlanır. Aşağıdaki şekilde bunu incelersek; Hattan gelen bilgi telefonun çalması esnasında 80 Volt AC gerilim şeklindedir. Bu AC gerilim D1 diyodu ile doğrultulduktan sonra R5ve R6 gerilim bölücü dirençleriyle genliği azaltılır.

Bu azaltılan yarım dalga gerilim C5 kondansatörüyle filtre edilerek DC bir seviye haline dönüştürülür. Kondansatörün + ucu ise pice ring dedektörü olarak bağlandığından, telefon çalarken bu pinde (PORTB.0) oluşan gerilim +5 Volt seviyesine kadar yükselecek ve pic bu pinden ölçüm alarak telefonun çaldığını anlayacaktır.
Devrede herhangi bir şekilde konuşmanın bitiğini anlayacak bir kısım olmadığından devreyi başlangıç koşullarına döndürmek için bir buton kullanılmıştır.
Devrenin beslemesinde ise aşağıdaki devre kullanılmıştır

Bu devrede J2 girişine uygulanan gerilim D2 diyodu ile yarımdalga doğrultulduktan sonra C6 kondansatörüyle doğrultulur ve 7805 +5 Volt gerilim regülatörüne verilir. Çıkışından alınan +5 Voltluk gerilim C7 kapasitesiyle filtrelendikten sonra Devreye DTMF kodçözücü ve Pic entgeresi beslemesi olarak dağılır. Devrede görülen +12 Volt ise dahili telefonların beslemesi için kullanılmıştır.
Devrenin Yapım Aşamaları
Devrenin şeması ISIS.EXE adlı programda çizildi.
Isis.exe den ARES.EXE programına geçilip baskılı devresi çizildi.
Baskılı devresi printerden PNP kağıdına basıldı.
Basılmış PNP kağıdı bakırlı plaketin üzerine koyup ütülendi.
Ütülenmiş bakırlı plaketten PNP kağıdı ayrılıp tuzruhu-perhidrol karışımına atıldı.
Baskılı devrenin yolları çıktıktan sonra asitten çıkartıp delikleri delinip elemanların montajı yapıldı.
MPLAB programında PicBasic Source Code yazıldı.
Source Code MPLAB içinde derlenip HEX file elde edildi.
Bu HEX file P16PRO adlı programda açılarak, Pic programlayıcı cihazı ile 16F628A entegresine yüklendi
İki Aboneli Santral Projesinin Kaynak .bas Kodları
;2 ABONELİ SANTRAL Programı ve devresi V1.0
'16f628
@ __CONFIG _BODEN_OFF & _CP_OFF & _DATA_CP_OFF & _PWRTE_ON & _WDT_OFF & _LVP_OFF & _MCLRE_OFF &_INTOSC_OSC_NOCLKOUT
@ messg "Config word yazıldı"
define OSC 4
define NO_CLRWDT
std1 var PORTB.3
std2 VAR PORTA.5
ringin var PORTB.0
hat2 var PORTB.1
hat1 var PORTA.4
number var byte
ilk var byte
temp var byte
starter:
CMCON=$07
OPTION_REG=$80
PAUSE 300
TRISA=%11101111
TRISB=%11111101
PORTA=0
@ movf PORTB,F
high hat1 'hat1 beklemede
high hat2 'hat1 beklemede
low hat1
low hat2
pause 3000
high hat1
high hat2
start:
if std1=1 then
pause 10
temp=PORTB
temp=temp & %11110000
temp=temp >>4
if temp=9 then
low hat1
pause 100
fdet:
if PORTB.7=1 then
pause 10
high hat1
goto start
else
goto fdet
endif
endif
endif
if std2=1 then
pause 10
temp=PORTA
temp=temp & %00001111
if temp=9 then
low hat2
fdet1:
if PORTB.7=0 then
pause 10
high hat2
goto start
else
goto fdet1
endif
endif
endif
if ringin=1 then
low hat1 'hattı line bağla
while PORTB.7=0 ' hat açık olduğu sürece bekle
pause 100
wend
high hat1 'hattı devre dışı bırak
endif
goto start
getnumber:
number=temp
if number=0 then
number=13
endif
if number=10 then
number=0
endif
return
end
Yazar: gevv Tarih: 6/09/2008 Etiketler: CM8870, dtmf, PIC 16F628, Pic Basic Pro, santral, telefon
Yorumlar