Hacettepe Robot Topluluğu

Ebat: px
Şu sayfadan göstermeyi başlat:

Download "Hacettepe Robot Topluluğu"

Transkript

1 Hacettepe Robot Topluluğu

2 PIC Assembly Dersleri 2. Ders: Çalışma Mantığı ve Komutlar

3 HUNRobotX - PIC Assembly Dersleri 2. Ders: Çalışma Mantığı ve Komutlar Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 5 Haziran 2007 PIC'in Çalışma Mantığı Üzerine... Geçen derste PIC'i çalıştırmak için gerekli olan minimum donanımdan bahsetmiştik. Beslemeleri bağlamak (+5V, 0V), reset bacağını +5V'a bağlamak ve osilatör bacaklarının bağlantılarını yapmak PIC'i çalıştırmak için yeterliydi. Şimdi biraz daha ayrıntılı inceleyeceğiz, PIC komutlarına ve register (yazmaç) mantığına giriş yapacağız, PIC'in içinde neler olduğunu biraz daha ayrıntılı olarak öğreneceğiz. Eğer Microchip firmasının herhangi bir mikrodenetleyicisini kullanacaksınız data sheet'ler %90 ihtimalle sizin için yeterli olacaktır. Eğer Đngilizceniz varsa bir denetleyiciyi öğrenmek için tek yapmanız gereken oturup data sheet'i okumak ve uygulamalar yapmaktır. Zaten yazacağınız programı sınırlayan genelde denetleyicinin yetenekleri değil sizin yeteneklerinizdir. Bunu şöyle açıklayayım: Đşlemcinin çarpma komutu olmayabilir, o zaman siz diğer komutların birleşimi cinsinden çarpma fonksiyonunu yazmalısınız; işlemcinin analog/sayısal çeviricisi olmayabilir, siz haricen kullanabilmelisiniz... Đlk derste PIC'in içinde sabit disk yerine geçen, programın saklandığı bir program hafızası var demiştik, şimdi onu inceleyelim.

