8x8 Dot Matrix Kayan Yazı

Başlatan ercanatnr, 11 Temmuz 2015, 22:02:04

ercanatnr

Merhaba,
Aşağıdaki kodlar ile 8x8 Dotmatrix display üzerinde istediğim harfleri oluşturabiliyorum. Buraya kadar normal ancak kaydırma işlemi yapmak istediğimde tıkanıp kalıyor. Bu kodlara nasıl bir ekleme ile 8x8 displayda kaydırma işlemi yapabilirim. Devre şeması aşağıdaki gibi olacak 74HC595 kullanarak yapıyorum.
#include <16F628A.h>                                     ////
#FUSES NOMCLR                                           ////
#FUSES NOBROWNOUT                                      ////
#FUSES NOLVP                                          ////
#use delay(internal=4000000)                         ////
////////////////////////////////////////////////////////
#define SH_CP pin_a0                               ////
#define DS pin_a1                                 ////
#define ST_CP pin_a2                             ////
#define MR pin_a3                               ////
#define OE pin_a4                              ////
//////////////////////////////////////////////////
int i,j;                                     ////
int Led=0;                                  ////
int T_Hizi=2;                              ////
int16 SB=0;                               ////
/////////////////////////////////////////////
int E_YUK=8;                            ////
int E_GEN=8;                          ////
int Satir[8]={1,2,4,8,16,32,64,128};  ////
/////////////////////////////////////////
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

int Dizi[]={63,127,136,136,136,136,127,63};

//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////

void Clock()
{
output_high(SH_CP);
output_low(SH_CP);
output_high(ST_CP);
output_low(ST_CP);
}

void main()
{
set_tris_a(0x00);
set_tris_b(0x00);

output_a(0x00);
output_b(0x00);

output_low(OE);
output_high(MR);

while(1)
{

for(i=0;i<=E_YUK-1;i++)
   {   
   Led=Satir[i];
     
      for(j=0;j<=E_GEN-1;j++)
      {
      SB=E_GEN-1;
      SB=SB-j;
      output_bit(DS,!(bit_test(Dizi[SB],i)));     
      Clock();

      }
 
   output_b(Led);
   delay_ms(T_Hizi);
   output_b(0);


   }

 
  }
}


Powered by EzPortal