#include <htc.h>
__CONFIG(LVP_OFF & BOREN_OFF & PWRTE_ON & WDTE_OFF & FOSC_HS);
#define _XTAL_FREQ 20000000
#define DAD PORTB
#define RST RC6
#define CLK RC3
#define DATA RC4
extern const char Font2[];unsigned char leds[32];
unsigned char pow[] = {128,64,32,16,8,4,2,1};
display(char *str);
int data( int p);
int t;
char b,e;
main (){
TRISC=0B00000000;
TRISB=0B00000000;
while(1){
display("Ram..");
char u=-1;
b=0b00000001;
for(int r=0;r<8;r++){
DAD=pow[r];
__delay_ms(10);
RST=0;
RST=1;
u++;
for(int a=0;a<32;a++){
DAD=0;
RST=1;
char t,n;
n=leds[a];
n>>=u;
t=(n & b);
DATA=t;
CLK=1;
CLK=0;
}
}
}
}
display(char *str)
{
int addr;
int z;
while(*str!=0){
addr = ((int)*str++ - 0x20);
addr *= 5;
int y=0;
for(z=0;z<5;z++){
leds[z] = Font2[addr+y];
y++;
}
addr = ((int)*str++ - 0x20);
addr *= 5;
int y=0;
for(z=6;z<11;z++){
leds[z] = Font2[addr+y];
y++;
}
addr = ((int)*str++ - 0x20);
addr *= 5;
int y=0;
for(z=12;z<17;z++){
leds[z] = Font2[addr+y];
y++;
}
addr = ((int)*str++ - 0x20);
addr *= 5;
int y=0;
for(z=18;z<23;z++){
leds[z] = Font2[addr+y];
y++;
}
addr = ((int)*str++ - 0x20);
addr *= 5;
int y=0;
for(z=24;z<29;z++){
leds[z] = Font2[addr+y];
y++;
}
}
}