4 2. Ders: Çalışma Mantığı ve Komutlar Şekil 1 PIC ile çalışırken 2'lik 10'luk ve 16'lık sayı sistemlerini kullanacağız. 10'luk sistem zaten günlük hayatta kullandığımız sistem ve "yeni başlayanlara temel dersler" diye verdiğimiz dökümanlarda sayı sistemleri ayrıntılı olarak anlatıldı. 2'lik sistem de PIC'in kullandığı sistem, çünkü PIC'de sadece 0 ve 1 var diye bahsetmiştik. Ben size sözlü olarak " " sayısı ile " " sayısını toplayın desem bunları akılda tutmanız bile çok zor ama onun yerine bu sayıların 16'lık karşılığı olan, "35" ile "6D" heksadesimal (16'lık sistemdeki sayılara böyle denir) sayılarını toplayın desem cok daha rahat anlaşılır olur. Bir sayının sağ tarafına "h" harfi koymak ya da sayının sol tarafına "0x" (sıfır ve x karakterleri) koymak o sayının heksadesimal olduğunu belirtir. Bir diğer 16'lık sistem avantajı da 2'lik sistemden 16'lık sisteme çevirmenin kolay oluşudur. 2'lik sayı sistemindeki sayıları sağ taraftan başlayıp 4'erli gruplarsınız ve her grubu ayrı ayrı 16'lık sisteme çevirirsiniz böylece heksadesimal sayı kağıt kaleme ya da hesap makinasına ihtiyaç kalmadan bulunabilir. Aynı işlemi tersten düşünüp 16'lık sistemi 2'li sisteme çevirirken de kullanabiliriz. Daha ayrıntılı bilgi için sayı sistemleri notuna bakınız. PIC'de genellikle adres isimleri heksadesimal olarak belirtilir (şekilde 1 numara ile gösterilmiştir). Program hafızası yukarıdan aşağıya satırlar şeklinde oluşur (şekilde 4 numara ile gösterilmiştir) ve her satırda 1 komut saklanır. Siz eğer 10 komut yazdıysanız, siz aksini belirtmediğiniz sürece komutlarınız program hafızasında en üst satırdan (0000h) başlayarak ilk 10 satıra yazılır. Eğer yazılmış örnek bir programa bakacak olursak komut satırlarının en başına ORG komutu

5 HUNRobotX - PIC Assembly Dersleri konulduğunu görürüz. Bu komut programın program hafızasına yazılırken hangi program hafızası satırından itibaren yazılmaya başlayacağını bildirir. Mesela biz ORG 0x000 komutu verince komutlarımız program hafızasında heksadesimal 0. adresten başlayarak yazılır. Eğer biz ORG 0x004 yazarsak ORG komutundan sonraki yazdığımız satırlar program hafızasına heksadesimal 4. adresten itibaren yazılmaya başlar. Şimdi bunun bize ne kazandırdığını açıklayacağız. Bizim PIC'in bir reset bacağı var ve eğer bu bacak 1 seviyesinde (+5 Volt) olursa reset olmaz ama eğer bu bacak 0 seviyesinde (0 Volt) olursa PIC reset olur demiştik. Şimdi gelelim reset'in anlamına. Reset demek programınızın başa dönmesi demektir, başa dönmesi demek de programın program hafızasında 0000h adresinden itibaren tekrar okunmaya başlaması demektir. Yani 0000h, özellikli bir program satırıdır. Bir özellikli satırımız da 0004h satırıdır (şekilde 3 numara ile gösterilmiştir). Bu satırın ismi "kesme adresi"dir. Đşlemciniz bir kesme durumunda bu adrese gider. Peki kesme nedir? Normal program akışı içerisinde, isterseniz programınızın akışının bozulmasına neden olabilecek öncelikler belirleyebilirsiniz, bu öncelikler oluşunca işlemci bütün işlerini bırakır ve sizin 0004h adresine yazdığınız alt programı öncelikli olarak işler. Sonra kaldığı yerden ana programı işlemeye devam eder. Burada program akışı kesildiği için (Mustafa'nın deyimi ile reklam arasına girildiği için) bu olaya kesme denir. Kesme oluştuğunda programımız 4. adrese yönelecek ve oradaki komutları işlemeye başlayacaktır. Yani ORG 0x004 komutundan sonraki satırlar işlenecektir kesme oluştuğunda. Şimdi diceksiniz ki daha program yazmayı anlatmadan programın nereye yüklendiğini anlatıyosun, kesme diye bişi anlatıyosun. Siz de haklısınız ama bu bilgiler de dursun bir kenarda, lazım olacak program yazarken. Gelelim program yazmak için gerekli diğer şeylere. PIC ile bir program yazmak için komutları ve yazmaçları bilmek yeterlidir. 16F84 için sadece 35 adet komut ve 15 adet özel fonksiyon yazmacı (special function register, SFR) ile 1 adet akümülatör (akü/working register/wreg/w) vardır. Bizim için en önemli olan, kaydedici komutları incelerken de fark edeceğiniz gibi, W yani working register'dır. W, 8 bitlik bir yazmaçtır, yani aynı anda sadece 8 bitlik veriyi saklayabilir ve Seyfullah'ın deyimi ile işlemci ile bellek arasında elçilik görevi görür.

6 2. Ders: Çalışma Mantığı ve Komutlar Şekil 2 Şekil-2'de genel kullanım amaçlı bellek adresleri ve SFR'ler gözüküyor, sanırım belleğin ne olduğu gözünüzde accık canlandı. 0Ch adresinden 4Fh adresine kadar olan kısım genel amaçlı bellek (general purpose register, GPR) olarak kullanılıyor. Bunu program memory ile karıştırmayın, program memory PIC içindeki başka bir parça, bu başka bir parça. Bu kısım 2 bank'tan oluşuyor, bank 0 ve bank 1. Bank 0'da 00h'tan 0Bh adresine kadar SFR'ler, 0Ch'tan 4Fh adresine kadar da GPR'ler tutulurken, bundan sonraki kısım ise kullanılmıyor. Bank 2'de ise SFR'ler 80h'tan başlayıp 8B adresine kadar devam ederken buradan aşağısı kullanılmıyor, yani 16F84'te bank 1'de GPR bulunmuyor. Ama bank 1'deki GPR'a ulaşmak isterseniz bank 0'dakine ulaşıyorsunuz. Yani bank 0'ın GPR kısmı bank 1'e yansıyor. Bu GPR'ler nasıl kullanılıyor şimdi ona geleceğiz (Bi çay molası) Geldik. Belleklerde de tıpkı program hafızasında olduğu gibi sol tarafta ve sağ tarafta yazan

7 HUNRobotX - PIC Assembly Dersleri heksadesimal sayılar her satırın adresini gosteriyor. Program memory'deki her satır (adres) 14 bitten oluşur ama bellek adresleri 8 bitten oluşur (bu önemli bir ayrıntı). Yani genel amaçlı kullandığınız adreslerin (satırların) her birisinde en fazla 8 bitlik bilgi saklayabilirsiniz. Mesela 4 sayı alıp karşılaştırıp en büyüğünü bulacaksınız. 8 bitlik 2'li sayı sisteminde yazılabilecek en büyük sayı " "dir. Bu sayının desimal (10'luk sistem) karşılığı 255'tir. Sizin 1. sayınız 255'ten büyükse o zaman sadece 1 adet bellek adresi kullanarak sayıyı saklayamazsınız. Her bir satıra yazabileceğiniz en büyük sayı 255'tir. Programda kullanacağınız, geliştireceğiniz tekniklerle satırları yan yana kullanabilirsiniz. Mesela 2 satırı yan yana kullanırsanız yazabileceğiniz en büyük sayı " " olur. Bu sayının desimal karşılığı ise 65535'dir. Bellekler ve SFR'ler 8 bitliktir dedik. SFR'yi tanımlamanın da zamanı geldi de geçiyor bile: SFR'ler siz programınızda işlem yaparken bazı özel durumları kontrol etmeye ve/veya bazı ayarları yapmaya yarayan bellek adresleridir. Nasıl ki program memory'de özel işlemi olan 2 adres vardı (0004h ve 0000h), bellek adreslerinde de bank 0 ve bank 1'de ilk 12 adres özel fonksiyonlar için ayrılmıştır. Mesela aritmetiksel işlemlerden sonra sonucun veya + olduğunu kontrol etmek isteyebilirsiniz ya da PIC'in bir bacağı ile bir LED yakmak isterken başka bir bacağına düğme bağlamanız gerekebilir. Başka örnekler de vermek gerekirse PIC'in içindeki dahili sayıcı modülünü kullanmak istiyorsanız onun ayarlarını ilgili yazmaç vasıtası ile yaparsınız; aynı şekilde kesmeleri de ilgili kesme yazmacı ile ayarlarsınız. Daha önce bahsettiğimiz PORTB de aslında bir yazmaçtır. Bazen komutları işlerken bellek adreslerinden "file" diye de bahsedeceğiz. Bir de yukarıda bahsedilen working register'ımız (W) var. Mikrodenetleyici içindeki işlemci, bellek ve program hafızası fiziksel olarak da ayrı şeylerdir. Bunlar arasındaki bağlantı da PIC içindeki başka yardımcı donanımlar ile yapılır. Bu kısım ayrıntı olduğu için girmiyorum, bize de bu ayrıntılar ileride zaten gerekli olmayacak. Đşlemci, bellek ile ilgili yapacağı birçok işlemi W vasıtası ile yapar. Mesela bir file'ın (yazmacın, register'ın) içine direk bir bilgi yükleyemezsiniz. Öncelikle W'ya atarsınız sonra da bunu W'dan file'a atarsınız. Diyelim ki PORTA'nın içindeki sayısal bilgiyi 1 azaltıp PORTB'ye atmak istiyoruz. O zaman örnek komutlar şu şekilde olacaktır: Not 1: Aşağıdaki komutlar ileride daha ayrıntılı olarak anlatılacaktır. Not 2: ; (noktalı virgül) işaretinden sonra gelen yazılar derleyici tarafından dikkate alınmaz ve bu yüzden programlarda yorum yazmak amacıyla kullanılır. MOVFW PORTA ; MOVe File to Working register. Burada file PORTA ; oluyor. Yani PORTA, Working register'a taşınıyor MOVWF REG1 ; MOVe Working register to File. Burada file REG1 diye ; tanımlanmış herhangi bir general purpose register DECF REG1 ; DECrement File. Register'ın içeriğini 1 azaltıyoruz, ; Burada register dediğimiz REG1 MOVFW REG1 ; MOVe File to Working register. REG1 ismini verdiğimiz ; ve sadece PORTA'nın bilgisini taşıyıp 1 azaltmak için

8 2. Ders: Çalışma Mantığı ve Komutlar MOVWF PORTB ; kullandığımız adresi şimdi geri W'ya taşıyacağız ; böylece W'dan PORTB'ye atayabileceğiz ; MOVe Working register to File. File burada PORTB oldu Not: Program yazarken sonradan tanımlanan herşeyde (register, satır etiketi gibi) büyük/küçük harf duyarlılığı vardır. Yani REG1 yazmacı ile reg1 yazmacı hatta Reg1 yazmacı birbirlerinden hep farklı yazmaçlardır. Komutları anlamaya başladıkça en son açıkladığım olayı daha net kavrayacaksınız. PIC Assembly Komutları Assembly dilinde her komut Đngilizce bir mananın kısaltılmışıdır ve bu komut aslında 2'lik sistemde 6'bitlik bir sayıyı temsil eder. Eğer bu komutla birlikte bir sabit sayı falan da kullanılacaksa (komut gerektiriyorsa) o zaman program memory'ye bu sabit ile yazılırlar. (program memory'de her komut için 14 bit ayrıldığını söylemiştik) Şekil 3 Öncelikle bit işlem komutlarından başlayalım anlatmaya. Bit işlem komutlarında her komut bir yazmacın sadece 1 biti ile ilgili işlem yapar. Programda bir yazmacın bir bitini belirtmek için ilk olarak yazmacın ismini yazarız sonra da virgül koyup kaçıncı bit ile ilgili işlem yapmak istediğimizi yazarız. Mesela PORTA yazmacının 3. biti ile işlem yapacaksak PORTA, 3 yazarız. Bir de komutlara gelmeden önce yazmaçlara ve bazı belirli bitlere isim vermeyi öğrenelim. Yazmaçların içeriği ile çok oynayacağımızdan dolayı program sırasında yazmaçlara birçok defa ulaşmamız gerekecektir. Her seferinde bir yazmaca adresi ile seslenmek zor olur çünkü adres açıklayıcı olmadığından programın okunabilirliği azalır, programcı da hangi adresi ne için kullandığını unutacaktır. Bu yüzden örneğin bir sayaç bilgisini tutacağımız bellek adresini program içinde SAYAC diye çağırabilmemiz için EQU komutu yaratılmıştır. Bu komut ile yaratacağımız isimlerin içeriği program boyunca tarafımızdan sürekli değiştirilebileceğinden dolayı bunlara programlama dünyasında "değişken" ismi de verilir. Bu komutun kullanımını bir örnekle görelim. Mesela 0x30 adresine SAYAC ismini vermek için programa şöyle bir satır ilave ederiz:

9 HUNRobotX - PIC Assembly Dersleri SAYAC EQU 0x30 ; Bildiğiniz gibi başına 0x eklenen sayılar ; heksadesimal oluyordu Artık belleğimizdeki 0x30 adresini program içinde SAYAC yazarak da kullanabiliriz. Aynı şekilde bitlere de istedigimiz ismi vermemiz mümkündür. Bunun için "#DEFINE" önişlemci komutu kullanılır. PORTA'nın 0. bitine bir LED bağlamış olalım ve bit komutlarını kullanarak bu LED'i söndürmek istiyoruz diyelim. Bu işlem için BCF PORTA, 0 demek yerine PORTA, 0'ı "LED" diye tanımlayıp ondan programın geri kalanında artık LED diye bahsedebiliriz: #DEFINE LED PORTA, 0 Birazdan bunların kullanımına da örnek vereceğiz. Şimdi esas komutlara gelirsek... BCF (Bit Clear File) Herhangi bir yazmacın istedigimiz bitini "0" yapar. O bitin önceki değeri önemli değildir. BSF (Bit Set File) Herhangi bir yazmacın istediğimiz bitini "1" yapar. O bitin önceki değeri önemli değildir. Bu öğrendiğimiz ilk iki komutu bir örnekte kullanalım: BCF PORTA, 3 ; PORTA'nın 3. bitinin 16F84'ün 2. bacağını temsil ; ettiğini geçen ders öğrenmiştik. Burada da o bacağı 0 ; yapıyoruz BSF REG1, 0 ; REG1 bizim sonradan tanımladığımız herhangi bir GPR. BSF HASAN, 7 ; HASAN da REG1 gibi bir GPR, adını REG1 değil de HASAN ; koymuşuz. BCF komutunu şu şekilde daha önceden tanımladığımız bir bit ile de kullanabiliriz: BCF LED BTFSS (Bit Test File, Skip if Set) Bu komutu istediğimiz bir biti test etmek için kullanıyoruz. Eğer bit 0 ise program akışımız hiç birşey olmamış gibi bir alt satıra geçiyor. Eğer bitimiz set edilmiş ise (yani 1 ise, yani elektronik için düşünürsek +5V seviyesinde ise), o zaman bir alt satırı atladıktan sonra programı işlemeye devam ediyor. Örnek: PORTB, 0'a bir düğme, PORTA, 0'a ise bir LED takılı olsun ve düğmenin takılı olduğu bacağa düğme basılmadığı taktirde 0, basıldığı taktirde 1 geliyor olsun. Eğer 1 gelirse (düğmeye basılırsa) LED yakılacak.

10 2. Ders: Çalışma Mantığı ve Komutlar #DEFINE DUGME PORTB, 0 #DEFINE LED PORTA, 0 BTFSS BUTON GOTO $-1 BSF LED BTFSC (Bit Test File, Skip if Clear) Bu komut ise aynı 1 satır atlama işlemini kontrol edilen bit 0 ise yapıyor. GOTO (GO TO) Programın bu komuta geldiğinde istediğimiz yere dallanmasını sağlar. Bu yer bir satır etiketi ile belirtilebileceği gibi bu yerin kaç satır aşağısı ya da yukarısı olacağı da söylenebilir. Örnek: GOTO BEKLE ; Başında "BEKLE" yazan satıra (yani BEKLE etiketine ; sahip satıra) dallanır ve program oradan devam eder "$" karakteri PIC Assembly dilinde programın o an olduğu yeri belirtir. Yani GOTO $ şeklinde bir komut yazmakla BEKLE GOTO BEKLE yazmak arasına fark yoktur. Programın 10 satır yukarıya (önceye) dallanmasını istersek $ işaretinin yanına "-0A" yazabiliriz. Yani $ (bulunduğu satır) - 0A (heksadesimal 10 sayısı) Eger 10 satır aşağı gitmesini istersek + işaretini kullanırız: GOTO $ + 0A Sadece yorumlardan oluşan ya da boş satırlar bu sayıya dahil değildir. Eğer program yazarken heksadesimal sayılar ile uğraşmak istemiyorsanız sayıyının sol tarafına "D" harfi koyarak sayının desimal olduğunu "B" harfi koyaraksa binary (2'li sistemdeki sayılara verilen isim) bir sayı olduğunu belirtebilirsiniz. Bu kullanımda sayıyı da ayrıca tek tırnak içinde yazmanız gerekmektedir. GOTO GOTO $ + D'15' $ + B' ' Bu 2 komut aynı işi yapıyor ama 1.'de desimal, 2.'de ise binary sayı kullanılıyor. Ama heksadesimal bir sayı kullanacaksanız programda sayıların başına "H" yazmanıza gerek yok

11 HUNRobotX - PIC Assembly Dersleri çünkü programda tüm sayılar varsayılan olarak heksadesimal'dir. Şimdi sıra geldi byte oriented komutlara yani byte işlem komutlarına. 8 bitin toplamı 1 byte eder. Dolayısı ile 16F84'ün her bellek adresi 1 byte'lıktır. Adından da anlaşılabileceği gibi byte oriented komutlar da bütün byte'ı değiştirebilecek ya da etkileyebilecek komutlardır. Bundan önceki bit oriented komutlarda sadece 1 biti değiştiriyor ya da kontrol ediyorduk, şimdi 1 byte'lık bellek adresinin 1 satırındaki bitlerin alayını tek seferde değiştirebilecek ya da kontrol edebiliceğiz. Şekil 4 Arkadaşlar yukarıdaki grafik ve şekillerin hepsi orijinal PIC16F84 data sheet'inde bulunmaktadır. Ben de bütün bilgilerimi oradan öğrendim, yani ana kaynak orası. Dolayısı ile burada aklınıza gelip de cevabını bulamadığınız herşeyi oradan bulabilirsiniz, orada da bulamazsanız HUNRobotX birebir görüşmeler ile ya da forum üzerinden sizin sorularınızı itina ile cevaplayacaktır. Neyse reklam arasından sonra devam edelim. Önce yukarıdaki tabloyu okumayı öğrenelim. Aslında çok basit birazcık incelerseniz kendiniz de çözebilirsiniz. En baştaki komuttan başlayalım. ADDWF f, d (ADD Working register and File then write it into destination) File ne demekti öğrenmiştik, register yani bellekteki adresler demekti. W ne demekti onu da öğrenmiştik, working register. Yani bu komut W'nun içeriği ile istediğimiz herhangi bir yazmacın içeriğini topluyor. Ama komutun kullanımında ADDWF f, d yazıyordu, hadi komutu anladık F ile

12 2. Ders: Çalışma Mantığı ve Komutlar W toplanıyor peki topladıktan sonra bu toplamı nereye yazıyor? Burada "d" destination yani toplamın yazılacağı hedef manasına geliyor, "d" yerine "f" ya da "w" yazabiliriz her komut için. Eğer w yazarsak toplam W'ya eğer f yazarsak toplam f'ye yani mevzubahis hangi yazmaç ise ona yazılır. Örnek: ADDWF REG1, f ADDWF REG1, w ; Burada W ile REG1 toplanır ve sonuc f'ye yani REG1'e ; atılır. W'nun içeriği değişmez. REG1, EQU ile ; tanımlanmış herhangi bir GPR adresidir ; Burada W ile REG1 toplanır ve sonuc W'ya atılır ; W'nun eski değeri silinir ve yerine yeni değer ; yazılır. REG1'in içeriği ise değişmez Bu komutu sadece komutları anlamaya örnek olarak verdim, şimdi komutları tek tek inceleyeceğiz ama daha kolay anlaşılması bakımından yukarıdaki listedeki sıra ile gitmeyeceğiz. MOVLW k (MOVe Literal into Working register) k, literal (sabit sayı) demektir D'3', D'5', D'34', D'155', H'3A', 0xFF, B' ' gibi... Bu komut da vereceğiniz herhangi bir sabit sayıyı working register'a atmaya yarıyor. MOVWF f (MOVe Working register into File) Bu komut W'nun içeriğini belirteceğiniz yazmaca atıyor. Örnek: SAYAC adında bir yazmaç tanımlayalım sonra W içine atayacağımız bir sabit sayıyı bu yazmacın içine yerleştirelim: SAYAC EQU 0x30 ; SAYAC değişkenini tanımladık MOVLW D'10' MOVWF SAYAC ; 10 sayısını W'nun içine attık ; W'nun içeriğini SAYAC yazmacına atadık MOVF f, d (MOVe File) Bu komutta dikkat edilmesi gereken bir şey d'yi kullanmanın anlamsız olacağıdır. "d" yerine f yazarsanız yine kendi içine taşımaya calışacağı için bir anlamı olmayacaktır, yani "d" yerine w yazılmak zorundadır. Đpucu: MOVFW komutunu MOVF komutu yerine kullanın hatta MOVF komutunu hiç öğrenmeyin. Đki komut da belirttiğiniz bir f'yi W'ya taşımaya yarar. ADDLW k (ADD Literal to Working register) W ile bir sabit sayıyı toplar ve sonucu W'ya yazar. Örnek: SAY1 ve SAY2 yazmaçlarındaki sayıları toplayıp SAY3 yazmacına yazalım ve üzerine de

13 HUNRobotX - PIC Assembly Dersleri 10 ekleyelim. SAY1, SAY2'nin daha önceden tanımlandığını ve içlerine sabit sayılar atandığını varsayalım. MOVFW SAY1 ADDWF SAY2, w ADDLW D'10' MOVWF SAY3 ; SAY1'i W'ya attık ; W ile (W'nun içinde SAY1 vardı) SAY2'yi topladık ; Sabit sayı olan 10 ile W'nun içeriğini topladık ; Ve sonucu SAY3 yazmacı içine attık CLRF f (CLeaR File) Bahsi geçen yazmacın içeriğini 0x00 yapmak için yani temizlemek için kullanılır. CLRW (CLeaR Working register) Working register'ın içeriğini temizlemek için kullanılır. NOP (No OPeration) Bu komuta gelindiğinde 1 işlem süresince hiçbir işlem yapılmaz ve bir sonraki satıra geçilir. INCF f (INCremet File) Bahsi geçen yazmacın içeriğini 1 arttırmak için kullanılır. Eğer yazmacın içeriği 255 ise 1 arttırdığımız zaman sonucun 256 olması gerekir, fakat yazmaçlar 8 bitlik oldukları için 256 sayısını saklayacak yerleri yoktur (B' ' = D'256'). O zaman sonuç ne olacak sorusunun cevabı 0, yani 256 sayısı ile 0 sayısının arasında bir fark yoktur yazmaç olarak. Dolayısı ile mod(256)'da işlem yapmış oluyoruz. DECF f (DECrement File) Bahsi geçen yazmacın içeriğini 1 azaltır. Eğer yazmaç içeriği 0 ise, önceki komutta da 256 ile 0'ın farkı yok demiştik. Bunun sonucu olarak içeriği 0 olan bir yazmacın içeriğini 1 azaltırsak yeni değeri 255 olur. DECFSZ f (DECrement File Skip if Zero) Bahsi geçen yazmacın içeriğini 1 azaltır ve yazmacın içeriğini kontrol eder. Eğer yazmacın yeni içeriği 0 ise bir sonraki satırı atlar, işlemez. INCFSZ f (INCrement File Skip if Zero) Bahsi geçen yazmacın içeriğini 1 arttırır ve bu arttırma sonucu yeni içerik değeri 0 olursa (yani 256 olursa) sonraki 1 satırı ihmal eder ve işlemez. Örnek: Diyelim ki benim PIC'imin bir bacağına LED (PORTA, 3), bir başka bacağına da (PORTB, 0) düğme bağlı, benim istediğim çalışma biçimi ise şöyle: Eğer düğmeye basmıyorsam LED yanmasın, eğer düğmeye basıyorsam LED sürekli yanıp sönsün. Fakat biliyorum ki işlemci 1 komutu 1 mikrosaniyede işliyor ve bu kadar hızlı olduğundan dolayı sürekli BCF ve BSF

14 komutlarını arka arkaya kullanırsam gözüm yanıp sönmeleri algılayamaz. #DEFINE DUGME PORTB, 0 #DEFINE LED PORTA, 3 2. Ders: Çalışma Mantığı ve Komutlar BASLA BTFSS DUGME GOTO $ - 1 BSF LED BCF LED GOTO BASLA Yukarıdaki program sanki çalışırmış gibi durmasına rağmen PIC'in bu işlemleri 5-6 mikrosaniyede bitirecek olmasından dolayı sonuç alamayız. Dolayısı ile yakma ve söndürme satırları arasına bir bekleme zamanı koymalıyız, yani program LED'i yaktıktan sonra biraz beklemeli ve öyle söndürmeli, söndürdükten sonra da biraz beklemeli ve öyle yakmalı. Đşlemcinin her komutu 1 mikrosaniyede işlediğini geçen derste görmüştük. Yukarıda da NOP komutunun hiçbir işlem yapmadan 1 mikrosaniye işlemciyi beklettiğini biliyoruz. Ama 1 mikrosaniyelik bekleme bizim işimize yaramaz, alt alta yüzlerce NOP yazmak da kullanışlı değil. O yüzden bir sayaç oluşturmalı ve yazacağımız komutları tekrar ettirerek (işlemciye boş boş sayı saydırarak) zaman harcatmalıyız. Yukarıda DECFSZ komutunu görmüştük. Mesela şimdi yazacağımız programda SAYAC diye bir yazmaç tanımlayalım ve onun vasıtası ile gecikme yapalım. SAYAC EQU 0x1A #DEFINE DUGME PORTB, 0 #DEFINE LED PORTA, 3 BASLA BTFSS DUGME ; DUGME'den gelen veri 1 ise 1 satır atla GOTO $ - 1 ; Değilse geri dön BSF LED ; DUGME 1 ise LED'i yak MOVLW D'200' ; W'ya desimal 200 sayısını yükle MOVWF SAYAC ; W'yu SAYAC'a at. SAYAC'ın yeni değeri 200 oldu NOP ; Đşlem yapma NOP ; Đşlem yapma DECFSZ SAYAC ; SAYAC'ı 1 azalt, 0 ise 1 satır atla değilse alttaki ; satırı işle GOTO $ - 3 ; Eğer sayac'ın 1 azaltılmış değeri 0 değilse 3 satır ; yukarı geç BCF LED ; SAYAC 0 olunca LED'i söndür MOVLW D'200' ; Yukarıdaki gecikme satırlarının aynısı MOVWF SAYAC NOP NOP

15 HUNRobotX - PIC Assembly Dersleri DECFSZ SAYAC GOTO $ - 3 GOTO BASLA ; SAYAC 0 olunca BASLA satırına dön ve tekrar DUGME'yi ; kontrol et. Gelelim diğer bir aritmetik işlem komutumuz olan SUB'a. SUBLW k (SUBtract W from Literal), SUBWF f, d (SUBtract W from File then write the result into destination) Çıkarma işlemi yapmak için SUBLW ve SUBWF olmak üzere 2 komutumuz bulunuyor. Bu komutlarda çıkartılan taraf hep W. Nereden çıkartılacağının cevabı ise komutta. SUBLW komutunda herhangi bir sabit sayıdan W çıkartılıyor, SUBWF komutunda ise herhangi bir yazmacın içeriğinden W çıkartılıyor. PIC'te mantık işlemleri yapmak için komutlar bulunmakta ve bu komutlar bizim işimizi birçok konuda kolaylaştırmaktadır. Mantık kapılarından ve bunların yaptığı işlemlerden temel elektrik ve elektronik dersinde gereken bilgiler verilecek. Şimdi gelelim bu komutlara ve ne iş için nasıl kullanıldıklarına. Not: Burada anlatılmayan RLF ve RRF komutları ders 3'te ayrıntılı olarak anlatılacaktır. SWAPF f, d (SWAP File then write the result into destination) Bahsi geçen yazmacın ilk 4 biti ile son 4 bitinin yerlerini değiştirir. Örnek: SWAPF REG1, f ; REG1 diye tanımlanmış olan yazmacın ilk 4 biti ile son 4 bitini yer değiştir. PIC'te mantık kapılarından 4 tanesi bulunmaktadır. NOT (DEĞĐL, tersleme), OR (VEYA, toplama), AND (VE, çarpma) kapıları ile XOR (ÖZELVEYA) kapısı bulunur. COMF f, d (COMPlement File then write the result into destination) Belirtilen yazmacın içeriğindeki 1'leri 0, 0'ları 1 yapar. Yani yazmaç içeriğinin tersini alır. Bir nevi NOT işlevi görür. Her bit için NOT işlemini gerçekleştirir. Đçeriği olan DENEME isimli bir yazmacımız olsun. COMF DENEME, f komutunu kullanacak olursak DENEME yazmacının tersi alınacak ve destination olarak yine yazmaç gösterildiğinden yeni içerik olacaktır. Eğer COMF DENEME, w

16 2. Ders: Çalışma Mantığı ve Komutlar yazsaydık yani destination olarak W'yu gösterseydik o zaman deneme isimli yazmacın içeriği değişmeyecekti çünkü tersi alınmış olan içerik W'ya yazılacaktı. ANDWF f, d (AND Working register and File then write the result into destination) Belirtilen yazmaç ile W'yu mantıksal VE işlemine tutar. Hatırlayacağınız gibi VE işlemine tabi tutulan 2 bitten birisi bile 0 ise sonuç 0 olurken eğer ikisi de 1 ise sonuç 1 oluyordu. ANDWF DENEME, w Đşlemini yapacak olursak (DENEME ve W için kafadan ilk değerler belirledim.) DENEME yazmacının ilk içeriği W'nun ilk içeriği DENEME'nin uyguladığımız işlemden sonraki içeriği W'nun uyguladığımız işlemden sonraki içeriği Đşlem yapıldıktan sonra kayıt yeri olarak W gösterildiği için sonuç W'ya atıldı. Bu işlemin amacını şu şekilde basitçe düşünebiliriz: Bir evimiz var ve evde 8 adet lamba yanıyor. Ben bunlardan belirlediğim birkaç tanesini söndürmek istiyorum (o an yanıyor olması veya sönük olması ile ilgilenmiyorum). Bu lambaların yanması da DENEME yazmacının içeriğine bağlı olsun. Yani DENEME yazmacının 0. bitinde 1 varsa 0. lamba yanıyor, 0 varsa 0. lamba sönük, aynı şey diğer bitler için de geçerli. Eğer 3., 5. ve 0. lambaların sönüklüğünden emin olmak istiyorsam W'nun içine yüklerim ve DENEME yazmacı ile VE işlemine tutarım. ANDLW k (AND a Literal and Working register then write the result into destination) Bu komut VE işlemini bir sabit sayı ile W arasında yapar ve sonucu W'ya yazar. IORWF f, d (Inclusive OR Working register and File then write the result into destination) Bu komut ise mantık işlemlerinden VEYA'yı yerine getirir. Hatırlayacağınız gibi VEYA işleminde işleme tutulan bitlerden herhangi birisi 1 ise sonuç 1, ancak her ikisi de 0 ise sonuç 0 oluyordu. Bu komutu da odadaki lambaları yakmak için kullandığımızı düşünebiliriz. Lambalardan yakmak istedikerimize karşılık gelen bitlerin içeriğine 1 yükleriz ve geri kalanların içeriğine de 0 yükleriz. 1 ile VEYA işlemine tutulanlar yanar, geri kalanların konumunda değişiklik olmaz. Örnek: IORWF DENEME, f ; DENEME ile W'yu VEYA işlemine tutar sonucu yine DENEME'nin ; içine atar DENEME'nin ilk içeriği

17 HUNRobotX - PIC Assembly Dersleri W'nun ilk içeriği DENEME'nin uyguladığımız işlemden sonraki içeriği W'nun uyguladığımız işlemden sonraki içeriği IORLW k (Inclusive OR a Literal and Working register) VEYA işlemini sabit bir sayı ile W arasında yapar. Örnek: IORLW D'23' ; Desimal olarak belirtilen 23 sayısı ile W'nun içeriğini ; VEYA işlemine tutuyoruz. Bu işlemi kolay anlamak için ; öncelikle 23 desimal sayısını binary olarak yazalım: ; D'23' = B' ' 'ün binary karşılığı W'nun ilk içeriği W'nun uyguladığımız işlemden sonraki içeriği XORWF f, d (XOR Working register and File then write the result into destination) Veee işte sıra geldiii son mantık işlemimizzzz ÖZELVEYA işlemineee. Bu işlem mantık işlemleri içinde akılda tutulması en zorudur, niye bilmiyorum aslında çok kolaydır. Bu işlem farklılığı seven bir işlemdir. Eğer girişler birbirinden farklı olursa (zaten ne kadar farklı olabilir, 1 ve 0'dan başka bişi yok elimizde) sonuç 1 oluyor, eğer girişler aynı ise, yani iki sayı da 0 veya 1 ise sonuç 0 oluyor. Bu komut da W ve belirtilen yazmacın içeriğini alır, ÖZELVEYA işlemine tutar. "d" yerine w yazılmışsa sonucu W'ya, f yazılmışsa sonucu bahsi geçen yazmaca atar. XORLW k ( XOR a Literal and Working register) Bir sabit sayı ile W'yu ÖZELVEYA işlemine tutar, sonucu da W'ya atar. Bu komut pratikte çok işimize yarıyor. Mesela bir yazmacın içinde 13 sayısı olup olmadığını merak ediyoruz. O zaman önce o yazmacın içeriğini W'ya atıp sonra W'yu 13 sabit sayısı ile XORLW işlemine tutarız ve sonucun 0 olup olmadığına bakarız. Eğer sonuç 0 ise sayımız 13 demektir. Đpucu: Aynı işlemi W'ya 13 sayısını yükleyip XORWF işlemini uygulayarak da yapabiliriz. Bu komutun başka bir kullanım alanı ise durumunu değiştirmek istediğimiz bitlerledir. Mesela PORTA, 2'ye LED bağladık ve bu LED'i yanıyorsa söndürmek, sönükse yakmak istiyoruz. Bu durumda bu biti 1 ile ÖZELVEYA işlemine tabi tutarız. PORTA, 2'de 1 varsa aynı olduklarından sonuc "0" olur, eğer 0 varsa farklı olduklarından sonuç "1" olur.

18 2. Ders: Çalışma Mantığı ve Komutlar Örnek: W'nun içine 36 yükleyip SAYI isimli yazmaçla W'yu XOR işlemine tutalım. MOVLW D'36' ; W'nun içine 36 yükledik XORWF SAYI, w ; SAYI isimli yazmaçla W'yu XOR yaptık Şimdi bunun sonuçlarını inceleyelim. SAYI isimli yazmacın içinde önceden B' ' sayısının olduğunu varsayalım SAYI'nın ilk içeriği W'nun ilk içeriği SAYI'nın uyguladığımız işlemden sonraki içeriği W'nun uyguladığımız işlemden sonraki içeriği Şimdi SAYI yazmacının içeriğinin de önceden 36 olduğunu varsayalım SAYI'nın ilk içeriği W'nun ilk içeriği SAYI'nın uyguladığımız işlemden sonraki içeriği W'nun uyguladığımız işlemden sonraki içeriği Gördüğünüz gibi SAYI yazmacı ile W'nun içeriği aynı olduğundan sonuç 0 oldu. Yardımcı Komutlar PIC'te sayfaya komutları yazmaya başlamadan önce bazı yardımcı komutları kullanmamız gerekebilir. Bunların bazılarından yukarıda bahsettik (EQU, #DEFINE ve ORG gibi). Diğerleri ise şunlar: list: Kullandığınız PIC çeşidini belirtmeye yarar. Kullanımı şu şekildedir: list p=16f84a CONFIG (CONFIGuration): Bu komut ile işlemcinin bazı özelliklerini ayarlarsınız. Aşağıda komutun tam yazım şekli ve komut hakkındaki açıklamalar belirtilmiştir. CONFIG _CP_OFF & _WDT_OFF & _PWRTE_ON & _XT_OSC _CP_OFF (Code Protect OFF): Buraya OFF yerine ON da yazabilirsiniz. Bu komut ile işlemcinize yazdığınız kodu başkalarının okuyabilip okuyamayacağını belirlersiniz. _WDT_OFF (Watch Dog Timer OFF): Watch Dog Timer'ın açık mı kapalı mı olacağını belirlemenize yarar, Watch Dog Timer'ın ne olduğunu ileride göreceksiniz. _PWRTE_ON: Đşlemcinin açılışta kendisine reset atmasına yarar, OFF veya ON olabilir.

19 HUNRobotX - PIC Assembly Dersleri _XT_OSC: Devrede kullandığınız osilatör tipini belirtmenize yarar. Diğerlerinden farklı olarak 4 farklı değer alabilir: RC, XT, LP, HS. RC: Ösilatör olarak sadece 1 direnç 1 de kapasitörden oluşturduğumuz bir devre kullandığımızı belirtir. XT: Devrelerimizde hep bu değeri kullanacağız. Devreye kristal + 2 kapasitör bağladığımızı belirtmeye yarar. Bu osilatör tipi en hassas osilatör tipidir. Bağlantılar

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001

W SAYAC SAYAC SAYAC. SAYAC=10110110 ise, d=0 W 01001001 MOVLW k Move Literal to W k sabit değerini W saklayıcısına yükler. MOVLW h'1a' W 1A. Hexadecimal 1A sayısı W registerine yüklenir. MOVF f,d Move f f saklayıcısının içeriğini W veya f'e yükler. MOVF SAYAC,0

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu Makaleler PIC ile LED Yakıp Söndüren Devre PIC ile LED Yakıp Söndüren Devre Canol Gökel - 13 Ekim 2006 Giriş Merhaba arkadaşlar, bu makalemizde PIC'e yeni başlayanlar için basit

Detaylı

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür.

Assembler program yazımında direkt olarak çizgi ile gösterilmemesine rağmen ekranınız ya da kağıdınız 4 ayrı sütunmuş gibi düşünülür. BÖLÜM 4 4. PIC PROGRAMLAMA Herhangi bir dilde program yazarken, öncelikle kullanılacak dil ve bu dilin editörünü kullanabilmek önemlidir. Biz bu işlem için Mplab programını kullanacağız. Bu sebeple aslında

Detaylı

B.Ç. / E.B. MİKROİŞLEMCİLER

B.Ç. / E.B. MİKROİŞLEMCİLER 1 MİKROİŞLEMCİLER RESET Girişi ve DEVRESİ Program herhangi bir nedenle kilitlenirse ya da program yeniden (baştan) çalıştırılmak istenirse dışarıdan PIC i reset yapmak gerekir. Aslında PIC in içinde besleme

Detaylı

IŞIĞA YÖNELEN PANEL. Muhammet Emre Irmak. Mustafa Kemal Üniversitesi Mühendislik Fakültesi. Elektrik-Elektronik Mühendisliği Bölümü

IŞIĞA YÖNELEN PANEL. Muhammet Emre Irmak. Mustafa Kemal Üniversitesi Mühendislik Fakültesi. Elektrik-Elektronik Mühendisliği Bölümü IŞIĞA YÖNELEN PANEL Muhammet Emre Irmak Mustafa Kemal Üniversitesi Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği Bölümü e-posta: memreirmak@gmail.com ÖZET Işığa yönelen panel projesinin amacı,

Detaylı

PIC TABANLI, 4 BASAMAKLI VE SER

PIC TABANLI, 4 BASAMAKLI VE SER PIC TABANLI, 4 BASAMAKLI VE SERİ BAĞLANTILI 7 SEGMENT LED PROJESİ Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Bilgisayar Mühendisliği Bölümü, Lefkoşa E-mail: dogan@neu.edu.tr,

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı HUNRobotX - PIC Assembly Dersleri 4. Ders: Kesme Đşlemleri ve Timer Bileşeninin Kullanımı Yazan:

Detaylı

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı

1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı 1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı yazınız. SAYAC1 EQU 0X20 devam movlw B'00000000' call DELAY incf PORTB,f ;Akü ye 0' sabit değerini yaz. ;Aküdeki değer PORTB

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 3. Ders: Bazı Özel İşlev Yazmaçları ve Altprogram Kavramı HUNRobotX - PIC Assembly Dersleri 3. Ders: Bazı Özel İşlev Yazmaçları ve Altprogram Kavramı Yazan:

Detaylı

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI

PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI PIC MİKROKONTROLÖR TABANLI MİNİ-KLAVYE TASARIMI Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Bilgisayar Mühendisliği Bölümü, Lefkoşa, KKTC E-mail: dogan@neu.edu.tr, Tel: (90) 392 2236464 ÖZET Bilgisayarlara

Detaylı

LCD (Liquid Crystal Display)

LCD (Liquid Crystal Display) LCD (Liquid Crystal Display) LCD ekranlar bize birçok harfi, sayıları, sembolleri hatta Güney Asya ülkelerin kullandıkları Kana alfabesindeki karakterleri de görüntüleme imkanını verirler. LCD lerde hane

Detaylı

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }

Program Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } } Temrin1: PIC in PORTB çıkışlarından RB5 e bağlı LED i devamlı olarak 2 sn. aralıklarla yakıp söndüren programı yapınız. En başta PORTB yi temizlemeyi unutmayınız. Devre Şeması: İşlem Basamakları 1. Devreyi

Detaylı

LCD (Liquid Crystal Display )

LCD (Liquid Crystal Display ) LCD (Liquid Crystal Display ) Hafif olmaları,az yer kaplamaları gibi avantajları yüzünden günlük hayatta birçok cihazda tercih edilen Standart LCD paneller +5 V ile çalışır ve genellikle 14 konnektor lü

Detaylı

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz.

Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz. Ders-2: ---------- Bu dersimizde pic pinlerinin nasıl input yani giriş olarak ayarlandığını ve bu işlemin nerelerde kullanıldığını öğreneceğiz. Hazırlanan programlarda pic in zaman zaman dış ortamdan bilgi

Detaylı

HUNRobotX - Makaleler - Hız Ayarlı Çoklu DC Motor Kontrolü. Makaleler Hız Ayarlı Çoklu DC Motor Kontrolü

HUNRobotX - Makaleler - Hız Ayarlı Çoklu DC Motor Kontrolü. Makaleler Hız Ayarlı Çoklu DC Motor Kontrolü Makaleler Hız Ayarlı Çoklu DC Motor Kontrolü Hız Ayarlı Çoklu DC Motor Kontrolü Yazan: Mustafa Tufaner, Düzenleyen: Canol Gökel - 18 Kasım 2006 Giriş Robotikte sıkça kullanılabilecek bir uygulama ile karşınızdayız.

Detaylı

Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre

Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre MİKRODENETLEYİCİLER Mikroişlemci: Merkezi işlem biriminin fonksiyonlarını tek bir yarı iletken tümleşik devrede birleştiren programlanabilir sayısal elektronik devre Mikrodenetleyici: Bir mikroişlemcinin

Detaylı

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü

DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü Ders 7, Slayt 2 1 PROGRAM 1 RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan iki 8-bit sayının toplamını hesaplayıp

Detaylı

UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK

UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA UYGULAMA_05_01 UYGULAMA_05_01. Doç.Dr. SERDAR KÜÇÜK UYGULAMA 05_01 MİKRODENETLEYİCİLER 5.HAFTA Doç.Dr. SERDAR KÜÇÜK PORTB den aldığı 8 bitlik giriş bilgisini PORTD ye bağlı LED lere aktaran MPASM (Microchip Pic Assembly) Doç. Dr. Serdar Küçük SK-2011 2

Detaylı

YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ. EasyPic6 Deney Seti Kullanım Kılavuzu

YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ. EasyPic6 Deney Seti Kullanım Kılavuzu YILDIZ TEKNİK ÜNİVERSİTESİ ELEKTRİK - ELEKTRONİK FAKÜLTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ EasyPic6 Deney Seti Kullanım Kılavuzu İstanbul 2009 İçindekiler EasyPic6 Deney Setinin Tanıtımı... 1 PIC16F887

Detaylı

PIC Mikrodenetleyiciler. Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1

PIC Mikrodenetleyiciler. Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1 PIC Mikrodenetleyiciler PIC MCU= CPU + I/O pinleri+ Bellek(RAM/ROM) Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1 PIC Mikro denetleyici Programlama Assembly programlama dili, çoğu zaman özel alanlarda geliştirilen

Detaylı

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ

PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ DERSĐN ADI : MĐKROĐŞLEMCĐLER II DENEY ADI : PIC 16F84 VE ĐKĐ BUTONLA BĐR LED KONTROLÜ PIC 16F84 VE TEK BUTONLA BĐR LED KONTROLÜ PIC 16F84 VE VAVĐYEN ANAHTAR ĐLE BĐR LED KONTROLÜ ÖĞRENCĐ ĐSMĐ : ALĐ METĐN

Detaylı

KONFİGÜRASYON BİTLERİ

KONFİGÜRASYON BİTLERİ MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım 2) Doç. Dr. Hakan Ündil INCLUDE Dosyalar Assembly programlarını yazarken kullanılacak register adreslerini (EQU) komutu ile tanımlamak hem

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş HUNRobotX - PIC Assembly Dersleri 1. Ders: PIC Programlamaya Giriş Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 4 Haziran

