# DIY Moving Message Display

Status
Not open for further replies.

##### Newbie level 5
moving message display circuit

Hi all
I want to have moving message display program for atmel AT89C251. May some one help me?

#### Epegic

##### Member level 5
moving message display project

Embedded control software always depends on hardware design. It is hopeless to any advice if you don't mention clearly what you wanted.

Points: 2

Points: 2

### anilvtc

Points: 2

##### Newbie level 5
moving message software

Epegic said:
Embedded control software always depends on hardware design. It is hopeless to any advice if you don't mention clearly what you wanted.
Thanks for reply.... suppose I have a text string like "Well Come We have all stuf you want". I want to get it scrool over and over... moving letters on a 7x9 led matrix. I saw a unit which was doing this. In that unit it was possible that you change the moving message with the help of a infra red remote control. It means that moving message has built in characterset.. from which letters can be selected to make a message. It contains 19 led matrix displays (7 x 9). May it help to advice me ATMEL based Hardware design and its software? Thanks again.
Saif

Points: 2

Points: 2

### kyrietec

Points: 2

#### Epegic

##### Member level 5
microcontroller based moving message display

It doesn't help too much. The first thing to do is design driving hardware for LED matrix. Software is used to pump display data and control how data are displayed. Simple hardware need complicate software and vice vera.

Points: 2

### swarup03

Points: 2

#### senthilkumar

circuit diagram moving message display

hai,

u go and search maxim ic for led matrix display.

Points: 2

Points: 2

### Dyra

Points: 2

#### Al Farouk

##### Full Member level 4
message display software

Dear saif
I think that I understand what you need. The idea os the design of the moving message as follows

The shape of the characters are saved in EPROM (for example) and the display matrix are arranged in row and columns each column can be enabled individually.

Counters are used to address the contents of the EPROM in synchrounous with the columns enabled sequence so the shape of the character can be drwan on the Matrix.

to show the moving effect, enable column n then n-1 then n-2 and display the output of the EPROM content on the appropreiat column, repeat this action for example 25 --> 50 time/second.

repeat the last setp by shifting the columns address i.e enable n+1 then n then n-1 and so on.

repeat the last step till the end of your dislay matrix, you get the moving effect.

regards

Points: 2

Points: 2

### rmdharin

Points: 2

##### Newbie level 5
diy moving message display

Dear Al Farouk
Thank you verymuch for your reply... You are very right ... you got it.... now I am posting pcb design and parts layout of a portion of actual unit as suggested Mr. Epegic in his pm. May it help to advice me more on this topic.

Thanks
Saif

Points: 2

Points: 2

### kyrietec

Points: 2

#### Al Farouk

##### Full Member level 4
diy moving message display

Dear Saif

you should first reverse engineer the board you have to get sch first and then study the idea behind the sch to be able to understand the correct layout and the track width in each section.

this also will help you to writ down the program that will be run by the microcontroller.

abdulmajeedtahir

### abdulmajeedtahir

Points: 2

#### ME

cd4514 led scroll circuits

This link may be very useful:
https://attiny.com/dotmatrix.htm
It uses an Atmel AVR ATtiny2313 for controlling eight 5x7 LED dotmatrix displays.

[edit June 2009: Changed link to new website and use ATtiny2313 instead of the now obsolete AT90S2313)

Points: 2

Points: 2

### dhruv patel

Points: 2

#### GrandAlf

e03b016.pdf

Normally these units have a serial i/p for computer programming with a fairly simple protocol. Are you sure that the one you are looking at does not have this facilty?, if not there are plenty that do.

V
Points: 2

#### ME

cd4514 led scroll circuit

GrandAlf said:
Normally these units have a serial i/p for computer programming with a fairly simple protocol. Are you sure that the one you are looking at does not have this facilty?, if not there are plenty that do.
The one that I linked to have RS232 interface for connetion to PC:
ATtiny.com | Using the UART/USART for receiving data

But I doesnt seems like the one posted by Saif have any connector except a Powersupply plug.

Last edited:
emina

