PIC16F877A nın Genel Özellikleri

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

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

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

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

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

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

KOMUT AÇIKLAMALARI VE ÖRNEKLERİ

MIKROBILGISAYARLAR ve PIC PROGRAMLAMA TEST ÇALIŞMA SORULARI

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

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

Embedded(Gömülü)Sistem Nedir?

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

Mikrobilgisayar Sistemleri ve Assembler

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

# 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

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

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

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

Mimari Esaslar. Mikroişlemcinin mimari esasları; Kaydediciler Veriyolları İş hatları dır.

PIC Mikrodenetleyicileri

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

ELEKTRİK-ELEKTRONİK TEKNOLOJİSİ

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

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB Altbirimleri. Durum Kütüğü. Yardımcı Kütükler

8051 Ailesi MCS51 ailesinin orijinal bir üyesidir ve bu ailenin çekirdeğini oluşturur çekirdeğinin temel özellikkleri aşağıda verilmiştir:

BÖLÜM 1: MİKRODENETLEYİCİLER

Merkezi İşlem Birimi MİKROİŞLEMCİ SİSTEMLERİ. MİB Yapısı. MİB in İç Yapısı. MİB Altbirimleri. MİB in İç Yapısı

Komutların Yürütülmesi

LCD (Liquid Crystal Display )

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

KONFİGÜRASYON BİTLERİ

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.

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

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

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

8. MİKROİŞLEMCİ MİMARİSİ

MİKROİŞLEMCİ MİMARİLERİ

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

Eğitim - Öğretim Yöntemleri Başlıca öğrenme faaliyetleri Kullanılan Araçlar Dinleme ve anlamlandırma

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

Mikroişlemciler ve Assembler Programlama. Teknoloji Fakültesi / Bilgisayar Mühendisliği Öğr.Gör. Günay TEMÜR

BİLGİSAYAR MİMARİSİ. Komut Seti Mimarisi. Özer Çelik Matematik-Bilgisayar Bölümü

Mikroişlemciler ve Mikrodenetleyiciler

DERS 11 PIC 16F84 ile ALT PROGRAMLARIN ve ÇEVRİM TABLOLARININ KULLANIMI İÇERİK. Alt Program Çevrim Tabloları Program Sayıcı ( Program Counter PC )

Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü

2011 Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

PİC BASİC PROFESSİONAL

DERS 12 PIC 16F84 ile KESME (INTERRUPT) KULLANIMI İÇERİK

BM 375 Bilgisayar Organizasyonu Dersi Vize Sınavı Cevapları 10 Nisan 2009

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

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

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

Şekil. 64 Kelimelik Yığıtın Blok Şeması

Haftalık Ders Saati Okul Eğitimi Süresi

PIC TABANLI, 4 BASAMAKLI VE SER

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

LCD (Liquid Crystal Display)

ONDOKUZ MAYIS ÜNİVERSİTESİ

KANPUR/microcontrollers/micro/ui/Course_home3_16.htm Yrd.Doç. Dr.

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

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

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

Mikroişlemciler Laboratuar Deney Föyü

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Hacettepe Robot Topluluğu

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

Mikrobilgisayar Mimarisi ve Programlama

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

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

PIC MIKRODENETLEYICILER-3: GECĠKME ve KESME PROGRAMLARI

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

DERS 13 PIC 16F84 ile DONANIM SAYICI KULLANIMI İÇERİK KESME

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

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

EEM 419-Mikroişlemciler Güz 2017

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

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

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

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İ

Hacettepe Robot Topluluğu

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

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

DERS 4 MİKROİŞLEMCİ PROGRAMLAMA İÇERİK

BİLİŞİM TEKNOLOJİLERİ

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.

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

İstanbul Teknik Üniversitesi IEEE Öğrenci Kolu

MTM 305 MĠKROĠġLEMCĠLER

BM-311 Bilgisayar Mimarisi

BM-311 Bilgisayar Mimarisi

# 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

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

MİKROİŞLEMCİ (Microprocessor) NEDİR?

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

A.Ü. GAMA MYO. Elektrik ve Enerji Bölümü ALGORİTMA VE PROGRAMLAMA 1.HAFTA