Detaylı

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak

# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak #PIC enerjilendiğinde PORTA içeriğinin tersini PORTB de karşılık gelen biti 0 olacak # PIC enerjilendiğinde PORTB nin 0. biti 1 olacak - başla - LIST=16F84 - PORTB yi temizle - BANK1 e geç - PORTB nin uçlarını çıkış olarak yönlendir - BANK 0 a geç - PORT B nin 0. bitini 1 yap - SON ;pic

Detaylı

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu Step Motor Step motor fırçasız elektrik motorlarıdır. Step motorlar ile tam bir tur dönmeyi yüksek sayıda adımlara bölebilmek mümkündür (200 adım). Step motorları sürmek için, sürekli gerilim uygulamak

Detaylı

MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final

MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final MİKROİŞLEMCİLER VE MİKRO DENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan Ündil 2013-2014 Bahar-Final BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan

Detaylı

BÖLÜM 2 2. PROGRAMLAMA MANTIĞI

BÖLÜM 2 2. PROGRAMLAMA MANTIĞI BÖLÜM 2 2. PROGRAMLAMA MANTIĞI Programlama bir düşünce sanatıdır ve aslında, kullanılacak programlama dilinden bağımsız bir düşünme tekniğidir. Kullanılan programlama dilinin bu işleme katkısı ise makine

