MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Benzer belgeler
KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Mikrobilgisayar Mimarisi ve Programlama

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Ayhan Yüksel. (Son güncelleme: Berat Doğan) Tıbbi Enstrumantasyon Tasarım & Uygulamaları ( )

BÖLÜM 4. Dahili veri hafıza transfer komutlarının genel yapısı, mov <hedef>, <kaynak> şeklindedir

SAUEEE.ORG. Önce C 00 Sonrası C 00

8051 MİMARİSİ. Temel mimari yapısı Şekil 3.1 de görülmekte olan 8051 mikrodenetleyici ailesinin başlıca özellikleri aşağıda verilmiştir.

MİKROİŞLEMCİ LABORATUARI UYGULAMA ÖRNEKLERİ

ASSEMBLY DİLİNDE PROGRAMLAMA

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

PROGRAMCI KLAVUZU VE KOMUT SETLERİ

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

BÖLÜM 7 Kesmeler.

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. İşlenenin Yeri. Örnek MİB Buyruk Yapısı. İvedi Adresleme. Adresleme Yöntemleri. Bellek. Kütükler.

Adresleme Yöntemleri MİKROİŞLEMCİ SİSTEMLERİ. Örnek MİB ile Adresleme. Adresleme Yöntemleri. Doğal Adresleme. İvedi Adresleme

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

Mikrobilgisayar Mimarisi ve Programlama

Mikrodenetleyiciler İ ZMİ R 8051 Uygulamaları

Mikroişlemcili Sistemler ve Laboratuvarı

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

LCD EKRANIN SÜRÜLMESİ VE FLASH/EE HAFIZASININ KULLANILMASI

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

BÖLÜM 6 Seri Port Đşlemleri

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

MTM 305 MĠKROĠġLEMCĠLER

İşlem Buyrukları MİKROİŞLEMCİ SİSTEMLERİ. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları. İşlem Buyrukları

BÖLÜM MİKROİŞLEMCİSİ

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma

8086 Mikroişlemcisi Komut Seti

Alt Programdan Ana Programa Dönüş Adresine Donanım Tarafından Hesaplanması

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

K uark projesi. Temel Özellikler :

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

8051 DONANIM ÖZELLİKLERİ

MTM 305 MİKROİŞLEMCİLER

14. MİKROİŞLEMCİ PROGRAMLAMA TEKNİKLERİ

TBİL-405 Mikroişlemci Sistemleri Bölüm 2 1- % %01010 işleminin sonucu hangisidir? % %11000 %10001 %10101 %00011

Mikroişlemciler-IMikrodenetleyiciler. Alper Bayrak Abant İzzet Baysal Üniversitesi Bolu

İSTANBUL TİCARET ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ MİKROİŞLEMCİLİ SİSTEM LABORATUARI İKİLİ TABANDA ÇOK BAYTLI ÇARPMA

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

Y. Müh. Ayhan Yüksel. (Son güncelleme: Zafer Đşcan) Tıbbi Enstrumantasyon Tasarım & Uygulamaları ( )

PIC16F877A nın Genel Özellikleri

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

Bölüm 4 Veri Aktarma Komutları

Aritmetiksel Komutlar

8051 Mikrokontrolcü Ailesi

JZ TEST3 (7/3) 1 makine çevrimi süresi

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri

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ı

İLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

BIL 362 Mikroilemciler Dersi Arasınav Cevapları 3 Temmuz 2007

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

Çok sayıda adım motoru tasarımı olmasına rağmen, bu motorlar iki değişik temel tür altında toplanabilir: değişken relüktanslı veya hibrid yapılı.

Kesmeler (Interrupts)

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

BÖLÜM I GİRİŞ. 1- Merkezi İşlem Birimi(Central Processing Unit-CPU) 2- Hafıza (Memory) 3- Giriş/ Çıkış(I/O) Birimleri

BÖLÜM in Bellek Organizasyonu

MTM 305 MİKROİŞLEMCİLER