Assembly Dili Nedir? Assembly dili biliyorum derken hangi işlemci ve hangi işletim sistemi için olduğunu da ifade etmek gerekir.

PIC Mikro denetleyiciler ve Programlama. Öğr.Gör.Bülent ÇOBANOĞLU

Bilgisayar Sistemleri

1. Ders Giriş. Mikroişlemcili Sistem Uygulamaları

Mikroişlemciler. Giriş

Transkript:

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 INTCON Kaydedicisi 3.7 CPU Özellikleri 3.1 MİKRODENETLEYİCİ MİMARİSİ Hatırlayacağınız gibi mikrodenetleyiciler, evlerimizde kullandığımız gerçek bir bilgisayarın sahip olduğu tüm özelliklere sahip minik bir kopyasıdırlar. Aynı bilgisayarlar gibi komutları belleklerinden okurlar ve işlerler. Mikrodenetleyicinin en basit şekilde çalışması iki adımla özetlenebilmektedir; Şekil 3.1 Komut Çözümleme 2 1 Kom ut İşlem e Mikrodenetleyici çalışma prensibi. 1) Komutu Çözümle. 2) Komutu İşleme. Mikrodenetleyicinin komut çözümleme birimi program belleğindeki komutları sırayla alır. Bu komutların ne anlama geldiği (ne işlem yapması gerektiği) komut çözümleme biriminde tanımlıdır. Bundan sonraki aşamada ise yapılması istenen

62 PIC Programlama Teknikleri ve PIC16F877A işlem uygulanır. Bu işlem iki ikilik düzendeki sayı üzerine mantıksal bir işlem, aritmetik bir işlem veya herhangi bir veriyi başka bir yere aktarma olabilir. Şekil 3.2 PIC16F877A blok diyagramı.

3. BÖLÜM : PIC16F877A nın Genel Özellikleri 63 İki aşamalı komut işlenmesinde bir komut işlenirken, bir sonraki komut komut çözümleme birimi içerisine kaydedilir (okunur). Buna mikrodenetleyicinin Pipelining özelliği denilir. Komutlar sıra ile komut kaydedicisi içerisine yüklenir. Komut kaydedicisi içerisindeki komut çözümlenir. Eğer aritmetik veya mantıksal bir işlem uygulanacaksa, ALU olarak isimlendirilen Aritmetik Lojik Birim içerisinde işlem yapılır. Eğer bu işlemin yapılması sırasında bir kaydedici içeriğinin de akümülatör ile birlikte kullanılması gerekiyorsa bu kaydedici içeriği de aynı anda okunup ALU da işleme alınır. Sonuç tekrar RAM e veya akümülatöre kayıt edilir. Akümülatör, mikrodenetleyiciye her türlü işlemi yaptırmak için kullandığımız bir ara bellek birimidir. 8 bit lik tek bir kaydedicidir. Diğer kaydedicilerden farklı olarak RAM içerisinde adreslenmemiştir. W kaydedicisi olarak adlandırılmıştır. W İngilizce deki Working, yani çalışma kaydedicisinin kısaltılmışıdır. Şekil 3.2 de PIC16F877A nın fonksiyonel çalışma şeması gösterilmiştir. İlk bakışta size karmaşık gelebilecek bu şekil RAM adresleme modları anlatılırken verilen şematik örneklerle daha detaylı olarak verilecektir. Böylece mikrodenetleyici içerisinde bir komutun nasıl işlendiğini anlayarak daha bilinçli program yapma alışkanlığı kazanmış olacaksınız. 3.2 PIC16FXXX KOMUT SETİ Mikrodenetleyicinin çalışması için içerisine programımızı yüklememiz gerekir. Mikrodenetleyici programını genel olarak mikrodenetleyiciye belirli bir işi yaptırmak için verdiğimiz komut listesi olarak tanımlayabiliriz. Bu komutlar mikrodenetleyicinin belleğine yüklenir ve sırasıyla hepsi işlenir. PIC16 serisi mikrodenetleyiciler sadece 35 komuta sahiptirler. Sınırlı gözükmesine rağmen teorik olarak bu 35 komut ile 350 nin üzerinde komuta sahip bir Pentium işlemci ile yapılabilen tüm işlemleri yapmak mümkündür. Aslına bakılırsa bir Pentium 4 işlemcide de aşağı yukarı 35 komutla 350 komutla yaptığı tüm işler yapılabilmektedir. Bu 350 komutun %60 ı, yazılan programlar içerisindeki komutların sadece %2 sini oluşturur. Bu kullanılmayan komutlar genelde çok karmaşık işlemler içindir. Bu sebeple kullanım alanları çok kısıtlıdır. Daha fazla komutun ne zararı var diye düşünebilirsiniz. İstenilirse sadece 35 komut kullanılır, istenilirse diğer komutlar da öğrenilip, kullanılarak işlem hızı arttırılır. Keşke her şey bu kadar basit olsaydı, aslında CISC adı verilen bu karmaşık komutlara sahip mimarinin büyük dezavantajları bulunmaktadır. Komut sayısı arttıkça komutu ifade etmek için gerekli bellek üzerinde işgal edilen alan artacaktır. Sadece bir iki komuta sahip bir mikrodenetleyici düşünelim. Bir komutun görevi mikrodenetleyicinin çıkışını 1 yapmak, diğerinin ki 0 yapmak olsun. Mikrodenetleyici programı bir yap ve sıfır yap komutlarında oluşacak ve bu derleyici tarafından 1 ve 0 a çevrilecek. Bu gördüğünüz gibi bir bit lik bir