Detaylı

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB=00000000 BCF STATUS,5 ;bank0 a geçiş

BSF STATUS,5 ;bank1 e geçiş CLRF TRISB ;TRISB=00000000 BCF STATUS,5 ;bank0 a geçiş +5V ĠġĠN ADI: PORTB DEKĠ LEDLERĠN ĠSTENĠLENĠ YAKMAK/SÖNDÜRMEK GND C F C F X R 5 U OSC/CLKIN RA0 OSC/CLKOUT RA RA RA RA/T0CKI PICFA RB RB RB RB RB RB 0 R R R R5 R R R R D D D D D5 D D D INCLUDE CONFIG P=FA

Detaylı

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI S1. Aşağıdaki eleman ya da birimlerden hangisi genel bir bilgisayar sisteminin donanımsal yapısında yer almaz? a) Mikroişlemci (CPU) b) Bellek

Detaylı

Hacettepe Robot Topluluğu

Hacettepe Robot Topluluğu Hacettepe Robot Topluluğu Makaleler Geri Sayım Cihazı HUNRobotX - Makaleler - Geri Sayım Cihazı Geri Sayım Cihazı Yazan: Kutluhan Akman, Düzenleyen: Canol Gökel - 22 Ekim 2006 Giriş Hepinizin bazı macera