MTM 305 MİKROİŞLEMCİLER

DENEY III RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

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

BM-311 Bilgisayar Mimarisi

Mikrobilgisayar Donanımı

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

BM-311 Bilgisayar Mimarisi

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

ADUC814 MİNİKİT. RS-232 Ara Bağlantı Kablosu & ADuC8xx EĞİTİM NOTLARI Bölüm 9

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

DENEY II RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI

Bilg.Mimarisi-I 4.HAFTA VERI AKTARIMI VE ISLEME. Bilgisayar buyrukları 3 kategoride sınıflandırılabilir.

8086 dan core2 ya yazaç yapısını tanımak. Bayrak yazacının içeriğinde yer alan bayrakların görevlerini tanımlamak. Real mod çalışmada bellek

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

Yığın MİKROİŞLEMCİ SİSTEMLERİ. Yığın. Örnek MİB için Yığın. Yığma İşlemi. Çekme İşlemi

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

Assembly Programlama Dili T e m m u z

BIL 362 Mikroilemciler Dersi Final Sınavı Cevapları

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

BM-311 Bilgisayar Mimarisi

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

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

BM-311 Bilgisayar Mimarisi

Komut Seti Mimarisi (ISA)

Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR

KASIRGA -4 Buyruk Tasarımı Belgesi Ankara

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

Mikroişlemciler (EE 208) Ders Detayları

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

EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI

EEM 419-Mikroişlemciler Güz 2017

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

MTM 305 MĠKROĠġLEMCĠLER

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

Komutların Yürütülmesi

Transkript:

MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı

BÖLÜM 3 MSC-51 Ailesi Mikrodenetleyicilerin Komut Kümesi

Mikroişlemci Programlama Mikroişlemci ikilik komutlar kabul eder ve sonuçlarını ikilik olarak kullanıcıya verir. İkilik komutlarla program yazma tekniğine Makine dili adı verilir. Kullanımı zor olduğu için makine dili yerine konuşma diline yakın komutlarla program yazma tekniği ortaya çıkmış ve adına Assembly dili adı verilmiştir. Assembly dilinin dilbilgisi kurallarına adresleme kipi adı verilir. Adresleme kipleri komutların hangi yazaç veya bellek alanında işlem yapacağını, sonucu nereye yazacağını ve bir sonraki komutun hangi adresten okunacağını belirtir. 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 3

8051 in Adresleme Kipleri 8051 in veri işleyen adresleme kipleri. Doğrudan İvedi Yazaç Dolaylı Sıralı 8051 in Program akışını düzenleyen adresleme kipleri. Bağıl Mutlak Uzun 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 4

İç RAM 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 5

Doğrudan (Direct)Adresleme 8051 in iç veri belleğinde alt 128 bayt ve SFR bölgesinde veri işleyen komutlarda kullanılır. Örnek: Komut Mov A, 20h 8 bit adres ;(20h) A Mov A, 0F0h ;(0F0h) A Mov 20h, A ; A (20h) Mov 0F0h, A MoV A, P1 Not: P1 assembler programı tarafından doğrudan dönüştürülür. ;A (0F0h) ;P1 A adresi ile değiştirilerek makine diline 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 6

İvedi (Immediate) Adresleme 8051 in iç veri belleğinde yer alan bellek satırlarına ve yazaçlara sabit sayı yüklemek için kullanılır. Komut # 8 Sayı # (diez olarak okunur) işareti İvedi adresleme belirtecidir. Örnek: Mov A, #20h ;A=20h Mov A, #0F0h Mov 20h, #02 Mov R0, #0 ;R0=0 Mov P1, #55 ;P1 = 55 ;A=0F0h ;(20h)=02 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 7

Yazaç (Register) Adresleme A B R0 R1 R2 R3 R4 R5 R6 R7 8-bitt Yazaçlar DPTR PC DPH DPL PC 16-bit Yazaçlar 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 8

