vinodstanur
Advanced Member level 3
- Joined
- Oct 31, 2009
- Messages
- 751
- Helped
- 114
- Reputation
- 234
- Reaction score
- 114
- Trophy points
- 1,333
- Location
- Kerala (INDIA)
- Activity points
- 7,054
BELOW IS MY 8*10 LED DOT MATRIX DISPLAY DESIGN AND VIDEO AND THE C PROGRAM. I NEED SOME HELP.
THE PROGRAM SHOWN BELOW WORKS AS IN ABOVE VIDEO
#include <htc.h>
#define _XTAL_FREQ 4e6 // 4MHz
__CONFIG(0x3FFA);
void delay(unsigned int k)
{for(int i=0;i<=k;i++)}
void pattern(unsigned int a,b,c,d,e,f,g,h,i,j)
{
for(int z=0;z<9;z++)
{ for(int z=0;z<10;z++)
{
PORTB=a;delay(100);RA0=1;RA0=0;
PORTB=b;delay(100);RA0=1;RA0=0;
PORTB=c;delay(100);RA0=1;RA0=0;
PORTB=d;delay(100);RA0=1;RA0=0;
PORTB=e;delay(100);RA0=1;RA0=0;
PORTB=f;delay(100);RA0=1;RA0=0;
PORTB=g;delay(100);RA0=1;RA0=0;
PORTB=h;delay(100);RA0=1;RA0=0;
PORTB=i;delay(100);RA0=1;RA0=0;
PORTB=j;delay(100);RA0=1;RA0=0;
}
(a=a<<1);
(b=b<<1);
(c=c<<1);
(d=d<<1);
(e=e<<1);
(f=f<<1);
(g=g<<1);
(h=h<<1);
(i=i<<1);
(j=j<<1);
}
}
void main()
{
TRISB=0;TRISA=11100;PORTA=0;PORTA=2;PORTA=1;PORTA= 0;
while(1)
{
pattern(28,20,54,34,99,127,127,99,65,65); //LETTER A
pattern(124,102,99,99,126,126,99,99,102,124); //LETTER B
pattern(62,127,99,96,96,96,96,99,127,62); //LETTER C
pattern(124,126,103,99,99,99,99,103,126,124); //LETTER D
pattern(127,127,96,96,124,124,96,96,127,127); //LETTER E
}
}
IN THE ABOVE PROGRAM , THE LETTERS A, B C ETC WILL SCROLL INDEPENDENTLY ONE AFTER OTHER. ONLY AFTER COMPLETELY SHIFTING A TO EXTREEM LEFT , THEN ONLY B WILL START .
1>WHAT SHOULD I DO SO THAT LETTER B STARTS FROM RIGHT WHEN LETTER A SHIFTS TO RIGHT SO THAT A MESSAGE COULD BE DISPLAYED IN CONTINUOUS MANNER RATHER THAN IN LETTER BY LETTER MANNER...
IF ANY ONE IS FREE AND HAVE ENOUGH TIME TO CHECK THE PROGRAM ,THEN PLS HELP ME...:roll:
#include <htc.h>
#define _XTAL_FREQ 4e6 // 4MHz
__CONFIG(0x3FFA);
void delay(unsigned int k)
{for(int i=0;i<=k;i++)}
void pattern(unsigned int a,b,c,d,e,f,g,h,i,j)
{
for(int z=0;z<9;z++)
{ for(int z=0;z<10;z++)
{
PORTB=a;delay(100);RA0=1;RA0=0;
PORTB=b;delay(100);RA0=1;RA0=0;
PORTB=c;delay(100);RA0=1;RA0=0;
PORTB=d;delay(100);RA0=1;RA0=0;
PORTB=e;delay(100);RA0=1;RA0=0;
PORTB=f;delay(100);RA0=1;RA0=0;
PORTB=g;delay(100);RA0=1;RA0=0;
PORTB=h;delay(100);RA0=1;RA0=0;
PORTB=i;delay(100);RA0=1;RA0=0;
PORTB=j;delay(100);RA0=1;RA0=0;
}
(a=a<<1);
(b=b<<1);
(c=c<<1);
(d=d<<1);
(e=e<<1);
(f=f<<1);
(g=g<<1);
(h=h<<1);
(i=i<<1);
(j=j<<1);
}
}
void main()
{
TRISB=0;TRISA=11100;PORTA=0;PORTA=2;PORTA=1;PORTA= 0;
while(1)
{
pattern(28,20,54,34,99,127,127,99,65,65); //LETTER A
pattern(124,102,99,99,126,126,99,99,102,124); //LETTER B
pattern(62,127,99,96,96,96,96,99,127,62); //LETTER C
pattern(124,126,103,99,99,99,99,103,126,124); //LETTER D
pattern(127,127,96,96,124,124,96,96,127,127); //LETTER E
}
}
IN THE ABOVE PROGRAM , THE LETTERS A, B C ETC WILL SCROLL INDEPENDENTLY ONE AFTER OTHER. ONLY AFTER COMPLETELY SHIFTING A TO EXTREEM LEFT , THEN ONLY B WILL START .
1>WHAT SHOULD I DO SO THAT LETTER B STARTS FROM RIGHT WHEN LETTER A SHIFTS TO RIGHT SO THAT A MESSAGE COULD BE DISPLAYED IN CONTINUOUS MANNER RATHER THAN IN LETTER BY LETTER MANNER...
IF ANY ONE IS FREE AND HAVE ENOUGH TIME TO CHECK THE PROGRAM ,THEN PLS HELP ME...:roll:
Last edited: