display

Başlatan hamzahaluk, 26 Haziran 2014, 01:29:06

hamzahaluk

Arkadaşlar aşağıda isis çizimini verdiğim devrede displayi PROTON'da temel olarak nasıl 0-F arası saydırma yapabilirim? Örnek kod gösterir misiniz?


onurinci

en basitinden örnek kendine göre değiştirirsin.

http://s3.dosya.tc/server25/H5RQyz/Counts.rar.html

hamzahaluk

Çok teşekkür ederim...

hamzahaluk

Peki BCD display ile ortak katotlu display arasında ne fark var?

onurinci

BCD display Texas'ın ürettiği TIL311 çok zor bulunan bir display. ortak katotu sürebilmen için 7 adet port çıkışı gerekiyor,a,b,c,d,e,f,g gbi.

BCD'ye ise 4 adet port yetiyor.büyük sayı 8 dvamı 4,2,1 gibi.bu tür displeylerin içinde rom bulunuyor.0'dan...F 'e kod çözsün diye.ayrıca displey rom ayrı modelide DM9368 National üretimi.
bunu ayrıcalığı illegal kodlarda displayı karartır.

hamzahaluk

Bir buton ile display kontrol etmek istiyorum. Butona her basışta displaydeki değer bir artsın istiyorum ama pek beceremedim, nasıl olabilir acaba?

Device 16F877
XTAL 4
TRISB=0
TRISD=1
PORTB=0
PORTD=0

x var Byte
sayi var Byte[10]

sayi[0]=0X3f
sayi[1]=0x06
sayi[2]=0x5b
sayi[3]=0x4f
sayi[4]=0x66
sayi[5]=0x6d
sayi[6]=0x7c
sayi[7]=0x07
sayi[8]=0x7f
sayi[9]=0x6f

x=0

basla:

If PORTD.0=1 Then
PORTB=sayi[x]
x=x+1
Else

GoTo basla
EndIf


ete

Butona her basışta önce sayını bir artırman ve artırma işinede bir sınır koyman gerekir.
Örnek verecek olursak sayacın 0-99 arasında sayabilir. Bu 2 digit demektir. Sayac 100 olunca sayacı sıfırlaman gerekir.  3 digit çalışacak isen sayacın 999'a kadar artabilir. Sayacın 1000 olunca sayacı sıfırlaman gerekir.

Ne tür ekran kullancağını belirtmemişsin. Ama 7 segment kullanacak isen öncelikle kaç digit çalışacak isen ekranda bu sayıyı yada en azından 00 veya 000 sayıısnı göstermeyi başarman gerekiyor.
Bunu yapabiliyor isen, sayacın birler hanesi için;
BIRLER=SAYAC DIG 0 komutunu kullanman, Onlar hanesi için,
ONLAR=SAYAC DIG 1, ve devamla
YUZLER=SAYAC DIG 2 komutlarını kullanman gerekiyor.

Sonra bunları teker teker ekrana vermek ve her digit için en azından 1 ms ekranda kalmasını sağlaman gerekiyor hepsi bu.

Ete

hamzahaluk

0-9 sayıcıydı hocam. Şöyle çözüm buldum..

Device 16F877
XTAL 4
TRISB=0
TRISD=1
PORTB=0
PORTD=0

x var Byte
sayi var Byte[10]

sayi[0]=0X3f
sayi[1]=0x06
sayi[2]=0x5b
sayi[3]=0x4f
sayi[4]=0x66
sayi[5]=0x6d
sayi[6]=0x7c
sayi[7]=0x07
sayi[8]=0x7f
sayi[9]=0x6f

x=0

basla:

If PORTD.0=1 Then
PORTB=sayi[x]
While PORTD.0=1   
PORTB=sayi[x]     
Wend
x=x+1
If x=10 Then x=0

EndIf
GoTo basla





Powered by EzPortal