Yazaç (Register) Adresleme 8051 in yazaçları ile akümülatör arasındaki veri işleme komutlarında kullanılır. Komut n=0,1,2,3,4,5,6,7. Örnek: Mov A, R1 Mov R0, A Add A, R2 Rn Mov R0, #0 ;R0=0 MoV R3, P1 ;P1 R3 ;R1 A ;A R0 ;A + R2 A 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 9

Dolaylı (Indirect) Adresleme 8051 in üst 128 bayt ile yazaçlar ve SFR arasındaki veri işleme komutlarında ve ayrıca Akümülatör ile dış veri belleği arasında veri aktaran komutlarda kullanılır. Komut @Ri @ işareti dolay adreslemenin belirtecidir ve ed diye okunur. i=0,1 Örnek: Mov A, @R1 ;((R1)) A Mov @R0, A ;A ((R0)) Add A, @R0 ;A + ((R0)) A Mov @R0, #0 ;((R0))=0 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 10

Sıralı (Indexed) Adresleme 8051 in Program belleğinden veri okumak için kullanılır. Kod dönüşüm tablosu veya sensör doğrusallaştırma tabloları program belleğinde saklanır. Bu tablolara başvuru tablosu adı verilir. Bu adresleme sadece Movc komutunda kullanılır. DPTR yazacı Tablonun başlangıç adresini içerir. A sıra numarasını A ile DPTR toplanır ve işlem yapılacak adres elde edilir. Movc A,@A+DPTR Movc A,@A+PC ;((A+PC)) A ;((A+DPTR)) A 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 11

Bağıl (Relative)Adresleme 8051 in Program belleğinde program akışını değiştirmek için kullanılır. Genellikle bir koşula bağlı olarak komut sonrası yazılan Kayıklık değeri kadar ileri veya geri dallanma olur ve program o noktadan yürütülmeye devam eder. Koşul yerine gelmezse bir sonraki komuttan program yürütülmeye devam eder. Komut 8 bit kayıklık kayıklık= 00-7Fh aralığında ise ileri dallanma kayıklık= 80-FFh aralığında ise geri dallanma Örnek: JNC, 05h ;C=0 ise 5 adım ileriden devam eder ;C=1 ise bir sonraki komuttan devam eder Sadece 1 komut koşulsuz dallanır, SJMP. 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 12

Mutlak (Absolute) Adresleme 8051 in Program belleğinde program akışını değiştirmek için kullanılır. 11 bit adres kullandığı için belleğin 2048 satırında etkilidir. Bu adresleme kipi Call ve Jmp komutlarında kullanılır. ACall 11 bit Adres AJmp 11 bit Adres ;Altprogram çağırır ;Adrese bağlanır ACall ve AJmp komutları 2 bayt uzunluğundadır 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 13

Uzun (Long) Adresleme 8051 in Program belleğinde program akışını değiştirmek için kullanılır. 16 bit adres kullandığı için belleğin tamamında etkilidir. Bu adresleme kipi Call ve Jmp komutlarında kullanılır. LCall 16 bit Adres LJmp 16 bit Adres ;Altprogram çağırır ;Adrese bağlanır ACall ve AJmp komutları 3 bayt uzunluğundadır 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 14

MCS-51 in Komut Kümesi Veri aktaran Aritmetik işlem yapan Mantık işlem yapan Boolean işlem yapan Dallanma ve Bağlanma 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 15

Veri Aktaran Komutlar Mov Hedef, Kaynak ;Hedef Kaynak Kaynağın içeriği hedefe kopyalanır. Kullanıldığı bellek bölümlerine göre sınıflandırırsak; İç veri Belleğinde Veri aktaran komutlar Dış veri Belleğinde Veri aktaran komutlar Program Belleğinden Veri aktaran komutlar 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 16

Veri Aktaran Komutlar Mnemonic İşlenen Bayt/Saykıl MOV A, Rn 1/1 A, 8 bit adres 2/1 A, @Ri 1/1 A, #Sayı 2/1 Rn, A 1/1 Rn, 8 bit adres 2/2 Rn, #Sayı 2/1 8 bit adres, A 2/1 8 bit adres, Rn 2/2 8 bit adres, 8 bit adres 3/2 8 bit adres, @Ri 2/2 8 bit adres, #Sayı 3/2 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 17