Detaylı

PIC16F87X te ADC MODÜLÜNÜN KULLANIMI

PIC16F87X te ADC MODÜLÜNÜN KULLANIMI PIC16F87X te ADC MODÜLÜNÜN KULLANIMI Emre YAVUZ Temmuz 2009 PIC16F87X te ADC MODÜLÜ Ü KULLA IMI Bu makalemizde PIC16F87X serisi mikrodenetleyicilerde ADC modülünün temel düzeyde kullanımını anlatacağım.

Detaylı

ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU

ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU ROBOT KOL BİTİRME PROJESİ DÖNEM İÇİ RAPORU İSMAİL KAHRAMAN-ŞEYMA ÖZTÜRK 200713151027 200513152008 Robot Kol Mekanizması: Şekildeki robot-insan benzetmesinden yola çıkarak, bel kısmı tekerlekli ve sağa-sola-ileri-geri

Detaylı

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1

Sistem Gereksinimleri: Uygulama Gelistirme: PIC Mikroislemcisinin Programlanmasi: PIC Programlama Örnekleri -1 PIC Programlama Örnekleri -1 Sistem Gereksinimleri: PIC programlayicinin kullanilabilmesi için; Win98 ve üstü bir isletim sistemi Paralel port 60 MB veya daha üstü disk alani gerekmektedir. Ancak programlama

