#include <16f877.h>
#fuses XT,NOWDT,NOPROTECT,NOBROWNOUT,NOLVP,NOPUT,NOWRT,NODEBUG,NOCPD
#use delay(clock=4000000)
#use fast_io(b)
#define data_1 pin_b0
#define data_2 pin_b2
#define data_3 pin_b4
#define data_4 pin_b6
#define clock_1 pin_b1
#define clock_2 pin_b3
#define clock_3 pin_b5
#define clock_4 pin_b7
int A[]={0xFF,0xFF,0x76,0x75,0X03};
int B[]={0x00,0X36,0X36,0x36,0X49};
int C[]={0x41,0x3E,0x3E,0x3E,0x5D};
int D[]={0x00,0x3E,0x3E,0x3E,0x41};
int E[]={0x00,0xB6,0xB6,0xB6,0xBE};
int sutun[]={0x01,0x02,0x04,0x08,0x10};
char i=0,j=0,k=0;
/* burada matrix ledin sütunlarını tek tek aktif ediyorum */
void sutunsec_1(int a)
{
for(j=0;j<8;j++)
{
output_bit(data_1,bit_test(sutun[a],j));
output_high(clock_1);
output_low(clock_1);
}
}
void sutunsec_2(int a)
{
for(j=0;j<8;j++)
{
output_bit(data_3,bit_test(sutun[a],j));
output_high(clock_3);
output_low(clock_3);
}
}
/* burada matrix lede yukarıdaki karakterleri yolluyorum */
void karakter_1(int tekrar)
{
for(k=0;k<tekrar;k++)
{
for(i=0;i<5;i++)
{
sutunsec_1(i);
for(j=0;j<8;j++)
{
output_bit(data_2,bit_test(A[i],j));
output_high(clock_2);
output_low(clock_2);
}
delay_ms(500);
}
}
}
void karakter_2()
{
for(i=0;i<5;i++)
{
sutunsec_2(i);
for(j=0;j<8;j++)
{
output_bit(data_4,bit_test(B[i],j));
output_high(clock_4);
output_low(clock_4);
}
delay_ms(500);
}
}
void main()
{
setup_psp(PSP_DISABLED);
setup_timer_1(T1_DISABLED);
setup_timer_2(T2_DISABLED,0,1);
setup_adc_ports(NO_ANALOGS);
setup_adc(ADC_OFF);
setup_CCP1(CCP_OFF);
setup_CCP2(CCP_OFF);
set_tris_b(0x00);
while(1)
{
output_b(0x00);
karakter_1(10);
output_b(0x00);
karakter_2();
}
}