t.c.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol...

36
T.C. KARADENİZ TEKNİK ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ ULTRASONİK MESAFE ÖLÇER BİTİRME ÇALIŞMASI Mehmet İstemi KARAÖMER Sefer HOROZ 179954 179959 2011 TRABZON

Upload: others

Post on 26-Feb-2021

6 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

T.C.

KARADENİZ TEKNİK ÜNİVERSİTESİ

MÜHENDİSLİK FAKÜLTESİ

ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ

ULTRASONİK MESAFE ÖLÇER

BİTİRME ÇALIŞMASI

Mehmet İstemi KARAÖMER Sefer HOROZ

179954 179959

2011

TRABZON

Page 2: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

T.C.

KARADENİZ TEKNİK ÜNİVERSİTESİ

MÜHENDİSLİK FAKÜLTESİ

ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ

ULTRASONİK MESAFE ÖLÇER

BİTİRME ÇALIŞMASI

Mehmet İstemi KARAÖMER Sefer HOROZ

179954 179959

TEZ DANIŞMANI

PROF. DR. SEFA AKPINAR

2011

TRABZON

Page 3: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

i

ÖNSÖZ

Lisans eğitimimiz boyunca aldığımız derslerin, yaptığımız projelerin ve araĢtırmaların

kazandırdığı bilgi ve deneyimlerden faydalanarak bu araĢtırmayı gerçekleĢtirdik. Projenin

yapım aĢamasında kazandığımız bilgi ve deneyimlerin meslek hayatımızda proje oluĢturma ve

geliĢtirme, takım halinde çalıĢma ve karĢılaĢılan problemlere akılcı çözümler bulma yetilerini

kazandırdığı kanaatindeyiz. Alınan veriler doğrultusunda ya pılan bu çalıĢmanın tüm

araĢtırmacılara yardımcı olmasını dileriz.

Bu tez çalıĢmamızda yardımlarından dolayı, her zaman anlayıĢlı olan ve tez konumuzun

danıĢmanlığını yapan Prof Dr. Sefa AKPINAR hocamıza , çevirilerde bize yardımcı olan

ağabeyim ÖMER KARAÖMER ‘e, bize her türlü maddi ve manevi desteği veren arkadaĢla-

rımıza ve ailelerimize teĢekkürlerimizi sunarız.

MEHMET ĠSTEMĠ KARAÖMER

SEFER HOROZ

2011

TRABZON

Page 4: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

ii

İÇİNDEKİLER

1.GĠRĠġ ...................................................................................................................................... 1

2. UZAKLIK ÖLÇME TEKNĠKLERĠ ...................................................................................... 2

2.1 ULTRASONĠK MESAFE ÖLÇER ................................................................................ 3

2.2.DEĞĠġMEZ (SABĠT ) BULMA ..................................................................................... 4

3.DONANIM AÇIKLAMASI ................................................................................................... 5

3.1.ALICI DEVRESĠ ........................................................................................................... 5

3.1.1. SĠNYAL YÜKSELTEÇ DEVRESĠ ....................................................................... 5

3.1.2. SĠNYAL DOĞRULTMA DEVRESĠ ..................................................................... 6

3.1.3.KARġILAġTIRICI DEVRE ................................................................................... 7

3.1.4. SĠNYAL TUTMA DEVRESĠ ................................................................................ 8

3.2. VERĠCĠ DEVRESĠ ......................................................................................................... 8

3.3.DĠSPLAY ........................................................................................................................ 9

3.4 MĠKRO DENETLEYĠCĠ .............................................................................................. 10

4.YAZILIM AÇIKLAMASI ................................................................................................... 11

4.1ASSEMBLY PROGRAMI ............................................................................................ 11

4.2.KURULUM AġAMASI ................................................................................................ 12

4.2.1. PORT KURULUMU ............................................................................................ 12

4.2.2.ULTRASONĠK AKTARIM PERĠYODU (TMRO) ............................................. 12

4.2.3. YAKALAMA MODU KURULUMU ................................................................. 13

4.2.4.ÇEVĠRĠCĠ KURULUMU ..................................................................................... 13

4.2.5. LED (TMR2) ZAMANLAYICI PERĠYODU ..................................................... 13

4.2.6.KESME BAġLANGICI ........................................................................................ 13

4.3.KESME AġAMASI ...................................................................................................... 13

4.4.KESME SONA ERDĠRME AġAMASI ....................................................................... 14

4.5.ULTRASONĠK DALGA GÖSTERĠM AġAMASI ...................................................... 14

Page 5: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

iii

4.5.1.AÇIK KESME GÖSTERĠMĠ ................................................................................ 14

4.5.2.ALGILAMA HATALARINI KONTROL ETME ................................................ 14

4.5.3.YANSIYAN DALGA ALICISINI DURDURMA ............................................... 14

4.5.4.YAKALAMAYI BAġLATMA ............................................................................ 14

4.5.5.40KHZ DALGA GÖNDERME ............................................................................ 14

4.5.6.YENĠLENMĠġ BĠLGĠ EKRANININ ALIMI ....................................................... 15

4.5.7. HATA BULMA ................................................................................................... 15

4.5.8.YANSITILMIġ DALGA ÖLÇÜMÜNÜN BAġLANGICI .................................. 15

4.6. YAKALAMA KESME AġAMALARI ......................................................................... 15

4.6.1.KESME EKRANINI TEMĠZLEME ..................................................................... 15

4.6.2.MESAFE ÇEVRĠM AġAMASI ............................................................................ 15

4.6.3.EKRAN (GÖRÜNÜM) AġAMASI ...................................................................... 16

5.PROJENĠN GELĠġĠMĠ ......................................................................................................... 17

5.1.SĠNYAL ÜRETĠMĠ ....................................................................................................... 17

5.2.ALICI DEVRESĠ GÜCÜNÜN KARġILANMASI ...................................................... 17

5.3.ĠLETĠM DALGASI UZUNLUĞU ................................................................................ 17

6.TESTLER VE SONUÇLAR ................................................................................................. 18

6.1.ÖLÇÜM UZAKLIĞI .................................................................................................... 18

6.2.MESAFE ÖLÇERĠN PERFORMANSI ....................................................................... 18

7.SONUÇ ................................................................................................................................. 19

KAYNAKLAR ......................................................................................................................... 20

EK-A Ultrasonik Mesafe Ölçümü için PIC Kaynak Kodları ................................................... 21

EK-B ġEKĠL B.1 DEVRE ÇĠZĠMĠ .......................................................................................... 29

EK-C MALĠYET ...................................................................................................................... 30

Page 6: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

iv

ÖZET

Bu tezimizin amacı fiziksel temas olmadan nesnelerin uzaklığını ölçmektir. Bu ölçmeyi

yaparken çeĢitli teknikler kullanılır. Biz bu tezimizde ultrasonik dalgaları kullandık. Bunun

nedeni de daha ucuza gerçekleĢtirilmesidir. Projede kullandığımız elemanları ayrıntılı olarak

tanıttık. Yaptığımız iĢlemler sonucunda ölçtüğümüz mesafe de küçük hatalar oluĢtuğunu

tespit ettik bunun da nedenlerini açıkladık ve daha doğru ölçümler yapılabilmek için ne

yapılması gerektiğinden bahsettik.

Page 7: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

1

1.GĠRĠġ