64 PIC Programlama Teknikleri ve PIC16F877A mikrodenetleyici olacaktır. Şimdi başka bir komuta ihtiyacımız var diyelim, yapmamız gereken mikrodenetleyiciyi 2 bit lik hale getirmek. Çünkü görüldüğü gibi 1 bit le sadece 2 komut verebiliyoruz. 2 bit ile ise 4 komut verebileceğiz. Görüldüğü gibi verilebilecek komut sayısı yaklaşık olarak 2 komut biti şeklinde bulunabilir. Buradan 350 komutu ayrı ayrı ifade edebilmek için; 2 komut biti >350 denklemi kurularak; komut bit inin en az 9 olması gerektiği görülür. Bu durum en iyi olasılıktır. Çünkü bir çok karmaşık komut bellek adresleri içerecek ve iki, üç program belleği bloğuna ancak sığacaktır. Tek bir komut 4 byte yer kaplayabilir. Bu 24-32 bit e karşılık gelir. İşlemci bellekten her çevrimde 1 byte (8 bit) okunabiliyor ise bir işlem yapabilmek için 3-4 satırın bellekten alınıp işlenmesi gerekir. Halbuki RISC tabanlı bir işlemcide her işlem tek bellek adresi işlenerek yapılabilmektedir. Karmaşık işlemlerde CISC bir işlemcide 3-4 çevrimde yapılabilen bir işlem belki 20-30 çevrim ile yapılır. Fakat basit işlemlerde RISC işlemciler oldukça hızlıdır. Bu karmaşık işlemlerin kodun %2 sini oluşturduğu düşünülürse RISC in daha mantıklı bir çözüm olduğu anlaşılır. Buna ek olarak komutlar çok fazla yer işgal etmediği için bellek maliyeti CISC e göre daha azdır. PIC16 mikrodenetleyicilerde bir komutun uzunluğu 14 bit tir. Bu sayı PIC12 mikrodenetleyicilerde 11, PIC18 lerde 16 dır. Komutun uzunluğu 11 bit, 14 bit, 16 bit olsa bile mikrodenetleyicinin içerisindeki tüm işlemleri gerçekleştiren aritmetik ve mantık ünitesi (ALU), W kaydedicisi (akümülatör) 8 bit olduğu için mikrodenetleyici 8 bit olarak adlandırılmaktadır. PIC16 serisi mikrodenetleyicilerde komutların uzunlukları birbirlerinden farklıdır. Genel olarak üç sınıfta incelenebilirler. Her sınıfın komut bit i uzunluğu, yapısı diğerinden farklıdır. Şimdi PIC assembly komutlarının yazılış biçimlerini teker teker inceledikten sonra komutların ne iş yaptığına geçelim. 3.2.1 Byte Üzerine Uygulanan Komutlar Bu komutlar uygulanırken eğer komut iki değişken üzerine uygulanan bir komutsa değerlerin bir tanesi komut içerisinde tanımlanan bellek adresinden, diğer biri ise W adı verilen geçici bellek kaydedicisinden alınır. Sonuç işlem uygulanan bellek adresine veya W kaydedicisine yazılacaktır. Görüldüğü gibi burada bir komutun içerisinde [komutun kodu+değerin okunacağı bellek adresi+kayıt adresi] gerekmektedir. W kaydedicisinin adresi sabit olduğu için onun yerini belirtmeye gerek yoktur. Sonucun kayıt edileceği kayıt adresi ise şekil 3.3 de d ile gösterilen bit in 1 veya 0 olması ile belirtilir. 0 W kaydedicisine 1 ise bellek adresine kayıt edileceğini göstermektedir. Komut setinde byte üzerinde uygulanan komutlar 6 bit lik alan işgal ederler. Böylece 7 bit i doldurmuş olduk. Geri kalan 7 bit ise kullanılacak bellek adresini gösterir.

3. BÖLÜM : PIC16F877A nın Genel Özellikleri 65 Şekil 3.3 Byte üzerine uygulanan (byte yönlendirmeli) komutlar. Microchip kendi geliştirdiği derleyicide rakamların yerine programın baş kısmında bazı isimler atayıp kullanmayı mümkün kılmıştır. Böylece sürekli rakam kullanılarak yazılan programların kafa karıştırıcı yapısından kurtuluruz. Yukarıdaki gösterimde RAM üzerindeki bir bellek adresine programın başında toplam ismi verilmiş, komutlar yazılırken bellek adresini rakamla yazmak yerine isminin yazılması tercih edilmiştir. Komutun sonunda, virgülden sonra 0 veya 1 yazılması gereken bölüme ise f yazılması yoluna gidilmiştir. Eğer sonucun akümülatörde kalması istenseydi bunun yerine w de yazılabilirdi. PIC16F877A mikrodenetleyiciler için yazılan programların başında yer alan include PIC16F877A satırı ile mikrodenetleyiciye özel olan bu w, f, c gibi önem taşıyan bit lerin isimleri otomatik olarak atanır. Yukarıdaki formda uygulanan komutlar, komutun yazılma şekliyle birlikte tablo 3.1 de verilmiştir. Tabloda her bir komutun makine kodları ile birlikte, kısa açıklaması, çevrim sayısı ve bu komut çalıştırıldıktan sonra etkilenen STATUS bit leri verilmiştir. Tablo 3.1 Byte üzerine uygulanan komutların listesi.

66 PIC Programlama Teknikleri ve PIC16F877A 3.2.2 Bit Üzerine Uygulanan Komutlar Bu komutlar uygulanırken eğer komut değişken üzerine uygulanan komut ise; 14 bit lik makine kodunun içerisinde, komut kodunun yanında 3 bit lik hangi bit üzerinde işlem yapılacağını belirten bit numarası ve 7 bit lik bellek adresi yer almaktadır. Görüldüğü gibi bir komut içerisinde [komut kodu+işlem yapılacak bit adresi+değişkenin bellek adresi] gerekmektedir. Bu durum şekil 3.4 de gösterilmiştir. Şekil 3.4 Bit üzerine uygulanan (bit yönlendirmeli) komutlar. Bit tabanlı komutların çalışması sırasında hiçbir STATUS bit i etkilenmemektedir. Tablo 3.2 de bu komutların listesi ve özellikleri verilmiştir. Tablo 3.2 Bit üzerine uygulanan komutların listesi. 3.2.3 Veri İşleme ve Kontrol Komutları Veri işleme ve kontrol komutları, 6 bit lik komut kodunun yanında 8 bit lik veri veya adres bilgisinden oluşurlar. Komutun yaptığı işin sonucunda yeni oluşan değer W kaydedicisine yazılır. Şekil 3.5 de görüldüğü gibi, bir komutun içerisinde [komut kodu+data veya adres] bilgisi bulunmaktadır. W kaydedicisinin yerini ayrıca belirtmeye gerek yoktur, çünkü sonuç zaten W kaydedicisine yazılmaktadır. Şekil 3.5 Veri işleme ve kontrol komutları.

