8x8'te gülücük ( :D ) yapmak ?

Başlatan mustafa_cmbz, 20 Ekim 2007, 18:28:17

mustafa_cmbz

arkadaşlar bizim bölüm hocam ve diğer atelye hocalarıyla okulun girişlerine kayan yazı yapmaya karar verdim sitede faydalı bilgiler de var sağ olsunlar çok faydalı bilgiler sunulmuş...fakat bunu yanında aklıma bir fikir geldi babam da şöför olduğundan dolayı bilenler bilir dolmuşun gideceği güzergahlar ufak tabelara yazılır ve camlara asılır..bunun yerine kayan yazı şeklinde değilde sırasıyla ekrana çarpacak sekilde yazı devresi yapacağım fakat bazı karakter ve yazıları ekrana yazdıramıyorum amntığını anlayamadım herhalde mesela en basitinden 8x8 dotmatrix led displayde gülücük işareti yapım dedim deneme aşamasında fakat olmadı ledleri çapraz yakıyoruzya onu yapamadım bu sefer lederin hepsi yanıyor ve görüntüde ağız kısmında dikdörtken oluşturcak şeklinde ledler yanıyor gözlerde ise büün sıra yanıyor  acaba örnek kod vb. paylaşacak arkadaş varmıdır aramızda ve birazda mantığından söz ederseniz sizler sayesinde yeni şeyler öğrenmiş olacağım...

kolay gelsin..

Cetinal

pbp den anlamıorum ama Ansi-C veya CCs de örnek verebilirim 74154--74138 veya 74595 örnekleri verebilirim 8x8 dotmatris üzerinde

ilker_32

Yapman gereken tek şey yanan ledler için 1 sönük ledler için 0 yazacaksın. Gülücük için;

Ör:

01111110
10000001
10100001
10000101
10000101
10100001
10000001
01111110

mustafa_cmbz

@ilker_32 hocam  verdiğin kodlar nasıl değerlendirilcek satır sutun diyemi acaba çünki denedim bişey elde edemedim 0 bilgi 0 işlem elde var 0 mantığı ile ilerliyorum... ben şöyle bir kod yazdım ne kadar doğru bilmem gülmek yok ama :D


BASLA:

PORTB=%01111110
PORTD=%10000001
PAUSE 100
PORTB=%10100001
PORTD=%10000101
PAUSE 100
PORTB=%10000101
PORTD=%10100001
PAUSE 100
PORTB=%10000001
PORTD=%01111110
PAUSE 100
GOTO BASLA
END

portb satırlara bağlı sanrsam portd de stunlara 8x8 de bunu nasıl anlıcaz bilmiyorum ama ledlerin + ucu picin portb sinde bağlı...bu gülücük uygulamasına örnek devre kurabilirmisinz örnek olarak satır sutun kafam karıştı... ve birde o gülücük işareti için verilen 10101 değerlerini ledlere nasıl yansıtcaz ona örnek kod yazabilirmisiniz...@ilker_32 hocam ve diğer kayan yazılarda tecrübeli olan arkadaşlar basic kodu ve devre şeması bakımındna yardımcı olurmusunuz örnek olacak şekilde....kolay gelsin..

teknikelektronikci

http://rapidshare.com/files/63964144/matris.rar.html

hocam ben bu programi kullaniyorum gercekten kullanisli bir program

ayrica
https://www.picproje.org/index.php/topic,11149&postdays=0&postorder=asc&highlight=calisan+kayan+yazi&start=45

linkteki devre ise basic ile yazilmis güzel bir devre ve programi mantigini buradan anlayabilirsiniz    kolay gelsin
Ey Türk istikbalinin evlâdı! İşte, bu ahval ve şerâit içinde dahi, vazifen; Türk İstiklâl ve Cumhuriyetini kurtarmaktır! Muhtaç olduğun kudret, damarlarındaki asil kanda mevcuttur!

ferdem