Bu projenin amacı, fiziksel temas olmadan objelerin uzaklığını ölçmektir. Yaratılan

sistem taşınabilir olmalıdır. Bitirme boyunca uyulan çalışma takvimi Tablo1.1‟de

gösterilmektedir.

Tablo 1.1 Bitirme çalışması takvimi

15-

20

Oca

k

12-25

ġuba

t

3-7

Mar

t

15-

25

Mar

t

25-

30

Mar

t

1-12

Nisa

n

12-20

Nisa

n

20-30

Nisa

n

1-8

Mayı

s

8-15

Mayı

s

15-30

Mayı

s

Bitirme

Konusu

Belirleme

X

Konu

Hakkında

AraĢtırma

X X

Tez ile ilgili

Doküman

Toplama

X X X

Malzeme

belirleme

ve

araĢtırma

X

Malzeme

Satın Alma

X

Mekanik

Kısım

ÇalıĢmalar

ı

X X

Elektriksel

Sistem

ÇalıĢmalar

ı

X X

Tez Yazma X X X X

Page 8: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

2

2. UZAKLIK ÖLÇME TEKNĠKLERĠ

Bir çok oturmuş sistem dizaynlarında fiziksel temas olmadan objelerin ve sınırların

uzaklığını ayırt etmek önemli hale gelmiştir. Mesafeyi ölçmek için kullandığımız bazı

teknikler vardır.

Ultrasonik dalgalar

RF (elektromanyetik dalgalar)

Lazer

Tüm bu tekniklerde sinyal nesneye gönderilir ve yansıtılır. Biz bu yansıtılmış sinyali

mesafeyi ölçmek için kullanırız.

Lazer kullanımıyla mesafeyi daha keskin ve sağlam ölçebiliriz. Duman ve havadaki

bazı partiküller ölçümleri etkileyebilir. Lazer metrenin iki çeşidi vardır : ladar(lazerle

mesafe ölçme) ve lidar(ışıkla mesafe ölçme).

RF kullanıldığında frekans 10 MHz ile 100 MHz aralığında olmalıdır. Bu sistemin

lazerli olana göre daha kötü sonuçları vardır ama duman ve bazı partiküller tarafından

etkilenmezler. Kısa mesafelerde (100m-200m) bu sistemlerden iyi sonuçlar alabiliriz. Bu

sistemin diğerlerinden farkı ise yansıtılmış sinyal kullanmamamızdır. Sinyal almak ve RF

mesafe ölçere cevap vermek için mobil bir iletici kullanırız.

Ultrasonik mesafe ölçerleri düşük frekanslarda çalışır. Bu ultrasonik ölçerleri

diğerlerinden daha ucuz ve basit yapar. Diğer taraftan ultrasonik sinyaller uzaklaştıkça

zayıflar bu yüzden uzun mesafelerde kullanılmazlar.

Biz bu projemizde ultrasonik mesafe ölçer yaptık. Yaklaşık 2 m mesafeyi ölçmeyi

denedik. Bunu da PIC‟in yardımıyla yaptık.

Page 9: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

3

2.1 ULTRASONĠK MESAFE ÖLÇER

Ultrasonik dalgalar frekansı 20 kHz‟ den daha yüksek olan ses dalgalarıdır. Ultrasonik

mesafe ölçerden bir sinyal göndereceğiz ve yansıtılanı geri alacağız. Bunu yapmamızın

amacı sinyalin uçuş süresini ölçmektir. Sinyalin uçuşu Şekil 2.1‟de gösterilmiştir.

Mesafeyi ölçmek için sahip olduğumuz tek bilgi ses dalgalarının ve hızıdır.

verici

alıcı

ses yansıtıcı obje

ġekil 2.1- Sinyalin hareketi

İlk olarak ultrasonik sinyalleri tanıtmalıyız. Ultrasonik vericiler ultrasonik ses

sinyallerini göndermek için kullanılır ve sinyalleri geri almak için ultrasonik alıcıya

ihtiyacımız vardır. Verici ve alıcıların çalışma frekansı aynı olmalıdır. Resimde gösterilen

40kHz verici ve alıcı ikilisini kullandık.

Alıcı R40K

İletici T40K

ġekil 2.2-Ultrasonic alıcı ve verici

Page 10: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

4

Bir örnekle açıklamak gerekirse, 65.5 ms zaman diliminde her 0.5 ms de sinyal

göndeririz. T1 zamanda, alıcı sinyalleri yakalar ve sonlandırır. Bu sırada uçuş süresini

sayan zamanlayıcı durur ve değeri kaydeder. Bu zamanlayıcı 65.5 ms yi saymalı ve

sıfırlamalıdır. Böylece „zaman ‟ hakkında bilgimiz olur ve bunu kullanarak mesafe

bilgimizi değiştiririz. Bunu yapmak için bir sabite ihtiyacımız vardır.

2.2.DEĞĠġMEZ (SABĠT ) BULMA

Ultrasonic dalgaları ses dalgalarıdır; bu nedenle sesin hızından yararlanabiliriz. Sesin

hızı sıcaklıkla değişebilir. Formülü denklem 2.1‟de gösterilmiştir.

(2.1)

Eğer T=20 derece (ev sıcaklığı ) alırsak:

Bunun anlamı ses 1 cm mesafeyi 29.15 mikrosaniyede alır.

= (2.2)

Zamanlayıcı zamanı saymak için kullanılır. O yüzden zamanlayıcının artış oranını

ayarlamamız gerekir. Örneğin 1 için zamanlayıcının artış oranını ayarlarsak

zamanlayıcının 3887 de durduğunu düşünelim. Sinyallerin geliş ve gidiş zamanlarını bir

birine eşittir bu nedenle sadece gidiş zamanına ihtiyacımız vardır. Bu sayıyı 2 ye böleriz:

Zaman bilgisini mesafe bilgisiyle değiştirmek için değişmez (sabit) kullanılır α ;

Ölçtüğümüz hassasiyeti yükseltmek için zamanlayıcı oranını yükseltmeliyiz ancak çok

fazla yükseltme yaparsak ölçebileceğimiz mesafe azalır.

Page 11: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

5

3.DONANIM AÇIKLAMASI

Bu bölümde mesafe ölçerin donanımının nasıl çalıştığını açıklayacağız. Mesafe ölçerin

devre diyagramını açıklamak için donanımı bazı bölümlere ayırdık. Bu bölümler şekil 3.1

de görülebilir.

ġekil 3.1 Donanım kısımları

3.1.ALICI DEVRESĠ

Alıcı devresi mesafe ölçerin ana parçalarından biridir. Bu devre yansıtılmış sinyalleri

alır ve üzerinde bazı değişimler yapar. Bu bölümde alıcı devresindeki bölümleri ve

değişimleri anlattık.

3.1.1. SĠNYAL YÜKSELTEÇ DEVRESĠ

Bir ultrasonik alıcı ses dalgasını elektriksel bir sinyale dönüştürür. .Opamp devresi

Şekil 3.2 de görülmektedir.

Page 12: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

6

ġekil 3.2 Sinyal yükselteç devresi

Filtreden geçen sinyal işlemsel kuvvetlendirici yardımıyla iki adımda yaklaşık 1000 kat

kuvvetlendirilmiştir. İlk adımda 100 ve diğer adımda 10 kat kuvvetlendirilmiştir. Genel

