Continue to Site

Welcome to EDAboard.com

Welcome to our site! EDAboard.com is an international Electronics Discussion Forum focused on EDA software, circuits, schematics, books, theory, papers, asic, pld, 8051, DSP, Network, RF, Analog Design, PCB, Service Manuals... and a whole lot more! To participate you need to register. Registration is free. Click here to register now.

Propeller LED display

Status
Not open for further replies.

amitdeepvij

Newbie level 1
Joined
Jul 8, 2010
Messages
1
Helped
0
Reputation
0
Reaction score
0
Trophy points
1,281
Location
india
Activity points
1,331
I have used a 555 timer for generating interrupt instead of moc7811.
My program is working correctly.
I just wanna know that how can i synchronize the dc motor RPM with the delay of interrupt so the pattern will appear.Below is my C program.Just tell me what alterations i have 2 do in this program
#include <reg51.h>
#define DISPL 80
#define MESS 984 // 984 bytes
#define DATAP P1
void DISP_SHOW();
void DISP_LOAD_BYTE(unsigned char A, unsigned char D);
void DISP_LOAD_BLOCK(unsigned char bf, unsigned char bt);
void DISP_LSHIFT(unsigned char DATA);
void DEL(unsigned int x);
xdata unsigned char MESSAGE[MESS]= {
0x00, 0x00, 0x00, 0x80, 0x80, 0x40, 0x30, 0xA0,
0x30, 0x20, 0x38, 0x04, 0x02, 0xFD, 0x00, 0x60,
0x50, 0x48, 0xF8, 0x80, 0x80, 0x82, 0x84, 0xF6,
0x84, 0x82, 0x80, 0x80, 0xFC, 0x00, 0xFC, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,


0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x7E, 0xFE, 0xC0, 0x70, 0x70, 0xC0, 0xFE, 0x7E,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
0x00, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xC6, 0x44, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
0xFC, 0xFE, 0x0E, 0x3C, 0x3C, 0x0E, 0xFE, 0xFC,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
// W
// E
// L
// C
// O
// M
// E
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
// T
// O
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0xFE, 0xFE, 0x10, 0x10, 0xFE, 0xFE, 0x00,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
// T
// H
// E


0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0xFE, 0xFE, 0x12, 0x12, 0x12, 0x02, 0x00,
0x00, 0x00, 0x82, 0xFE, 0xFE, 0x82, 0x00, 0x00,
0x00, 0xFE, 0xFE, 0x18, 0x30, 0xFE, 0xFE, 0x00,
0x00, 0xFC, 0xFE, 0x26, 0x26, 0xFE, 0xFC, 0x00,
0x00, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x00,
// F
// I
// N
// A
// L

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00 , 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0xFE, 0xFE, 0x12, 0x12, 0x1E, 0x0C, 0x00,
0x00, 0xFE, 0xFE, 0x32, 0x72, 0xDE, 0x8C, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
0x00, 0x60, 0xE0, 0x82, 0xFE, 0x7E, 0x02, 0x00,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xC6, 0x44, 0x00,
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
// P
// R
// O
// J
// E
// C
// T
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0xFE, 0xFE, 0x82, 0xC6, 0x7C, 0x38, 0x00,
// D


0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
0xFC, 0xFE, 0x0E, 0x3C, 0x3C, 0x0E, 0xFE, 0xFC,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
0x00, 0xFE, 0xFE, 0x18, 0x30, 0xFE, 0xFE, 0x00,
0x00, 0x4C, 0xDE, 0x92, 0x92, 0xF6, 0x64, 0x00,
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0xFE, 0xFE, 0x32, 0x72, 0xDE, 0x8C, 0x00,
0x00, 0xFC, 0xFE, 0x26, 0x26, 0xFE, 0xFC, 0x00,
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0x00, 0x82, 0xFE, 0xFE, 0x82, 0x00, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
0x00, 0xFE, 0xFE, 0x18, 0x30, 0xFE, 0xFE, 0x00,
// E
// M
// O
// N
// S
// T
// R
// A
// T
// I
// O
// N

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
0x00, 0xFE, 0xFE, 0x12, 0x12, 0x12, 0x02, 0x00,
// O
// F
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0xFE, 0xFE, 0x10, 0x10, 0xFE, 0xFE, 0x00,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
// T
// H
// E


0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0xFE, 0xFE, 0x32, 0x72, 0xDE, 0x8C, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0xFC, 0xFE, 0x26, 0x26, 0xFE, 0xFC, 0x00,
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0x00, 0x82, 0xFE, 0xFE, 0x82, 0x00, 0x00,
0x00, 0xFE, 0xFE, 0x18, 0x30, 0xFE, 0xFE, 0x00,
0x00, 0x7C, 0xFE, 0x92, 0x92, 0xF6, 0xF4, 0x00,
// R
// O
// T
// A
// T
// I
// N
// G

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x00,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
0x00, 0xFE, 0xFE, 0x82, 0xC6, 0x7C, 0x38, 0x00,
// L
// E
// D
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)


