as.yıldırım

Usta Üye
Katılım
14 Eki 2011
Mesajlar
1,287
Puanları
181
arkadaslar pic ile hesap makinası yapmaya calısıyorum.Programlamasını microC yada ccs_c ile yapacagım ama kafama takılan bi soru var.Butonlardan girilen sayıları LCD ye yazdırıyorum ama girilen sayıyı işlem yapması için pic e nasıl öğretecegimi bilmiyorum.Mesela butonlardan sırasıyla 1 2 3 4 e basılsın.Sayı 1234 oldu.İşlem yapması için bunu nasıl hafızasına aldırabilirim.Sayının kac basamaklı oldugunu nasıl öğretebilirim.
 
Sanki daha basit uygulamalar yapıp işin mantığını kavrasan daha iyi olur gibi geliyor bence. yanlış anlamayasın, ben öyle yapıyorum, yardımcı olmaya çalışırım ama ben assembler ile program yazıyorum diğerlerinden anlamam. Assemler da herşeyi kendin yapıyorsun tüm mantık sana ait, assembler için sorunu düşününce; butonlardan değer geliyor ilk 2 değeri geldi diyelim bir değişken tanımlanıp bu değer o değişkene alındı sonra işlem butonlarına veya değer (rakam) butonlarına basılıp basılmadı kontrol ediliyor, misal yeni değer gelsin bu sefer 3 olsun sayımız 23 olmalı bir önceki kaydettiğimiz içinde 2 olan değişken onlar basamağına kaydırılır ( assemblerda swapf veya rlc gibi komutlarla bu yapılır) sonra yeni gelen 3 değeride asıl değişkenimize eklenir (addlw) artık 23 sayısı elmizde pic 8 bitlik olsun ve iki basamaklıdan fazla çarpma yapamadığımızı düşünelim (örnek çarpma üzerinden olacak) artık daha fazla değer girilemeyeceğinden program burada sadece işlem anahtarlarını kontrol edecek şekilde düzenlenir, diyelim çarpma anahtarına basıldı artık yeni değer girişi beklenir yukarıdaki gibi girilecek iki basamaklı sayı birdiğer değişkene kaydedilir bu iki değer alındıktan sonra program ancak eşittir anahtarını kontrol edecek şekilde ayarlanır eşittir anahtarı basıldığında pic alınan bu iki değişkeni çarpmaya başlar burada değerler 10 luk tabanda olduğundan ve pic 16 lık tabanda çalıştığından değerler 16 lık tabana çevrilir sonra uygun algoritmayla (assembler da basit bir şekilde yazmak mümkün; çıkarma veya toplama komutu kullanarak çarpma işlemigerçekleştirilir matematiğin temelindede olduğu gibi) çarpma işlemi gerçekleştirilir çarpma sonucu eğer 8 biti aşıyorsa ya hata verilir yada algoritma elde değerinide hesaplayacak başka bir değişkende tutacak şekilde ayarlanır sonuç elde edildiğinde 16 bitlik olduğundan tekrar 10 luk tabana çevrilir lcd de gösterilebilecek hale getirilir ve gösterilir; şimdi kullanılan picin kaç bitlik işlem yapabildiği yapılacak hesap makinasının kaç basamaklı işlem yapması istendiği kullanılan picin çarpma bölme gibi özel komutları olup olmadığı vb gibi etkenler gözönüne alınıp assembler da program yazmak mümkün ama diğer programlama dilleri için durum nedir bilmiyorum belki halihazırda bu işlemleri yapacak fonksiyonları vardır. Tek derdin butonlardan girilen değeri bir değişkene atamaksa bu hesap makinası yapmakla kıyaslandığında çok küçük bir problem.Kolay gelsin.
 
yani dedigim gibi daha yeni basladıgım için karsıma cıkan ilk sorun bu oldu.Sölylediklerini C de yazmaya calısayım umarım basarabilirim .Cok sagol tesekkürler....
 

Forum istatistikleri

Konular
128,126
Mesajlar
915,254
Kullanıcılar
449,841
Son üye
nazoyata

Yeni konular

Geri
Üst