3. BÖLÜM : PIC16F877A nın Genel Özellikleri 67 Bu yapıdaki komutların içerisinde sadece CALL ve GOTO komutları özel bir yapıya sahiptir. Bu iki komutun yapısı şekil 3.6 dan da görüleceği üzere, 3 bit lik komut kodunun yanında 11 bit lik adres bilgisine sahiptir. Şekil 3.6 CALL ve GOTO komutları. Yukarıdaki formda uygulanan komutlar, komutun yazılma şekliyle birlikte tablo 3.3 de verilmiştir. Tabloda her bir komutun makine kodları ile birlikte, kısa açıklaması, çevrim sayısı ve bu komut çalıştırıldıktan sonra etkilenen STATUS bit leri verilmiştir. Tablo 3.3 Veri işleme ve kontrol komutlarının listesi. Alan adı Açıklama f Register File adresi (0x00 dan 0x7F) w Akümülatör b Bit numarası k Sabit veri veya etiket x 0 veya 1 (Mevcut durum farketmez) Assembler x=0 kodunu üretecektir. Bu tüm Microchip yazılım araçları ile uyumlaştırılması için tavsiye edilen şekillerin biridir. d Hedef seçimi (d=0 ise sonuç W register ında; d = 1 ise sonuç file register da kalır. Varsayım olarak d=1 dir.) Label Etiket adı PC Program sayıcı TO Time-out bit (aman aralığı bit i) PD Power-down bit (Düşük güç bit i) [ ] Seçenekler Tablo 3.4 Komutlarda kullanılan kısaltmaların listesi.

68 PIC Programlama Teknikleri ve PIC16F877A 3.2.4 Komut Açıklamaları ADDLW ADDLW k Operandlar: 0 k 255 (W) + k (W) C, DC, k sabitini W register ı içeriğine ekler ve sonuç W register ına yazılır. ADDWF ADDWF f,d d [0,1] (W) + (f) hedef C, DC, ANDLW W register ı ile f register ı içeriğini toplar. Eğer d = 1 ise sonuç f register ına kaydedilir. ANDLW k Operandlar: 0 k 255 (W) AND (k) (W) k sabiti ile W register ı içeriğini lojik AND işlemine tabi tutar ve sonuç W register ında kalır. BTFSS BTFSS f,b 0 b 7 Eğer (f<b>) = 1 ise atla f register ının b. bit ini test eder, eğer bu bit 1 ise program akışı bir sonraki komuta atlar. ANDWF ANDWF f,d d [0,1] (W) AND (f) hedef BCF W register ı ile f register ı içeriğini lojik AND işlemine tabi tutar. Eğer d = 1 ise sonuç f register ına kaydedilir. BCF f,b 0 b 7 0 (f<b>) BSF f register ının içerisindeki sayının b. bit ini sıfırlar. BSF f,b 0 b 7 1 (f<b>) CLRF f register ının içerisindeki sayının b. bit ini 1 yapar. CLRF f 00h (f) 1 f register ının içeriğini siler.

3. BÖLÜM : PIC16F877A nın Genel Özellikleri 69 BTFSC BTFSC f,b 0 b 7 Eğer (f<b>) = 0 ise atla f register ının b. bit ini test eder, eğer bu bit 0 ise program akışı bir sonraki komuta atlar. CLRW Operandlar: CLRW 00h (W) 1 W register ının içeriğini siler. CALL CALL k Operandlar: 0 k 2047 (PC)+1 = TOS k PC<10:0> (PCLATCH<4:3>) PC<12:11> Program k etiketli altprograma dallanır. Dallanmadan önce, PC+1 (yani döneceği komutun adresini) stack a atar. İki komut çevriminde çalışır. CLRWDT Operandlar: CLRWDT 00h WDT 0 WDT prescaler 1 TO 1 PD TO, PD Watcdog Timer ı sıfırlar. COMF GOTO COMF f,d d [0,1] (f ) hedef f register ının içeriğinin komplementini alır, yani tersler. GOTO k Operandlar: 0 k 2047 k PC<10:0> PCLATCH<4:3> PC<12:11> Program k etiketli adrese dallanır. İki komut çevriminde çalışır.