MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Benzer belgeler
MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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ı

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

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

BÖLÜM 7 Kesmeler.

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

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.

ASSEMBLY DİLİNDE PROGRAMLAMA

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

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

Mikroişlemcili Sistemler ve Laboratuvarı

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

İ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

MTM 305 MİKROİŞLEMCİLER

Mikroişlemcili Sistemler ve Laboratuvarı 6.Hafta

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ı

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

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

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

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

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.

8051 DONANIM ÖZELLİKLERİ

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

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

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

Mikrobilgisayar Mimarisi ve Programlama

BM-311 Bilgisayar Mimarisi

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

MTM 305 MİKROİŞLEMCİLER

Mikrodenetleyiciler İ ZMİ R 8051 Uygulamaları

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

MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı

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

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

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

8086 Mikroişlemcisi Komut Seti

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

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

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

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

Ç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ı.

LPC2104 Mikro Denetleyicisini KEIL İle Programlamak

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

MTM 305 MĠKROĠġLEMCĠLER

BÖLÜM in Bellek Organizasyonu

Algoritma ve Programlamaya Giriş

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

BÖLÜM 6 Seri Port Đşlemleri

PROGRAMCI KLAVUZU VE KOMUT SETLERİ

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

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.

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

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

PLS2 KOMUTU. Giriş PLS2 Komutunun Açıklanması Sonuç

Ana Bellek (RAM) İşlemci (CPU) Depolama

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

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

Hacettepe Robot Topluluğu

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

MTM 305 MİKROİŞLEMCİLER

ADUC841 MİKRODENETLEYİCİ TABANLI GELİŞTİRME KARTININ TANITIMI:

HSancak Nesne Tabanlı Programlama I Ders Notları

KONFİGÜRASYON BİTLERİ

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

8051 Mikrokontrolcü Ailesi

8086 Mikroişlemcisi Komut Seti

Algoritma ve Akış Diyagramları

KASIRGA 4. GELİŞME RAPORU

İKİLİ SAYILAR VE ARİTMETİK İŞLEMLER

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

BİLGİSAYAR PROGRAMLAMA MATLAB

Bölüm 4 Veri Aktarma Komutları

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

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

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

x86 Ailesi Mikroişlemciler ve Mikrobilgisayarlar

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

C# ile NJ Simulatöre Bağlanmak

Erzurum Teknik Üniversitesi RobETÜ Kulübü Robot Eğitimleri. ARDUİNO EĞİTİMLERİ I Arş. Gör. Nurullah Gülmüş

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

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

Hacettepe Robot Topluluğu

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

XC8 ile PİC uygulamaları

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

MİKRODENETLEYİCİLER ÖRNEK PROGRAMLAR

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

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

4- ALGORİTMA (ALGORITHM)

Mikrobilgisayar Donanımı

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

Temel Mikroişlemci Tabanlı Bir Sisteme Hata Enjekte Etme Yöntemi Geliştirilmesi. Buse Ustaoğlu Berna Örs Yalçın

MTM 305 MĠKROĠġLEMCĠLER

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

ALGORİTMA TASARIMI VE SCRATCH UYGULAMASI

Transkript:

MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı

BÖLÜM 3 Assembler Programlama ve Program Geliştirme

Program Geliştirme Problem Tanımlama Bağlantı Şekli Algoritma Akış Diyagramı Kaynak Program Yazma Assembly Simulatör Mikroişlemciye Yükleme ve Çalıştırma 3

Problem Tanımlama Problem kullanılacak denetleyiciye veya işlemciye göre teknik bir dille yeniden tanımlanır. Derste verilen sorular genellikle tanımlanmış problemler olduğu için yeniden tanımlanmaz. 4

Bağlantı Şekli Eğer tanımlanan problem yeni bir bağlantı gerekiyorsa açık veya blok şema çizilir. Özellikle bağlantı yapılacak port isimleri mutlaka yazılır. Bağlanacak elemanların hatlarının isimleri yazılmalıdır. 5

Algoritma Çözüm yönteminin konuşma dili ile maddeler halinde tanımlanmasıdır. Algoritma problemin çözümünü temel oluşturur. Bağlantı şeklini desteklemelidir. Yalın bir dil kullanılarak yazılmalıdır. Bir problemin birden fazla çözüm algoritması olabilir. 6

Akış Diyagramı Algoritmanın şekilsel olarak gösterimidir. Her yapılan işlem bir simge ile gösterilir. Programın işleyiş sırasını anlamayı kolaylaştırır. SAYFA BAŞI İŞLEM KARAR VERİ MANUAL İŞLEM ALT PROGRAM SONLANDIRMA SAYFA SONU MANUAL GİRİŞ DÖKÜMAN 7

Kaynak Program ;Programın başlığı, yazan kişi, tarih ;program hakkında açıklama Org 0 ; program buradan başlar isim: Mov A,#25 ;A=25.. ;.. TKR:.. ;.. Sjmp $ ;son end ;program burada biter. 8

Simulator Yazılan program assebmly edilir. Simulatöre yüklenerek programın çalışması adım modunda denetlenir. Hata var ise algoritmaya geri dönülür. Hatalar tamamen yok edilinceye kadar devam edilir 9

Mikroişlemciye Yükleme ve Çalıştırma Hataları giderilen program programlayıcı kullanılarak mikroişlemciye yüklenir. Gerekli bağlantılar kart üzerinde ve çevresinde yapılır. Devreye güç verilerek çalıştırılır ve sonuçlar gözlemlenerek doğruluğu belirlenir. Hata var ise algoritmaya geri dönülür. Hata yok ise tasarlanan cihaz üretime hazırdır. 10

Örnek Bir butona basıldığında LED i yakan ikinci basmada ise söndüren programı yazın, sistemi kurup çalıştırın. 1. Problemi Yeniden Tanımlama: 8051 in port hattına bir buton ve bir diğer hattına LED bağlıdır. Butona her basıldığında LED in durumunu tersleyen programı yazın. 11

2. Bağlantı Şekli +5V P1.1 P1.0 1K 10K 8051 S1 12

Program Geliştirme 3. Algoritma 4. Akış Diyagramı 1. Buton için port hattını giriş yap. 2. LED için port hattını çıkış yap 3. LED i başlangıç için söndür. 4. Butona basılana kadar bekle. 5. Buton bırakılana kadar bekle. 6. LED i tersle. 7. Adım 4 e dön. 13

5. Kaynak Program Org 0 BUT_LED: Mov P1,#0FFh BUT: ;P1.0 giriş, P1.1 çıkış, LED sönük Jb P1.0,$ ;Butona basılana kadar bekle Jnb P1.0,$ ;Buton bırakılana kadar bekle Cpl P1.1 ;LED i tersle Sjmp BUT ;Sürekli yap end 14

Örnek 1 16 Bit Değişkene 8 Bit Değişken Toplama. Bu alt program A yı DPTR ye toplar, taşma var ise elde bayrağı kurulur. İşletilmeden önce DPTR ye ve A ya bir değer girilmelidir. İşlem sonunda; DPTR=DPTR+A Etkilenen yazaçlar; PSW.CY, DPTR topla16b: Push Acc Add A,DPL Mov DPL,A Mov A,DPH Addc A,#00h Mov DPH,A Pop Acc Ret ; A yı yedekle. ; A ya DPL topla. ; Sonucu DPL ye yaz. ; DPH yi al. ; Elde var ise YDB ı artır. ; DPH yaz. ; A yı yedekten al. ; Ana programa geri dön. 15

