MİKROİŞLEMCİ LABORATUARI UYGULAMA ÖRNEKLERİ
|
|
- Erol Başer
- 8 yıl önce
- İzleme sayısı:
Transkript
1 MİKROİŞLEMCİ LABORATUARI UYGULAMA ÖRNEKLERİ UYGULAMA 1 Bu uygulamada DIP anahtar konumunu P1 den okuyup, bu konumların LED lerde görüntülenmesi için P2 de yazacağız. Bu uygulamaya ait assembly program parçası aşağıda verilmektedir. ;********************************************************** ;***** 3m LED DIP anahtar kullanılarak Giriş/Çıkış ******* ;***** deneyinin gerçekleştirilmesi ******* basla org 08000h ;baslangıç adresi, reset vektörü ljmp led_1 org 08100h led_1: mov a,p1 cpl A mov P2,a ;P1'deki,DIP anahtar konumlarını oku ;A nın tersini al ;bu değeri Port 4'e yaz nop ; sjmp led_1 ;led_1 satırından devam et end UYGULAMA 2 Bu uygulamada sizlere program yazarken ihtiyacını duyduğumuz gecikme altyordamlarının ne işe yaradığını, sürelerin ne şekilde hesaplandığını örneklerle gösterelim. Kısa süreli beklemeler için tek döngülü altyordam kullanırız. Bunun için aşağıdaki örneğimizi inceleyelim. bekle: mov r7,#0ffh ;2byte,12periyod bekle1: djnz r7,bekle1 ret ;2byte,24periyod ;1byte,24periyod Programımızda r7 kayıtçısına(register) 0FFh(255) sayısı yüklenerek bir öndeğer atanmış olur. Sonraki adımda bu kayıtçı içeriği sıfır olana kadar birer birer azaltılır. Bu azaltma işlemi bizim kurguladığımız döngüyü oluşturmaktadır. Kayıtçı r7 sıfıra ulaşınca djnz kıyaslama sonucunda program bir sonraki satır 1
2 ret ile devam etmektedir. Bu satırın işlenmesi sonucunda da program kontrolü bu altyordamın çağrıldığı yere aktarılmaktadır. Bu altyordamın çağrıldığı satırın hemen altından devam etmektedir. Bu gecikme altyoramında gecikme süresi hesabını komutların programda kaç osilatör periyodu olduğuna bakarak yaparız. Bunun için 8051 komut tablosunda her komutun kaç osilatör periyodu ile işletildiği ve kaç byte gerektiği verilmektedir. Bu tablodan bizim altyordamın 12+24*r7+ 24 = 12+24* = 6156 periyod süresi olduğu hesaplanmaktadır. Eğitim setimizin kalbi yani mikrodenetleyicinin kristali 1 saniyede priyod vermektedir. Buna göre süreyi saniye cinsine çevirmek için 6156/ işlemini yaparsak 0,56msn olduğunu buluruz. Eğer bu süre bizim ihtiyacımıza cevap vermiyorsa döngü içine NOP komutu ekleyerek süreyi uzatabiliriz. Eğer daha uzun gecikmelere ihtiyaç duyulursa o zaman iç içe iki döngü kurularak istenilen süre elde edilir. Bunun için hazırladığımız örnek altyordamı inceleyelim. ; Gecikme 1ms*r7 bekle_ms: mov r6,#250 ;2byte,12periyod bekle_ms1: nop nop djnz r6,bekle_ms1 djnz r7,bekle_ms ret ;1byte,12periyod ;1byte,12periyod ;2byte,24periyod ;2byte,24periyod ;1byte,24periyod Yukarıdaki programda iki döngü kullanılmaktadır. İç döngü 1msn lik bir gecikme sağlamakta, dış döngü ise bunun katları kadar bir gecikme olmasını sağlamaktadır. Eğer altyordam çağrılmadan önce r7 kayıtçısına 5 değeri yüklenmiş ise bu durumda 5*1 = 5milisaniyelik bir gecikme elde edilir. Daha önceki gecikmede öğrendiğimiz gibi hesaplama işlemini yapalım. (12+( )*r6+ 24)*r7+24 = (12+48*250+24)*r7 +24= r7=1 için periyod olduğunu buluruz Bunun yaklaşık 1.09 ms ettğini 12060/ işlemi sonucunda görürüz. Tam 1ms için r6 kayıtçısına hangi sayıyı yüklemeliyiz? 2
3 UYGULAMA 3 Gecikme ile ilgili öğrendiğimiz bilgileri kullanmak için ilk programımızı biraz değiştirelim. Şimdi DIP anahtardan okuduğumuz sayısal bilgi bizim ms cinsinden gecikme bilgisi olsun. En soldaki LED imizi yakalım ve bunu sürekli sağa kaydıralım. Son LED yakıldığında tekrar baştan başlasın. ;******* 3m LED DIP anahtar kullanılarak Giriş/Çıkış ********* basla org 08000h ;baslangıç adresi, reset vektörü ljmp led_2 org 08100h mov b,#80h ;en soldaki ledin yakılması mov P2,b led_2: mov a,p1 cpl a mov r7,a ;P1'deki,DIP anahtar konumlarını oku ;tersini al ;sayacı yükle acall bekle_ms mov a,b rr a jnz led_21 mov a,#80h led_21 mov P2,a ;yeniden başlat ;bu değeri Port 4'e yaz mov b,a ; sjmp led_2 ;led_1 satırından devam et ;********* Gecikme altyordamı 1ms*r7 *********************** bekle_ms: mov r6,#229 bekle_ms1: nop nop djnz r6,bekle_ms1 djnz r7,bekle_ms ret end 3
4 UYGULAMA internal data memory 30H adresinde pozitif sayılardan oluşan 25d byte uzunluğunda bir X dizisi bulunmaktadır. Y= Toplam(20 x X + 7) bağıntısı ile tanımlı sonucu hesaplayan ve bellekte 50H adresine kaydeden program. R0,#30H R1,#25 R2,#0 TEKRAR: B,#20 A,@R0 MUL AB ;SIRADAKI ELEMAN 20 ILE CARPILDI CLR C ;CARRY TEMIZLENDI ADD A,#7 ;SIRADAKI ELEMAN 7 ILE TOPLANDI JNC DEVAM1 CLR C INC B JNC DEVAM1 INC R2 DEVAM1: CLR C ADD A,50H 50H,A JNC DEVAM2 CLR C INC 51H JNC DEVAM2 CLR C INC 52H DEVAM2: CLR C A,B ADD A,51H 51H,A JNC DEVAM3 CLR C INC 52H DEVAM3: CLR C A,R2 ADD A,52H 52H,A INC R0 CJNE R0,#49H,TEKRAR END 4
5 UYGULAMA 5 P1 Portuna bağlı ortak katot 7 segment displayi sürekli 0'dan 9'a kadar saydıran program: 50H,# B ;0 51H,# B ;1 52H,# B ;2 53H,# B ;3 54H,# B ;4 55H,# B ;5 56H,# B ;6 57H,# B ;7 58H,# B ;8 59H,# B ;9 TEKRAR: INC LCALL CJNE JMP BEKLE: TEKRARB: DJNZ DJNZ R0,#4FH R0 P1,@R0 BEKLE R0,#59H,TEKRAR R0,#4FH TEKRAR R2,#0FFH R1,#0FFH R1,TEKRARB R2,TEKRARB 5
6 UYGULAMA 6 P1 Portuna bağlı bir ortak katot display, P2,0 portuna bağlı bir butona basıldıkça ondalık olarak saydırılacaktır. P2,1 portuna bağlı olan butonla da sıfırlanacaktır. Çözümü: 50H,# B ;0 51H,# B ;1 52H,# B ;2 53H,# B ;3 54H,# B ;4 55H,# B ;5 56H,# B ;6 57H,# B ;7 58H,# B ;8 59H,# B ;9 P1,# B ;0 R0,#50H TEKRAR: A,P2 ANL A,# B CJNE A,#1,RESET? CJNE R0,#59H,DEVAM JMP RESET? DEVAM: INC R0 P1,@R0 LCALL BEKLE JMP TEKRAR RESET?: A,P2 ANL A,# B CJNE A,#2,TEKRAR R0,#50H P1,@R0 LCALL BEKLE JMP TEKRAR BEKLE: TEKRARB: DJNZ DJNZ R2,#0FFH R1,#0FFH R1,TEKRARB R2,TEKRARB 6
7 UYGULAMA 7 30H adresinde 25D uzunluğundaki bir dizi yer almaktadır. Y= (X^2)-5 bağıntısı ile tanımlı Y dizisini 50H adresinden itibaren oluşturunuz: TEKRAR: INC MUL CLR SUBB JNC DEC DEVAM1: INC INC CJNE END R0,#2FH R1,#50H R0 A,@R0 B,A A,@R0 AB C A,#5 DEVAM1 R1 R0,#49H,TEKRAR UYGULAMA 8 P2.0 a basınca tek, P2.1 set olunca da çift sayan program: TEKRAR: JC JC JMP TEK: JMP CIFT: DEVAM: C DPTR,#0700H R5,#0 C,P2.0 TEK C,P2.1 CIFT DEVAM R3,#1 DEVAM R3,#0 A,R5 A,@A+DPTR P1,A 7
8 LCALL INC INC CJNE DEVAM2: JC SIFIRLA: JMP BEKLE: TEKRARB: DJNZ DJNZ BEKLE R5 R5 R5,#0AH,DEVAM2 TEKRAR A,R3 R5,A TEKRAR R2,#0FFH R1,#0FFH R1,TEKRARB R2,TEKRARB org 700h DB B ;0 DB B ;1 DB B ;2 DB B ;3 DB B ;4 DB B ;5 DB B ;6 DB B ;7 DB B ;8 DB B ;9 8
9 UYGULAMA 9 P2 portuna bağlı 8 adet ledi sağa ve sola kaydıran program: SOLA: LCALL CJNE LJMP SOLA2: RL LJMP SAGA: LCALL CJNE LJMP SAGA2: RR LJMP BEKLE: D2: D1: DJNZ DJNZ A,#01H P2,A BEKLE A,#128,SOLA2 SAGA A P2,A SOLA BEKLE A,#1,SAGA2 SOLA A P2,A SAGA R4,#0FFH R5,#0FFH R5,D1 R4,D2 9
10 UYGULAMA 10 ÜÇ BYTE LIK DEĞİŞKENİN TOPLAMINI HESAPLAYAN PROGRAM ;SORU: 3'er byte lık iki değişkenin toplanarak ;sonucun 4 bytelık bir değişken içine atandığı bir program yazınız ;İlk sayı(ilk_sayi_0/1/2) 06DH-06FH adres aralığına, ;ikinci sayı(ikinci_sayi_0/1/2) 06AH-06CH adres aralığına ;sonuc (SONUC_0/1/2/3) 066H-069H adres aralığına yerleştirilmiştir. ILK_SAYI_0 DATA 6FH ILK_SAYI_1 DATA 6EH ;ilk sayının değer ;değişkenleri ILK_SAYI_2 DATA 6DH IKINCI_SAYI_0 DATA 6CH IKINCI_SAYI_1 DATA 6BH ;ikinci sayının değer ;değişkenleri IKINCI_SAYI_2 DATA 6AH SONUC_0 DATA 69H SONUC_1 DATA 68H ;sonucun değer ;değişkenleri SONUC_2 DATA 67H SONUC_3 DATA 66H ; ;basit toplamada olduğu gibi iki sayının en küçük ;kısımları toplanır A,ILK_SAYI_0 ADD A,IKINCI_SAYI_0 JNC TPL_DVM0 INC SONUC_1 10
11 TPL_DVM0: SONUC_0,A ; ;en kucuk ikinci kısımlar toplanıyor A,ILK_SAYI_1 ADD A,IKINCI_SAYI_1 JNC TPL_DVM1 INC SONUC_2 TPL_DVM1: ADD A,SONUC_1 JNC TPL_DVM2 INC SONUC_2 TPL_DVM2: SONUC_1,A ; ;büyük kısımlar toplanıyor A,ILK_SAYI_2 ADD A,IKINCI_sAYI_2 JNC TPL_DVM3 INC SONUC_3 TPL_DVM3: ADD A,SONUC_2 JNC TPL_DVM4 INC SONUC_3 SONUC_2,A 11
12 UYGULAMA 11 N ADET BİR BYTE LIK DEĞİŞKENİN TOPLAMINI HESAPLAYAN PROGRAM ; N adet bir byte lık değişkenin toplamını iki bytelık ;bir değişken içine atayan program ;NOT:BU PROGRAM 101 ADET BİR BYTELIK SAYIYI ;TOPLAYABİLİR N_TOPLA: ;Sayılar 40h adresinden başlasın SAYAC DATA 6FH SONUC_L DATA 6EH SONUC_H DATA 6DH R0,#40H SAYAC,"n" ; N_TPL_DONGUSU: ADD A,@R0 JNC N_TPL_DVM INC SONUC_H N_TPL_DVM: INC R0 DJNZ SAYAC,N_TPL_DONGUSU ; SONUC_L,A 12
13 UYGULAMA 12 İKİ BYTE LIK DEĞİŞKENLER ÜZERİNDE ÇIKARTMA İŞLEMİ PROGRAMI ;31H ve 30H adreslerindeki 2 byte lık sayıdan ;41H ve 40H adreslerindeki sayı çıkarılıp sonuç ;51H ve 50H adreslerinde saklanmaktadır. 16BIT_CIKARMA: A,30H SUBB A,40H 50H,A JNC DEVAM ; çıkarma işleminde elde ödünç alınıyorsa 31H i azalt DEC 31H DEVAM: A,31H SUBB A,41H 51H,A 13
14 UYGULAMA 13 İKİ BYTE LIK İKİ DEĞİŞKENİN ÇARPIMINI HESAPLAYAN PROGRAM D1_H DATA 078H ;Sayıların yüksek ve düşük bytelarının atanması D1_L DATA 079H D2_H DATA 07AH D2_L DATA 07BH S1 DATA 07CH ;sonuc bytelarının yazılacağıadreslarin atanması S2 DATA 07DH S3 DATA 07EH S4 DATA 07FH ELDE1 DATA 077H ;not:lütfen işlemden önce içeriklerini sıfırlayınız. ;yığından eldelerin çekilebilmesi için kullanılacak olan değişkenler ELDE2 DATA 076H ;Iki_16bitlik_Sayiyinin_Carpimi: ;BIRINCI BASAMAKLARIN ÇARPIMI A,D1_L B,D2_L MUL AB S1,A R1,B ;Sonucun birinci byteını ata ;birinci çarpımın yüksek byteını elde için R1 de sakla ;IKINCI SAYININ BIR,BIRINCI SAYININ IKINCI BASAMAK CARPIMI A,D2_L B,D1_H MUL AB R2,A ;ikinci carpımın düşük byteını elde için R2 ye ata 14
15 PUSH B ;ikinci çarpımın yüksek byteını elde için yığına gönder ;IKINCI SAYININ IKI BIRINCI SAYININ BIRINCI BASAMAK CARPIMI A,D1_L B,D2_H MUL AB PUSH B ;Carpımın yüksek byteını elde için yığına gönder ;IKINCI BYTE ın ELDELERININ TOPLANMASI ADD A,R1 JNC DVM INC S3 ;yeni elde kontrolü ;elde durumundaki arttırma DVM: ADD A,R2 JNC DVM2 INC S3 ;yeni elde kontrolü ;elde durumundaki arttırma DVM2: S2,A ;toplamda gelen veriyi sonucun ikinci byteına ata ;IKINCI BASAMAKLARIN CARPIMI A,D2_H B,D1_H MUL AB ;UCUNCU BYTE ın ELDELERİNİN TOPLANMASI POP ELDE1 R1,ELDE1 ;ilk eldeyi yığından çek ;ve R1 e ata 15
16 POP ELDE2 R2,ELDE2 ADD A,R1 JNC DVM3 INC S4 ;ikinci eldeyi yığından çek ;ve R2 ye ata ;Birinci eldeyi ekle ;yeni elde kontrolü ;elde durumundaki arttırma DVM3: ADD A,R2 JNC DVM4 INC S4 ;yeni elde kontrolü ;elde durumundaki arttırma DVM4: ADD A,S3 JNC DVM5 INC S4 ;yeni elde kontrolü ;elde durumundaki arttırma DVM5: S3,A ;sonucun ücüncü byteını ata A,B ;DORDUNCU BYTEın ELDELERİNİN TOPLANMASI ADD A,S4 S4,A ;Sonucun dorduncu byteını ata 16
17 UYGULAMA 14 BİR BYTE LIK BİR DEĞİŞKENİN İÇERİĞİNİ DİGİTLERE (HANE DEĞERLERİNE) AYIRAN PROGRAM ;SORU:Bir baytlık bir sayı değişkenin yüzler onlar ve birler basamakları olarak ayır BASAMAKLARA_AYIRMA: BIRLER DATA 30h ONLAR DATA 31h YUZLER DATA 32h ;BIRLER basamağının tutulacağı yer ;ONLAR basamağının tutulacağı yer ;YUZLER basamağının tutulacağı yer A,#k B,#100 DIV AB ;Ayıklanıacak sayıyı A ya ata ;B ye 100 ata ;A yı B ye böl ;Not:Bu işlemin özelliğinde sonuç A ya kalan Byte yazılır YUZLER,A A,B B,#10 DIV AB ONLAR,A BIRLER,B ;Sonuc olarak gelen yüzler basamağını yaz ;Geri kalan onlar ve birler basamaklarını A ya yaz ;B ye 10 ata ;A yı B ye böl ;Onlar basamağını yaz ;Birler basamağını yaz 17
18 UYGULAMA ADET BİR BYTE LIK DEĞİŞKENİN ARİTMETİK ORTALAMASINI HESAPLAYAN PROGRAM Bu alt programda 16 sayının ortalamasını alan bir alt program örneği verilmiştir. 30H den 3FH e kadar olan 16 sayının ortalaması alınarak 61H adresinde saklanmaktadır. Ayrıca kalan 60H adresine yazılmaktadır. Öncelikle 16 sayı toplanmakta ve ardından bu toplam 16 ya bölünmektedir. Bilindiği herhangi bir tabandaki sayıyı o tabana bölmek o sayıyı sağa bir basamak kaydırmak demektir. Örneğin onluk tabanda bir sayıyı 10 a bölmek için sayıyı bir sağa kaydırmak ve dolayısıyla varsa virgülü sola kaydırmak demektir. Burada da toplanan sayıyı 16 ya bölme işlemi için toplam sayısı bir nibble sağa kaydırılmaktadır. Oluşan toplam en fazla üç nibble dan oluşabileceğinden üç defa kaydırma işlemi yapılmaktadır ORTALAMA: R0,#30H A,30H CLR C ; ilk adres ;ilk değeri yükle ; sonraki işlemler için eldeyi temizle DONGU: INC R0 ADD JNC DEVAM INC 41H CLR C ; bir sonraki adres ; değerleri topla ; elde oluşuyorsa ; bir üst dijiti bir arttır ; sonraki işlem için eldeyi temizle DEVAM: CJNE R0,#3FH,DONGU ; 15 kez toplama işlemi yap 40H,A BOLME: A,40H ANL A,#0FH ; 40H adresindeki düşük nibble ı kalan olarak ; 60H adresine yaz 60H,A A,40H ANL A,#0F0H SWAP A ; 40H adresindeki yüksek nibble ı 61 adresinin ; düşük nibble ı olarak yaz ; nibble ları yer değiştir 61H,A A,41H SWAP A ; 41H adresindeki düşük nibble ı yükle ; düşük nibble ı yüksek nibble yap 18
19 ADD A,61H 61H,A ; 61H deki düşük nibble ı yükle ; akümülatördeki yüksek nibble ile topla ve kaydet UYGULAMA 16 N BYTELIK SAYININ İŞA DEĞİŞİMİ İşaretli sayılarla direk işlem yapılamadığı zaman yada işaret değişimi yapmak gerektiğinde bu alt programla kolayca bu işlem gerçekleştirilebilmektedir. Bilindiği gibi işaretli sayıların en yüksek ağırlıklı byte ındaki en yüksek ağırlıklı biti 0 ise sayı pozitif, 1 ise sayı negatiftir. Pozitif bir sayının negatif karşılığı bulunmak için öncelikle sayının bütün bitlerinin eşleniği ( complement ) alınır. Bu işlemin ardından sayıya 1 eklenerek istenen negatif sayı bulunur. Negatif bir sayının pozitif karşılığı da aynı şekilde bulunur. Bu yöntem sayesinde mikroişlemci sistemlerde kolaylıkla işaret dönüşümü yapılabilmektedir. Aşağıda verilen örnekte 20H den 2FH e kadar olan adreslerde tutulan maximum 16 byte uzunluğundaki sayının işaret değişimi yapılmaktadır. Ancak istenirse bu uzunluk daha da arttırılabilir. Bu alt programda önce sayının uzunluğu bulunmakta sonra bu sayının işaret değişimi yapılmaktadır. SAYAC DATA 070H ELDE DATA 071H ; sayının byte sayısı (N değeri). ;işlemde oluşan eldenin tutulacağı alan ISA_DEGISIMI: R0,#020H SAYAC,#10H ;sayının LSB kısmının basladıgı adres ;sayının kac byte oldugu bilgisi A,@R0 CPL A ADD A,#01 JNC ELDE_YOK_0 ELDE,#01 ;R0 ın gösterdiği adresteki ilk byte (LSB) A ya yazılır. ;Complementi alınır. ;Sayıya 1 eklenir. ;Carry yoksa diğer byte gec. ;Carry varsa elde buffer ına yazılır. ELDE_YOK_0: INC R0 DEC SAYAC ;Carry yoksa elde bufferı temizlenir. ;Diğer byte A ya alınır ;Adres değeri 1 arttırılır. ;Byte sayısı 1 azaltılır. 19
20 A,SAYAC JZ SON TOP: CPL A ADD A,ELDE JNC ELDE_YOK ELDE,#01 ELDE_YOK: INC R0 DJNZ SAYAC,TOP ;byte sayısı kontrol için A ya alınır. ;sayı bitmişse(tek byte ise)son a git ;ilk byte tan sonraki byte ler dongu içinde tümleyenleri alınır. ;Diğer byte A ya alınır ;Tümleyeni alınır. ;ELDE buffer ındaki değer eklenir. ;Carry yoksa ELDE_YOK Label ına git. ;Carry varsa ELDE buffer ına 1 yaz. ;Carry olmaması durumunda ;ELDE buffer ı temizlenir. ;Byte yeni haliyle tekrar yazılır. ;adres değeri arttırılır. ;SAYAC 0 değilse TOP a git. SON: UYGULAMA 17 ;Belli bir k boyutlu adres aralığından oluşan bir tablodaki bölümlerde bulunan değerler arasında ; a)en küçük sayıyı bul ; b)tek sayıların adedini bul ; c)çift sayıların adedini bul ; d)en büyük sayıyı bul ;A) EN_KUCUK_DEGER: EN_KUCUK DATA 31h SAYAC DATA 30h ;Sonucun saklanacağı yeri belirle ;Sayac değerinin saklanacağı yeri belirle 20
21 R0,#TUT R1,#TUT+1 SAYAC,#k ;İlk tutulacak sayının adresine yaz ;İlk karşılaştırılacak sayının adresi ;Sayacın değerini ata CIKAR: ;Bu bölümde R0 da gösterdiğimiz sayıdan R1 de gösterdiğimiz sayıyı ;çıkararak SUBB JNC DEGIS ;elde oluşup oluşmadığına göre daha küçük olan sayı belirlenir ;Elde durumuna göre atlama veya devam etme(elde yoksa atla) DEGISME: INC R1 EN_KUCUK,R0 DJNZ SAYAC,CIKAR ;Bir dahaki sayı için R1 i arttır ;En küçük sayı adresine R0 ı ata ;Bir dahaki sayıyı deneme işlemine geç ;Alt işlemi bitir DEGIS: A,R1 R0,A INC R1 EN_KUCUK,R0 DJNZ SAYAC,CIKAR ;A yardımı ile R1 içeriğini al ;A yı R0 içine yaz ;Bir dahaki sayı için R1 i arttır ;En küçük sayı adresine R0 ı ata ;Bir dahaki sayıyı deneme işlemine geç ;Alt işlemi bitir ;B) TEK_SAYI_ADEDI: ADET DATA 30h SAYAC DATA 31h ;Tek sayı adedinin tutulacağı bölüm ;Sayacın tutulacağı bölüm 21
22 ADET,00h R0,#BASAdrr ;Adet içeriğini sıfırla ;R0 a ilk adresi ata SORGU: A,# b ANL A,@R0 ;Sorgu işlemi Sayının b sayısıyla AND ;Kapısı kullanılarak yapılır ve ANL komutunun özelliğinden ;sonuc 1 veya 0 olarak A içeriğine yazılır JNZ TEK INC R0 DJNZ SAYAC,SORGU ;A nın içeriği 0 değil ise TEK etiketine atla ;A nın içeriği 0 ise R0 ı arttır ;Yeni sayıyı sorgulamak için başa dön TEK: INC ADET INC R0 DJNZ SAYAC,SORGU ;Tek sayı ise ;ADET içeriğini arttır ;R0 ı arttır ;Yeni sayıyı sorgulamak için başa dön ;C) Çift sayı adedini bulma ;Bu alt programda 30H den 40H kadar olan adresteki sayılar içinden çift sayı adedi bulunmakta ve ;50H adresinde kaç tane olduğu gösterilmektedir. Elde ile birlikte döndürme komutu kullanılarak son ;bitin 0 veya 1 olmasına göre çift yada tek olmasına bakılır. R0,#30H CIFT: INC R0 RRC A JC DEVAM INC 50H DEVAM: 22
23 CJNE R0,40H,CIFT ;D) EN_BUYUK_DEGER: EN_BUYUK DATA 31h SAYAC DATA 30h R0,#TUT R1,#TUT+1 SAYAC,#k CIKAR: SUBB JC DEGIS ;Sonucun saklanacağı yeri belirle ;Sayac değerinin saklanacağı yeri belirle ;İlk tutulacak sayının adresini yaz ;İlk karşılaştırılacak sayının adresi ;Sayacın değerini ata ;Bu bölümde R0 da gösterdiğimiz sayıdan R1 de gösterdiğimiz sayıyı çıkararak ;elde oluşup oluşmadığına göre daha büyük olan sayı belirlenir ;Elde durumuna göre atlama veya devam etme(elde varsa atla) DEGISME: INC R1 EN_BUYUK,R0 DJNZ SAYAC,CIKAR ;Bir dahaki sayı için R1 i arttır ;En büyük sayı adresine R0 ı ata ;Bir dahaki sayıyı deneme işlemine geç ;Alt işlemi bitir DEGIS: A,R1 R0,A INC R1 EN_BUYUK,R0 DJNZ SAYAC,CIKAR ;A yardımı ile R1 içeriğini al ;A yı R0 içine yaz ;Bir dahaki sayı için R1 i arttır ;En büyük sayı adresine R0 ı ata ;Bir dahaki sayıyı deneme işlemine geç ;Alt işlemi bitir 23
24 UYGULAMA 18 Binary BCD dönüşümleri Burada binary sayılardan BCD ( Binary Coded Decimal ) sayılara ve BCD sayılardan binary sayılara dönüşüm işlemi için iki alt program yazılmıştır. BCD sayılarla işlem bildiğimiz 10 tabanında yapılan işlemlerin 16 tabanındaki mikrodenetleyici sistemlerle yapılan işlemler arasında dönüşüm için kullanılır. Binaryden BCD ye dönüşüm yapan alt programda 30H de bulunan sayı dönüşüm işleminden sonra onlar ve birler basamağı 40H de yüzler basamağı ise 41H de saklanmaktadır. BCD den binary e dönüşüm işleminde 30H adresindeki sayı dönüşüm işlemi ardından 40H adresinde saklanmaktadır. BINARY2BCD: A,30H B,#0AH DIV AB 40H,B ; birler basamağını 40h adresine yaz B,#0AH DIV AB ; 41H,A A,B SWAP A ADD A,40H 40H,A ; yüzler basamağını 41H adresine yaz ; onlar basamağını akümülatöre yaz ; onlar basamağı olarak değiştir ; onlar basamağını birler basamağıyla ; topla ve sonucu 40H adresine yaz ; BCD2BINARY: A,30H ANL A,#0F0H SWAP A ;alt nibble ını sil ;nibble ları değiştir 24
25 B,#0AH MUL AB A,B 32H,A ;A daki sayı geçici olarak 32H yaz A,30H ANL A,#0FH ADD A,32H 40H,A ;üst nibble ını sil ;geçici değerle topla ; sonucu yaz UYGULAMA 19 BINARY VE ASCII DÖNÜŞÜMLERİ Haberleşme sistemlerinde ve değişik uygulamalarda sıklıkla kullanılan binary ve ASCII dönüşümleri için kullanılan iki alt program yazılmıştır. Bilindiği gibi ASCII tablosu 256 karakterden oluşmaktadır. Bunlardan 30H ve 39H arasındaki semboller 0-9 sayılarıdır. Hexadecimal sistemde kullanılan A-F ise 41H ve 46H arasında bulunmaktadır. Ayrıca a-f küçük harfleri de 61H ve 66H arasında bulunmaktadır. Binaryden ASCII ye dönüşüm işleminde önce R0 alınan binary değerin sayı mı harf mi olduğuna bakılmakta ardından buna göre sayı ise o sayıya 30H, harf ise 61H eklenmektedir. Bu kontrol işlemi o akümülatördeki değerden 10 çıkarılmaktadır. Eğer sayı ise çıkarma işleminde çıkarılan sayı çıkan sayıdan büyük olacaktır ve elde bayrağı set edilmeyecektir, çıkarılan sayı çıkan sayıdan küçük ise elde bayrağı set edilerek o değere 41H değeri eklenecektir. Burada A-F arasındaki harf değerlerine 41H eklenerek ASCII tablosundaki büyük harfler kullanılmıştır. Gerektiğinde bu değerlere 61H yerine 41H eklenerek harflerin ASCII tablosundaki küçük harf karşılıkları da bulunabilir. ASCII den binary e dönüşümde ise yukarda anlatılanların tam tersi yapılmaktadır. Ancak burada ek olarak harf ASCII karakterlerin büyük ve küçük olması durumları için ek bir kontrol daha yapılmaktadır. İki alt programda da girilen değer R0 a çıkan sonuç ise akümülatörde saklanmaktadır. BINARY2ASCII: A,R0 CLR C SUBB A,#0AH ;R0 daki değeri akümülatöre yükle ;sonraki işlemler için elde bayrağınıtemizle ;sayı mı harf mi olduğunu bulmak için 10 çıkar JNC SAYI ;elde set edilmemişse sayı işlemine geç 25
26 ADD A,#41H JMP SON ;elde set edilmişse 41H ekle ;işlemi bitir SAYI: A,R0 ADD A,#30H ;elde set edilmemişse sayı işlemi ;değeri akümülatöre yükle ;sayı için 30H ekle SON: ;bitir ;alt programdan geri dön ASCII2BINARY: A,R0 CLR C SUBB A,#41H JNC SAYI2 ADD A,#0AH JMP SON2 ;R0 daki değeri akümülatöre yükle ;sonraki işlemler için elde bayrağını temizle ;sayı mı büyük harf mi olduğunu bulmak için 41H çıkar ;elde set edilmemişse sayı2 işlemine geç ;büyük harf için çıkan değere 10 ekle ;işlemi bitir A,R0 SUBB A,#61H ADD A,#0AH JNC SAYI2 ;R0 daki değeri akümülatöre yükle ;sayı mı küçük harf mi olduğunu bulmak için 61H çıkar ;küçük harf için çıkan değere 10 ekle ;işlemi bitir SAYI2: A,R0 SUBB A,#30H ;elde set edilmişse sayı işlemi ;R0 daki değeri akümülatöre yükle ;sayı değeri için 30H ekle SON2: ;bitir ;geri dön 26
MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı
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ı
DetaylıMikroişlemcili Sistemler ve Laboratuvarı 8.Hafta
SAKARYA ÜNİVERSİTESİ Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Bölümü Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta Doç.Dr. Ahmet Turan ÖZCERİT Doç.Dr. Cüneyt BAYILMIŞ Yrd.Doç.Dr.
DetaylıKOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR:
KOMUT TABLOSU İLE İLGİLİ AÇIKLAMALAR: 1) Etkilenen Bayraklar (E.B.) : Bazı komutlar koşturulurken PSW saklayacısındaki bayrakların değeri değişebilir. Herbir komut için etkilenen bayraklar belirtilmiştir.
DetaylıMikrobilgisayar Mimarisi ve Programlama
Mikrobilgisayar Mimarisi ve Programlama 2. Hafta Bellek Birimleri ve Programlamaya Giriş Doç. Dr. Akif KUTLU Ders web sitesi: http://www.8051turk.com/ http://microlab.sdu.edu.tr Bellekler Bellekler 0 veya
DetaylıSAUEEE.ORG. Önce C 00 Sonrası C 00
) Aşağıdaki program kodunun çalışması durumunda A, PSW, SP kaydedicilerinde ve de olan tüm değişiklikleri ve ilgili hücrelerin son değerlerini gösteriniz. Açıklama: Çözüm için aşağıdaki şablon şekilleri
DetaylıMIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı
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
DetaylıASSEMBLY DİLİNDE PROGRAMLAMA
ASSEMBLY DİLİNDE PROGRAMLAMA Bu bölümde 8051 Assembly dilinde program yazabilmek için gerekli bilgiler yer almaktadır. Bu dilde yer alan temel komut türleri ayrıntılı olarak anlatılmış, basit programlama
DetaylıSayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri
2. SAYI SİSTEMLERİ VE KODLAR Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri 2. Kayan Noktalı Sayı Sistemleri 2.1. Sabit Noktalı Sayı Sistemleri 2.1.1. Ondalık Sayı Sistemi Günlük
DetaylıAyhan Yüksel. (Son güncelleme: 06.03.2013 Berat Doğan) Tıbbi Enstrumantasyon Tasarım & Uygulamaları (06.03.2013)
ADuC 841 μ-denetleyicisi Ayhan Yüksel (Son güncelleme: 06.03.2013 Berat Doğan) Tıbbi Enstrumantasyon Tasarım & Uygulamaları (06.03.2013) 1 Sunum Planı Mikrodenetleyici ADuC841 mikrodenetleyicisi ADuC 841
DetaylıElektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar;
I. SAYI SİSTEMLERİ Elektronik sistemlerde dört farklı sayı sistemi kullanılır. Bunlar; i) İkili(Binary) Sayı Sistemi ii) Onlu(Decimal) Sayı Sistemi iii) Onaltılı(Heksadecimal) Sayı Sistemi iv) Sekizli(Oktal)
DetaylıSAYISAL ELEKTRONİK. Ege Ü. Ege MYO Mekatronik Programı
SAYISAL ELEKTRONİK Ege Ü. Ege MYO Mekatronik Programı BÖLÜM 2 Sayı Sistemleri İkilik, Onaltılık ve İKO Sayılar İkilik Sayı Sistemi 3 Çoğu dijital sistemler 8, 16, 32, ve 64 bit gibi, 2 nin çift kuvvetleri
Detaylı3.3. İki Tabanlı Sayı Sisteminde Dört İşlem
3.3. İki Tabanlı Sayı Sisteminde Dört İşlem A + B = 2 0 2 1 (Elde) A * B = Sonuç A B = 2 0 2 1 (Borç) A / B = Sonuç 0 + 0 = 0 0 0 * 0 = 0 0 0 = 0 0 0 / 0 = 0 0 + 1 = 1 0 0 * 1 = 0 0 1 = 1 1 0 / 1 = 0 1
DetaylıBÖLÜM 7 Kesmeler.
C ile 8051 Mikrodenetleyici Uygulamaları BÖLÜM 7 Kesmeler www.8051turk.com Amaçlar Kesme tanımını ve önemini kavramak 8051 mikrodenetleyicisinin kesme yapısını öğrenmek 8051 de kullanılan kesme türlerini
DetaylıBÖLÜM 6 Seri Port Đşlemleri
C ile 8051 Mikrodenetleyici Uygulamaları BÖLÜM 6 Seri Port Đşlemleri Amaçlar Seri haberleşmenin önemini kavramak 8051 seri port kontrol saklayıcılarını öğrenmek Seri port çalışma modları hakkında bilgi
DetaylıBIL 362 Mikroilemciler Dersi Arasınav Cevapları 3 Temmuz 2007
1. mov [0100h],'1' mov [0101h],'4' mov [0102h],'2' mov [0103h],'8' mov [0104h],'7' mov [0105h],'3' mov [0106h],'5' mov [0107h],'9' mov [0108h],'2' mov [0109h],'6' call ekranayazdir ; baslangic durumunu
Detaylıİ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
İ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 Aritmetik işlemler onlu sayı sisteminde yapılabileceği gibi diğer sayı sistemleri
DetaylıBÖLÜM 4. Dahili veri hafıza transfer komutlarının genel yapısı, mov <hedef>, <kaynak> şeklindedir
BÖLÜM 4 4. 8051 KOMUT KÜMESİ Farklı uzunlukta (1, 2 ve 3 Byte) ve farklı koşturma sürelerine (1,2,3 ve 4 makine çevrimi) sahip 255 komuttan oluşan ve Ek-1 de detaylı açıklamaları ile birlikte verilen 8051
DetaylıMikrobilgisayar Mimarisi ve Programlama
Mikrobilgisayar Mimarisi ve Programlama 8085 Adresleme ve Komutlar Doç.Dr. Cüneyt BAYILMIŞ Doç.Dr. Murat ÇAKIROĞLU Prof.Dr. Hüseyin EKİZ Assembly Formatı Assembly komut satırı biçimi Etiket İşlem Kodu
Detaylı2. SAYI SİSTEMLERİ. M.İLKUÇAR - imuammer@yahoo.com
Sayı Sistemleri İşlemci elektrik sinyalleri ile çalışır, bu elektrik sinyallerini 1/0 şeklinde yorumlayarak işlemcide olup bitenler anlaşılabilir hale getirilir. Böylece gerçek hayattaki bilgileri 1/0
DetaylıSayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. 2. Kayan Noktalı Sayı Sistemleri 2. SAYI SĐSTEMLERĐ VE KODLAR
.1. Sabit Noktalı Sayı Sistemleri. SAYI SĐSTEMLERĐ VE KODLAR Sayı sistemleri iki ana gruba ayrılır. 1. Sabit Noktalı Sayı Sistemleri. Kayan Noktalı Sayı Sistemleri.1.1. Sayı Sistemi Günlük yaşantımızda
DetaylıJZ TEST3 (7/3) 1 makine çevrimi süresi
Bu programda DC motorun devir sayısı hesabı motor diski ile birlikte çalışan optokuplör yardımıyla bulunuyor.motordan geribildirim sinyali optik alıcı ve verici arasına yerleştirilmiş diskin çıkışından
DetaylıDENEY II RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI
MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI DENEY II RAPORU Hazırlayan : Beycan Kahraman No (Beycan) : 040020337 Grup Arkadaşı : Hani İsmail No ( Hani ) : 040020925 Grup No : 3 Deney Adı : G/Ç (PIA) Uygulamaları
Detaylı2. SAYI SİSTEMLERİ VE KODLAR
2. SAYI SİSTEMLERİ VE KODLAR 2.1. Sabit Noktalı Sayı Sistemleri 2.1.1. Ondalık Sayı Sistemi Günlük yaşantımızda kullandığımız sayı sistemi ondalık (decimal) sayı sistemidir. Ayrıca 10 tabanlı sistem olarak
Detaylı1. Bölüm Sayı Sistemleri
1. Bölüm Sayı Sistemleri Algoritma ve Programlamaya Giriş Dr. Serkan DİŞLİTAŞ 1.1. Sayı Sistemleri Sayı sistemleri; saymak, ölçmek gibi genel anlamda büyüklüklerin ifade edilmesi amacıyla kullanılan sistemler
Detaylı8086 Mikroişlemcisi Komut Seti
8086 Mikroişlemcisi Komut Seti X86 tabanlı mikroişlemcilerin icra ettiği makine kodları sabit olmasına rağmen, programlama dillerinin komut ve ifadeleri farklı olabilir. Assembly programlama dilininde
DetaylıMikrobilgisayarda Aritmetik
14 Mikrobilgisayarda Aritmetik SAYITLAMA DİZGELERİ Sayıları göstermek (temsil etmek) için tarih boyunca türlü simgeler kullanılmıştır. Konumuz bu tarihi gelişimi incelemek değildir. Kullanılan sayıtlama
DetaylıSAYI SİSTEMLERİ. 1. Sayı Sistemleri. Sayı Sistemlerinde Rakamlar
SAYI SİSTEMLERİ 1. Sayı Sistemleri Sayı sistemleri; saymak, ölçmek gibi genel anlamda büyüklüklerin ifade edilmesi amacıyla kullanılan sistemler olarak tanımlanmaktadır. Temel olarak 4 sayı sistemi mevcuttur:
DetaylıFatih University- Faculty of Engineering- Electric and Electronic Dept.
SAYISAL DEVRE TASARIMI EEM122 Ref. Morris MANO & Michael D. CILETTI SAYISAL TASARIM 4. Baskı Fatih University- Faculty of Engineering- Electric and Electronic Dept. SAYISAL DEVRE NEDİR? Mühendisler, elektronik
DetaylıBLM221 MANTIK DEVRELERİ
2. HAFTA BLM221 MANTIK DEVRELERİ Prof. Dr. Mehmet Akbaba mehmetakbaba@karabük.edu.tr KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi Temel Kavramlar Tümleyen Aritmetiği r Tümleyeni
Detaylı2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.
2. Sayı Sistemleri Bilgisayar elektronik bir cihaz olduğu için elektrik akımının geçirilmesi (1) yada geçirilmemesi (0) durumlarını işleyebilir. Bu nedenle ikili sayı sistemini temel alarak veri işler
DetaylıMIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı
MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı BÖLÜM 5 Zamanlayıcılar Zamanlayıcı/Sayıcı 3 Zamanlayıcı/Sayıcı Zamanlayıcı: Zaman geciktirici olarak kullanıldığında verilen isim. Sayıcı:
DetaylıMTM 305 MİKROİŞLEMCİLER
KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Basit Giriş/Çıkış Teknikleri IN ve OUT komutları X86 komut kümesi
Detaylı2. SAYI SİSTEMLERİ 2. SAYI SİSTEMLERİ
Decimal ( Onlu 0,,,3,4,5,6,7,8,9 On adet digit). D ile gösterilir. Binary ( İkili 0, iki adet digit ). B ile gösterilir. Oktal ( Sekizli 0,,,3,4,5,6,7 sekiz adet digit ). O ile gösterilir. Hexadecimal
DetaylıHer bir kapının girişine sinyal verilmesi zamanı ile çıkışın alınması zamanı arasında çok kısa da olsa fark bulunmaktadır -> kapı gecikmesi
Kapılardaki gecikme Her bir kapının girişine sinyal verilmesi zamanı ile çıkışın alınması zamanı arasında çok kısa da olsa fark bulunmaktadır -> kapı gecikmesi Kapılardaki gecikme miktarının hesaplanması
DetaylıBir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir.
İşaretli Tamsayı Gösterimi 1. İşaretli Büyüklük Bir işaretli büyüklük sayısında en soldaki basamak bir işaret içerir. Diğer basamaklarda ise sayısal değerin büyüklüğü (mutlak değeri) gösterilir. Örnek
DetaylıGiriş MİKROİŞLEMCİ SİSTEMLERİ. Elektronik Öncesi Kuşak. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Kuşak. Bilgisayar teknolojisindeki gelişme
Giriş MİKROİŞLEMCİ SİSTEMLERİ Bilgisayar teknolojisindeki gelişme Elektronik öncesi kuşak Elektronik kuşak Mikroişlemci kuşağı Yrd. Doç. Dr. Şule Gündüz Öğüdücü 1 Bilgisayar Tarihi Elektronik Öncesi Kuşak
DetaylıİLERI MIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı
İLERI MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı BÖLÜM 3 LCD Gösterge Kullanımı +5 LCD Modülün Bağlantısı 8K2 1K +5 10 P0.5 P0.6 P0.7 P2.0 P2.1 P2.2 P2.3 P2.4 P2.5 P2.6 P2.7 1 2 3
Detaylımustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar
Algoritma ve Programlamaya Giriş mustafacosar@hitit.edu.tr http://web.hitit.edu.tr/mustafacosar İçerik Algoritma Akış Diyagramları Programlamada İşlemler o o o Matematiksel Karşılaştırma Mantıksal Programlama
DetaylıMTM 305 MĠKROĠġLEMCĠLER
KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ Mantıksal Komutlar AND OR XOR NOT TEST And Komutu Yapı olarak AND
DetaylıBILGISAYAR ARITMETIGI
1 BILGISAYAR ARITMETIGI Sayısal bilgisayarlarda hesaplama problemlerinin sonuçlandırılması için verileri işleyen aritmetik buyruklar vardır. Bu buyruklar aritmetik hesaplamaları yaparlar ve bilgisayar
Detaylı2. Sayı Sistemleri. En küçük bellek birimi sadece 0 ve 1 değerlerini alabilen ikili sayı sisteminde bir basamağa denk gelen Bit tir.
2. Sayı Sistemleri Bilgisayar elektronik bir cihaz olduğu için elektrik akımının geçirilmesi (1) yada geçirilmemesi (0) durumlarını işleyebilir. Bu nedenle ikili sayı sistemini temel alarak veri işler
DetaylıDENEY III RAPORU MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI
MİKROİŞLEMCİ UYGULAMALARI LABORATUVARI DENEY III RAPORU Hazırlayan : Beycan Kahraman No (Beycan) : 040020337 Grup Arkadaşı : Hani İsmail No ( Hani ) : 040020925 Grup No : 3 Deney Adı : G/Ç (PIA) Uygulamaları
Detaylı8086 Mikroişlemcisi Komut Seti
8086 Mikroişlemcisi Komut Seti SUB ve SBB komutları: SUB (Subtract) yani çıkartma SBB ise borç ile çıkart (SuBtract with Borrow) anlamına gelir. Her iki çıkartma işlemi bir çıkartma sonucu üretmenin yanında
DetaylıMikroişlemcili Sistemler ve Laboratuvarı
SAKARYA ÜNİVERSİTESİ Bilgisayar ve Bilişim Bilimleri Fakültesi Bilgisayar Mühendisliği Bölümü Mikroişlemcili Sistemler ve Laboratuvarı Zamanlayıcılar ve Sayıcılar Doç.Dr. Ahmet Turan ÖZCERİT Doç.Dr. Cüneyt
DetaylıMTM 305 MĠKROĠġLEMCĠLER
KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ KONTROL KOMUTLARI Program Kontrol Komutları Program akıģını bir
DetaylıAlgoritma ve Programlamaya Giriş
Algoritma ve Programlamaya Giriş Algoritma Bir sorunu çözebilmek için gerekli olan sıralı ve mantıksal adımların tümüne Algoritma denir. Doğal dil ile yazılabilir. Fazlaca formal değildir. Bir algoritmada
Detaylın. basamak... 4. basamak 3. basamak 2. basamak 1. basamak Üstel değer 10 n-1... 10 3 10 2 10 1 10 0 Ağırlık 10 n-1...
KAYNAK : http://osmanemrekandemir.wordpress.com/ SAYI SISTEMLERI Decimal(Onlu) Sayı sistemi günlük hayatta kullandığım ız 0,1,2,3,4,5,6,7,8,9 rakamlarından oluşur. Decimal(Onlu) Sayı sisteminde her sayı
DetaylıSayı sistemleri-hesaplamalar. Sakarya Üniversitesi
Sayı sistemleri-hesaplamalar Sakarya Üniversitesi Sayı Sistemleri - Hesaplamalar Tüm sayı sistemlerinde sayılarda işaret kullanılabilir. Yani pozitif ve negatif sayılarla hesaplama yapılabilir. Bu gerçek
DetaylıAdresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar
Adresleme Modları 1 Adresleme Modları İşlenenin nerede olacağını belirtmek için kullanılırlar. Kod çözme aşamasında adresleme yöntemi belirlenir ve işlenenin nerede bulunacağı hesaplanır. Mikroişlemcide
DetaylıB.Ç. / E.B. MİKROİŞLEMCİLER
1 MİKROİŞLEMCİLER RESET Girişi ve DEVRESİ Program herhangi bir nedenle kilitlenirse ya da program yeniden (baştan) çalıştırılmak istenirse dışarıdan PIC i reset yapmak gerekir. Aslında PIC in içinde besleme
Detaylı1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı
1. PORTB ye bağlı 8 adet LED i ikili sayı sisteminde yukarı saydıracak programı yazınız. SAYAC1 EQU 0X20 devam movlw B'00000000' call DELAY incf PORTB,f ;Akü ye 0' sabit değerini yaz. ;Aküdeki değer PORTB
Detaylı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.
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. Kontrol uygulamaları için optimize edilmiş 8 bitlik CPU Genişletilmiş
Detaylıd) x TABAN ARĐTMETĐĞĐ
YILLAR 00 00 00 00 00 007 008 009 010 011 ÖSS-YGS - 1 1 - - - - - - - TABAN ARĐTMETĐĞĐ Genel olarak 10 luk sayı sistemini kullanırız fakat başka sayı sistemlerine de ihtiyaç duyarız Örneğin bilgisayarın
DetaylıKASIRGA -4 Buyruk Tasarımı Belgesi. 30.04.2008 Ankara
KASIRGA -4 Buyruk Tasarımı Belgesi 30.04.2008 Ankara 1 İŞLEMLER 00000000 SYSCALL 00000001 HLT 00000010 DEBUG 00000011 CONTINUE S-TİPİ 00000100 NOP 00000101 IN 00000110 OUT 00000111 BRET 00001000 ADD 00001001
Detaylı# 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
# PIC enerjilendiğinde PORTB nin 0. biti 1 olacak - LIST=16F84 - PORTB yi temizle - BANK1 e geç - PORTB nin uçlarını çıkış olarak yönlendir - BANK 0 a geç - PORT B nin 0. bitini 1 yap - SON ;pic tanıtması
DetaylıSayılar Teorisi SAYILAR TEORİSİ VE SAYILAR
Sayılar Teorisi SAYILAR TEORİSİ VE SAYILAR Sayılar; insanların ilk çağlardan beri ihtiyaç duyduğu bir gereksinim olmuştur; sayılar teorisi de matematiğin en eski alanlarından birisidir. Sayılar teorisi,
DetaylıSayı Sistemleri. Onluk, İkilik, Sekizlik ve Onaltılık sistemler Dönüşümler Tümleyen aritmetiği
Sayı Sistemleri Onluk, İkilik, Sekizlik ve Onaltılık sistemler Dönüşümler Tümleyen aritmetiği Giriş Bilgisayar ış ünyaan verileri sayılar aracılığı ile kabul eer. Günümüz teknolojisine bu işlem ikilik
DetaylıEBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA
6. HAFTA EBG101 PROGRAMLAMA TEMELLERİ VE ALGORİTMA Öğr. Gör. S. M. Fatih APAYDIN apaydin@beun.edu.tr EMYO Bülent Ecevit Üniversitesi Kdz. Ereğli Meslek Yüksekokulu ALGORİTMA ÖRNEK1: İki sayının toplamı
DetaylıDENEY-2. SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ
DENEY-2 SABANCI ATL ÖĞRETMENLERİNDEN YAVUZ AYDIN ve UMUT MAYETİN'E VERDİKLERİ DESTEK İÇİN TEŞEKKÜR EDİYORUZ 31 DENEY 2-1: YEDİ SEGMENT GÖSTERGE ÜZERİNDE VERİ GÖRÜNTÜLEME AMAÇ: Mikrodenetleyicinin portuna
DetaylıSAYILAR DOĞAL VE TAM SAYILAR
1 SAYILAR DOĞAL VE TAM SAYILAR RAKAM: Sayıları ifade etmek için kullandığımız 0, 1, 2, 3, 4, 5, 6, 7, 8, 9 sembollerinden her birine rakam denir. Soru: a ve b farklı rakamlar olmak üzere a + b nin alabileceği
Detaylı14. MİKROİŞLEMCİ PROGRAMLAMA TEKNİKLERİ
221 14. MİKROİŞLEMCİ PROGRAMLAMA TEKNİKLERİ 14.1. Programlamaya Giriş Örnek Pr. 14-1 0040h bellek adresindeki 8-bit veriyi 0041h adresine transfer eden programõ yazõnõz. 0040H adresindeki veriyi A yazmacõna
DetaylıEGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI
EGE ÜNİVERSİTESİ EGE MYO MEKATRONİK PROGRAMI 23.02.2015 Yrd.Doç.Dr. Dilşad Engin PLC Ders Notları 2 PROGRAMLANABİLİR DENETLEYİCİLER NÜMERİK İŞLEME 23.02.2015 Yrd.Doç.Dr. Dilşad Engin PLC Ders Notları 3
DetaylıMTM 305 MİKROİŞLEMCİLER
KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Ekran ve Klavye İşlemleri EKRAN İŞLEMLERİ Ekrana yazdırma işlemleri
DetaylıÖzet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma
Özet DERS 5 Çarpma, Bölme ve Dallanmalar Öğr. Gör. Eren ERENER AİBÜ/DMYO Neredeyiz Çarpma Bölme Karşılaştırma Jump komutları Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma Kaydediciler ve bellek
DetaylıSayıtlama Dizgeleri. (a n a n-1 a n1 a n0. b 1 b 2 b m )r. simgesi şu sayıyı temsil eder.
1 Sayıtlama Dizgeleri Hint-Arap Sayıtlama Dizgesi Sayıları göstermek (temsil etmek) için tarih boyunca türlü simgeler kullanılmıştır. Sümerlerin, Mısırlıların, Romalıların ve diğer uygarlıkların kullandıkları
Detaylı16F84 ü tanıt, PORTB çıkış MOVLW h FF MOWF PORTB
MİKROİŞLEMCİLER VE MİKRODENETLEYİCİLER 1 - DERS NOTLARI (Kısım 3) Doç. Dr. Hakan Ündil Program Örneği 9 : Gecikme altprogramı kullanarak Port B ye bağlı tüm LED leri yakıp söndüren bir program için akış
DetaylıT.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ
T.C. KOCAELİ ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ BİLİŞİM SİSTEMLERİ MÜHENDİSLİĞİ Yrd. Doç. Dr. Mustafa Hikmet Bilgehan UÇAR 1 MANTIK DEVRELERİ Yrd. Doç. Dr. Mustafa Hikmet Bilgehan UÇAR Digital Electronics
DetaylıDERS 7 PIC 16F84 PROGRAMLAMA İÇERİK. PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü
DERS 7 PIC 16F84 PROGRAMLAMA İÇERİK PIC 16F84 örnek programlar Dallanma komutları Sonsuz döngü Ders 7, Slayt 2 1 PROGRAM 1 RAM bellekte 0x0C ve 0x0D hücrelerinde tutulan iki 8-bit sayının toplamını hesaplayıp
DetaylıBILGISAYAR ARITMETIGI
1 BILGISAYAR ARITMETIGI BÖLME ALGORİTMALARI Bölme işlemi aşağıdaki şekilde sayısal olarak gösterilmektedir. Bölen B 5 bit, bölünen A 10 bittir. Bölünenin önemli 5 biti bölenle karşılaştırılır. Bu 5 bit
DetaylıAlgoritmalar ve Programlama. DERS - 2 Yrd. Doç. Dr. Ahmet SERBES
Algoritmalar ve Programlama DERS - 2 Yrd. Doç. Dr. Ahmet SERBES Programlama Bilgisayara ne yapması gerektiğini, yani onunla konuşmamızı sağlayan dil. Tüm yazılımlar programlama dilleri ile yazılır. 1.
DetaylıALGORİTMA (ALGORITHM) M.İLKUÇAR -
ALGORİTMA (ALGORITHM) DÖNGÜLER (LOOPS) Döngü : Koşul sağlandığı sürece (true), işlem yada işlemlerin tekrarlanması. Örneğin; ekrana 100 adet * yazdırılması, x! v.b. gibi işlemlerde döngüler kullanılır.
DetaylıSAYI VE KODLAMA SİSTEMLERİ. Teknoloji Fakültesi/Bilgisayar Mühendisliği
SAYI VE KODLAMA SİSTEMLERİ Teknoloji Fakültesi/Bilgisayar Mühendisliği Neler Var? Sayısal Kodlar BCD Kodu (Binary Coded Decimal Code) - 8421 Kodu Gray Kodu Artı 3 (Excess 3) Kodu 5 de 2 Kodu Eşitlik (Parity)
DetaylıBİLGİSAYAR PROGRAMLAMA DERSİ
BİLGİSAYAR PROGRAMLAMA DERSİ 5. DERS NOTU Konu: Döngü Yapıları Hazırlayan: Yrd. Doç. Dr. Ahmet DUMLU DÖNGÜ YAPILARI Birçok uygulamada bazı işlemlerin tekrar tekrar gerçekleştirilmesi gerekir. Bizlere bu
DetaylıProgramlama Dilleri. C Dili. Programlama Dilleri-ders02/ 1
Programlama Dilleri C Dili Programlama Dilleri-ders02/ 1 Değişkenler, Sabitler ve Operatörler Değişkenler (variables) bellekte bilginin saklandığı gözlere verilen simgesel isimlerdir. Sabitler (constants)
DetaylıMikroişlemciler Ara Sınav---Sınav Süresi 90 Dk.
HARRAN ÜNİVERSİTESİ BİLGİSAYAR MÜHENDİSLİĞİ BÖLÜMÜ Mikroişlemciler Ara Sınav---Sınav Süresi 90 Dk. 15 Nisan 2014 1) (10p) Mikroişlemcilerle Mikrodenetleyiceleri yapısal olarak ve işlevsel olarak karşılaştırarak
DetaylıMikroişlemcilerde Aritmetik
Mikroişlemcilerde Aritmetik Mikroişlemcide Matematiksel Modelleme Mikroişlemcilerde aritmetik işlemler (toplama, çıkarma, çarpma ve bölme) bu iş için tasarlanmış bütünleşik devrelerle yapılır. Bilindiği
DetaylıMTM 305 MİKROİŞLEMCİLER
KARABÜK ÜNİVERSİTESİ TEKNOLOJİ FAKÜLTESİ MEKATRONİK MÜHENDİSLİĞİ BÖLÜMÜ MTM 305 MİKROİŞLEMCİLER Arş. Gör. Emel SOYLU Arş. Gör. Kadriye ÖZ Alt Programlar (Procedure) Büyük programları tek bir kod bloğu
DetaylıBLM221 MANTIK DEVRELERİ
1. HAFTA BLM221 MANTIK DEVRELERİ Prof. Dr. Mehmet Akbaba mehmetakbaba@karabuk.edu.tr KBUZEM Karabük Üniversitesi Uzaktan Eğitim Uygulama ve Araştırma Merkezi Temel Kavramlar Sayı Sistemlerinin İncelenmesi
DetaylıBIL 362 Mikroilemciler Dersi Final Sınavı Cevapları
1. MACRO YAZDIR HEXSAYI MOV AX,HEXSAYI ; sayi 10 a bolunerek her seferinde kalan MOV DL,10 ; alinmistir. MOV CL,0 DONGU: DIV DL MOV BL,AH XOR AH,AH PUSH BX ; stack'a once birler basamagi atilir CMP AL,10
DetaylıSAYISAL DEVRELER. İTÜ Bilgisayar Mühendisliği Bölümündeki donanım derslerinin bağlantıları
SAYISAL DEVRELER Doç.Dr. Feza BUZLUCA İstanbul Teknik Üniversitesi Bilgisayar Mühendisliği Bölümü Sayısal Devreler Ders Notlarının Creative Commons lisansı Feza BUZLUCA ya aittir. Lisans: http://creativecommons.org/licenses/by-nc-nd/3.0/
DetaylıÇ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ı.
KTÜ Mühendislik Fakültesi Bilgisayar Mühendisliği Bölümü Mikroişlemciler Laboratuarı ADIM MOTORUNUN MİKROBİLGİSAYARLARLA DENETİMİ 1. GENEL TANITIM Adım motorları, küçük momentli sayısal uygulamalarda son
DetaylıElektroniğe Giriş 1.1
İTÜ Bilgisayar Mühendisliği Bölümündeki donanım derslerinin bağlantıları Sayısal devreler bölümdeki diğer donanım dersinin temelini oluşturmaktadır. Elektroniğe Giriş SAYISAL DEVRELER Sayısal Elektronik
DetaylıBÖLÜM 2 SAYI SĐSTEMLERĐ (NUMBER SYSTEMS)
BÖLÜM 2 SAYI SĐSTEMLERĐ (NUMBER SYSTEMS) Giriş Sayma ve sayı kavramının yeryüzünde ilk olarak nerede ve ne zaman doğduğu bilinmemekle beraber, bazı buluntular Sümer lerin saymayı bildiklerini ve bugün
DetaylıMİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil Bahar-Vize
MİKRO DENETLEYİCİLER II DERS NOTLARI (VİZE KONULARI) Prof. Dr. Hakan Ündil 2014-2015 Bahar-Vize BÖLÜM 7 - LOJİK İŞLEM KOMUTLARI 7.1. RLF Komutu (Bir bit Sola Kaydırma) Bir file register içinde bulunan
DetaylıBLM1011 Bilgisayar Bilimlerine Giriş I
BLM1011 Bilgisayar Bilimlerine Giriş I by Z. Cihan TAYŞİ İçerik Sayı sistemleri Binary, Octal, Decimal, Hexadecimal Operatörler Aritmetik operatörler Mantıksal (Logic) operatörler Bitwise operatörler Yıldız
DetaylıSAYISAL ELEKTRONİK DERS NOTLARI:
SAYISAL ELEKTRONİK DERS NOTLARI: SAYISAL (DİJİTAL) ELEKTRONİK Günümüz Elektroniği Analog ve Sayısal olmak üzere iki temel türde incelenebilir. Analog büyüklükler sonsuz sayıda değeri içermesine rağmen
DetaylıMTM 305 MĠKROĠġLEMCĠLER
KARABÜK ÜNĠVERSĠTESĠ TEKNOLOJĠ FAKÜLTESĠ MEKATRONĠK MÜHENDĠSLĠĞĠ BÖLÜMÜ MTM 305 MĠKROĠġLEMCĠLER ArĢ. Gör. Emel SOYLU ArĢ. Gör. Kadriye ÖZ Aritmetik İşlemler Aritmetik iģlemler toplama, çıkartma, çarpma
DetaylıProgram Kodları. void main() { trisb=0; portb=0; while(1) { portb.b5=1; delay_ms(1000); portb.b5=0; delay_ms(1000); } }
Temrin1: PIC in PORTB çıkışlarından RB5 e bağlı LED i devamlı olarak 2 sn. aralıklarla yakıp söndüren programı yapınız. En başta PORTB yi temizlemeyi unutmayınız. Devre Şeması: İşlem Basamakları 1. Devreyi
DetaylıPIC TABANLI, 4 BASAMAKLI VE SER
PIC TABANLI, 4 BASAMAKLI VE SERİ BAĞLANTILI 7 SEGMENT LED PROJESİ Prof. Dr. Doğan İbrahim Yakın Doğu Üniversitesi, Mühendislik Fakültesi, Bilgisayar Mühendisliği Bölümü, Lefkoşa E-mail: dogan@neu.edu.tr,
DetaylıLPC2104 Mikro Denetleyicisini KEIL İle Programlamak
LPC2104 Mikro Denetleyicisini KEIL İle Programlamak Program yazabilmek için öncelikle komutları tanımamız ve ne işe yaradıklarını bilmemiz gerekir. Komutlar yeri geldikçe çalışma içerisinde anlatılacaktır.
DetaylıBahar Dönemi. Öğr.Gör. Vedat MARTTİN
Bahar Dönemi Öğr.Gör. Vedat MARTTİN 8086/8088 MİKROİŞLEMCİSİ İÇ MİMARİSİ Şekilde x86 ailesinin 16-bit çekirdek mimarisinin basitleştirilmiş bir gösterimi verilmiştir. Mikroişlemci temel iki ayrı çalışma
DetaylıALGORİTMA VE PROGRAMLAMA I DERS NOTU#8
ALGORİTMA VE PROGRAMLAMA I DERS NOTU#8 YZM 1105 Celal Bayar Üniversitesi Hasan Ferdi Turgutlu Teknoloji Fakültesi 6. BÖLÜM 2 Çok Boyutlu Diziler Çok Boyutlu Dizi 3 Bir dizi aşağıdaki gibi bildirildiğinde
DetaylıMIKRODENETLEYICILER. Ege Üniversitesi Ege MYO Mekatronik Programı
MIKRODENETLEYICILER Ege Üniversitesi Ege MYO Mekatronik Programı BÖLÜM 7 Kesmeler Kesme (Interrupt) Donanım işareti ile mikroişlemcinin program akışını değiştirme işlemine kesme denir. Kullanım amacı;
DetaylıKonular MİKROİŞLEMCİ SİSTEMLERİ. Giriş. Bilgisayar Tarihi. Elektronik Kuşak. Elektronik Öncesi Kuşak
Konular MİKROİŞLEMCİ SİSTEMLERİ Giriş: Bilgisayar Tarihi Mikroişlemci Temelli Sistemler Sayı Sistemleri Doç. Dr. Şule Gündüz Öğüdücü http://ninova.itu.edu.tr/tr/dersler/bilgisayar-bilisim-fakultesi/30/blg-212/
DetaylıBMT 101 Algoritma ve Programlama I 6. Hafta. Yük. Müh. Köksal Gündoğdu 1
BMT 101 Algoritma ve Programlama I 6. Hafta Yük. Müh. Köksal Gündoğdu 1 C++ Veri Tipleri Yük. Müh. Köksal Gündoğdu 2 Veri Tipleri Tam sayı ve Ondalık sayı veri tipleri Veri Tipi Alt Sınıf Üst Sınıf Duyarlı
DetaylıÖRNEK 1: Verilen iki sayının toplamının bulunmasının algoritması aşağıdaki gibi yazılır:
ALGORİTMANIN HAZIRLANMASI, herhangi bir sorunun çözümü için izlenecek yol anlamına gelmektedir. Çözüm için yapılması gereken işlemler hiçbir alternatif yoruma izin vermeksizin sözel olarak ifade edilir.
DetaylıSAYI SİSTEMLERİ. Sayı Sistemleri için Genel Tanım
SAYI SİSTEMLERİ Algoritmalar ve Programlama dersi ile alakalı olarak temel düzeyde ve bazı pratik hesaplamalar dahilinde ikilik, onluk, sekizlik ve onaltılık sayı sistemleri üzerinde duracağız. Özellikle
DetaylıBilgisayarların Gelişimi
Bilgisayarların Gelişimi Joseph Jacquard (1810) Bilgisayar tabanlı halı dokuma makinesi Delikli Kart (Punch Card) Algoritma ve Programlama 6 Bilgisayar Sistemi 1. Donanım fiziksel aygıtlardır. 2. Yazılım
DetaylıINTEGER OVERFLOW ***************************************************************/
INTEGER OVERFLOW BELGE HAKKINDA Bu belge "GNU Free Documentation Licence" ile kaynak gösterilmek ve önceden yazarından izin alınmak kaydıyla yeniden yayınlanabilir. Bu belgedeki eksik, yanlış ya da geliştirilmesi
DetaylıInternet Programming II
Internet Programming II Elbistan Meslek Yüksek Okulu 2016 2017 Bahar Yarıyılı Öğr.Gör. Murat KEÇECĠOĞLU 1 Fonksiyonlar Değişken Kontrol Fonksiyonları isset() Fonksiyonu Parametre olarak aldığı değişken
Detaylı