Detaylı

HUNRobotX - Makaleler - PIC 16 Serisi ile Çarpma İşlemi. Makaleler PIC 16 Serisi ile Çarpma İşlemi

HUNRobotX - Makaleler - PIC 16 Serisi ile Çarpma İşlemi. Makaleler PIC 16 Serisi ile Çarpma İşlemi Makaleler PIC 16 Serisi ile Çarpma İşlemi PIC 16 Serisi ile Çarpma İşlemi Yazan: Kutluhan Akman - 1 Şubat 2007 Giriş Bu yazıda 8 bitlik 2 sayıyı, çarpma komutu olmayan 16 serisi PIC mikrokontrolcülerinde

Detaylı

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİ PROGRAMLAMA 523EO0020 Ankara, 2012 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında

Detaylı

How to ASP Language. Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013

How to ASP Language. Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU. 29 Eki. 1 Kas. 2013 How to ASP Language Elbistan Meslek Yüksek Okulu 2011 2012 Bahar Yarıyılı 29 Eki. 1 Kas. 2013 Öğr. Gör. Murat KEÇECĠOĞLU Fonksiyonlar, kendilerini göreve çağıran VBScript komutlarına ve işlemlerine bir

Detaylı

Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

Bu yürütme, Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur) MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Mikroişlemci bir programının yapmak istediği işlemleri, (hafızada bulunan komutları) sırasıyla ile işleyerek icra eder (yürütür). Bu yürütme, 1. Komutun Program

Detaylı

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım.

DAO İLE SQL KOMUTLARI. Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. DAO İLE SQL KOMUTLARI Sql komutlarını artık veri tabanında kullanmaktan başka çaremiz yok arkadaşlar. Şimdi bu sql derslerimize başlayalım. SQL-1 SELECT En basit SQL cümleciği oluşturmak için SELECT sözcüğü

Detaylı

BÖLÜM 3 OPERAT A ÖRLER - 19 -

BÖLÜM 3 OPERAT A ÖRLER - 19 - BÖLÜM 3 OPERATÖRLER - 19 - 3.1 Operatörler Hakkında Yukarıdaki örnekleri birlikte yaptıysak = işaretini bol bol kullandık ve böylece PHP'nin birçok operatöründen biriyle tanıştık. Buna PHP dilinde "atama

Detaylı

KONTROL VE OTOMASYON KULÜBÜ

KONTROL VE OTOMASYON KULÜBÜ KONTROL VE OTOMASYON KULÜBÜ C DİLİ İLE MİKROKONTROLÖR PROGRAMLAMA EĞİTİMİ Serhat Büyükçolak Ahmet Sakallı 2009-2010 Güz Dönemi Eğitimleri Mikrokontrolör Gömülü sistemlerin bir alt dalı olan mikrokontrolör

Detaylı

BİLİŞİM TEKNOLOJİLERİ

BİLİŞİM TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI BİLİŞİM TEKNOLOJİLERİ MİKRODENETLEYİCİ Ankara, 2014 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan yeterlikleri kazandırmaya

Detaylı

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü

BM-311 Bilgisayar Mimarisi. Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü BM-311 Bilgisayar Mimarisi Hazırlayan: M.Ali Akcayol Gazi Üniversitesi Bilgisayar Mühendisliği Bölümü Konular Bilgisayar Bileşenleri Bilgisayarın Fonksiyonu Instruction Cycle Kesmeler (Interrupt lar) Bus

Detaylı

ÖĞRENME FAALİYETİ-1 1. MİKRODENETLEYİCİ PROGRAMI YAZMA

ÖĞRENME FAALİYETİ-1 1. MİKRODENETLEYİCİ PROGRAMI YAZMA ÖĞRENME FAALİYETİ-1 AMAÇ ÖĞRENME FAALİYETİ-1 Uygun ortam sağlandığında kurulacak devre için eksiksiz olarak yapabileceksiniz. mikrodenetleyici programını ARAŞTIRMA Mikrodenetleyici çeşitlerini aaştırınız.

Detaylı

PROGRAMLANABİLİR ZAMANLAYICI

PROGRAMLANABİLİR ZAMANLAYICI 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Ü PROGRAMLANABİLİR ZAMANLAYICI BİTİRME ÇALIŞMASI SULTAN ÜÇOK 203786 HAZİRAN,2011 TRABZON T.C. KARADENİZ TEKNİK

Detaylı

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2

T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2 T.C. MİLLÎ EĞİTİM BAKANLIĞI DENİZCİLİK MİKRODENETLEYİCİ 2 ANKARA 2013 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında yer alan yeterlikleri kazandırmaya yönelik

Detaylı

BUTON KONTROLÜ. Pull-Down Bağlantı (Ters Bağlantı) Butona basılmadığında Giriş=1 Butona basıldığında Giriş=0

BUTON KONTROLÜ. Pull-Down Bağlantı (Ters Bağlantı) Butona basılmadığında Giriş=1 Butona basıldığında Giriş=0 BUTON KONTROLÜ PULL-DOWN BAĞLANTI PULL-UP BAĞLANTI PIC girişlerine bağlı botonlara basılıp basılmadığını bilmez. Sadece o girişte 0 mı var 1 mi var onu bilir. Bağlantının türüne göre bu eşleştirmeyi sizin

Detaylı

Mikroişlemci Programlama Aşamaları

Mikroişlemci Programlama Aşamaları Mikroişlemci Programlama Aşamaları 1. Önce yapılacak işe uygun devre şeması çizilmelidir. Çünkü program bu devreye göre yapılacaktır. Biz ISIS programında devreyi kurabiliriz. Bu devrederb4 çıkışına bağlı

Detaylı

d) x TABAN ARĐTMETĐĞĐ

d) x TABAN ARĐTMETĐĞĐ YILLAR 00 00 00 00 00 007 008 009 010 011 ÖSS-YGS - 1 1 - - - - - - - TABAN ARĐTMETĐĞĐ Genel olarak 10 luk sayı sistemini kullanırız fakat başka sayı sistemlerine de ihtiyaç duyarız Örneğin bilgisayarın

Detaylı

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme

MEB YÖK MESLEK YÜKSEKOKULLARI PROGRAM GELİŞTİRME PROJESİ. 1. Tipik bir mikrobilgisayar sistemin yapısı ve çalışması hakkında bilgi sahibi olabilme PROGRAMIN ADI DERSIN KODU VE ADI DERSIN ISLENECEGI DÖNEM HAFTALIK DERS SAATİ DERSİN SÜRESİ ENDÜSTRİYEL ELEKTRONİK MİK.İŞLEMCİLER/MİK.DENETLEYİCİLER-1 2. Yıl, III. Yarıyıl (Güz) 4 (Teori: 3, Uygulama: 1,

Detaylı

Hyper Terminal programı çalıştırıp Uygun COM portu ve iletişim parametrelerinin ayarları yapılıp bekletilmelidir.

Hyper Terminal programı çalıştırıp Uygun COM portu ve iletişim parametrelerinin ayarları yapılıp bekletilmelidir. DENEY 1: PIC 16F84 DEN BİLGİSAYARA VERİ GÖNDERME Bu uygulamada verici kısım PIC16F84, alıcı kısım ise bilgisayardır. Asenkron iletişim kurallarına göre her iki tarafta aynı parametreler kullanılacaktır.

Detaylı

MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.)

MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.) MİKRODENETLEYİCİLER I DERS NOTLARI Prof. Dr. Hakan Ündil 2014-2015 Güz (Vize sonuna kadar olan kısımdır.) 1. BÖLÜM GİRİŞ ve SAYI SİSTEMLERİ 1.1. Devrelendirilmiş Lojik Şimdiye kadar Sayısal Devreler ve

Detaylı

MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur)

MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur) MİKROİŞLEMCİ (MİKROPROSESÖR - CPU) NEDİR? Prof. Dr. Hakan ÜNDİL (Bir haftalık derse ait ders notudur) Mikroişlemci bir programının yapmak istediği işlemleri, (hafızada bulunan komutları) sırasıyla ile

Detaylı

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ T.C. MİLLÎ EĞİTİM BAKANLIĞI ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİ İLE DİJİTAL İŞLEMLER 523EO0021 Ankara, 2012 Bu modül, mesleki ve teknik eğitim okul/kurumlarında uygulanan Çerçeve Öğretim Programlarında

Detaylı

HESAP MAKİNASI YAPIMI

HESAP MAKİNASI YAPIMI HESAP MAKİNASI YAPIMI 1..Aşağıdakine benzer görünüm ve butonları hazırlayın. 2. 24. Butonun içerisine aşağıdaki kodları yazın. 3. Yeni bir layer ekleyip Frame1 F9 na aşağıdaki kodları ekleyelim. 4. Butonlardan