ÖRNEK 2 16 Bit Değişkenden 8 Bit Değişken Çıkarma. ;Bu alt program DPTR yazacından Acc yi çıkarır. Sonuç negatif ise elde ;bayrağını kurar. İşletilmeden önce DTPR ye ve Acc ye bir değer girilmelidir. ;İşlem sonunda DPTR=DPTR-Acc ;Etkilenen yazaçlar; PSW.CY, DPTR cikar16b: Push Acc Clr c Xch a,dpl Subb a,dpl Mov DPL,a Mov a,dph Subb a,#00h Mov DPH,a Pop Acc Ret ; A yı yedekle. ; Eldeyi temizle ; A ile DPL yi yer değiştir. ; Çıkar. ; DPL yi yaz ; DPH yi al. ; Borç var ise YD kısmı bir azalt. ; DPH yi yaz. ; A yı yedekten al ; Ana programa geri dön 16

ÖRNEK 3 16 Bitlik Çıkarma ;Bu program 16 bit sayıdan 16 bit sayıyı çıkarır. ;R7R6-R5R4=R3R2 Cıkar16bit: MOV A,R6 ;1. değişkenin düşük kısmını A ya al CLR C ;Eldeyi temizle SUBB A,R4 ;2. değişkenin düşük kısmını A dan çıkar MOV R2,A ;Sonucun düşük kısmını yaz MOV A,R7 ;1. değişkenin yüksek kısmını A ya al SUBB A,R5 ;2. değişkenin yüksek kısmını A dan çıkar MOV R3,A ;Sonucun yüksek kısmını yaz RET ;Sonucu R2 ve R3 te ana programa götür. 17

ÖRNEK 4 DPTR Yazacını Bir Bit Sağa Öteleme. /* Bu alt program DPTR yazacının içeriğini aritmetik bir bit sağa öteler. İşletilmeden önce DPTR içerisine bir değer girilmeli. */ Dptrsag: Push Acc ; A yı yedekle. Clr C ; Eldeyi temizle. Mov A,DPH ; DPTR nin yüksek kısmını al. Rrc A ; Sağa ötele. Mov DPH,A ; DPH ye yaz. Mov A,DPL ; DPTR in düşük kısmını al. Rrc A ; Sağa ötele. Mov DPL,A ; DPL yi yaz. Pop Acc ; Acc yi tedekten al. Ret ; Ana programa dön. 18

RLC A, RRC A 19

Örnek 5: DPTR Yazacını Bir Bit Sola Öteleme. ;Bu alt program DPTR yazacının içeriğini bir bit sola öteler. ;DPTR * 2 = DPTR Dptrsol: Push Acc ; Acc yi yedekle. Clr C ; Eldeyi temizle. Mov A,DPL ; DPTR nin düşük kısmını al. Rlc A ; Sola ötele. Mov DPL,A ; DPL ye yaz. Mov A,DPH ; DPTR nin yüksek kısmını al. Rlc A ; Sola ötele. Mov DPH,A ; DPH ye yaz. Pop Acc ;Yedekten al Ret ; Ana programa dön. 20

Örnek 6 DPTR nin 10 Katını Alma. ;Bu alt program DPTR nin 10 katını alır. DPRTR ye işlem öncesi bir 0-6553 arası bir değer yazılmalıdır. İşlem sonunda DPTR=DPTR * 10, etkilenen yazaçlar PSW,DPTR DPTRX10: Push B ; B yi yedekle. Push Acc ; A yı yedekle Mov A,DPL ; Düşük kısmı al Mov B,#10 ; Çarpanı B ye yaz Mul AB ; BA = DPL * 10 Mov DPL,A ;Sonucun düşük kısmını DPL yaz Push B ;Sonucun yüksek kısmını yedekle Mov A,DPH ;Yüksek kısmını al Mov B,#10 ;Çarpanı B ye yaz Mul AB ;BA = DPH * 10 Pop B ;B yedekten al Add A,B ;Düşük kısımdan oluşan ile topla Mov DPH,A ;Sonucun yüksek kısmını DPH yaz Pop Acc ;A yı yedekten al Pop b ;B yi yedekten al ret ;Ana programa dön 21