Veri Aktaran Komutlar Mnemonic İşlenen Bayt/Saykıl MOV @Ri, A 1/1 @Ri, 8 bit adres 2/2 @Ri, #sayı 2/1 DPTR, #sayı16 3/2 C, bit 2/1 bit, C 2/2 MOVX A,@DPTR 1/2 @DPTR,A 1/2 A,@Ri 1/2 @Ri,A 1/2 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 18

Veri aktaran Komutlar Mnemonic İşlenen Bayt/Saykıl MOVC A, @A+DPTR 1/2 A, @A+PC 1/2 PUSH 8 bit adres 2/2 POP 8 bit adres 2/2 XCH A, Rn 1/1 A, 8 bit adres 2/1 A, @Ri 1/1 XCHD A, @Ri 1/1 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 19

İç veri Belleğinde Veri aktaran komutlar Hedef Akümülatör ise okuma işlemi olarak adlandırılır. Mov A, Kaynak ;A Kaynak Mov A, R0 ;A R0 Mov A, 20h ;A (20h) Mov A, @R0 ;A ((R0)) Mov A, #5 ;A=5 Kaynak Akümülatör ise Yazma işlemi olarak adlandırılır. Mov Hedef, A Mov R0, A Mov 20h, A Mov @R0, A, ;Hedef A ;R0 A ; (20h) A ; ((R0)) A 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 20

İç veri Belleğinde Veri aktaran komutlar Hedef veya Kaynak Akümülatör olmayabilir. Mov 20h, R0 ;(20h) R0 Mov R0, 20h ;R0 (20h) Mov 20h, #0 ;(20h)=0 Mov R0, #25h ;R0 = 25h Mov @R0, 85h ;((R0)) (85h) Mov 35h, 25h ;(35h) (25h) Mov @R0, #25 ; ((R0)) = 25 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 21

İç veri Belleğinde Veri aktaran komutlar Mov dışında iç veri aktarma komutları vardır. Push 8 bit adres ;Yığına belleğin içeriğini atar Push 20h ;((SP)) (20h) Push Acc ;((SP)) Acc Pop 8 bit adres ;Yığından belleğe çeker Pop 20h ;((SP)) (20h) Pop Acc ;((SP)) Acc XCH A Kaynak XCH A, R0 ;A R0 XCHD A, @Ri ;Akümülatör ile kaynağın içerikleri takas edilir 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 22

Dış veri Belleğinden Veri aktaran komutlar Hedef veya Kaynak Akümülatördür. 16 bit adres hattı kullanılırsa DPTR işlem yapılacak adresi gösterir. Movx A, @DPTR Movx @DPTR, A Mov DPTR,#0600 Movx A, @DPTR ;(0600) A 8 bit adres hattı kullanılırsa R0 veya R1 işlem yapılacak adresi gösterir. Movx @Ri, A Movx A, @Ri Mov R1,#150 Movx A, @R1 ;(150) A 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 23

Hedef Akümülatördür. Program belleğinde oluşturulan başvuru tablosunda değer okur. DPTR veya PC temel adresi, Akümülatör ise sıra numarasını içerir. Movc A, @A+DPTR ;(A+DPTR) A Movc A, @A+PC ;(A+PC) A 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 24

Örnek: P1 portundan okuduğu sayının karesini alıp P2 ye yazan programı yazın. ORG 0 ;Program burardan başlar MOV DPTR, #TAB1 ;Tablonun başlangıç adresini belirle MOV P1,#0FFH ;P1 i giriş kullanıma hazırla L01: MOV A,P1 ;P1 i oku ANL A,#0FH ;Yanlış girişi sıfırla MOVC A,@A+DPTR ;Karesini al MOV P2,A ;P2 ye yaz SJMP L01 ;Sürekli yap ;---------------------------------------------------- ORG 300H ;Kareler tablosu buradan başlıyor TAB1: DB 0,1,4,9,16,25,36,49,64,81 END 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 25