Detaylı

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ MİKRODENETLEYİCİ-3 ANKARA 2007 Milli Eğitim Bakanlığı tarafından geliştirilen

Detaylı

C Programlama Dilininin Basit Yapıları

C Programlama Dilininin Basit Yapıları Bölüm 2 C Programlama Dilininin Basit Yapıları İçindekiler 2.1 Sabitler ve Değişkenler......................... 13 2.2 Açıklamalar (Expresions)........................ 14 2.3 İfadeler (Statements) ve İfade

Detaylı

Jalv2 ile PIC Programlama 1.BÖLÜM. Sercan TEK. Temmuz 2011. Temel JALv2 Kavramları

Jalv2 ile PIC Programlama 1.BÖLÜM. Sercan TEK. Temmuz 2011. Temel JALv2 Kavramları 1BÖLÜM Sercan TEK Temmuz 2011 Temel JALv2 Kavramları Not : Buradaki bazı komutlar jalv2 derleyicisinin 24o ve sonraki versiyonları için geçerlidir Temel programlama ve elektronik bilginizin olduğu varsayılarak

Detaylı

idea rsbasic KOMUTLARI

idea rsbasic KOMUTLARI idea KOMUTLARI İÇİNDEKİLER 2.1 Etiketler (Labels)... 4 2.2 Yorumlar (Comments)... 5 2.3 Semboller (Symbols)... 6 2.4 backward (geri)... 7 2.5 debug (hata ayıkla/izle)... 8 2.6 dec (azalt)... 9 2.7 do..

Detaylı

PIC MİKRODENETLEYİCİ KULLANARAK BİR SİSTEMİN TELEFONLA UZAKTAN KONTROLÜ

PIC MİKRODENETLEYİCİ KULLANARAK BİR SİSTEMİN TELEFONLA UZAKTAN KONTROLÜ T.C. FIRAT ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ PIC MİKRODENETLEYİCİ KULLANARAK BİR SİSTEMİN TELEFONLA UZAKTAN KONTROLÜ BİTİRME ÖDEVİ HAZIRLAYANLAR Serkan İNAL ve

Detaylı

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım.

B03.10 Algoritmalari Uygulamak : Durum 3 (Yuvalı Kontrol Yapıları) Şimdi başka bir problem üzerinde çalışalım. 85 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Şimdi başka bir problem üzerinde çalışalım. Algoritmamızı yine sahte kod ve yukarıdan aşağıya adımsal iyileştirmeyle oluşturacağız

Detaylı

PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu

PIC UYGULAMALARI. Öğr.Gör.Bülent Çobanoğlu PIC UYGULAMALARI STEP MOTOR UYGULAMLARI Step motor Adım motorları (Step Motors), girişlerine uygulanan lojik sinyallere karşılık analog dönme hareketi yapan fırçasız, sabit mıknatıs kutuplu DC motorlardır.

Detaylı

ÖĞRENME FAALİYETİ-1 ÖĞRENME FAALİYETİ 1

ÖĞRENME FAALİYETİ-1 ÖĞRENME FAALİYETİ 1 2 ÖĞRENME FAALİYETİ-1 AMAÇ ÖĞRENME FAALİYETİ 1 Mikrodenetleyiciyi ve çevre elemanlarını seçebilecek, dijital işlem için gerekli programı hatasız olarak yazabilecek, programı mikrodenetleyiciye yükleyebilecek

Detaylı

T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ MİKRODENETLEYİCİLER 1

T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ MİKRODENETLEYİCİLER 1 T.C. MİLLİ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) BİLİŞİM TEKNOLOJİLERİ MİKRODENETLEYİCİLER 1 ANKARA 2007 Milli Eğitim Bakanlığı tarafından geliştirilen modüller;

Detaylı

Özyineleme (Recursion)

Özyineleme (Recursion) C PROGRAMLAMA Özyineleme (Recursion) Bir fonksiyonun kendisini çağırarak çözüme gitmesine özyineleme (recursion), böyle çalışan fonksiyonlara da özyinelemeli (recursive) fonksiyonlar denilir. Özyineleme,

Detaylı

Mikroişlemciler. Giriş

Mikroişlemciler. Giriş Mikroişlemciler Giriş Öğr. Gör. M. Ozan AKI r1.0 Mikroişlemcilerin Kısa Tarihçesi Hesaplama makinelerinin temelleri çok eskiye dayanır; İlk olarak Çin de kullanılmaya başlayan Abaküs, tamamen elle çalışan

Detaylı

İÇİNDEKİLER 1. KLAVYE... 11 2. KLAVYE RB0... 19 3. KLAVYE RBHIGH... 27 4. 4 DİSPLAY... 31

İÇİNDEKİLER 1. KLAVYE... 11 2. KLAVYE RB0... 19 3. KLAVYE RBHIGH... 27 4. 4 DİSPLAY... 31 İÇİNDEKİLER 1. KLAVYE... 11 Satır ve Sütunlar...11 Devre Şeması...14 Program...15 PIC 16F84 ile 4x4 klavye tasarımını gösterir. PORTA ya bağlı 4 adet LED ile tuş bilgisi gözlenir. Kendiniz Uygulayınız...18

Detaylı

BÖLÜM 1 ALT PROGRAMLAR 1.1.ALTPROGRAM NEDİR?

BÖLÜM 1 ALT PROGRAMLAR 1.1.ALTPROGRAM NEDİR? 0 BÖLÜM 1 ALT PROGRAMLAR 1.1.ALTPROGRAM NEDİR? Programlamada döngü kadar etkili bir diğer kullanım şekli de alt programlardır. Bu sistemde işlemin birkaç yerinde lazım olan bir program parçasını tekrar

Detaylı

Microsoft Excel. Çalışma Alanı. Hızlı Erişim Çubuğu Sekmeler Başlık Formül Çubuğu. Ad Kutusu. Sütunlar. Satırlar. Hücre. Kaydırma Çubukları

Microsoft Excel. Çalışma Alanı. Hızlı Erişim Çubuğu Sekmeler Başlık Formül Çubuğu. Ad Kutusu. Sütunlar. Satırlar. Hücre. Kaydırma Çubukları Microsoft Excel Microsoft Excel yazılımı bir hesap tablosu programıdır. Excel, her türlü veriyi (özellikle sayısal verileri) tablolar ya da listeler halinde tutma ve bu verilerle ilgili ihtiyaç duyacağınız

Detaylı

T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ

T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ T.C. NİĞDE ÜNİVERSİTESİ MÜHENDİSLİK-MİMARLIK FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ BÖLÜMÜ GENEL AMAÇLI UZAKTAN KUMANDA MODÜLÜNÜN TASARIMI VE GERÇEKLEŞTİRİLMESİ Danışman Yrd. Doç. Dr. Murat UZAM Hazırlayan

Detaylı

KASIRGA -4 Buyruk Tasarımı Belgesi. 30.04.2008 Ankara

KASIRGA -4 Buyruk Tasarımı Belgesi. 30.04.2008 Ankara KASIRGA -4 Buyruk Tasarımı Belgesi 30.04.2008 Ankara 1 İŞLEMLER 00000000 SYSCALL 00000001 HLT 00000010 DEBUG 00000011 CONTINUE S-TİPİ 00000100 NOP 00000101 IN 00000110 OUT 00000111 BRET 00001000 ADD 00001001

Detaylı

Şimdi başka bir problem üzerinde çalışalım.

Şimdi başka bir problem üzerinde çalışalım. 86 Yrd. Doç. Dr. Yakup EMÜL, Bilgisayar Programlama Ders Notları (B03) Şimdi başka bir problem üzerinde çalışalım. Algoritmamızı yine sahte kod ve yukarıdan aşağıya adımsal iyileştirmeyle oluşturacağız

Detaylı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti SUB ve SBB komutları: SUB (Subtract) yani çıkartma SBB ise borç ile çıkart (SuBtract with Borrow) anlamına gelir. Her iki çıkartma işlemi bir çıkartma sonucu üretmenin yanında

Detaylı

6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr

6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II. Öğr.Gör. Hakan YILMAZ. hakanyilmaz@karabuk.edu.tr 6. HAFTA KBT204 İNTERNET PROGRAMCILIĞI II Öğr.Gör. Hakan YILMAZ hakanyilmaz@karabuk.edu.tr Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi 2 İçindekiler For Each... Next... 3 Döngüyü

Detaylı

BÖLÜM 1 MİKROİŞLEMCİLERİN YAPISI VE ÇALIŞMASI 1.GİRİŞ

BÖLÜM 1 MİKROİŞLEMCİLERİN YAPISI VE ÇALIŞMASI 1.GİRİŞ 1 BÖLÜM 1 MİKROİŞLEMCİLERİN YAPISI VE ÇALIŞMASI 1.GİRİŞ Günümüzde teknolojinin ilerlemesini inceleyecek olursak; bu ilerlemede hem araç hem de amaç olan özel bir elemanı keşfetmemiz uzun sürmez. Nedir

Detaylı

EA-16F877 Mikrodenetleyici Eğitim Seti. Kullanım ve Uygulama Kitabı. Eyüp ÖZAVCI

EA-16F877 Mikrodenetleyici Eğitim Seti. Kullanım ve Uygulama Kitabı. Eyüp ÖZAVCI EA-16F877 Mikrodenetleyici Eğitim Seti Kullanım ve Uygulama Kitabı Eyüp ÖZAVCI ÖNSÖZ Günümüzde farkında olmadan kullandığımız çevremizdeki araçların pek çoğunda akıllı yongalar dediğimiz mikroişlemciler

Detaylı

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz;

Alıcı Devresi; Sinyali şu şekilde modüle ediyoruz; Bu e kitapta infrared iletişim protokolleri ile ilgili basit bir uygulamayı anlatmaya çalışacağım. Bunu yine bir mikrodenetleyici ile yapmamız gerekecek. Siz isterseniz 16f628a yı ya da ccp modülü olan

Detaylı

8086 Mikroişlemcisi Komut Seti