olarak işlemsel kuvvetlendiricilerde pozitif ve negatif besleme gerilimi birlikte uygulanır.

Buradaki devrede sadece pozitif 9V besleme gerilimi ile çalışmaktadır.Bu nedenle

işlemsel kuvvetlendiricinin pozitif girişi için besleme geriliminin yarısı bias gerilimi

uygulanır., ve kuvvetlendirilmiş değişken akım sinyalinin merkezi geriliminde 4,5V olarak

ayarlanır. İşlemsel kuvvetlendiriciyi negatif geri besleme ile kullandığımızda pozitif ve

negatif giriş terminallerinin gerilimleri yaklaşık olarak birbirine eşit olur. Bu yüzden bias

gerilimi yardımıyla değişken akım sinyalinin pozitif ve negatif tarafları eşit olarak

kuvvetlendirilir. Bu bias gerilimini kullandığımızda değişken akım sinyalinde distorsiyon

meydana gelir. Değişken akım sinyali kuvvetlendirildiğinde, bu yöntem işlemsel

kuvvetlendirici tek besleme gerilimiyle iki besleme gerilimi için çalışırken uygulanır. [1]

3.2.2. SĠNYAL DOĞRULTMA DEVRESĠ

Bu kısım yükselteç çıkışında alınana sinyali doğrultmak için kullanılmıştır. Burada

kullanılan diyotlar yüksek frekans karakteristikleri iyi olan shottky diyotlarıdır(şekil 3.3).

Bu devredeki kapasite üzerindeki gerilim çok iyi ayarlanmalıdır. Seçilecek kapasite değeri

bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma işleminde kapasite değeri 10nF

olarak seçilmiştir. Devremizin bu çıkışı ultrasonik algılama yokken 5V,algılama varken 7V

civarındadır.

Page 13: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

7

ġekil 3.3 Sinyal doğrultma devresi

3.2.3.KARġILAġTIRICI DEVRE

Doğrultucu çıkısından alınan sinyal şekil 3.4 deki devrenin A ucuna gelir ve burada

belirlenen bir Vrf referans gerilimi ile karşılaştırılır. Algılayıcı devremiz bir cisimle

karşılaşmadığı zaman doğrultucu çıkışında 4.8V bir engelle karşılaştığında ise 7.8V DC bir

işaret üretmektedir.Bu alınan sinyal karşılaştırıcı devresinde Vrf gerilimi ile

karşılaştırılarak B ucundan çıkış alınır.Vrf gerilimi ise Ra direnci ve Rb direnci yardımıyla

ayarlanır.İşlemsel yükseltecin negatif girişine gelir.

ġekil 3.4 KarĢılaĢtırıcı devre ve dalga Ģekilleri

Bu işlem yapılırken negatif besleme gerilimi 0V olarak ayarlanmıştır. Genel olarak

opampların kazanç faktörü 10.000 katı olur. Böylece pozitif girişler negatif girişlerden

birazcık fazla olduğunda fark çok artar ve çıkış gerilimi neredeyse +Vcc(+9V) besleme

gerilimi olur.Tersine pozitif giriş negatif girişten biraz daha az olduğunda fark çok

genişler ve çıkış gerilimi –Vcc(0V) olur.Burada Vrf değeri 0.4V olarak ayarlanmıştır.

Page 14: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

8

3.1.4. SĠNYAL TUTMA DEVRESĠ

Karşılaştırıcıdan sonra lojik seviyeye indirilmiş sinyal tutma devresine uygulanır.Bu

devre basit olarak aşağıdaki şekilde gösterilmiştir.

ġekil 3.5 Sinyal tutma devresi [2]

Şekil 3.5de görülen A ve C pinleri D çıkışını kontrol etmek içindir.C pinin den lojik 1

geldiğinde A girişinden gelen sinyal çıkış pinine gönderilir.Bu işlem ultrasonik vericiden

sinyal gönderildiğinde ultrasonik alıcıdan gelen sinyalin hemen alıcı devresine ulaşmasını

engellemek için kullanılır.

3.2. VERĠCĠ DEVRESĠ

ġekil 3.6 Verici Devresi

Burada PIC ten gelen sinyal NAND kapısı ile terslenmekte NAND kapısı çıkışındaki

transistör2 ile not kapılarını sürmekte ve kapasite elemanı üzerinden ultrasonik elemanın +

pinine uygulanmaktadır. Elemanın – pinine ise PIC ten gelen sinyal transistör1 üzerinden

alttaki not kapılarını sürülmektedir.Sürüş tekniğinin daha ayrıntılı acıklamasıda tablo 3.1

de görülmektedir.

Page 15: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

9

Tablo 3.1:Sürme gerilimleri

PIC çıkışı NAND

çıkışı

Q1.C Q2.C NoT1 NOT2 Verici +

ucu

Verici -

ucu

+5V 0V 0V +9V 0V +9V 0V +9V

0V +5V +9V 0V +9V 0V +9V 0V

C-MOS çeviricileri kullanıldığı için karşılaştırmalı olarak yüksek hızda açıp kapamak

mümkündür.

3.3.DĠSPLAY

3 tane 7 segmentli led 3 haneli dijital display için kullanılır.Bu ledlerin sırayla yanması

için PIC kullanılır. PIC terminali L seviyesinde olduğu zaman yaktık.Ortak anotlu led

kullanılır,ortak anotlu ledde anotlarlar içerden birbirine bağlıdır. Katodu toprakladığımızda

led yanar. Displayın devre diyagramı şekli 3.7 de gösterilmiştir. [2]

ġekil 3.7 Display devresi [2]

Page 16: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

10

3.4 MĠKRO DENETLEYĠCĠ

PIC16F873

Elektronik kartın en önemli elemanı, mikrodenetleyici olan PIC16F873 entegresidir.

Kontrol ve kumandalar için gerekli PIC yazlımı yüklenerek algılayıcı ve kumandaların

yönetimini gerçekleştirir. PIC16F873 entegresinin bacak bağlantıları (Şekil 3.8), teknik

özellikleri (Çizelge 3.1) de gösterilmiştir. [3]

ġekil 3.8. PIC16F873 bacak bağlantıları

Tablo 3.1. PIC16F873 teknik özellikleri

Teknik özelliler PIC16F873 için

değeri

Çalışma Frekansı DC - 20 MHz

RESET POR, BOR (PWRT,

OST)

FLASH Hafıza Kapasitesi (14-bit) 4K

RAM Hafıza Kapasitesi (byte) 192

EEPROM Hafıza Kapasitesi (byte) 128

Kesme adedi 14

I/O Portları Ports A,B,C

Timer 3

Darbe Genişliği Modülasyonu

(PWM)

2

Seri İletişim MSSP, USART

10-bit Analog-Digital Dönüştürücü 5 giriş kanalı

Analog Karşılaştırıcı 2

Komut Seti 35 komut

28-pin PDIP

Paket tipi 28-pin SOIC

28-pin SSOP

28-pin QFN

Page 17: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

11

4.YAZILIM AÇIKLAMASI

Mesafe ölçerin yazılım ile ilgili şekli, şekil 4.1‟de gösterilmiştir. Gerekli acçıklamalar

ve anlarımlar bu şekil üzerinde açıklanmıştır