Mnemonic İşlenen Bayt/Saykıl ADD A, Rn 1/1 ADDC A, direct 2/1 SUBB A, @Ri 1/1 A, #data 2/1 INC A 1/1 DEC Rn 1/1 direct 2/1 @Ri 1/1 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 26

Diğer aritmetik İşlemler KOMUT İŞLENEN İŞLEM BAYT SAYKIL INC A A+1 1 1 DOĞ. ADR. (DOĞ. ADR.) + 1 2 1 Rn Rn -1 1 1 @Ri A-1 1 1 DEC A A-1 1 1 DOĞ. ADR. (DOĞ. ADR.) - 1 2 1 Rn Rn -1 1 1 @Ri A-1 1 2 INC DPTR DPTR+1 1 2 MUL AB A*B 1 4 DIV AB A / B 1 4 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 27

8051 eldeli ve eldesiz toplama yapabilir. ADD A,#25 ;A+25 A ADDC A,#25 ;A+25+C A ADD A,#6 ;A+(6 ) A ADD A,R6 ;A+R6 A ADD A,6 ; A+(6) A ADD A,0F3H ;A+(0F3H) A ADD A,@R1 ;A+((R1)) A 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 28

Mov A,#38h Add A,#2Fh 38 0 0 1 1 1 0 0 0 + 2F + 0 0 1 0 1 1 1 1 67 0 1 1 0 0 1 1 1 C=0 AC=1 P=1 Mov A,#30h Add A,#27h 30 0 0 1 1 0 0 0 0 + 27 + 0 0 1 0 0 1 1 1 57 0 1 0 1 0 1 1 1 C=0 AC=0 P=1 Mov A,#88h Add A,#93h 88 1 0 0 0 1 0 0 0 + 93 + 1 0 0 1 0 0 1 1 11B 0 0 0 1 1 0 1 1 C=1 AC=0 P=0 Mov A,#9Ch Add A,#64h 9C 1 0 0 1 1 1 0 0 + 64 + 0 1 1 0 0 1 0 0 100 0 0 0 0 0 0 0 0 C=1 AC=1 P=0 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 29

Örnek 16-bit Toplama 1E44H ile 56CAH sayılarını toplayan programı yazın. MOV A, #44H ; 1. sayının DDB ını A ya al. ADD A, #CAH ; 2. sayının DDB ı ile topla. MOV R1, A ; Toplamın DDB ını yaz. CY = 1. MOV A, #1EH ; 1. sayının YDB ını A ya al. ADDC A, #56H ; 2. sayının YDB ı ile topla. MOV R2, A ; Toplamın YDB ını yaz. CY = 0. Sonuç: 750EH R2 ve R1 de yazılıdır, CY = 0. 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 30

34 ile 49 BCD sayıları toplayan programı yazın MOV A, #34H ; 1. sayıyı A ya al ADD A, #49H ; 2. sayı ile topla ; A = 7DH DA A ; BCD ye ayarla A = 83 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 31

iki adet 4 basamaklı BCD sayılar iç veri belleğinin 40H, 41H ve 42H, 43H satırlarında yüksek değerli basamakları önce gelecek şekilde sırasıyla yazılıdır. Bu iki sayıyı toplayın ve BCD sonucu 40H ve 41H bellek satırlarında yüksek değerli basamak önce olacak şekilde saklayan programı yazın. BCDTOPLA: MOV A, 43H ADD A, 41H DA A MOV 41H, A MOV A, 42H ADDC A, 40H DA A MOV 40H,A ;2. sayının birler ve onlar basamaklarını oku. ;1. sayının birler ve onlar basamakları ile topla ;Toplamın birler ve onlar basamağını BCD ye uyarla. ;Toplamın birler ve onlar basamaklarını yaz. ;2. sayının yüzler ve binler basamaklarını oku. ;1. sayının yüzler ve binler basamakları ile topla. ;Toplamın yüzler ve binler basamağını BCD ye uyarla. ;Toplamın yüzler ve binler basamaklarını yaz 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 32

