Picproje Elektronik Sitesi

DERLEYİCİLER => PIC Assembly => Konuyu başlatan: 4w3e - 12 Mayıs 2015, 17:23:48

Başlık: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 12 Mayıs 2015, 17:23:48
(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
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 13 Mayıs 2015, 16:45:11
Arkadaşlar yardım edebilecek kimse yok mu ?
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: t2 - 13 Mayıs 2015, 23:56:20
Sınav tarihi gecmis. Sure 45dk demis.
Cevapları  sonradan mi teslim edilecek?
Hoca kağıdı sınavda cevaplanmis mi sayacak ?
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 10:27:41
Bütünleme sınavında da aynısını soracak hocam o yüzden rica ettim cevap için
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: garezza - 14 Mayıs 2015, 15:42:04
Sadece cevap yeterli mi komple çözümmü lazım?
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 17:12:04
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
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: RaMu - 14 Mayıs 2015, 19:23:23
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.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 20:08:56
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  :)
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: z - 14 Mayıs 2015, 20:24:11
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.

Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 20:51:54
(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 😁
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: RaMu - 14 Mayıs 2015, 20:52:24
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-.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 21:00:31
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
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: RaMu - 14 Mayıs 2015, 21:07:06
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.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: z - 14 Mayıs 2015, 21:19:31
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.


Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 21:24:40
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
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: z - 14 Mayıs 2015, 21:28:30
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....
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: X-Fi - 14 Mayıs 2015, 21:42:32
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
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: mufitsozen - 14 Mayıs 2015, 21:56:18
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.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: veliusta - 14 Mayıs 2015, 21:59:26
8051 tarih olmadı mı?
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 22:25:34
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)
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: RaMu - 14 Mayıs 2015, 22:29:18
Tarihini bilmeyen milletler yok olmaya mahkumdur.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: X-Fi - 14 Mayıs 2015, 22:41:08
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
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: z - 14 Mayıs 2015, 22:48:32
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.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: l0rd - 14 Mayıs 2015, 22:51:28
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 :)
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: X-Fi - 14 Mayıs 2015, 22:56:38
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 :)
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: l0rd - 14 Mayıs 2015, 23:00:23
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 :)
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: muhittin_kaplan - 14 Mayıs 2015, 23:06:18
8031-8051 candır.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 14 Mayıs 2015, 23:13:14
Z hocam teşekkür ederim
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: z - 15 Mayıs 2015, 10:13:34
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.
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 15 Mayıs 2015, 11:53:18
Z hocam teşekkür ettim  :)
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: z - 15 Mayıs 2015, 16:10:10
Simulatörde denedinmi?
Başlık: Ynt: Sınav soruları hakkında çözüm
Gönderen: 4w3e - 16 Mayıs 2015, 13:16:01
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