ġekil 4.1.Yazılım Ģekli

4.1 ASSEMBLY PROGRAMI

PIC Assembly dili adı verilen ve toplam 35 komuttan oluşan programlama dilinin

tamamı burada verilmiştir. Bu komutları basit bir editörde yazabiliyoruz. Ancak,

İngilizce‟deki bazı kelimelerin kısaltmasından oluşan bu dilin komutlarını P1C‟in

anlayabileceği makine diline çeviren bir programa ihtiyacımız vardır. Bu programa

assembler adını veriyoruz. Text dosyası biçiminde kaydedilmiş olan assembly dili

komutlarını makine diline çeviren MPASM 'nin hem DOS altında hem de WINDOWS

altında çalışan versiyonu bulunmaktadır. Bu program Microchip firmasının internetteki

www.microchip.com adlı sitesinden parasız olarak yüklenilebiliyor. MPASM 'nin

kullanımı hakkında detaylı bilgiyi 2. bölümde bulacaksınız.

Page 18: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

12

Microchip bir de içerisinde hem metin editörü hem MPASM assembler programını

bulunduran MPLAB programını PIC programlayıcılarının kullanımına sunmaktadır.

MPLAB ‟ın kurulumu ve kullanılmasıyla ilgili gerekli detay bilgiyi 2. bölümünde

bulacaksınız. [4]

Şekil 4.2 de MPASM nin WINDOWS sürümünün görünüşü verilmektedir.

ġekil.4.2. MPASM programının görünüşü.

4.2.KURULUM AġAMASI

Kurulumın yapıldığı aşamadır.

4.2.1. PORT KURULUMU

RAO/ANO portları A/D çeviricilerinin girişi için kullanıldığından giriş modunda

kurulur. Diğer A portları ise çıkış modunda kurulur. Tüm B portları çıkış modunda kurulur

çünkü LEDlerin kontrolleri için kullanılır. RC2/CCP1‟i giriş modunda kurulur çünkü

kavrama girişi için kullanılır.

4.2.2.ULTRASONĠK AKTARIM PERĠYODU (TMRO)

Ultrasoniğin aktarım periyodu zamanlayıcı 0 kullanılarak kontrol edilir. Çünkü

zamanlayıcı0 demek sayma değerinin 256 olduğu „bit‟ zamanlayıcısı demektir. Ama

ölçüyü 256 ya ayarlayarak 65535 sayısı elde edilir. (256*256:65535) bu defa osilatör için

Page 19: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

13

4MHz kullanıldığından 1 sayı 1 mikrosaniyedir. . (1/(4 x 106))x4=10

-6 saniyedir.Yani

zamanlayıcı0 ın kesme zamanı 65ms dir.

4.2.3. YAKALAMA MODU KURULUMU

Zamanlayıcı 1 kavrama için kullanılır. Zamanlayıcı 1 kurulur. Kurulum sırasında yanlış

kontrolü önlemek için CCP1 kapalı konumdadır.

4.2.4.ÇEVĠRĠCĠ KURULUMU

Kanal 0 çevirici girişi olarak kullanılır. Çünkü bu zamanlayıcıda kullanılmak için olan

saat sinyali 4 MHz dir, fosc/8 ise A/D çevirici saat olarak ayarlanmıştır. Çünkü A/D nin

çevrilmiş sonuçlarının yüksek dizi tarafı kullanıldığından depolama sonuçları doğru

yargılama yapmak için kullanılır. (ADFM:0). Çünkü A portları LED in basamak

değerlerinin çıkışı için kullanıldığından RAO/ANO hariç portlar dijital özelliklerle yapılır.

4.2.5. LED (TMR2) ZAMANLAYICI PERĠYODU

7 parçalı LED in sunulan data çalışma alanı için hazırlandı. Sunumun başlangıcı „hata

kodu ‟ dur. Zamanlayıcı 2 „nin zamanı yaklaşık 10 ms dir.

4.2.6.KESME BAġLANGICI

Zamanlayıcı 0 kesmesi çevresel aygıt kesmesi, global kesmeleri mümkün yapar.

Kavrama kesmesi zamanlayıcı 2 nin çevresel aygıt kesmesi olmadığında ortaya çıkmaz.

Bu aşamayla kesme başlar. Kurulum aşaması bitince kesme için beklenir. Aynı şey

defalarca yapılır.

4.3.KESME AġAMASI

Kavrama kesmesi zamanlayıcı 2 ve zamanlayıcı 0 tarafından kontrol edilir. Her kesme

bayrağı tarafından kesme çeşitleri yargılanır. Bundan sonra uygun olan kesme aşamasına

geçilir. Kesme olduğunda aşama durdurulur. Döngüyle uygun olmayan kesmeyi

engellemek için döngü simülatörüne ihtiyaç vardır. Düzeltmenin yolu vardır ama

yükseltilemez çünkü tekrar düzeltilse bile aynısı olmaz. Global kesmenin sağladığı „bit‟

kesme olduğunda otomatik olarak açığa çıkar. Böylece kesme aşaması devam ederken

kesme meydana gelmez.

Page 20: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

14

4.4.KESME SONA ERDĠRME AġAMASI

Donanım için tüm aşamalar kurulum aşaması hariç kesmeler tarafından yapılır. Ortak

kayıtlar kesme aşamalarında kullanılır (ana aşama). Böylece korumaya ve tekrar korumaya

gerek kalmamıştır. Kesmenin sona erme aşamasında kesmeyi sağlamak için RETFIE

bildirimiyle „GIE bit‟ kurulur.

4.5.ULTRASONĠK DALGA GÖSTERĠM AġAMASI

4.5.1.AÇIK KESME GÖSTERĠMĠ

TMRO nun kesme bayrağı açıktır. Bu bayrak net olmadığı zaman düzenli bir bitişi

beklemeden kesme aşaması sona erdirildiğinde kesme ortaya çıkar. Net bir operasyonla

zamanlayıcı 0‟n sayım alanı netleştirilmiştir.

4.5.2.ALGILAMA HATALARINI KONTROL ETME

Yansıtılmış dalgaların algılanması dalga gönderiminden bu zamana kadar

yapılmadığında ölçüm yapmak mümkün değildir. Bu aşamada yapılmadığında ve ölçümde

hatalar meydana geldiğinde önceki bilgiler yardımıyla ölçüm yapmak mümkün değildir.

4.5.3.YANSIYAN DALGA ALICISINI DURDURMA

Aniden verilen aktarma dalgasından dolayı alıcı devresinde bir etki meydana gelir buda

yanlış ölçüm yapılmasına neden olabilir. Bunu önlemek için yansıtılmış dalga arayıcı

durdurulur. Bu işlem için RA4 portu açık hale gelir bunun için dış dirence ihtiyaç vardır.

Bu yüzden RAS ‟ı kullandık.

4.5.4.YAKALAMAYI BAġLATMA

Zamanlayıcı 1‟in sayım alanı ve kavrama registörlerinin içeriği nettir. Yükselen şiddetle

algılama modu ve kavrama kesmesini sağlayan „bit‟ kurulur. Net bir operasyonla kesme

bayrağı netleştirilir.

4.5.5.40KHZ DALGA GÖNDERME

40kHz dalgası, bir döngüde kapalı zamanda 12.5 µ-saniye ve açık zamanda 12.5 µ-

saniye olan bir dalgadır. Bu döngüde 4MHz lik saat sinyali kullanıldığı için giriş yapma

zamanı 1 mikrosaniyedir. Bu yüzden gerçekte 40kHz gönderilemez.Kapalı konumda 12 µ -

Page 21: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

15

saniye yerine 41.7kHz dir,açık konumda ise 13 µ -saniye yerine 38.5 kHz kullanılır. Darbe

gönderme aşamasında adım sayısının değişimiyle zaman ayarı yapılır. 20 darbe

gönderildiğinde 0.5 milisaniyedir. (20pulses

x 0.025milliseconds/pulse

)

4.5.6.YENĠLENMĠġ BĠLGĠ EKRANININ ALIMI

A/D çeviricisini yönetmek için ADCONO kaydının „GO‟ biti kurulur. A/D çeviricisinin

kanal girişi çevrildikten sonra yaklaşık 20 mikro saniye beklenmelidir. Giriş kanalı 0‟da

olduğu için bekleme zamanına gerek yoktur. A/D dönüşümünün tamamlanması „GO biti‟

ile kontrol edilir. „GO Bit‟i netleştiği zaman dönüşüm tamamlanır. Üst 3 bit toplanır ve

değişim değeri olarak eklenir.

4.5.7. HATA BULMA

Dalga gönderildikten sonra etki alıcıda sona erene kadar arayıcı durdurulur. Bu defa 1

mikro saniyeye ayarladık. Az etki oluştuğu zaman kısa dahi olsa iyi sonuç verir. Fazla etki

ortaya çıktığında süreyi daha uzun tutmak gereklidir.

4.5.8.YANSITILMIġ DALGA ÖLÇÜMÜNÜN BAġLANGICI

Hatalı ölçümün engellenme zamanı geçtikten sonra yansıtılmış dalga keşfinde yeterli

koşullar sağlanır.

4.6. YAKALAMA KESME AġAMALARI

Bu aşamalar aşağıdaki gibidir.

4.6.1.KESME EKRANINI TEMĠZLEME

Kavrama kesme bayrağı netleştirilmiştir.

4.6.2.MESAFE ÇEVRĠM AġAMASI

Kavrama operasyonu tarafından durdurulan zamanlayıcı 0‟ın sayı değeri ses dalgasının

çoğalmasıyla orantılıdır. Görünümü (ekranı) olduğu gibi kullanmak imkansızdır. Aşama

zamanında bazı değerler bölünmeyi gerçekleştirir ve uzaklık sayı değerlerine çevrilir.

Page 22: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

16

Örneğin, 1 m uzaklıktan yansıtılmayı açıklayacağız. Ses dalgalarının gittiği ve 1 m‟den

geri döndüğü süre 20c „de 2m

/343m/san

=5831 mikro saniyedir. Yani zamanlayıcı0‟ın değeri

1msan/count olduğunda kavrama gerçekleştirildiğin de zamanlayıcı0‟ın değeri 5831‟dir.

Eğer ayrıştırıcı 100 değeri sergilemek için alınırsa o zaman doğru olur.(1 m‟yi sergiler).

A/D çeviricisinin aldığı değer ayrıştırıcılar için kullanılır. Yani sıcaklık değeri farklı

olduğunda eğer giriş voltajı A/D çevirisine dönüştürülürse sergileme revize edilebilir. Ama

dijitalde değiştirildiği için iyi bir uyarlama yapmak mümkün değildir.

4.6.3.EKRAN (GÖRÜNÜM) AġAMASI

Değiştirilen uzaklık değer çeşidi ikilik sayı tabanında olduğu için olduğu gibi LED‟de

sergilenemez. İki tabanındaki sayılar ondalık sayılara çevrilir ve displayde gösterilir.

Page 23: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

17

5.PROJENĠN GELĠġĠMĠ

5.1.SĠNYAL ÜRETĠMĠ

İlk önce 555‟i kullanarak sinyal üretmeyi düşündük. 555‟le yankılanan frekansı ihtiyaç

duyulan frekansa ayarlamak kolaydır. Ama 555‟le yapılan bazı denemelerden sonra bunun

yeterli olmadığını gördük. 555‟le yapılan sinyal göndermeyi başardık ama yeterli değildi.

Transfer edilmiş sinyal enerjisini yükseltmek gerektiğini öğrendikten sonra sinyalleri PIC

mikro kontrolünden üretmek gerektiğini öğrendik. Yazılım ile 40kHz üretmek için testten

sonra bir test daha yapmamız gerekti.

5.2 ALICI DEVRESĠNĠN BESLEME GERĠLĠMĠ

Projede alıcı devresini ilk planladığımızda besleme gerilimi olarak 5V kullanmayı

düşündük. Fakat denemelerimizde gelen sinyali doğru bir şekilde alamadığımızı fark ettik.

Bunun yerine besleme gerilimini 9V‟a çıkardığımızda daha iyi sonuç aldık.

Besleme gerilimi olarak 9V kullandığımızda ise, sinyal tutucu devre ve PIC 5V ile

çalıştığı için dirençlerle sinyali %V a düşürdük.

İlk olarak demodülasyon devresini kullanmayacaktık. Yükseltici devreden çıkan

sinyalin karşılaştırıcı devreyi satüre ettireceğini ve bunun yeterli olduğunu düşündük.

Fakat beklediğimiz sonucu alamadık. Tavsiye üzerine demodülasyon devresini kullandım

ve sorun çözüldü.

5.3 ĠLETĠM DALGASININ UZUNLUĞU

Uzaklık ölçer projesinde gönderilecek sinyalin uzunluğun 5ms olarak ayarladık. Sinyal

ne kadar uzun olursa enerjisi o kadar çok olur gelen sinyali yakalamakta o kadar kolay

olur. Daha uzak mesafeleri ölçmekte mümkün olabilir. Fakat aynı zamanda sinyal

uzunluğunu arttırdığımızda gelen giden sinyallerin karışması da o kadar artar. Alıcı

devresini bir süre bekleterek sinyallerin karışmamasını sağladık. Bu süreyi 1.5ms olarak

belirledik. Bu mesafe ölçücünün 29cm den daha yakını ölçememesine neden oldu. Sinyal

süresi arttırıldığında bekleme süresi de arttırılmalıdır. Bu da ölçülebilen en kısa mesafeyi

azaltır.

Page 24: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

18

6.TESTLER VE SONUÇLAR

6.1.ÖLÇÜM UZAKLIĞI

Bu uzaklık öçler ile çok fazla uzaklık ölçülemez .Çünkü gönderilen sinyalin uzunluğu

0.5ms dir.

Minimum uzaklık:29cm

Gelen ve giden sinyallerin karışmasını önlemek için devreye bekleme süresi

konulmuştur.Bu yüzden de 29cm den daha kısa ölçüm yapılamaz.

Maksimum uzaklık:2m

Daha uzak mesafeleri ölçebilmek için sinyal uzunluğu artırılmalıdır.Fakat buda

bekleme süresinin artırılmasını gerektirir.Buda minimum ölçülebilecek uzaklığın artmasına

neden olur.

6.2.MESAFE ÖLÇERĠN PERFORMANSI

Bazı etkenler mesafe ölçümlerini etkiler.Bunların başında sıcaklık gelir.Sıcaklık sesin