0xFC, 0xFE, 0x0E, 0x3C, 0x3C, 0x0E, 0xFE, 0xFC,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
0x00, 0x4C, 0xDE, 0x92, 0x92, 0xF6, 0x64, 0x00,
0x00, 0x4C, 0xDE, 0x92, 0x92, 0xF6, 0x64, 0x00,
0x00, 0xFC, 0xFE, 0x26, 0x26, 0xFE, 0xFC , 0x00,
0x00, 0x7C, 0xFE, 0x92, 0x92, 0xF6, 0xF4, 0x00,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
// M
// E
// S
// S
// A
// G
// E
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0xFE, 0xFE, 0x82, 0xC6, 0x7C, 0x38, 0x00,
0x00, 0x00, 0x82, 0xFE, 0xFE, 0x82, 0x00, 0x00,
0x00, 0x4C, 0xDE, 0x92, 0x92, 0xF6, 0x64, 0x00,
0x00, 0xFE, 0xFE, 0x12, 0x12, 0x1E, 0x0C, 0x00,
0x00, 0xFE, 0xFE, 0x80, 0x80, 0x80, 0x80, 0x00,
0x00, 0xFC, 0xFE, 0x26, 0x26, 0xFE, 0xFC, 0x00,
0x00, 0x0E, 0x1E, 0xF0, 0xF0, 0x1E, 0x0E, 0x00,
// D
// I
// S
// P
// L
// A
// Y

0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0x4C, 0xDE, 0x92, 0x92, 0xF6, 0x64, 0x00,
0x00, 0x0E, 0x1E, 0xF0, 0xF0, 0x1E, 0x0E, 0x00,
0x00, 0x4C, 0xDE, 0x92, 0x92, 0xF6, 0x64, 0x00,
// S
// Y
// S


0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0xFE, 0xFE, 0x92, 0x92, 0x92, 0x82, 0x00,
0xFC, 0xFE, 0x0E, 0x3C, 0x3C, 0x0E, 0xFE, 0xFC,
// T
// E
// M
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0x06, 0x06, 0xFE, 0xFE, 0x06, 0x06, 0x00,
0x00, 0xFE, 0xFE, 0x10, 0x10, 0xFE, 0xFE, 0x00,
0x00, 0xFC, 0xFE, 0x26, 0x26, 0xFE, 0xFC, 0x00,
0x00, 0xFE, 0xFE, 0x18, 0x30, 0xFE, 0xFE, 0x00,
0x00, 0xFE, 0xFE, 0x38, 0x6C, 0xC6, 0x82, 0x00,
// T
// H
// A
// N
// K
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
//(space)
//(space)
0x00, 0x0E, 0x1E, 0xF0, 0xF0, 0x1E, 0x0E, 0x00,
0x00, 0x7C, 0xFE, 0x82, 0x82, 0xFE, 0x7C, 0x00,
0x00, 0x7E, 0xFE, 0x80, 0x80, 0xFE, 0x7E, 0x00,
// Y
// O
// U
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00 };

unsigned char MEMORY[DISPL]= {
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0,
0, 0, 0, 0, 0, 0, 0, 0 };

sbit P3b2 = P3^2;
void main (void)
{
unsigned int N= 0;
P1= 0;
P3= 255;
N=0;
DISP_LOAD_BLOCK(0, DISPL-1);
while(1) {
while(P3b2);
while(!P3b2);
DISP_SHOW();

DISP_LSHIFT(MESSAGE[N]);
N++;
N=N%MESS;
}
}
void DISP_LOAD_BYTE(unsigned char A, unsigned char D) {
MEMORY[A]= D;
}
void DISP_LOAD_BLOCK(unsigned char bf, unsigned char bt) {
int I;
for(I=bf;I<bt;I++)
MEMORY= MESSAGE;
}
void DISP_SHOW() {
int I;
for(I=1;I<DISPL+1;I++) {
DATAP= MEMORY[DISPL - I];
DEL(20); }
DATAP= 0; }

void DISP_LSHIFT(unsigned char DATA)
{
int I;
for(I=0;I<(DISPL-1);I++)
MEMORY= MEMORY[I+1];
MEMORY[DISPL-1]= DATA;
}
void DEL(unsigned int x)
{
unsigned int i,j;
for(i=0;i<x;i++)
for(j=0;j<1275;j++);
}

What alteration i should do in the DEL() fn. so that the rpm of dc motor get synchronized with the interrupt delay from 555 timer.
 

You should know the speed of the motor and the speed of your clock. To calculate the delay needed to synchronize the messages you want to appear.

---------- Post added at 08:15 ---------- Previous post was at 07:45 ----------

You may use the speed sensor of the motor. Then, make a program to calculate the speed of the motor and then adjust the frequency of the clock for messages of the LED.
 

Status
Not open for further replies.

Similar threads

Part and Inventory Search

Welcome to EDABoard.com

Sponsor

Back
Top