Points: 2

RFID_H

### RFID_H

Points: 2

#### Epegic

##### Member level 5
scrolling message display circuit diagram

Saif,
PCB layout is not so good for understand the circuit, schematic diagram will be much better.

I don't have detail specification of 164 and 7445, 164 have to provide 5~20mA, depends on LED used. 7445 need 5 times the driving current.

Refresh rate should be >40Hz(very flicker) to 70Hz(very stable), that means switching each row in (1/40/7) 3.5ms to (1/70/7) 2ms, setup a timer to involve the scan() function.

A prelimary algorithm for your reference
Assuming Port1 connected to 7445 and port 2 to 164,
4 bytes (25 columns) used for display data for each row.
Code:
dispBuffer[row][col/8];
#define Sclock  P^0;
#define Sdata  P^1;

void scan(void) {
for (row=0; row<7 row++) {
P1 = 0x00;  // turn off display
for (i=0; i<4; i++)   // send 4 bytes of display data
outOneByte(dispBuffer[row][i]);  // send data to 164
P1 = 0x01<<row;  // enable one single row
} }

void outOneByte(dispData) {
Sclock = 0;  // serial clock low
for (i=0; i<8; i++) {  //send 8 bits
if ((dispData & 0x01)==1) Sdata = 1;
else Sdata =0;
Sclock =1;
dispData >>=1;
} }

The above code fragments are by no means accurate, by only give a rough idea, you have to rewrite to fit your situation.

I will search some reference designs for you later.

Last edited by a moderator:
chirantha_ic

V
Points: 2

### chirantha_ic

Points: 2

#### Al Farouk

##### Full Member level 4
moving message program

The circuit supplied by ME also need a storage media (EPROM, EEPROM, or else) to be read at poer up and also facilitate the field updating.

soheiliran

### soheiliran

Points: 2

#### ME

led moving message display circuit

Al Farouk said:
The circuit supplied by ME also need a storage media (EPROM, EEPROM, or else) to be read at poer up and also facilitate the field updating.
You can download the program with the ISP connector, then you can program the text inide the Flash memory as a part of the program, then you don't need any eeprom. If there is not enough space in the AVR, then you can just use a bigger AVR with more Flash memory.

#### tobb

##### Member level 5
source code moving message display

HI .. The circuit supply by ME is good one . it use internal eeprom to store upto 128 char for moving message. I'm currently work on 16*32 led moving bar. it use sanyo LC7932 16 bit shift open drain ic.
i use timer interupt for shift every column and i use internal eeprom to store letter the logic will like this

send shift data to ic controll column
display column(i)
increase i

this will display static data so i need to chage column data to make it move in a time that i set .. I try this and it work.. but my source code is writen in bascom and it use with LC7932 Driver + AT90S2313 .. if anyone interest i could post it here..

V
Points: 2

#### ME

moving message display

tobb said:
HI .. The circuit supply by ME is good one . it use internal eeprom to store upto 128 char for moving message. I'm currently work on 16*32 led moving bar. it use sanyo LC7932 16 bit shift open drain ic.
i use timer interupt for shift every column and i use internal eeprom to store letter the logic will like this

send shift data to ic controll column
display column(i)
increase i

this will display static data so i need to chage column data to make it move in a time that i set .. I try this and it work.. but my source code is writen in bascom and it use with LC7932 Driver + AT90S2313 .. if anyone interest i could post it here..

I just looked at the site I linked to and I can't find the sourcecode or hex file, have you found the source code or hex at the site?
Just upload the bascom code, it's a small file, I'm sure it will be usefull to someone, eventhough I don't use Basic.

R.MURUGAN

### R.MURUGAN

Points: 2

##### Newbie level 5
microcontroller moving message display

Thanks all...
I am grateful all of you... It helped me very much to understand the program logic for moving message display. If readymade program code is available anywere than please tell. I am also trying to write one... If I succeeded ... I will place one on this forum for others to use it in their project.

Thanks again

Saif

RFID_H

### RFID_H

Points: 2

#### neuralc