hızını değiştirmektedir.Bu hatayı önlemek için devreye kalibrasyon ayarı eklenmiştir. Bu

kalibrasyon ayarını bir pot yardımıyla gerçekleştirdik.

Page 25: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

19

7.SONUÇ

Nasıl çalıştığını özetleyecek olursak taşınabilir mesafe ölçer sinyal gönderir ve sinyalin

gidiş dönüş süresini kaydeder. Raporda açıkladığımız gibi sinyal göndermek için bazı

genişletilmiş teknikler kullanılır. Uzun mesafedeki ölçümlerde bu genişletmeye ihtiyaç

vardır. Alıcıda bazı genişleticiler ve doğrultma devreleri kullanılır. Ultrasonik ileticinin

alıcı üzerindeki etkileri hakkında bir sorun vardı ve uzun zamanda mesafeyi 0 olarak

ölçtük. Bu problemi sinyal alıcılarını kısa zamana çevirerek kapatmayla çözdük. Buda

mesafe ölçerin ölçebileceği minimum mesafe ortaya çıkardı.

Bu projede projenin amaçlarını gerçekleştirdiğimizi düşünüyoruz. Portatif mesafe

ölçümünü başardık. Mesafe ölçerin bir kalibrasyonu olmasına rağmen ölçüm mesafesinde

her zaman hatalar olmuştur.Ve işte bu projemiz şekil 7.1de gerçek haliyle gösteriliyor.

Şekil 7.1 : Taşınabilir ultasonik mesafe ölçer

Page 26: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

20

KAYNAKLAR

[1] USLU, R.(2005),” Mikrodenetleyicili Mesafe Ölçer”,Bitirme Tezi,YTÜ Elektronik ve

Haberleşme Mühendisliği Bölümü,İstanbul

[2] Japan, “ The Hobby Electronics From Japan [Online], http://www.hobby-

elec.org/e_pic6_6.htm

[3]MİCROCHIP,2001, PIC17F87X Data Sheet 28/40-Pin 8-Bit CMOS FLASH

Microcontrolers

[4] “MicroChip Technology Inc. is a Leading Provider of Microcontroller and

AnalogSemiconductors”,

http://www.microchip.com/stellent/idcplg?IdcService=SS_GET_PAGE&nodeId=64,

Page 27: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

21

EK-A ULTRASONĠK MESAFE ÖLÇERĠ ĠÇĠN KAYNAK KODLARI

;********************************************************

list p=pic16f873

include p16f873.inc

__config _hs_osc & _wdt_off & _pwrte_on & _lvp_off

errorlevel -302 ;Bank uyarsını bastır

;**************** Etiket Tanımlama ********************

cblock h'20'

s_count ;Sinyal gönderim sayma adresi

s_adj ;Veri ayarlama adresi

s_adj_count ;Değer dönüşümü saklama adresi

s_digit ;Basamak sayma adresi

g_time1 ;Koruyucu zamanlayıcı adresi1

g_time2 ;Koruyucu zamanlayıcı adresi2

p_countl ;Propagasyon L sayıcı adresi

p_counth ;Propagasyon H sayıcı adresi

digit_cnt ;Basamak sayıcı ön adresi

disp_ha ;basamak ön adresi

disp_u ;1‟ler basamağı adresi

disp_t ;10‟lar basamağı adresi

disp_h ;100‟ler basamağı adresi

seg7_ha ;7 segLED adresi

seg70 ;Pattern 0 kurma adresi

seg71 ;Pattern 1 kurma adresi

seg72 ;Pattern 2 kurma adresi

seg73 ;Pattern 3 kurma adresi

seg74 ;Pattern 4 kurma adresi

seg75 ;Pattern 5 kurma adresi

seg76 ;Pattern 6 kurma adresi

seg77 ;Pattern 7 kurma adresi

seg78 ;Pattern 8 kurma adresi

seg79 ;Pattern 9 kurma adresi

seg7a ;Pattern A kurma adresi

seg7b ;Pattern B kurma adresi

endc

ra1 equ h'01' ;RA1 port belirtme

ra2 equ h'02' ;RA2 port belirtme

ra3 equ h'03' ;RA3 port belirtme

ra5 equ h'05' ;RA5 port belirtme

ccp1 equ h'02' ;CCP1(RC2) belirtme

seg7_0 equ b'01000000' ;-gfedcba Pattern 0

seg7_1 equ b'01111001' ; Pattern 1

seg7_2 equ b'00100100' ; Pattern 2

seg7_3 equ b'00110000' ; Pattern 3

seg7_4 equ b'00011001' ; Pattern 4

seg7_5 equ b'00010010' ; Pattern 5

seg7_6 equ b'00000010' ; Pattern 6

seg7_7 equ b'01111000' ; Pattern 7

Page 28: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

22

seg7_8 equ b'00000000' ; Pattern 8

seg7_9 equ b'00010000' ; Pattern 9

seg7_a equ b'01111111' ; Bulma Hatası

seg7_b equ b'00100011' ; İllegal tamsayı

;**************** Program Start ***********************

org 0 ;Reset Vektörü

goto init

org 4 ;Kesme Vektörü

goto int

;**************** tekrarlama işlemi *********************

init

;*** Port initialization

bsf status,rp0 ;Bank1‟e değiştir

movlw b'00000001' ;AN0 giriş modu

movwf trisa ; TRISA‟yı hafızaya kur

clrf trisb ;RB portu çıkış modunda

movlw b'00000100' ;RC2/CCP1 giriş moduna

movwf trisc ;TRISC^yi ayarla

;*** Ultrasonik gönderme Süresini Başlangıç Durumuna getirme (Timer0)

movlw b'11010111' ;T0CS=0,PSA=0,PS=1:256

movwf option_reg ;OPTION_REG „yi hafızaya al

bcf status,rp0 ;Bank0‟a değiştir

clrf tmr0 ;TMR0 hafızasını temizle

;*** Yakalama Modunu Ayarlama (Timer1)

movlw b'00000001' ;Pre=1:1 TMR1=Int TMR1=ON

movwf t1con ;Set T1CON register

clrf ccp1con ;CCP1 off

;*** A/D dönüşümünü ayarlama

movlw b'01000001' ;ADCS=01 CHS=AN0 ADON=ON

movwf adcon0 ;ADCON0‟yı hazfızaya al

bsf status,rp0 ;Bank1‟e değiştir

movlw b'00001110' ;ADFM=0 PCFG=1110

movwf adcon1 ;ADCON1‟i hafızaya al

bcf status,rp0 ;Bank0‟a değiştir

;*** Leglerdeki görüntüyü ayarlama (Timer2)

movlw disp_u ;Basamağı ön adrese yükle

movwf disp_ha ;Ön adresteki basamağpı sakla

movlw h'0a' ; Hata Bilgisi

movwf disp_u ;1‟ler basamağını kur

movwf disp_t ;10‟lar basamağını kur

movwf disp_h ;100‟ler basamağını kur

movlw d'3' ;Basamak Sayıcı

movwf digit_cnt ;Basamak sayıcıyı kur

movlw seg70 ;7 segmentliyi ön adrese al

movwf seg7_ha ;7 segmentliyi ön adreste sakla

movlw seg7_0 ;7segment pattern 0‟a kur

movwf seg70 ;pattern 0 sakla

