Çalıştırıldığında, PIC16F84 ün portA en düşük değerlikli 4 bitine bağlı anahtarlardan BCD(Binary Coded Decimal) kodunda bir bir sayı girilmesini bekleyen, sayı girildi ise bunu portB nin en düşük değerlikli 4 bitine bağlı hexadecimalden 7 segmente display sürücüye (MC14495) aktararak bu entegre çıkışındaki 7 segmentli displayde gösterip yeni bir sayı girilmesini bekleyen, yeni sayı girildikten sonra bunu portB nin en yüksek değerlikli 4 bitine bağlı hexadecimalden 7 segmente display sürücüye aktararak bu entegre çıkışındaki 7 segmentli displayde gösteren ve bundan sonra portA ya bağlı anahtarlardan girilecek sayı hexadecimal A ise 2 sayıyı BCD olarak toplayan, B ise BCD olarak çıkaran ve sonucu 7 segmentli displaylerde gösteren programı yazınız. Çıkarma işlemi sonucu pozitif ise portB nin yüksek değerlikli bitlerine bağlı displayde Artının A'sını, negatif ise Eksinin E'sini yazan programı yazıp, Proteusta simülasyonunu nasıl yapabiliriz?
arkadasim assembly bilmiyosan C ile yazmaya basla
...
Bu bir ödev sanırım? "Girme" kısmını yapan 5. eleman nedir? Clock sinyali mi yoksa başka bir anahtar mı? Port B'nin 8 bacağı ile 2 adet MC14495 sürebilirsin. Toplama veya çıkarma işleminin sonucunu işareti ile göstermek içinse 4 adet 7S gösterge gerekiyor. Nasıl olacak bu iş?
evet bu bir ödev, C biliyorum ama ödev assembly dilinde yazılması gerekiliyor.
Proteusta Mc14495 diye bi entegre yok, onun alternatifi olarak 7447 denedim ama oda tam olarak sonuc vermiyor malsefki.
PORTA da giriş işlemi yapılacak. 5.elemanı (yani RA4) bosta olacak.
Sonuc işaretiyle gösterilmeyecek, sadece çıkarma işleminde sonuc pozitifte portb nin en yüksek 4 bitindeki 7 segmentli display (A) harfini gösterecek, eger sonuc negatifse portb nin en yüksek 4 bitindeki 7 segmentli display (E) harfini gösterecek
Peki toplama? Diyelim ki 99 + 99 girdin. Nasıl göstereceksin 198'i 2 göstergede? 16'lık tabanda mı? Ayrıca A4'e de birşey bağlaman gerekir ki sayının girildiği anlaşılsın.
tam kapsamlı bir hesap makinası olamıyacak pic16f84a kullanıldıgı için, giriş zaten 4 bit :en fazla girilen sayı 15 olabiliyor. Çıkısta ise en fazla 15+15=30 olabiliyor.oda b'00011110' oluyor.
Ayrıca 5.bite bişe bağlamak istenirse Ground bağlarız..Böylece sonuca etki etmez...
Fakat 7 segmenti displayın 7 tane girişi war, hangi decoder kullanacazki cıkıstaki 4 bitten 7bit elde edip 7 segmenti displayde gösterelim
4 bitten 7 segmente cd4511 ile cevirebilirsin
Merhaba
Zaman kaybolmasın diye ben işin kaba kısmını hazırladım.Bundan sonra "BASLA-GOTO BASLA" komutların arasını arasını size bırakıyorum.asm yazılımında gerekli bilgiler de verildi.Kolay gelsin.
http://www.4shared.com/file/QCrIJRMY/antt1990.html
Herkese çok teşekkür ederim.. projeyi başarıyla bitirdim..
işte proje
http://www.4shared.com/file/nKxzOsWJ/Assembly_Hesap_Makinas.html
Alıntı yapılan: anti1990 - 06 Kasım 2010, 02:13:28Çalıştırıldığında, PIC16F84 ün portA en düşük değerlikli 4 bitine bağlı anahtarlardan BCD(Binary Coded Decimal) kodunda bir bir sayı girilmesini bekleyen, sayı girildi ise bunu portB nin en düşük değerlikli 4 bitine bağlı hexadecimalden 7 segmente display sürücüye (MC14495) aktararak bu entegre çıkışındaki 7 segmentli displayde gösterip yeni bir sayı girilmesini bekleyen, yeni sayı girildikten sonra bunu portB nin en yüksek değerlikli 4 bitine bağlı hexadecimalden 7 segmente display sürücüye aktararak bu entegre çıkışındaki 7 segmentli displayde gösteren ve bundan sonra portA ya bağlı anahtarlardan girilecek sayı hexadecimal A ise 2 sayıyı BCD olarak toplayan, B ise BCD olarak çıkaran ve sonucu 7 segmentli displaylerde gösteren programı yazınız. Çıkarma işlemi sonucu pozitif ise portB nin yüksek değerlikli bitlerine bağlı displayde Artının A'sını, negatif ise Eksinin E'sini yazan programı yazıp, Proteusta simülasyonunu nasıl yapabiliriz?