Örnek 7 DPTR yi 4 Bit Sağa Ötele ;Bu Alt Program Dptr yi 4 Bit Sağa öteler. Etkilenen Yazaçlar Psw,Dptr, DPTR yi 16 ya böler. Dptr4sag: Push Acc ; A yı Yedekle Push 0 ; R0 ı Yedekle Mov R0,#4 ; Öteleme Sayacını Ayarla L1: Mov A,DPH ; Yüksek Kısmı Al Clr C Rrc A ; Sağa ötele Mov DPH,A ; DPH ye Yaz Mov A,DPL ; Dptr nin düşük Kısmını Al Rrc A ; Sağa ötele Mov DPL,A Djnz R0,L1 ; Sayaç=0 olana kadar ötele Pop 0 ; Yedekten Al Pop Acc ; Yedekten Al Ret ; Ana Programa Geri Dön 22

Örnek 8 Dptr 4 Bit Sola Öteleme ;Bu Alt Program Dptr Yazacını 4 Bit Sola Öteler, Düşük Değerli Bitlere Sıfır Yerleştirir. ;Etkilenen Yazaçlar; Psw.Cy, Dptr Dptr4sol: Push Acc ; A yı Yedekle Push 0 ; R0 ı Yedekle Mov R0,#4 ; Öteleme Sayacını Kur L2: Clr C ; Öteleme İçin Sıfırla Mov A,Dpl ; Dptr nin Düşük Kısmını Al Rlc A ; Sola Ötele Mov Dpl,A ; Dpl yi Yaz Mov A,Dph ; Dptr nin Yüksek Kısmını Al Rlc A ; Sola Ötele Mov Dph,A ; Dph yi Yaz Djnz R0,L2 ; Sayaç Sıfır Olana Kadar Devam Et Pop 0 ; Yedekten Al Pop Acc ; Yedekten Al Ret ; Ana Programa Geri Dön 23

Örnek 9 AND Maskeleme ve Tablo Okuma P1 den okunan 0 ile F arası sayıların karesini başvuru tablosu kullanarak alan ve P2 ye yazan programı yazın Kare_al: Mov DPTR, #TABLO ; Tablonun başlangıç adresi Mov P1, #0FFH ; P1 i giriş yap TKR: Mov A, P1 ; Sayıyı P1 den oku Anl A,#0Fh ;Yüksek değerli 4 biti sıfırla Movc A, @A+DPTR ; Sayının karesini tablodan al Mov P2, A ; Sonucu P2 ye yaz Sjmp TKR ; Sürekli yap ORG 300H ;Tablo 0300H dan başlar TABLO: DB 0, 1, 4, 9, 16, 25, 36, 49, 4,81,100,121,144,169, 196,225 24

8051 de Yığın Kullanımı Yığını SP (stack pointer) yazacı ile erişebiliriz. Yığın işaretleyici SP 8051 de 8 bit genişliğindedir, bunun anlamı bu yazaç içeriği 00 dan FFH kadar değerleri içerebilir. 8051 çalıştırıldığında, SP yazacının içeriği 07 dir. 30h-7Fh 20h-2Fh 18h-1Fh 10h-17h 08h-0Fh 00h-07h Genel RAM Bit Adreslenebilir RAM Bank 3 Bank 2 Bank 1 Bank 0 25

Yığın???? 26

Altprogramların Kullanımı ANA_PROG: Org 0 Mov SP,#7Fh Mov A,#25H Acall topla16b Acall Cikar16bit Mov DPTR,#2551 Acall DPTRX10 Acall Dptr4sol Acall Cikar16bit Sjmp $ ;yığını üst 128 bayta ötele ;A=25H ;toplama altprogramını çağır ;Çıkarma altprogramını çağır ;DPTR=2551 ;DPTR*10 ;DPTR*2*2*2*2 ;Çıkarma altprogramını çağır 27

Ödev - 4 Bölüm 4 ün sorularını yanıtlayınız. (Haftaya ders saatinde teslim edilecek) 28