movlw seg7_1 ;7segment pattern 1‟e kur

Page 29: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

23

movwf seg71 ; pattern 1 sakla

movlw seg7_2 ;7segment pattern 2‟ye kur

movwf seg72 ;pattern 2 sakla

movlw seg7_3 ;7segment pattern 3‟e kur

movwf seg73 ;pattern 3‟ü sakla

movlw seg7_4 ;7segment pattern 4‟ü kur

movwf seg74 ;pattern 4‟ü sakla

movlw seg7_5 ;7segment pattern 5‟ i kur

movwf seg75 ;pattern 5‟i sakla

movlw seg7_6 ;7segment pattern 6‟yı kur

movwf seg76 ;pattern 6‟yı sakla

movlw seg7_7 ;7segment pattern 7‟yi sakla

movwf seg77 ;pattern 7‟yi sakla

movlw seg7_8 ;7segment pattern 8‟i sakla

movwf seg78 ;pattern 8‟i sakla

movlw seg7_9 ;7segment pattern 9‟u kur

movwf seg79 ;pattern 9‟u sakla

movlw seg7_a ;7segment pattern A‟yı kur

movwf seg7a ;pattern A‟yı sakla

movlw seg7_b ;7segment pattern B‟yi kur

movwf seg7b ;pattern B‟yi sakla

movlw b'00011110' ;OPS=1:4,T2=ON,EPS=1:16

movwf t2con ;T2CON‟u hafızaya al

bsf status,rp0 ;Bank1‟e gec

movlw d'157' ;157x64=10048 ms

movwf pr2 ;PR2‟yi kur

bsf pie1,tmr2ie ;TMR2IE=ON

bcf status,rp0 ; Bank0‟a değiş

;*** Kesme Kontrol

movlw b'11100000' ;GIE=ON,PEIE=ON,T0IE=ON

movwf intcon ;INTCON‟u tanımla

wait

goto $ ;Kesme Bekleme

;*************** Kesme İşlemi *****************

int

movfw pir1 ;Read PIR1 register

btfsc pir1,ccp1if ;Yakalama odlumu?

goto capture ;Evet. "Yakalandı"

btfsc pir1,tmr2if ;TMR2 çalışıyo mu ?

goto led_cont ;Ewet. "LED display"

movfw intcon ;INTCON hafızasını oku

btfsc intcon,t0if ;TMR0 çalışıyomu ?

goto send ;Evet. "Darbe gönder"

;*************** Yasal Olmayan Kesme *****************

illegal

movlw h'0b' ;Illegal disp basamağını kur

addwf seg7_ha,w ;Seg7 ön adres+basamak

movwf fsr ;FSR hafızasını kur

movfw indf ; seg7‟deki veriyi oku

Page 30: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

24

movwf portb ; LED verisini yaz

bcf porta,ra1 ;RA1=ON

bcf porta,ra2 ;RA2=ON

bcf porta,ra3 ;RA3=ON

goto $ ;DUR

;************ Kesme İşleminin Sonu **************

int_end

retfie

;*************** Darbe Gönderme İşlemi****************

send

bcf intcon,t0if ;Clear TMR0 int flag

clrf tmr0 ;Timer0‟ı temizle

;*** Alınan sinyal Kontrolü

movfw portc ;PORTC‟yi oku

btfsc portc,ccp1 ;herhangi bir şey var mı ?

goto detect_off ;Evet. Var

movlw h'0a' ;"Hata var" verisi

movwf disp_u ;1‟ler basamağını kur

movwf disp_t ;10‟lar basamağını kur

movwf disp_h ;100‟ler basamağını kur

;*** Alıcı dedektör kapalı

detect_off

bcf porta,ra5 ;Alıcıyı KAPALI konuma getir

;*** Capture start

clrf tmr1h ;TMR1H „i temizle

clrf tmr1l ; TMR1L‟i temizle

clrf ccpr1h ; CCPR1H „yi temizle

clrf ccpr1l ; CCPR1L „yi temizle

movlw b'00000101' ;CCP1M=0101(Yakalama)

movwf ccp1con ;CCP1CON‟u kur

bsf status,rp0 ;Bank1 „e değiş

bsf pie1,ccp1ie ;CCP1 kesmesi devrede

bcf status,rp0 ;Bank0‟ a geç

bcf pir1,ccp1if ;CCP1 int flag‟ temizle

;*** 40KHz sinyal gönderimi ( 0.5 ms )

movlw d'20' ;Gönderilen sinyalden say

movwf s_count ;sayıcıyı kur

s_loop

call pulse ;Sinyali cagir ve alta yolla

decfsz s_count,f ;Bitti mi?

goto s_loop ; Hayır. Devam

;*** Ayar verisini al

bsf adcon0,go ;A/D başlat

ad_check

btfsc adcon0,go ;A/D bitti mi ?

goto ad_check ;hayır. Tekrar

movfw adresh ;ADRESH‟yi oku

movwf s_adj ;Dönüştürülmüş veriyi sakla

movlw d'5' ;Dönüşüm değerini tanımla

Page 31: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

25

movwf s_adj_count ;Dönüşüm değerini sakla

ad_rotate

rrf s_adj,f ;Doğru dönüşüm 1 bit

decfsz s_adj_count,f ;Bitti mi ?

goto ad_rotate ;Hayır. Devam

movfw s_adj ;Dönüşüm değerini oku

andlw b'00000111' ; 3 bit al

addlw d'54' ;(0 to 7) + 54 = 54 to 61

movwf s_adj ;Ayarlama verisini sakla

;*** Yakalama koruma zamanlayıcısı ( 1 milisaniye )

movlw d'2' ;Döngü için sayıcı counter1

movwf g_time1 ;döngü için sayıcı counter1 sakla

g_loop1 movlw d'124' ;Döngü için sayıcı counter2

movwf g_time2 ;Döngü için sayıcı counter2 sakla

g_loop2 nop ;Time adjust

decfsz g_time2,f ;g_time2 - 1 = 0 ?

goto g_loop2 ;Hayır. Devam

decfsz g_time1,f ;g_time1 - 1 = 0 ?

goto g_loop1 ;Hayır. Devam

;*** Receive pulse detector on

bsf porta,ra5 ;Detektörü ON konumuna getir.

goto int_end

;*************** Sinyal gönderme İşlemi ****************

pulse

movlw b'00010000' ;RC4=ON

movwf portc ; PORTC „yi hafızaya al

call t12us ; 12 ms zamanlayıcısını çağır

clrf portc ;RC4=OFF

goto $+1

goto $+1

nop

return

;*************** 12 Mikrosaniye zamanlayıcı *****************

t12us

goto $+1

goto $+1

goto $+1

goto $+1

nop

return

;****************** Yakalama İşlemi ********************

capture

bcf pir1,ccp1if ;Clear CCP1 int flag

clrf p_countl ; L sayıcısını temizle

clrf p_counth ;H sayıcısını temizle

clrf ccp1con ;CCP1 off

division

movfw s_adj ;Ayar verisini oku

subwf ccpr1l,f ;Yakalama - ayar

Page 32: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

26

btfsc status,z ;Sonuç = 0 ?

goto division2 ;Evet. "R = 0"

btfsc status,c ;Sonuç < 0 ?

goto division1 ;Hayır. "R > 0"