##### Full Member level 4
scrolling message display circuit

Hi,

Let me place a question about hardware.

Do you have already tried to switch ON all the leds (or 80% of them)?

NeuralC

#### tobb

##### Member level 5

For this Question
Let me place a question about hardware.

Do you have already tried to switch ON all the leds (or 80% of them)?

Yes.. If from my hardware. I have try enable all 512 leds and it all work find. the only ploblem is if you scan leds to slow it could be easily see it flickers. The led maxtrix use scan methode so the power supply can be smaller and for me i use only one 7805 to feed my micro and 512 leds

And this is a simple code that move image display to right and also with my system picture

Here is Bascom code,
Code:
Dim Outser1 As Integer
Dim Outser2 As Integer
Dim Outprt As Byte
Dim Outrow As Integer

Dim Outserlong As Long
Dim Tmplong As Long

Dim Sr_cnt As Byte
Dim Sr_cnt_zero As Byte
Dim Sr_cnt_first As Byte
Dim Sr_cnt_second As Byte
Dim Page As Byte
Dim En_flage As Byte
Dim I As Byte , J As Byte , K As Byte
Dim I_zero As Byte
Dim I_invert As Byte
Dim Shifttime As Integer
Dim Shiften As Byte

\$eeprom
Data &B0000000000000000%
Data &B0000000000000000%
Data &B0101010011100000%
Data &B0101010100010000%
Data &B0101010111110000%
Data &B0101010100000000%
Data &B0010100011100000%
Data &B0000000000000000%
Data &B0000000000000000%
Data &B0111001000000100%
Data &B0100100001100001%
Data &B0100101010010100%
Data &B0100101010010100%
Data &B0111001001110100%
Data &B0000000000010000%
Data &B0000000001100000%
Data &B0000000000001010%
Data &B0110001100000101%
Data &B1001010010000010%
Data &B1000100010110001%
Data &B1000000011001000%
Data &B0100000100001000%
Data &B0010001100010000%
Data &B0001010010100000%
Data &B0000100001000000%
Data &B1000000010001010%
Data &B1100110010001010%
Data &B1001001010001010%
Data &B1001001010001010%
Data &B1000111010000000%
Data &B0000000000001010%
Data &B0000000000000000%
Config Portb = Output
Config Timer0 = Timer , Prescale = 8
Enable Timer0
Enable Interrupts
On Ovf0 Tim0_isr
Do
Loop
Tim0_isr:
Disable Interrupts
Incr Shifttime
If Shifttime = 150 Then
Incr Shiften
If Shiften = 32 Then Shiften = 0
Shifttime = 0
End If
Sr_cnt_zero = Sr_cnt - 1
Sr_cnt_first = Sr_cnt_zero * 2
Sr_cnt_second = Sr_cnt_zero + 16
Sr_cnt_second = Sr_cnt_second * 2

For I = 0 To 31
J = I - 16
If I < 16 Then Outserlong.i = Outser1.i
If I >= 16 Then Outserlong.i = Outser2.j
Next I

Tmplong = Outserlong
If Shiften > 0 Then
Shift Outserlong , Left , Shiften

For I = 0 To Shiften
K = Shiften - I
J = 32 - K
Outserlong.i = Tmplong.j
Next I
End If
For I = 0 To 31
J = I - 16
If I < 16 Then Outser1.i = Outserlong.i
If I >= 16 Then Outser2.j = Outserlong.i
Next I
Set Portb.5
Outrow = &B0000000000000000
Outrow.sr_cnt_zero = 1

For I = 1 To 16
I_zero = I - 1
I_invert = 15 - I_zero
Reset Portb.4
Portb.2 = Outser1.i_invert
Portb.1 = Outser2.i_invert
Portb.0 = Outrow.i_invert
Reset Portb.3
Set Portb.3
Next I
Set Portb.4
Reset Portb.5
If Sr_cnt => 16 Then Sr_cnt = 0
Incr Sr_cnt

Disable Interrupts
Return

Last edited by a moderator:

Status
Not open for further replies.