8086 Mikroişlemcisi Komut Seti 8086 Mikroişlemcisi Komut Seti X86 tabanlı mikroişlemcilerin icra ettiği makine kodları sabit olmasına rağmen, programlama dillerinin komut ve ifadeleri farklı olabilir. Assembly programlama dilininde

Detaylı

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik

DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ. İçerik DERS 3 MİKROİŞLEMCİ SİSTEM MİMARİSİ İçerik Mikroişlemci Sistem Mimarisi Mikroişlemcinin yürüttüğü işlemler Mikroişlemci Yol (Bus) Yapısı Mikroişlemci İç Veri İşlemleri Çevresel Cihazlarca Yürütülen İşlemler

Detaylı

Paralel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları

Paralel ve Seri İletişim. Asenkron/Senkron İletişim. Şekil 2: İletişim Modları Paralel ve Seri İletişim Şekil1a: Paralel İletişim Şekil1b. Seri iletişim Şekil 2: İletişim Modları Asenkron/Senkron İletişim PROTEUS/ISIS SANAL SERİ PORT ile C# USART HABERLEŞMESİ Seri iletişimde, saniyedeki

Detaylı

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak LPC2104 Mikro Denetleyicisini KEIL İle Programlamak Program yazabilmek için öncelikle komutları tanımamız ve ne işe yaradıklarını bilmemiz gerekir. Komutlar yeri geldikçe çalışma içerisinde anlatılacaktır.

Detaylı

Mikrobilgisayarda Aritmetik

Mikrobilgisayarda Aritmetik 14 Mikrobilgisayarda Aritmetik SAYITLAMA DİZGELERİ Sayıları göstermek (temsil etmek) için tarih boyunca türlü simgeler kullanılmıştır. Konumuz bu tarihi gelişimi incelemek değildir. Kullanılan sayıtlama

Detaylı

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI

9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI 1 9. MERKEZİ İŞLEM BİRİM MODÜLÜ TASARIMI Mikroişlemci temelli sistem donanımının en önemli kısmı merkezi işlem birimi modülüdür. Bu modülü tasarlamak için mikroişlemcinin uç işlevlerinin çok iyi bilinmesi

Detaylı

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler

C# Programlama Dili. İlk programımız Tür dönüşümü Yorum ekleme Operatörler C# Programlama Dili İlk programımız Tür dönüşümü Yorum ekleme Operatörler 1 İlk Programımız Bu program konsol ekranına Merhaba dünya! yazıp kapanır. Programı geçen derste anlatıldığı gibi derleyin, sonra

Detaylı

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ

T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ T.C. MİLLÎ EĞİTİM BAKANLIĞI MEGEP (MESLEKİ EĞİTİM VE ÖĞRETİM SİSTEMİNİN GÜÇLENDİRİLMESİ PROJESİ) ENDÜSTRİYEL OTOMASYON TEKNOLOJİLERİ MİKRODENETLEYİCİ-4 Ankara 2007 Milli Eğitim Bakanlığı tarafından geliştirilen

Detaylı

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü E-mail: dogan @neu.edu.tr Tel: 90 3922236464

Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü E-mail: dogan @neu.edu.tr Tel: 90 3922236464 GERÇEK ZAMAN ENTEGRE DESTEKLİ PIC MİKROKONTROLÖR PROJESİ Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Biyomedikal Mühendisliği, Bölümü E-mail: dogan @neu.edu.tr Tel: 90 3922236464

Detaylı

www.muhendisiz.net BÖLÜM 1

www.muhendisiz.net BÖLÜM 1 www.muhendisiz.net BÖLÜM 1 IR HABERLEŞME 1.1.IR Haberleşme Sisteminin Gerçekleştirilmesi Tüm haberleşme sistemlerinde olduğu gibi IR haberleşme sistemlerinde de modülasyon tekniğinden yararlanılır. IR

Detaylı

Bilgisayar donanım ve yazılım olmak üzere iki bölümden oluşur. Bilgisayarın çalışabilmesi için, ikisi de gereklidir.

Bilgisayar donanım ve yazılım olmak üzere iki bölümden oluşur. Bilgisayarın çalışabilmesi için, ikisi de gereklidir. Bilgisayar donanım ve yazılım olmak üzere iki bölümden oluşur. Bilgisayarın çalışabilmesi için, ikisi de gereklidir. Donanım: Bilgisayarın gözle görülen, elle tutulan tüm elektronik parçalarına donanım

Detaylı

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1

Programlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1 Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)

Detaylı

Mikroişlemcilerde Aritmetik

Mikroişlemcilerde Aritmetik Mikroişlemcilerde Aritmetik Mikroişlemcide Matematiksel Modelleme Mikroişlemcilerde aritmetik işlemler (toplama, çıkarma, çarpma ve bölme) bu iş için tasarlanmış bütünleşik devrelerle yapılır. Bilindiği

Detaylı

KASIRGA 4. GELİŞME RAPORU

KASIRGA 4. GELİŞME RAPORU KASIRGA 4. GELİŞME RAPORU 14.07.2008 Ankara İçindekiler İçindekiler... 2 Giriş... 3 Kasırga Birimleri... 3 Program Sayacı Birimi... 3 Bellek Birimi... 3 Yönlendirme Birimi... 4 Denetim Birimi... 4 İşlem

Detaylı

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ

EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ EEM 306 Mikroişlemciler ve Lab. Doç.Dr. Mehmet SAĞBAŞ Alt Program Yapısı Alt programın çağrılması Alt program korunur alınır ;Argumanlar R12 R15 registerlarına atanir. call #SubroutineLabel SubroutineLabel:

Detaylı

PICBIT_PLC İLE LOJİK TASARIM. Doç. Dr. Murat UZAM Niğde Üniversitesi Mühendislik-Mimarlık Fakültesi Elektrik-Elektronik Mühendisliği Bölümü

PICBIT_PLC İLE LOJİK TASARIM. Doç. Dr. Murat UZAM Niğde Üniversitesi Mühendislik-Mimarlık Fakültesi Elektrik-Elektronik Mühendisliği Bölümü PICBIT_PLC İLE LOJİK TASARIM Doç. Dr. Murat UZAM Niğde Üniversitesi Mühendislik-Mimarlık Fakültesi Elektrik-Elektronik Mühendisliği Bölümü EYLÜL 2008 Bu kitap Niğde Üniversitesi Yayın Komisyonunun 22.04.2008

Detaylı

Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici

Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici Mikroislemci Kontrollu Prototip Trafik Lambalari ve Geri Sayici Mahmut KISACIK ve Doç.Dr. Hasan KÖMÜRCÜGIL Bilgisayar Mühendisligi Bölümü, Dogu Akdeniz Üniversitesi Gazimagusa-Kuzey Kibris Türk Cumhuriyeti

Detaylı

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir.

Scream! e gelen veri akışlarından bazılarını diğer bir kurum yada bilgisayarla paylaşmak için kullanılabilir. Eş zamanlı Scream! kullanımı Scream!, sismik ağın güçlü bir parçası olacak şekilde tasarlanmıştır. Varsayılan yapılandırma dosyası scream.ini dir ve ilk kullanım sırasında kendini otomatik olarak oluşturur.

Detaylı

PASCAL PROGRAMLAMA DİLİ YAPISI

PASCAL PROGRAMLAMA DİLİ YAPISI BÖLÜM 3 PASCAL PROGRAMLAMA DİLİ YAPISI 3.1. Giriş Bir Pascal programı en genel anlamda üç ayrı kısımdan oluşmuştur. Bu kısımlar bulunmaları gereken sıraya göre aşağıda verilmiştir. Program Başlığı; Tanımlama

Detaylı

5.14. ŞİFRELİ OTOMATİK GARAJ KAPISI KONTROL PROJESİ

5.14. ŞİFRELİ OTOMATİK GARAJ KAPISI KONTROL PROJESİ 5.14. ŞİFRELİ OTOMATİK GARAJ KAPISI KONTROL PROJESİ Prof. Dr. Asaf Varol avarol@firat.edu.tr Özel şirketlerde ve özel güvenlik girişinin gerektiği yerlerde şifreli güvenlik kapısı kullanılır. Bu projede

Detaylı

NAZMİYE DEMİREL ORTAOKULU BİLİŞİM TEKNOLOJİLERİ DERSİ 1. DÖNEM 6. SINIFLAR DERS NOTU EXCEL 2007 DERS NOTLARI

NAZMİYE DEMİREL ORTAOKULU BİLİŞİM TEKNOLOJİLERİ DERSİ 1. DÖNEM 6. SINIFLAR DERS NOTU EXCEL 2007 DERS NOTLARI EXCEL 2007 DERS NOTLARI Bir hesap tablosu programıdır. Excel, her türlü veriyi (özellikle sayısal verileri) tablolar ya da listeler halinde tutma ve bu verilerle ilgili ihtiyaç duyacağınız tüm hesaplamaları

Detaylı

18 Haziran 2009. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Muhasebe

18 Haziran 2009. Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL. Đlgili Modül/ler : Muhasebe 18 Haziran 2009 Đlgili Versiyon/lar : ETA:SQL, ETA:V.8-SQL Đlgili Modül/ler : Muhasebe ÖRNEKLER ĐLE FĐŞ CAMBAZI Fiş cambazları muhasebe fişlerini işlerken hızlı, pratik ve hatasız işlememizi sağlayan ETA

Detaylı

12.06.2008 16:48 FİLİZ ESEN-BİROL BAŞARAN

12.06.2008 16:48 FİLİZ ESEN-BİROL BAŞARAN 12.06.2008 16:48 FİLİZ ESEN-İROL AŞARAN : Efendim : İyiyim sağol sen nasılsın : Çalışıyorum işte yaramaz birşey yok : Kim yazmış bunu : Kim yazmış bunu Milliyet te : Yani sen sen birşey yollamış mıydın

Detaylı

http://nptel.ac.in/courses/webcourse-contents/iit KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr.

http://nptel.ac.in/courses/webcourse-contents/iit KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr. http://nptel.ac.in/courses/webcourse-contents/iit KANPUR/microcontrollers/micro/ui/Course_home3_16.htm B Yrd.Doç. Dr. Bülent ÇOBANOĞLU PIC MİKRODENETLEYİCİ VE AİLESİ PIC, Microchip firması tarafından üretilen,

Detaylı