(http://i.hizliresim.com/8g1NWW.jpg)
1,2,3 sorularının cevaplarını bilmiyorum aslı da azda olsa bişey karalıyorum ama emin olamıyorum o yüzden elinizden geldiğince cevaplar mısınız ? 2 ve 3 sorular 1. Sorunun a ve b şıkları gibi yapıyorduk okulda ona göre cevaplar mısınız ?
Sınıfı geçmem için çok gerekli
Arkadaşlar yardım edebilecek kimse yok mu ?
Sınav tarihi gecmis. Sure 45dk demis.
Cevapları sonradan mi teslim edilecek?
Hoca kağıdı sınavda cevaplanmis mi sayacak ?
Bütünleme sınavında da aynısını soracak hocam o yüzden rica ettim cevap için
Sadece cevap yeterli mi komple çözümmü lazım?
Hocam şimdi 1. Sorunun a şıkkında toplama var sonra CPL A hex bin çevirip tersini almak RL A 1 Bit sola kaydır swap a yer değiştir komutu yani demek istediğim
Hex toplayıp bin yapıp diğer kodları yapacaZ
Toplama yapıp = nedir ?
Cpl a= nedir ?
Rl a = ?
Swap a = ?
Bu şekilde çözülmesi lazım a ve b şıkları 2. Soru ise direk org 000h yazıp alt alta yazılabilir açıklamaya gerek yok onda
Bu şekilde yapabilecek var mı acaba ücreti neyse onuda verebilirim ama bana 1 hazirana kadar lazım teşekkür ederim
Bu forumda genelde ben şunu şunu yaptım şöyle oldu ama
böyle olması gerekiyordu nerede hata yaptım,
şunu şöyle yaptım doğru mu şeklinde yardımlaşma var,
yani alın çözün verin pek olacak bir şey değil.
Eğer güzel açıklamalarıyla bunu yazdım
doğru mudur gibi eksiklerini tamamlamamızı istersen gönülü olarak yardımcı oluyoruz.
Ücretiyle yaptırmak istiyorsan
forumun iş ilanları kısmına
iletişim adresinle konu açman lazım ama
yeterli mesajın olmadığından konu açamazsın sanırım.
http://elektronikprojem.com/ (http://elektronikprojem.com/)
gibi sitelerde de yaptırabilirsin.
benim için çom gerekli o yüzden ücretinide öderim dedim yanlış anlaşıldıysam özür dilerim başka yerlerde deva aramam gerekiyor teşekkür ederim ilginiz için :)
Bu forumda da yardımcı olunur da birinci soruyu kendi başına çözemezsen diğer soruları hiç çözemezsin. Dahası bu dersi hiç ama hiç anlamamış olursun.
1. soruda komutlar adım adım işletildiğinde register değerleri hangi değerleri alıyor yaz, söz diğerlerini biz çözeceğiz.
(http://i.hizliresim.com/n7EjB0.jpg)
Toplama işlemini internetteki bir siteden yaptım hex toplama bilmiyorum yarın okulda hocadan öğrenecem ama
Bu kadar yapabildim umarım doğrudur doğru ise gerisini siz yapacaksınız söz dediniz hocam 😁
Bu arada uzaktan eğitim mi?
Yok burada ücretiyle yapılmaz.
Buraya öğrenmek için gelmen lazım :)
Ama bir açıdan yav bunuda öğrenmeyeyim, ben istemiyorum arkadaş
hissini çok iyi anlayabiliyorum.
Ben yazılım kısmını çok seviyorum,
diğer dersler bana çok angarya geliyordu
ama hepsini öğrenerek geçtim.
Yinede seçmeli olsaydı almayacağım birçok ders olurdu.
Belki herkes programlama öğrenmek zorunda değildir,
adam ben sadece elektrik üzerine çalışacağım banane yazılımdan diyebilir -belki-.
Hocam zaten siteyi sürekli geziyorum meraklıyım ama şöyle bişey var giç bir bölümde bir şey anlamadım çok farklı konular çünkü okulda hiç bunları görmedik gibi bişey forumdaki konulardan bahsediyorum kendi sınav sorularımı okulda yaptık hatta hoca ders anlatırken hep eşlik ediyordum arkadaşlarımı çalıştırdım onlar yüksek not aldı ben kaldım programla konusunda okulda plc de iyim ben vize 70 final haftaya perşembe olacaz ama bu soruların anlatımlı bit şekilde cevap istiyorum hem öğrenim sınavda da yapim diye direk cevap istemiyorum ki benden bu kadar mesajlarım zaten mod onaylı ne zaman okursunuz bilemiyoru
Hemen okuduk mesajını, sinirlenme hemen :)
Seni tanımıyoruz, ancak mesajlarını okuyoruz.
Yukarıdaki foto güzel, öğrenmek istiyorum de canımızı al.
8051 den anlamam ama asm her yerde asm
Z hocam daha çok yardımcı olur ama
elimden geldiğince açıklarım bende.
mesaj birleştirme:: 14 Mayıs 2015, 21:16:13
Hex toplama dediğin,
16lık tabanda toplama,
zaten hex > hexadecimal > 16lık sayı tabanı diyebiliriz.
Yani sayı basamakları 10luk tabanda 1ler 10lar 100ler 1000ler 10üzeri0 10üzeri1 10üzeri2 10üzeri3
ama 16lık tabanda 1ler 16lar 256 lar ... 16üzeri0 16üzeri1 16üzeri2 16üzeri3... şeklinde gider.
hex toplamayı birlaç şekilde yapabilirsin,
ilki 10luk tabanda nasıl toplama yapıyorsan
aynı şekilde 16lık tabanda yaparsın,
en düşük basamağı toplarken eğer sayı 15 den büyük çıkarsa bir elde olur onu bir soldaki basamağa verirsin
Senin örneğinde
26
4B
---- +
71 6+B > 10luk tabanda 6 + 11 = 17 yani 16 + 1 16 olan kısım elde oldu 1 de birler basamağının sonucu
sonra 2+4 = 6 1de elde etti 7
veya 26 yı ve 4B yi 10luk tabana çevirip topla sonra geri 16lık tabana çevir.
ORG 2000H
MOV A,#26H
ADD A,#48H
CPL A
RL A
SWAP A
MOV P3,A
END
En tepedeki ORG 2000H altındaki programın hex 2000 adresinden başladığını söylüyor. Soru üzerinde etkisi yok.
MOV A,#26H Accumulatore Hex 26 sayısını yükle demek.
ADD A, #48 Accumatordeki değere Hex 48 ekle demek. Yani ikinci satıra gelindiğinde Accumulatır içinde Hex 26 + Hex 48 = Hex 6E sonucu oluşacak.
3. satırda CPL A komutu var ve bu Accumulatördeki değerin complementini (Birli eşleniğini al demek yani 1 ler sıfır 0 lar 1 olacak)
6E nin komplementini hesap makinesiz şöyle alırsın.
Kafadan 0 dan F e kadar hex sayıları binary yazmaya alış.
6 = 0110 E = 1110
yanyana yaz 01101110
1 ler sıfır 0 ları 1 yap
01101110
10010001
4 4 ayır
1001 0001
Ezbere bu parçaları yazalım 9 1 yaz yanyana 91 (Ezbere yapmak zaman kazandırır 8 + 1 = 9 şeklinde de bitlerin basamak kuvvetleriyle de hesaplayabilirsin)
Farklı yollardan da yapabilirsin. Mesela FFH - 6EH işlemini de yapabilirsin.
Demekki CPL A satırı da işletildiğinde Accumulator 91 değerini alacak.
Bir sonraki komut RL A bu A yı sola döndür demek. Acculumator sola 1 bit kayacak en sağa sıfır yerleşecek.
91 i binary yazmıştık 10010001 1 bit kaydırınca 100100010 oldu. Sağdan 8 biti alırsak 00100010 olur. Bu da 0x22 demektir. (Ezbere yazdım) Ezbere yazmasaydım 0010 0010 4 bit ayırırdık. 2 ve 2 yanyana yaz 22H
Demekki RL A satırı da işlediğinde Accumulatorde 22H olacak.
SWAP A komutu Accumulatorun içindeki 8 bitin üst 4 lüsü ile alt dörtlüsünü yer değiştir demek. 22 de sonuç gene 22 olacak. (12H değeri swap ediseydi 21H olurdu)
Geldik MOV P3,A satırına.
Bu P3 portundan Accumulatör değerini çık demek.
Yani P3 portuna 22 yazılacak.
Eğer hata yapmadıysam bu soru böyle. Hata yapıp yapmadığımı 8051 komut seti tablosundan ve açıklamalarından kontrol edebilirsin.
Hata yapmış olabilirim bu işlemciyi genç delikanlıyken kullanıyordum.
Z hocam 1. Sorunun a şıkkını yaptım RaMu hocam da toplamayı öğretti yarın bende 4 işlemi öğrenecem okulda Lafım şimdi Z hocam size RaMu hocam çok güzel şekilde anlatmış olayı o tarz şekilde 1. Sorunun b şıkkı 2 ve 3 soruları da cevap verir misiniz ? Söz yardım ederiz dediniz ;D
1. soruyu yaparsan dedim.
1 sorunun 2. şıkkını da sen yazarsan.....
Doğru ya, hex sayıları tamam topladık da sen bunları toplamayı çıkarmayı da bilmiyorsan yandık. Ve vay haline....
Sınav kağıdını görünce yüksek okul yıllarım aklıma geldi :) Böyle bir sınavda bize sıfırdan yüze kadar olan asal sayıları hesaplayacak program yazdırmışlardı. işlemci 8051 idi ve asm kodlar ile deli gibi uğraşmıştık :P
Ogretmenler ve ogrenciler icin bedava bir 8051 simulatoru var http://www.edsim51.com/ (http://www.edsim51.com/)
Odevinizi ona girip kosturarakta neler oldugunu kontrol edebilirsiniz.
8051 tarih olmadı mı?
1. Sorunun b şıkkıda bu DA komutu ondalık sisteme çevirmek için ama orda sonuç 153 çıkıyordu elde bitini makine görmez diye 53 aldım hocada öyle yapıyordu ... Cevap olarak bu kadar yaptım takdir sizin 2 ve 3 doruları sizden bekliyorum bakalım hocam Z
(http://i.hizliresim.com/a5XGr2.jpg)
Tarihini bilmeyen milletler yok olmaya mahkumdur.
Alıntı yapılan: veliusta - 14 Mayıs 2015, 21:59:26
8051 tarih olmadı mı?
8051 güclü ve sağlam bir 8 bit işlemcidir hiçbir zaman ölmez çünkü bir endüstri standardi haline gelmişti. Hala aynı core üzerine ürünler inşa ediliyor gündelik hayatta farkında olmadan bolca kullanıyoruz.
Bakınız: CC2540
DA komutunu hocanız nasıl öğretti anlamadım.
Mesela Accumulatorde 25H sayısı var.
Buna 05H ekleyeceğiz.
25
05
--
2A
Bu toplama işleminden sonra DA komutunu çalıştırırsak 30 sonucunu elde ederiz.
Nasıl?
8051 de low nibble toplamlarında 9 u aşan sonuç elde edildiyse
DA komutu düşük 4 bite 6 ekler.
Üst 4 bitten cary oluşursa bu kez 60H ekler.
25H + 5H sonucuna bakalım
5+5=0AH
0AH>9
0AH+06H=10
20+10=30
Yani Hex 25 + Hex 5 = Hex 30 sonucunu buluyor. (registerlere hex değer yerleşiyor ama DA komutundan sonra bu değeri BCD olarak düşüyoruz)
Halbuki DA komutu kullanmasaydık 25+5=2AH oluyordu.
Tamam diğer soruları arkadaşlar çözmezse gece çözerim. Sabaha okursun.
Alıntı yapılan: X-Fi - 14 Mayıs 2015, 22:41:08
8051 güclü ve sağlam bir 8 bit işlemcidir hiçbir zaman ölmez çünkü bir endüstri standardi haline gelmişti. Hala aynı core üzerine ürünler inşa ediliyor gündelik hayatta farkında olmadan bolca kullanıyoruz.
Bakınız: CC2540
Hocam 8086 yada 8051 gibi işlemciler haylen satılıyor mu evde assembly temeli atmak için :)
Alıntı yapılan: l0rd - 14 Mayıs 2015, 22:51:28
Hocam 8086 yada 8051 gibi işlemciler haylen satılıyor mu evde assembly temeli atmak için :)
Var hocam var kulaktan dolma yazılımcılar ardunio ya saldırdığı için biraz arka raflarda kalmıştır kendileri :)
Alıntı yapılan: X-Fi - 14 Mayıs 2015, 22:56:38
Var hocam var kulaktan dolma yazılımcılar ardunio ya saldırdığı için biraz arka raflarda kalmıştır kendileri :)
Bende assembly öğrenmek istiyorum aslında temelini 8086 ile atsam sonra arm tabanlı işlemcilerde asm öğrenmek daha kolay olur diye düşünüyorum.Peki satan bir yer biliyormusunuz ( İstanbul civarında ) kartım olmadığı için internetten alamamda :)
8031-8051 candır.
Z hocam teşekkür ederim
Yahu aklımdan çıkmış tüm gece uyanıktım halbuki. Hemen ilgileniyorum.
mesaj birleştirme:: 15 Mayıs 2015, 08:34:07
ORG 2000H
MOV A,#01110101B
ADD A,#12H
ADD A,#6CH
DA A
MOV P3,A
1. komutta ACC= 01110101B yani 0111 0101 yani 75H
2.komutta ACC'a 12H ekleyeceğiz
75
12
--
87
3. satırda buna 6CH ekleyeceğiz.
87
6C
----
C 7 daha (parmak hesabı) D E F 10 11 12 13
elde var 1
8 6 daha 9 A B C D E eldeyi de eklersek F
Yani F3
4 satırda DA A komutu işte mıçtık.
Bir önceki toplamada 87 + 6C yapmıştık.
7 v C toplamı 9 u aşmıştı.
8 ve 6 toplamı da 9 u aşmıştı.
O halde 66 ve yüksek 4 lüye cary ekleyeceğiz. Yani 76 ekleyeceğiz.
Sonuç F3 idi F3+76=
6 3 daha 9
F 7 daha 16
Demekki sonuç 69
Son olarak P3 portundan 69 çıkacağız.
Yani 6 9 yani 0110 1001 yani 01101001
Ama DA komutunda hatayapmış olabilirim. Simulatörle test et.
------------------------- SORU 2 -------------------------------
PORT 1 'in yüksek 4 bitinden iki sayı giriyormuşuz.
Yani P1.7 ve P1.6 X değeri
P1.5 ve P1.4 de Y değeri
X*Y sonucu bulup sonucu P3 den çıkacakmışız.
X ve Y yi sağa dayalı hale getirmeyle uğraşmayalım. 8051 8 bit sayıları çarpabilir.
MOV A,P1
PUSH ACC
RL A
RL A ; Y değeri sola dayalı yazıldı
MOV RegB, A ; Daha once RegB EQU F0H gibi bir tanım yapılmadıysa MOV F0H, A da yazabilirsin. B=B*64
POP ACC
AND A,#C0H ; A=X*64
MUL AB ; [Reg B A] = 64*64*A*B=4096*A*B Yani A ve B çarpımı 12 bit sola kaymış. O halde aradığımız sonuç B içinde 12-8=4 Reg B yi 4 kere sağa kaydıralım
MOV A,RegB ; MOV A,F0 da yazabiliriz
RR A
RR A
RR A
RR A
MOV P3,A
Bu sorudan da emin değilim.
Simulatörü bilgisayarına yükle ve programı adım adım işlet.
mesaj birleştirme:: 15 Mayıs 2015, 09:41:01
--------------- 3 e sonra kafa yorarız ----------------
---------------4. soru --------------------
P1.0 da bir anahtar var.
Mod 12 sayıcı yapacağız.
Anahtar 0 veriyorsa sayıcı değeri P2 den çıkacak
Anahtar 1 veriyorsa sayıcı değeri P3 den çıkacak
Sayacımız R0 olsun.
MOV R0,#0h ; Sayacı başlangıçta sıfırladık
Say: MOV A,R0 ; Sayaç değerini ACC içine çektik
ADD A,#1 ; ACC'ı 1 artırdık
CMP A,#12 ; 12 oldumu diye baktık
JNZ Sıfırlama ; 12 değilse alttaki satırı atlayıp Sıfırlama etiketine zıpladık
CLR A ; Sayaç değeri (ACC) 12 oldu tekrar sıfırladık
Sıfırlama:
MOV R0,A ; ACC ü sayaca geri yükledik
JB P1.0,P3denCik ; P1 portunun 0. biti 1 ise P3denCik etiketine zıpla
MOV P2,A
JMP Say
P3denCik
MOV P3,A
JMP Say
Bu soruda P1.0 gösterimi için ders notlarına bak. Port1 ın 0. bitini nasıl gösteriyorsunuz bilmiyorum.
Programların tepesine ORG 2000H gibi bir satır eklersin.
Z hocam teşekkür ettim :)
Simulatörde denedinmi?
Hocam bilgisayarım yok işad ile giriyorum nete ayrıca okulda derslerde gördüğmüz kadarı ile karşılaştırma imkanım oldu yanlış denmez ama bizdeki gibi değil yinede teşekür ederim Adana ya gidim ordada sorulara baktıracam 3 soru yapmam lazım sınavda