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ı

BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: 3.2.KOMUTLAR VE KULLANIM ÖRNEKLERİ

BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: 3.2.KOMUTLAR VE KULLANIM ÖRNEKLERİ BÖLÜM 3 3. PIC 16F8X KOMUTLARI 3.1.KULLANILAN SEMBOLLER: f : File register, Herhangi bir değişkenle tarif edilen bir saklayıcı adresi (0h-7Fh) k : Sabit değer (genellikle (0-FF arasında) d : Destination

Detaylı

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ KOMUT AÇIKLAMALARI VE ÖRNEKLERİ Komut açıklamalarında kullanılan harflerin anlamları: F : File(dosya), kaynak ve bilgi alınan yeri ifade eder. D : Destination (hedef), işlem sonucunun kaydedileceği yer.

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ı

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB

16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım 3) Doç. Dr. Hakan Ündil Program Örneği 9 : Gecikme altprogramı kullanarak Port B ye bağlı tüm LED leri yakıp söndüren bir program için akış

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 - 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 tanıtması

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ı

MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize

MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil 2014-2015 Bahar-Vize BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan

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ı

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ı

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ı

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ı

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201...

Deney No Deney Adı Tarih. 3 Mikrodenetleyici Portlarının Giriş Olarak Kullanılması / /201... 3.1 AMAÇ: Assembly programlama dili kullanarak mikrodenetleyici portlarını giriş olarak kullanmak. GİRİŞ: Bir portun giriş olarak mı yoksa çıkış olarak mı kullanılacağını belirten TRIS kaydedicileridir.

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 ) 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ı

5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI

5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI MİKRO DENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan Ündil 2015-2016 Bahar-Vize (MİKRODENETLEYİCİLER I DERS NOTLARI nın devamıdır. Sadece VİZE için olan kısımdır) 5. BÖLÜM - DÖNGÜ (ÇEVRİM) ve Z BAYRAĞI

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) 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ı

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.

Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. HARRAN ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. 15 Nisan 2014 1) (10p) Mikroişlemcilerle Mikrodenetleyiceleri yapısal olarak ve işlevsel olarak karşılaştırarak

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ı

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir?

3.2 PIC16F84 Yazılımı PIC Assembly Assembler Nedir? 3.2 PIC16F84 Yazılımı 3.2.1 PIC Assembly 3.2.1.1 Assembler Nedir? Assembler,bir text editöründe assembly dili kurallarına göre yazılmış olan komutları pıc in anlayabileceği heksadesimal kodlara çeviren

Detaylı

PIC16F877A nın Genel Özellikleri

PIC16F877A nın Genel Özellikleri BÖLÜM 3 PIC16F877A nın Genel Özellikleri 3.1 Mikrodenetleyici Mimarisi 3.2 PIC16Fxxx Komut Seti 3.3 PIC16F877A Bellek Organizasyonu 3.4 Giriş/Çıkış Portları 3.5 STATUS ve TRIS Kaydedicileri 3.6 Kesme ve

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ı

MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar

MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil Bahar MİKRO DENETLEYİCİLER II DERS NOTLARI (Vize) Prof. Dr. Hakan Ündil 2016-2017 Bahar (MİKRODENETLEYİCİLER I DERS NOTLARI nın devamıdır. Sadece VİZE için olan kısımdır) 6. BÖLÜM - ALT PROGRAMLAR Program içerisinde

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ı

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ı

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ı

HUNRobotX - Makaleler - Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı. Makaleler Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı

HUNRobotX - Makaleler - Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı. Makaleler Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı Makaleler Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı Gecikme Kodları Hazırlama ve Gecikme Rutini Hazırlayıcı Yazan: Mustafa Tufaner, Düzenleyen: Canol Gökel - 31 Ocak 2007 Giriş Merhaba, bu

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ı

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ı

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ı

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ı

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ı

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ı

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ı

İ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ı

# 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ı

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ı

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL 2016-2017 Bahar-FİNAL KISMI (NOT: Derslerde işlenen diğer örnekler, Lab. Deneyi ve Sayı Sistemleri de Final sınavına dahildir) BÖLÜM 7 - LOJİK

