C Hi_Tech 8*32 Kayan yazı dekoder sorunu

Başlatan Chan86, 19 Kasım 2008, 16:37:22

Chan86

Arkadaşlar benim takıldığım yer 1 adet 74hc154 ile 8*16 kayan yazı yapabiliyorum ancak bir kod çözücü daha ekleyip 8*32 kayan yazı yapıp programda değişiklik yapğtığım zaman ya 2 dekoderde paralel çalışıyor ya da sadece bir tanesi çalışıyor.Programı aşağıdadır devre çemasınıda aşağıdaki linkten ulaşabiliirsiniz sitemizde arkadaşımız 40 koz çözücülü yapmış ama anlayamadım.Şimdiden teşekkürler...

#include <pic.h>
#include <delay.c>
#include <stdio.h>
__CONFIG(WDTDIS&LVPDIS&PWRTEN&XT);
main (void)
{
unsigned const char metin[]={0x82,0xFF,0x82};
unsigned char gecici_dizi[16];
unsigned char toplam_sutun;
signed int kayma,deger;
int c,b,d,e,i;
b=0;
c=0;
d=0;
e=0;
TRISA=0;
TRISB=0;
TRISC=0;
TRISD=0;
PORTA=0X00;
PORTB=0X00;
PORTC=0X00;
PORTD=0X00;
ADCON1=0x06;
toplam_sutun=3;
for(;;){
for(i=0;i<=15;i++){
gecici_dizi=0;
}   
for(kayma=-14;kayma<=toplam_sutun;kayma++){
for(i=0;i<=15;i++){
deger=i+kayma;
if(deger<0)gecici_dizi=0;
if(deger>=0&&deger<=toplam_sutun-1)
gecici_dizi=metin[deger];
if(deger>toplam_sutun)gecici_dizi=0;
}
for(i=0;i<=15;i++)
{ //Geçici diziyi görüntüle
PORTD=2;
PORTB=gecici_dizi;
PORTC=i;
DelayMs(1);
if(i==15)
{
for(i=0;i<=15;i++)
{
PORTD=1;
PORTB=gecici_dizi;
PORTC=i;
DelayMs(1);
}}}
}
}
}




Devre Şeması

http://rapidshare.com/files/165330731/kayan_yaz__305_1.dns.DSN.html

arslan74

Merhaba,

74HC154 pek sağlıklı bir çözüm olmaz. Onun yerine shift register kullan örneğin 74HC595 gibi. Senin işi cok daha iyi çözecektir.

Selamlar

ibrahimgurler

yazılımda bir değişiklikle 8*32 olur hemde 74hc154 kullana bilirsin. yapman gereken ilk 16 satır okutuluyor sen 16 dan 32 ye kadar bir daha okut geçişi sağmak için ise 74hc00 kullan
SAYGILARIMLA

Chan86

1. sorun programda nasıl bir değişikli yapacağım?
2. sorun ise 74hc00 NAND kapısı deilmi nasıl kullanacağım burada?

ibrahimgurler

for(i=0;i<=15;i++)
{
PORTD=1;
PORTB=gecici_dizi;
PORTC=i;
DelayMs(1);
burayının altına birdaha for döngüsü yazmalısın
for(i=16;i<=32;i++)
şeklinde böylelikle 16 dan 32 ye kadar olanını göstemiş olursun

74hc00 ise illk 16 satır ile ikinci 16 satır arasında geçiş sağlayacak yani bir aktifken diğeri pasif , diğeri pasifken diğeri aktif etmeye yarayacak