Hazırlamayı düşündüğüm bir animasyon vardı, bu mesaj tetikledi. Daha güzel hazırlanabilirdi, inşallah ilerde...

Katot Dotmatrix Sürme Yavaş Gösterim


Umarım yardımcı olmuştur.

Düzenleme: Bağlantı yenilendi.

mustafa_cmbz

hocam ellerine sağlık fakat anımasyonda takıldığım bir yer oldu şimdi t yandığında diğer + bilgiye göre yetkilendiriyor kendini fakat t olan taraftakı diğer uçlar lojık olarak ne olacak 0 mı? 1mı benım kafam aslında tamda burda karışıyo

yanı mesela teknıkelektronıkçi hocamda sembolcu tarzı bir program vermiş aslında bendede sembolcu vardı fakat onunkı daha iyi geldi programda ledleri  1 yaptığımız da değerleri yana veriyor vermesine ama vermiş olduğu değer sadece sutun1 sutun2 diye gidiyo peki satırların lojık değeri ne olacak devamlı toprakmı olacak nasıl onu anlamadım birazdaha basite indirgenirse çok daha anlaşılır olacaktır...

bu arada simulasyon güzel olmuş...

Cetinal



bu kod en sondaki atmelli devre için örnek
#include <AT89x51.H>
#include <stdio.h>
#include "metin.h"
#define sayici P2 
#include <delay.c>

void main (){
for(sayici=0;sayici<7;sayici++){
P0=~(A[sayici+1]);
delay_ms(1);
}}
   

bu kod 16f84 lü devre için örnek kod dur MikroC de yazdım resimde CCS yazıo ya ona bakmayın siz yanlış yazmışım Mikroc dir asılı
#include "metin.h"
#define sayici PortA
void main ()
{
 while(1){
  trisb=0;
  trisa=0;
for(sayici=0;sayici<7;sayici++)
{
PortB=~A[sayici];
delay_ms(1);
 }}}


Bu kod CCS de 595 li şema içindir
#include <16f628.H> 
#use delay(clock=4000000) 
#use rs232(baud=9600, xmit=PIN_A0, rcv=PIN_A1,RESTART_WDT,ERRORS,INVERT) 
#include "metin.h"
#define cikis_latc PIN_a3 
#define cikis_pals PIN_a1 
#define cikis_bilgi PIN_a0 
#define sayi_74595 1//kac tane tane shift register kullandin?4// 
#byte port_b=6 
#byte port_a=7 

char i;
char x = 1;
int tara[1];//tara 
int data[1];//gonderilecek dizi// 

void cikisleri_yaz(char* eo) {
  char a;

  output_low(cikis_pals);
  output_low(cikis_latc);

  for(a=1;a<=sayi_74595*8;++a) { 
    if((*(eo+(sayi_74595-x))&0x80)==0)
      output_low(cikis_bilgi);
    else
      output_high(cikis_bilgi);
   shift_left(eo,sayi_74595,0);
   output_high(cikis_pals);
   output_low(cikis_pals);
  }
  output_high(cikis_latc);
  output_low(cikis_latc);

}

void main()
{ 
set_tris_a(0);
set_tris_b(0); 
port_b = 0; 
port_a = 0; 
do 
{
tara[0]=0x01; //kaydirmak istedimiz 8 bitlik data//
for(i=0;i<8;i++) 
                  { 
data[0]= tara[0];
delay_ms(2); 
cikisleri_yaz(data); 
delay_ms(2);
port_b=~A[i];

if (shift_left(tara,1,0)) 
tara[0] = 0x01; 
} 
} 
while(true);
}


metin.h  bu header 3 program içinde aynı
const char A[]={0x00,0x7C,0x0A,0x09,0x0A,0x7C,0x00};

Cetinal

8x8 CCS MikroC veya Keil de 74595 veya 4094 ile satır tarama örnek verebilen olursa sevinirim bu yukarıdaki verdiklerim sütun taramadır

