8051 mİkrokontrolÖr aİlesİ
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 PresentationTRANSCRIPT
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ı