MUL AB MOV A,#25H MOV B,#65H MUL AB ;25H*65H=0E99 ;B=0EH, A=99H DIV AB ;A = A/B, B = A mod B MOV A,#25 MOV B,#10 DIV AB ;A=2, B=5 Bölüm =2, kalan=5 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 33

Mnemonic İşlenen Bayt\Bayt ANL A, Rn 1/1 ORL A, 8 bit Adres 2/1 XRL A, @Ri 1/1 A, #Sayı 2/1 8 bit Adres, A 2/1 8 bit Adres, #Sayı 3/2 C, bit 2/2 C, /bit 2/2 CLR A 1/1 CPL C 1/1 SETB bit 2/1 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 34

Mantık İşlem Yapan Komutlar Komut İşlenen Saykıl Bayt RL A 1 1 RLC A 1 1 RR A 1 1 RRC A 1 1 SWAP A 1 1 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 35

Mnemonic İşlenen Bayt/Saykıl CJNE A, 8 bit adres, kayıklık 3/2 A, #sayı, kayıklık 3/2 Rn, #sayı, kayıklık 3/2 @Ri,#sayı,kayıklık 3/2 DJNZ Rn, kayıklık 2/2 8 bit adres, kayıklık 3/2 JZ kayıklık 2/2 JNZ kayıklık 2/2 NOP - 1/1 JC kayıklık 2/2 JNC kayıklık 2/2 JB bit, kayıklık 3/2 JNB bit, kayıklık 3/2 JBC bit, kayıklık 3/2 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 36

Bağlanma Komutları Mnemonic İşlenen Bayt/Saykıl LCALL 16 bit adres 3/2 ACALL 11 adres 2/2 RET - 1/2 RETI - 1/2 LJMP 16 adres 3/2 AJMP 11 adres 2/2 SJMP kayıklık 2/2 JMP @A+DPTR 1/2 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 37

DJNZ: Akümülatörü sıfırlayan ve sonra akümülatöre 10 defa 5 toplayan programı yazın. TPL: MOV A,#0 ;A=0 MOV R2,#10 ;sayaç=10 TKR: ADD A,#05 DJNZ R2,TKR ; R2=0 olana kadar yap. MOV R5,A 1000 adet döngü oluşturma Mov R3, #100 L1: Mov R2, #10 ; 1000 döngü oluştur L2: Nop ; işlem yapma Djnz R2, L2 ; R2==0 olana kadar Djnz R3, L1 ; R3==0 olana kadar 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 38

KARŞILAŞTIRMA 8051 basit bir karşılaştırma komutuna sahip değildir. Karşılaştırma komutu akümülatör ile verilen değeri sanal çıkarma işlemine tabii tutar. İşlem sonucu sıfırdan farklı ise belirtilen adrese bağlanır. Aksi durumda bir sonraki durumdan devam eder. CJNE A,doğrudan adres,bağıl adres CJNE A,#ivedi sayı, bağıl adres CJNE Rn,#ivedi sayı, bağıl adres CJNE @Ri,#ivedi sayı, bağıl adres 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 39

Karşılaştırma Farklı karşılaştırma örnekleri CJNE A,#Sayı,Test Test: JC kucuk ; Dallan eğer, A < Sayı. CJNE A, #Sayı,Test Test: JNC buyuk_esit ; Dallan eğer, A >= Sayı. CJNE A, #Sayı,Test SJMP baska Test: JNC buyuk baska: ----- ; Dallan eğer, A > Sayı. CJNE A, #Sayı,Test SJMP esit Test: JC kucuk_esit ;Dallan eğer, A <= Sayı. 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 40

Ödev-3 Bölüm 3 ün soruları 23 Şubat 2015 E.Ü. Ege MYO Mikrodenetleyiciler 41