ferdem

Alıntı yapılan: "mustafa_cmbz"hocam ellerine sağlık fakat anımasyonda takıldığım bir yer oldu şimdi t yandığında diğer + bilgiye göre yetkilendiriyor kendini fakat t olan taraftakı diğer uçlar lojık olarak ne olacak 0 mı? 1mı benım kafam aslında tamda burda karışıyo

yanı mesela teknıkelektronıkçi hocamda sembolcu tarzı bir program vermiş aslında bendede sembolcu vardı fakat onunkı daha iyi geldi programda ledleri  1 yaptığımız da değerleri yana veriyor vermesine ama vermiş olduğu değer sadece sutun1 sutun2 diye gidiyo peki satırların lojık değeri ne olacak devamlı toprakmı olacak nasıl onu anlamadım birazdaha basite indirgenirse çok daha anlaşılır olacaktır...

bu arada simulasyon güzel olmuş...

Bir anda sadece bir satıra hükmediyoruz, diğer sütunlar pasif. Hızlı bir şekilde tarayarak görüntü elde ediyoruz. Bir anda sadece bir sutun yanmasına rağmen geçişleri gözümüz fark edemediğinden görüntü var gibi görüyoruz. Bir anda bir sütun... [tüm bunlar sütun tarama yöntemi kullandığımız durum için]

mustafa_cmbz

bişeyler kaptım gibi fakat hala ben sunu anlamadım sutünlara decimal değer atadık diyelim daha sonra hangi sutunu yakacaksak o sutuna 0 uyuglayacaz değilmi,peki bu anda diğer sutunlar ne olacak... kayan yazı yapığımız günleride görecekmiyiz bakalım :D ..

ferdem

Alıntı yapılan: "mustafa_cmbz"bişeyler kaptım gibi fakat hala ben sunu anlamadım sutünlara decimal değer atadık diyelim daha sonra hangi sutunu yakacaksak o sutuna 0 uyuglayacaz değilmi,peki bu anda diğer sutunlar ne olacak... kayan yazı yapığımız günleride görecekmiyiz bakalım :D ..

Diğer sütunlara hiç bir şey yapmayacaksın, zaten bir şey yapmak  mümkün değil. E onlar yanmayacak mı? Yanacak, izleyenler tarafından fark edilemeyecek kadar kısa bir süre sonra yanacak. Böylece görenler tüm sütunları aynı anda yanıyor gibi görecek. Ben kayan yazılar hakkındaki ilk olarak bu adresten çalışmıştım: http://www.biltek.tubitak.gov.tr/gelisim/elektronik/17.htm . Bir bakın derim. Kolay gelsin.

ilker_32

Uydurma birşey yaptım. :lol: Sen böyle sabit bişey mi istiyorsun yoksa kayacak mı ? RA4 ' deki pull-up'u unutma : )



porta=0  :  portb=0
trisa=0  :  trisb=0
enable_74154 var porta.4
i var byte  :  lcd_reg var byte  :  z var byte
porta=16
goto loop
loop: for z=1 to 500
for i = 0 to 10
call char_table
portb=lcd_reg
porta=i+16
low enable_74154    :  pauseus 100  :  high enable_74154
next i
next z
char_table:
select case i
case 0
lcd_reg=$7e
case 1
lcd_reg=$81
case 2
lcd_reg=$a9
case 3
lcd_reg=$85
case 4
lcd_reg=$85
case 5
lcd_reg=$a9
case 6
lcd_reg=$81
case 7
lcd_reg=$7e
end select
return
END

mustafa_cmbz

sabit bişey olcaka hocam devre çok güzel olmuş fakat biraz komutlar üzerinde açıklama yapacabak biri varmı acaba bunlar benı bıraz aşıyorda :D

Cetinal

ben sütun taramayı çözdüm zaten ama satır tarama duruyor daha
biriside bana C ile satır tarama örnek verirse sevinirim