16F84A ile 0-FF e kadar saydırma microcode studioda

Başlatan Deneyimsiz Öğrenci, 17 Kasım 2015, 17:50:51

Deneyimsiz Öğrenci

merhaba forumda yeniyim pazaretsiye yetişmesi gereken ödevim var ve hoca hiçbir bilgi vermedi MİCROCODE STUDİO ile 0 dan hexadesimal sayı olan FF e kadar saydırmamı istedi ben sacede 0 dan F ye kadar saydırabiliyorum
TRISB=0
TRISA=0
X VAR WORD
N VAR WORD
SYMBOL B=PORTB
SYMBOL A=PORTA
A=%11111
B=0
BASLA
X=0
DON
A=%11110
LOOKUP X,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F,$77,$7C,$39,$5E,$79,$71],PORTB
PAUSE 100
X=X+1
IF B=%1110001 THEN GOTO BASLA 
GOTO DON

bu şekilde F diyo devamını nasıl yazıcam bilgisi olan varsa acil cevaplayabilir mi ?

gogoce

FF desimal karşılığı 255 2 display kullanman gerekiyor
proteusta 4 bit display var
bunları kullanabilirsin
portb nin ilk 4 biti bir display ikinci 4 biti ikinci display
portb 0 dan 255 e kadar saydır zaten olduğunu göreceksin
Ne ukalayı affederim nede yapılan haksızlığı ...
Ya sus adam sansınlar , yada adam gibi kouş ilham alsınlar

Deneyimsiz Öğrenci

yazılım nasıl yapılıyo gösterbilirmisin (hocamız göstermediği soruları sorar pek bilgim yok bu konuda )

ete

Bu konuda hocan ilede konuşmayı çok isterim. Sürekli olarak hoacalara atılıp tutuluyor. Hocaların vermedikleri bir konu ile ilgili soru sormaları hiçde hoş değil. Bunu bir şekilde ikaz etmek gerekir. Tabiiki bu konuyu verip vermediklerinide sormak lazım.

Programa bakılırsa tek bir 7 segment display kullanılıyor.  Mevcut hai yalnıca $F göstermek üzere düzenlenmiş. Peki $FF nasıl gösterilecek? İkinci F nasıl gösterilecek onu soruyorum.
Siz yolunu gösterin gerisini hallederim diyor isen,
şöyle yapılır;
TRISB=0
TRISA=0
X VAR BYTE
N VAR BYTE
BIRLER VAR BYTE
ONLAR  VAR BYTE
SAYI   VAR BYTE
I      var WORD

SYMBOL B=PORTB
SYMBOL A=PORTA
A=%11111
B=0
pause 200
BASLA:
X=0
DON:
     SAYI=X DIG 0:GOSUB AL:BIRLER=N  'sayının birler hanesini aldık ve 7 segment karşılığını bulduk
     SAYI=x DIG 1:GOSUB AL:ONLAR=N
     gosub goster
     gosub bekle  'hem bekle hemde bilgileri ekrana ver
     X=X+1
     IF x=$FF THEN GOTO BASLA 
GOTO DON

AL:
LOOKUP SAYI,[$3F,$06,$5B,$4F,$66,$6D,$7D,$07,$7F,$6F,$77,$7C,$39,$5E,$79,$71],N
return

GOSTER:
     A=%11111      'birler segmentini süren SEGMENT ORTAK UCU HIGH
     b=BIRLER      'Segmentlere sayı değeri veriliyor
     A=%11110      'segmente LOW verildi sayı displayde gözüktü
     pause 2       'görülmesi için 2 ms orada bekledi
     
     A=%11111      'display kapatıldı
     B=ONLAR       'porta onlar hanesi sayısı verildi
     A=%11101      'onlar hanesi displayi açıldı
     pause 2       '2 ms orada bekledi.

     return
     
BEKLE:
      for I=0 to 5000   'bekleme az geliyor ise I değeri artırılmalıdır
        pauseus 10
        gosub goster
        pauseus 10
      next
      return

Bu arada sormayı unuttum. 7 segment display normalde HEX formatı biraz zor gösterir. 9 dan sonra gelen sayılar sırası ile;
A - B - C - D - E - F şeklinde gösterilir. Burada sorun teşkil edecek olan D sayısıdır. Displayde bu sayı 0 (sıfır) ile aynı şekilde gösterilmek zorundadır. Yada sıfır sayısı o şeklinde gösterilmelidir. Sende hocana bunu söyle bakalım ne diyecek.
İşin doğrusu nokta matrix display kullanmaktır. Umarım böyle bir şey istememiştir.
Ayrıca bu sayıcıyı 7 segment diye belirterek mi istedi yoksa display ismi vermeyip size mi bıraktı. Çünki LCD ekranda bu sayıları göstermek hem daha kolay hemde daha okunabilir olurdu.

Ete

Powered by EzPortal