8051 mİkrokontrolÖr aİlesİ

Post on 15-Jan-2016

31 Views

Category:

Documents

0 Downloads

Preview:

Click to see full reader

DESCRIPTION

8051 MİKROKONTROLÖR AİLESİ. Arş. Gör. Hüseyin ERDOĞAN. ADRESLEME MODLARI. DOĞRUDAN (DIRECT) ADRESLEME DOLAYLI (INDIRECT) ADRESLEME SAKLAYICI (REGISTER) ADRESLEME İVEDİ (IMEDIATE)ADRESLEME İNDEKS (INDEX) ADRESLEME. DOĞRUDAN ADRESLEME. - PowerPoint PPT Presentation

TRANSCRIPT

8051 MİKROKONTROLÖR AİLESİ

Arş. Gör. Hüseyin ERDOĞAN

ADRESLEME MODLARI

• DOĞRUDAN (DIRECT) ADRESLEME• DOLAYLI (INDIRECT) ADRESLEME• SAKLAYICI (REGISTER) ADRESLEME• İVEDİ (IMEDIATE)ADRESLEME• İNDEKS (INDEX) ADRESLEME

DOĞRUDAN ADRESLEMEMOV A,70H ;70H adresinde tutulan sayıyı register A’ya yaz

MOV 60H,A ;Akümülatördeki veriyi 60H adresine yaz.PORT1 EQU 90H ;Assembler bu tanımdan sonra PORT1 gördüğü yere 90H değerini

;yerleştirirMOV PORT1,55H ;55H adresindeki veri Port1 den gönderilir.

DOLAYLI ADRESLEMEMOV 60H,#126 ;Bu komutla 60H adresinde 126 sayısını saklıyoruzMOV R0,#60H ;Bu komutla R0 içerisine 60H sayısını yazarak bu adresi işaret etmesini sağlıyoruz.MOV A,@R0 ;R0’ ın gösterdiği 60H adresindeki 126 sayısını A içerisine yazar

SAKLAYICI ADRESLEME

MOV R1,#20H ; R1 içerisine 20H yazMOV R5,50H ; 50H içeriğini R5 içerisine yazMOV R2,A ; Akümülatör içeriğini R2 içerisine yazMOV A,R6 ; A içine R6 içeriğini ata

MOV R0,A ;akümülatördeki veriyi R0’a yaz.

MOV PSW,#10H ;ikinci bank seçilir.MOV R4,B ;B akümülatöründeki veriyi R4 registerına yaz.

İVEDİ ADRESLEMEMOV A,#021H ; A’nın içerisine 21H sayısını yaz.

İNDEKS ADRESLEMELOOK-UP TABLE

LOOK_UP_TABLE: ;look-up table’dan veri çağırırken kullanacağımız isim

DB 00FFH ;Bu bölgeye başında DB komutu ile gereken veriler gelirDB 10011100B ;bu veriler direkt olarak sayılardır.Başka türlüDB 31 ;adreslenemeyeceğinden diğer adreslemelerdeki gibiDB 013H ;istenen veri yazılırken başına ‘#’ işareti konmasına gerek yoktur.

MOV DPTR,#LOOK_UP_TABLE ; Look-Up-Table başlangıç adresini DPTR; içerisine ata.

VEYA; (tablonun başlangıç adresi biliniyorsa)

MOV DPTR,#5000H ;5000H adresi DPTR içerisine yerleştirildi.

İNDEKS ADRESLEMELOOK-UP TABLE

MOV A , SANIYE ;SANIYE program içinde deger alan bir değişkendir. ;Bu değişken ile öteleme değeri A registerına atanmış olur.

; Bu aşamda Look-Up-Table’ daki istenilen degere artık erişilebilir.MOVC A,@A+DPTR ;Look-Up-Table’ın başlangıç adresi ile akümülatörde

;bulunan tablo içerisinde istenilen değere gitmeyi ;sağlayan öteleme değeri toplanır. Bu toplam sonucu

;gitmek istediğimiz adres değeridir. Komutun icrası ;ile adreste yer alan bu bilgi akümülatore aktarılmış olur.

İNDEKS ADRESLEMELOOK-UP TABLE

İNDEKS ADRESLEMEMOV A,SAYICIMOV DPTR,# DISPLAY_TABLOSU ;look up table'ın başlangıç adresi DPTR'ye atanır

MOVC A,@A+DPTR ;A ya tablonun istenen değeri atanır.

DISPLAY_TABLOSU: ;Hanede görünecek olanı seçen tablodurDB 00000000B ;0 GörünürDB 00000001B ;1 GörünürDB 00000010B ;2 GörünürDB 00000011B ;3 GörünürDB 00000100B ;4 GörünürDB 00000101B ;5 GörünürDB 00000110B ;6 GörünürDB 00000111B ;7 GörünürDB 00001000B ;8 GörünürDB 00001001B ;9 Görünür

Bu değerler sırasıyla 0,1,2,3,4,5,6,7,8,9,A,B,C,D,E,F değerlerinin 7-segment LEDdisplay için düzenlenmiş halidir.

PROGRAMLAMADİREKTİFLER

EQU

SAYAC EQU 45HARTIM EQU 32……MOV A,SAYAC

PROGRAMLAMADİREKTİFLER

DATA

SON_DEGER DATA 45H

PROGRAMLAMADİREKTİFLER

CODE

RESET CODE 00HTIMERO_KESMESI CODE 0BH

PROGRAMLAMADİREKTİFLER

ORG

ORG 001BH ; Timer1 kesme adresiINC 32H ; 32H ‘ın içeriğini bir arttırMOV A,32H ; 32H akümülatöre yazRETI ; kesmeden geri dön

PROGRAMLAMADİREKTİFLER

INCLUDE

#INCLUDE 7_SEGMENT.ASM

PROGRAMLAMADİREKTİFLER

DB

TEK_SAYILAR: DB 1,2,3,5,7,11,13,17,19YAZI: DB ‘LCD EKRANINA YAZ’

PROGRAMLAMADİREKTİFLER

DW

TABLO: DW 2004,’G’, 1900,45,’F’

PROGRAMLAMADİREKTİFLER

END

ANA_PROGRAM:……END

KOMUT SETİ8051 Komut Seti anlatımında kullanılan operandlar ve anlamları

top related