goto division3 ;Evet."R < 0"

division1 ;( R > 0 )

movlw d'1' ;Artış değerini ayarla

addwf p_countl,f ;L artış sayma

btfss status,c ;Aşma var mı?

goto division ;Hayır. Devam

incf p_counth,f ;H artış sayma

goto division ;Sonraki ne geç

division2 ;( R = 0 )

movfw ccpr1h ; CCPR1H Oku

btfss status,z ;CCPR1H = 0 ?

goto division1 ;Hayır. Sonraki

movlw d'1' ;Artış değerini ayarla

addwf p_countl,f ;L artış sayma

btfss status,c ;Taşma varmı ?

goto digit_set ; digit_set e git

incf p_counth,f ;H artış sayma

goto digit_set ; digit_set e git

division3 ;( R < 0 )

movfw ccpr1h ; CCPR1H Oku

btfss status,z ;CCPR1H = 0 ?

goto division4 ;Hayır. Ödünç işlem al

goto digit_set ; digit_set e git

division4

decf ccpr1h,f ;CCPR1H - 1

movlw d'255' ;Değer al

addwf ccpr1l,f ;CCPR1L + 255

incf ccpr1l,f ;CCPR1L + 1

goto division1 ;sonraki

;**************** Basamak Bulma İşlemi ********************

digit_set

clrf disp_u ;1‟ler basamağını sıfırla

clrf disp_t ;10‟lar basamağını sıfırla

clrf disp_h ;100‟ler basamağını sıfırla

;*** 100‟ler basamağı

digit_h

movlw d'100' ;Değeri böl

subwf p_countl,f ;Basamak - bölüm

btfsc status,z ;Sonuç = 0 ?

goto digit_h2 ;Evet. "R = 0"

btfsc status,c ; Sonuç < 0 ?

goto digit_h1 ;hayır. "R > 0"

goto digit_h3 ;Evet."R < 0"

digit_h1 ;( R > 0 )

incf disp_h,f ;100‟ler saymadaki artış

Page 33: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

27

goto digit_h ;sonraki ne geç

digit_h2 ;( R = 0 )

movfw p_counth ; H sayıcısını oku

btfss status,z ;H counter = 0 ?

goto digit_h1 ;Hayır. Sonraki

incf disp_h,f ;100‟ler saya artış

goto digit_t ;10‟ler basamağına geç

digit_h3 ;( R < 0 )

movfw p_counth ;H sayıcıyı oku

btfss status,z ;H counter = 0 ?

goto digit_h4 ;No. İşlem yedeği al

movlw d'100' ;Değeri böl

addwf p_countl,f ;Alt değerin üzerine dön

goto digit_t ;10‟ler basamağına dön

digit_h4

decf p_counth,f ;H counter - 1

movlw d'255' ;Değer al

addwf p_countl,f ;L counter + 255

incf p_countl,f ;L counter + 1

goto digit_h1 ;Sonraki

;*** 10th digit

digit_t

;*** Range over check

movfw disp_h ;100‟ler basamağını oku

sublw d'9' ;9 - (100‟ler basamağı)

btfsc status,z ;Sonuç = 0 ?

goto digit_t0 ;Evet. "R = 0"

btfsc status,c ;Sonuç < 0 ?

goto digit_t0 ;Hayır. "R > 0"

movlw h'0a' ;"Bulma Hatası" verisi

movwf disp_u ;1‟ler basamağını bas

movwf disp_t ;10‟lar basamağını bas

movwf disp_h ;100‟ler basamağını bas

goto int_end

digit_t0

movlw d'10' ;Değeri böl

subwf p_countl,f ;Digit - divide

btfsc status,z ;Sonuç = 0 ?

goto digit_t1 ;Evet. "R = 0"

btfsc status,c ;Sonuç < 0 ?

goto digit_t1 ;Hayır. "R > 0"

goto digit_t2 ;Evet."R < 0"

digit_t1 ;( R >= 0 )

incf disp_t,f ;10‟lar basamağı sayma

goto digit_t ;Sonrakine geç

digit_t2 ;( R < 0 )

movlw d'10' ;Değeri böl

addwf p_countl,f ;Alt değere geri dön

goto digit_u ;1‟ler basamağına geç

Page 34: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

28

;*** 1st digit

digit_u

movfw p_countl ;Propagasyon sayıcıyı oku

movwf disp_u ;1. Saymayı sakla

goto int_end

;**************** LED display Kontrolü *****************

led_cont

bcf pir1,tmr2if ;TMR2 int flag „ı temizle

movfw digit_cnt ;Basamak sayıcıyı oku

movwf s_digit ;Basamak sayıcıdaki değeri sakla

decfsz s_digit,f ;1ler basamağı?

goto d_check1 ;Hayır. Devam

bsf porta,ra1 ;RA1=OFF

bsf porta,ra2 ;RA2=OFF

bcf porta,ra3 ;RA3=ON

goto c_digit ;Basamak sayıcıya zıpla

d_check1

decfsz s_digit,f ;10‟lar basamağı?

goto d_check2 ;hayır.100‟ler basamağı

bsf porta,ra1 ;RA1=OFF

bcf porta,ra2 ;RA2=ON

bsf porta,ra3 ;RA3=OFF

goto c_digit ;Basamak sayıcıya git

d_check2

bcf porta,ra1 ;RA1=ON

bsf porta,ra2 ;RA2=OFF

bsf porta,ra3 ;RA3=OFF

c_digit

decf digit_cnt,w ;Digit count - 1

addwf disp_ha,w ;Digit H.Adr + count

movwf fsr ;FSR‟yi kur

movfw indf ;Basamağı oku

addwf seg7_ha,w ;Seg7 H.Adr + digit

movwf fsr ; FSR „yi kur

movfw indf ; seg7 verisini oku

movwf portb ;LED verisini yaz

decfsz digit_cnt,f ;Digit count - 1

goto int_end ;Kesmenin sonuna zıpla

movlw d'3' ;Başlangıç değeri

movwf digit_cnt ;Başlangıç değerini tanımla

goto int_end ;kesmenin sonuna git

;********************************************************

; Ultrasonik Mesafe Ölçümünün Sonu

;********************************************************

End

Page 35: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

29

EK-B ŞEKİL B.1 DEVREÇİZİMİ

Page 36: T.C.eee.ktu.edu.tr/bitirme.dosyalar/bitirme_projeler_archive...bu konuda çok önemli bir rol oynamaktadır. Bu doğrultma ileminde kapasite değeri 10nF olarak seçilmitir. Devremizin

30

EK-C

TABLO C.1 PROJE‟ NİN MALİYETİ

ELEMANLAR ADET ELEMANLARIN

ADET FĠYATI

PIC16F873 1 10.00TL

LM833N 1 2.50TL

4011 1 0.35TL

4049 1 0.50TL

7805 1 0.35TL

7809 1 0.25TL

1SS106 2 0.25TL

7SEGMENT 3 0.75TL

ULTRASONIC

VERİCİ

1 10.00TL

ULTRASONİK ALICI 1 10.00TL

4MHz RESONATOR 1 0.25TL

2SA1015 3 0.10TL

2SC1815 2 0.10TL

DİRENÇ 25 0.005TL

KAPASİTE 12 0.25TL

1K-POT 1 0.50

TOPLAM 40.85TL