Detaylı

MİKRODENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-Final Kısmı

MİKRODENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-Final Kısmı MİKRODENETLEYİCİLER 2 DERS NOTLARI Prof. Dr. Hakan ÜNDİL 2014-2015 Bahar-Final Kısmı (NOT: Derslerde işlenen diğer örnekler de Final sınavına dahildir) BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir

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ı

PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI. Temel olarak bir PIC içerisinde de iki tür hafıza bulunur:

PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI. Temel olarak bir PIC içerisinde de iki tür hafıza bulunur: PIC MİKRODENETLEYİCİLERİN HAFIZA YAPISI Temel olarak bir PIC içerisinde de iki tür hafıza bulunur: 1. Program Hafızası (ROM,PROM,EPROM,FLASH) Programı saklar, kalıcıdır. 2. Veri Hafızası (RAM, EEPROM)

Detaylı

PIC ASSEMBLY VE MAKROLAR

PIC ASSEMBLY VE MAKROLAR PIC ASSEMBLY VE MAKROLAR Abdullah UNUTMAZ Ağustos 2009 Pic Assembly ve Makrolar H U N R O B O T X M A K A L E L E R #DEFI E #DEFINE anahtar sözcüğü ile kendi tanımladığımız değişkenler, yada include dosyalarında

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ı

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ı

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI

PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI PİC HAKKINDA KISA KISA BİLGİLER GİRİŞ/ÇIKIŞ PORTLARI Bazı pinler çevre birimleri ile çoklanmıştır. Peki bu ne demek? Mesela C portundaki RC6 ve RC7 pinleri seri iletişim için kullanılır. Eğer seri iletişimi

Detaylı

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir.

Dizi elemanları yukarıdaki gibi tek tek tanımlanabileceği gibi matematiksel ifadelerdeki diziler gibi de tanımlanabilir. DİZİLER/ARRAY: Dizi yi çeşitli şekillerde tanımlamak mümkün. Dizi içlerinde birden fazla değer saklayabilen veri kümeleridir diye tanımlarsak uygun olur sanırım. Diziler yan yana dizilmiş kutucuklar olarak

Detaylı

PİC BASİC PROFESSİONAL

PİC BASİC PROFESSİONAL PİC BASİC PROFESSİONAL Farklı Mikroişlemcilerin farklı Assembler kodları olması genellikle sorun olmuştur. Bu dezavantajdan kurtulmak için compiler lar geliştirilmiştir. C++ ve Basic dillerinde yazılanlar

Detaylı

Bank değiştirme Bir banktan diğerine geçmek için STATUS register denilen özel registerin 5. ve 6. bitinin durumunu değiştirmek gerekir.

Bank değiştirme Bir banktan diğerine geçmek için STATUS register denilen özel registerin 5. ve 6. bitinin durumunu değiştirmek gerekir. File register haritası Bank 0 Bank 1 0 00 INDF 0 80 INDF 0 01 TNF0 0 81 OPTION 0 02 PCL 0 82 PCL 0 03 STATUS 0 83 STATUS 0 04 FSR 0 84 FSR 0 05 PORT A 0 85 TRISA 0 06 PORT B 0 86 TRISB 0 07 0 87 EEPROM

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ı

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI

MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL Bahar-FİNAL KISMI MİKRODENETLEYİCİLER II DERS NOTLARI Prof. Dr. Hakan ÜNDİL 2017-2018 Bahar-FİNAL KISMI BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan bitlerin (C

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ı

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ı

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ı

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI P I C 1 6 F 8 4 / P I C 1 6 F 8 7 7 K O M U T S E T İ PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI Hazırlayan:Öğr.Gör.Bülent ÇOBANOĞLU 1 Gecikme Programları Örnek 1: Tek bir döngü ile yaklaģık

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ı

8 Ledli Havada Kayan Yazı

8 Ledli Havada Kayan Yazı 8 Ledli Havada Kayan Yazı Hazırlayan Eyüp Özkan Devre Şemasının ISIS Çizimi Devre şemasından görüldüğü gibi PIC16F84A mikro denetleyicisinin Port B çıkışlarına 8 adet LED ve dirençler bağlı. 4MHz lik kristal

Detaylı

Mikroişlemciler Laboratuar Deney Föyü

Mikroişlemciler Laboratuar Deney Föyü YILDIZ TEKNİK ÜNİVERSİTESİ MAKİNE FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler Laboratuar Deney Föyü İçindekiler DENEYLER... 3 BUTON UYGULAMASI... 3 BUZZER... 4 7 SEGMENT DISPLAY İLE SAYICI...

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ı

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ı

Genel Programlama II

Genel Programlama II Genel Programlama II 08.03.2011 1 Çok Boyutlu Diziler Önceki derslerimizde dizileri görmüştük. Kısaca özetleyecek olursak, belirlediğimiz sayıda değişkeni bir sıra içinde tutmamız, diziler sayesinde gerçekleşiyordu.

Detaylı

ONDOKUZ MAYIS ÜNİVERSİTESİ

ONDOKUZ MAYIS ÜNİVERSİTESİ ONDOKUZ MAYIS ÜNİVERSİTESİ MÜHENDİSLİK FAKÜLTESİ ELEKTRİK ELEKTRONİK MÜHENDİSLİĞİ MİKROİŞLEMCİLER LABORATUVARI PİC UYGULAMA NOTLARI BÖLÜM 1. 1.1 16F84 Mickrodenetleyicisi: PIC16F84 18 pinli bir mikrodenetleyicidir.

Detaylı

Komutların İşlem Süresi

Komutların İşlem Süresi Komutların İşlem Süresi PIC lerde ŞARTSIZ dallanma komutları (GOTO, CALL, RETURN gibi ) hariç tüm Assembly dili komutları 1 saat saykılı (cycle) çeker. ŞARTLI dallanma komutları ise normalde 1 saat saykılı

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ı

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ı

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ı

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ı

Yrd. Doç.Dr. Bülent ÇOBANOĞLU. Hazırlayan:Yrd.Doç.Dr.Bülent ÇOBANOĞLU 1

Yrd. Doç.Dr. Bülent ÇOBANOĞLU. Hazırlayan:Yrd.Doç.Dr.Bülent ÇOBANOĞLU 1 B Yrd. Doç.Dr. Bülent ÇOBANOĞLU Hazırlayan:Yrd.Doç.Dr.Bülent ÇOBANOĞLU 1 PIC Mikro denetleyici Programlama Assembly programlama dili, çoğu zaman özel alanlarda geliştirilen yazılımlarda kullanılan alt

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ı

Genel Programlama II

Genel Programlama II Genel Programlama II 22.03.2011 1 Yapılar ( Structures ) Yapılar ( structures ); tam sayı, karakter vb. veri tiplerini gruplayıp, tek bir çatı altında toplar. Bu gruplandırma içinde aynı ya da farklı veri

Detaylı

Kabuk Programlama (Bash)

Kabuk Programlama (Bash) Kabuk Programlama (Bash) Erkan Esmer Ocak, 2013 İçindekiler 1 Giriş.................................................... 2 2 Kabuk(Shell)............................................... 3 3 Çekirdek(Kernel).............................................

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ı

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ı

MİKRO DENETLEYİCİLER 1 DERS NOTLARI (Final) Prof. Dr. Hakan Ündil Güz

MİKRO DENETLEYİCİLER 1 DERS NOTLARI (Final) Prof. Dr. Hakan Ündil Güz MİKRO DENETLEYİCİLER 1 DERS NOTLARI (Final) Prof. Dr. Hakan Ündil 2014-2015 Güz 1.1. Sayı Sistemleri Sayı sistemleri iyi anlaģılmadan mikroiģlemcilerle (ya da mikrodenetleyicilerle) uğraģmak ve onların

Detaylı

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi 1 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)

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ı

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler

3/7/2011. ENF-102 Jeoloji 1. Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Veri Tanımları ve Mantıksal Đşlemler Veri Tanımları ve Mantıksal Đşlemler Tekrar -- Değişken Tanımlamaları (Definition) ve Veri Türleri (Data Type) Kullanılacak bütün değişkenlerin kullanılmadan önce C derleyicisine bildirilmeleri gerekir.

Detaylı

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR Bülent ÖZBEK Örnek Program -1- B Portuna bağlı LED leri Yakma Bu programda PIC16F84 mikrodenetleyicisinin B portuna bağlı 8 adet LED in yanması sağlanacaktır. Bunu

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ı

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ Doç. Dr. Melih Cevdet İNCE DENEYLER Deney_1: 8085 Simülatör Kullanımı Deney_2: 8085

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ı

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ

T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHENDİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ T.C FIRAT ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ ELEKTRİK-ELEKTRONİK MÜHİSLİĞİ EET-302 MİKROİŞLEMCİLER LABORATUVARI DENEY FÖYÜ Doç. Dr. Melih Cevdet İNCE DENEYLER Deney_1: Program yazma, derleme, pic e yükleme,

Detaylı

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU

Internet Programming I. Hafta III. Elbistan Meslek Yüksek Okulu Güz Yarıyılı. Öğr. Gör. Murat KEÇECĠOĞLU Internet Programming I Hafta III Elbistan Meslek Yüksek Okulu 2016 2017 Güz Yarıyılı Öğr. Gör. Murat KEÇECĠOĞLU Dönen Değer? Fonksiyonlar, kendilerini göreve çağıran VBScript komutlarına ve işlemlerine

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ı

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir.

Toplama işlemi için bir ikili operatör olan artı işareti aynı zamanda tekli operatör olarak da kullanılabilir. www.csharpturk.net Türkiye nin C# Okulu Yazar Yunus Özen Eposta yunus@yunus.gen.tr Tarih 08.04.2006 Web http://www.yunusgen.tr ARİTMETİK OPERATÖRLER VE KULLANIM ŞEKİLLERİ Bilgisayarlar yapıları gereği,

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ı

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar

DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar DERS 5 PIC 16F84 PROGRAMLAMA İÇERİK PIC 16F84 bacak bağlantıları PIC 16F84 bellek yapısı Program belleği RAM bellek Değişken kullanımı Komutlar Ders 5, Slayt 2 1 BACAK BAĞLANTILARI Ders 5, Slayt 3 PIC

Detaylı

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu.

Javascript. 1) Notepad++ aşağıdaki kodları yazıp deneme.html olarak kaydedelim. 2) Biraz önceki sayfa sadece html kodların içeriyordu. Javascript Html sayfalarının içine yazılarak, sayfayı daha etkileşimli hale getirir. click olayları, uyarı mesajları gibi hareketlerle sayfayı daha dinamik hale getirir. Javascript olmadan yazılan html

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ı

Yrd.Doç. Dr. Bülent ÇOBANOĞLU. Sakarya Üniversitesi, Teknoloji Fakültesi

Yrd.Doç. Dr. Bülent ÇOBANOĞLU. Sakarya Üniversitesi, Teknoloji Fakültesi B Yrd.Doç. Dr. Bülent ÇOBANOĞLU Sakarya Üniversitesi, Teknoloji Fakültesi Kesmeler Kesme (Interrupt), mikro denetleyicinin gerçekleştirdiği işleme bakmaksızın belirli durumların/olayların olması durumunda

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İ) ELEKTRİK ELEKTRONİK TEKNOLOJİSİ

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İ) ELEKTRİK ELEKTRONİK TEKNOLOJİSİ 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İ) ELEKTRİK ELEKTRONİK TEKNOLOJİSİ MİKRODENETLEYİCİ PROGRAMLAMA ANKARA 2006 Milli Eğitim Bakanlığı tarafından

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ş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ı

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ı

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız.

void setup() fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız. ARDUİNO PROGRAMLAMA fonksiyonu: Bu fonksiyon program ilk açıldığında bir kere çalışır ve gerekli kalibrasyon, setup komutlarını buraya yazarız. fonksiyonu: Diğer programlama dillerinden alışık olduğumuz

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ı