Sunday, September 11th, 2011

Moving Message Display MMD with LED matrix using PIC Microcontroller PIC16f628
by

PIC MICROCONTROLLER BASED LED MOVING MESSAGE DISPLAY

MMD PROJECT INTRODUCTION:-
This is a simple moving message display project in which LED matrix are used for scanning the text message from right to left. PIC microcontroller 16f628 is used in the LED moving message display project.

Parts of the Moving message display:-

LED Matrix     =     12
74LS595 serial tp parallel shift registers  for columns scanning = 8
MCU = PIC16f628
74LS138 decoder for rows scanning = 1

crystal = 4MHz with 22pf capacitors
 and other power supply components.

circuit diagram of the moving message display is as follows:-
Moving Message Display MMD with LED matrix using PIC Microcontroller PIC16f628

The program of the moving message display is written in proton basic language is as under:-
Device=16F628A
XTAL=4
ALL_DIGITAL=true
Output PORTB
Output PORTA
Symbol SER = PORTB.0 ‘ Serial data Pin
Symbol SRCLK = PORTB.1 ‘ Serial data Clock Pin
Symbol SRClr = PORTB.2 ‘ Serial data Clear
Symbol Latch = PORTB.3 ‘ Columns, Latch
High SRClr ‘ Turn off the serial register clear
Dim serial_buffer[120] As Byte
STR serial_buffer = “Moving Message Display and many other Microcontroller Project can be downloaded free from www.PICinf.blogspot.com” , 0
Symbol selectline PORTA
Dim row As Byte
Dim character_counter As Byte
Dim general_index As Byte
dim charcter as byte
dim scrolling as byte
dim ch_index as byte
dim start_ch_idx as byte
dim end_ch_idx as byte
for general_index =0 to 120
if serial_buffer[general_index]>0 then serial_buffer[general_index] =serial_buffer[general_index]-32
next general_index
‘ setup for positive pulses:
lATCH = 0 : SRCLK = 0 : SER = 0
start_ch_idx =0
end_ch_idx = 120
Loop:
For row =0 To 6
ch_index = start_ch_idx
for character_counter = 0 to 9
GoSub Get_Pattern
inc ch_index
if ch_index = end_ch_idx then ch_index =0
next character_counter
PulsOut Latch,4
selectline = row
DelayUS 250
‘selectline = 7
for character_counter = 0 to 7
SHOut SER,SRCLK,lsbfirst,[0]
next character_counter
PulsOut Latch,4
Next row
inc scrolling
if scrolling = 10 then
scrolling = 0
Inc start_ch_idx
If start_ch_idx = end_ch_idx Then start_ch_idx = 0
endif
GoTo Loop
End
Get_Pattern:

charcter = LRead LABEL+((serial_buffer[ch_index]) * 8) + row
charcter = ~charcter
‘ out a clock pulse and one bit on data pin
‘out the low 5 bits of pattern

If charcter.4 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If charcter.3 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If charcter.2 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If charcter.1 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If charcter.0 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
SRCLK = 1 : SRCLK = 0: SER = 0
Return

LABEL:
LDATA $FF,$FF,$FF,$FF,$FF,$FF,$FF,$FF ‘Space
LDATA $FB,$FB,$FB,$FB,$FB,$FF,$FB,$FF ‘!
LDATA $F5,$F5,$F5,$FF,$FF,$FF,$FF,$FF ‘”
LDATA $F5,$F5,$E0,$F5,$E0,$F5,$F5,$FF ‘#
LDATA $FB,$F0,$EB,$F1,$FA,$E1,$FB,$FF ‘$
LDATA $E3,$EA,$E5,$FB,$F4,$EA,$F8,$FF ‘%
LDATA $F7,$EB,$EB,$F7,$EA,$ED,$F2,$FF ‘&
LDATA $F9,$F9,$FD,$FB,$FF,$FF,$FF,$FF ”
LDATA $FD,$FB,$F7,$F7,$F7,$FB,$FD,$FF ‘(
LDATA $F7,$FB,$FD,$FD,$FD,$FB,$F7,$FF ‘)
LDATA $FB,$EA,$F1,$FB,$F1,$EA,$FB,$FF ‘*
LDATA $FF,$FB,$FB,$E0,$FB,$FB,$FF,$FF ‘+
LDATA $FF,$FF,$FF,$F3,$F3,$FB,$F7,$FF ‘,
LDATA $FF,$FF,$FF,$F1,$FF,$FF,$FF,$FF ‘-
LDATA $FF,$FF,$FF,$FF,$FF,$F3,$F3,$FF ‘.
LDATA $FF,$FE,$FD,$FB,$F7,$EF,$FF,$FF ‘/
LDATA $F1,$EE,$EC,$EA,$E6,$EE,$F1,$FF ’0
LDATA $FB,$F3,$FB,$FB,$FB,$FB,$F1,$FF ’1
LDATA $F1,$EE,$FE,$F1,$EF,$EF,$E0,$FF ’2
LDATA $F1,$EE,$FE,$F9,$FE,$EE,$F1,$FF ’3
LDATA $FD,$F9,$F5,$ED,$E0,$FD,$FD,$FF ’4
LDATA $E0,$EF,$E1,$FE,$FE,$FE,$E1,$FF ’5
LDATA $F9,$F7,$EF,$E1,$EE,$EE,$F1,$FF ’6
LDATA $E0,$FE,$FD,$FB,$F7,$F7,$F7,$FF ’7
LDATA $F1,$EE,$EE,$F1,$EE,$EE,$F1,$FF ’8
LDATA $F1,$EE,$EE,$F0,$FE,$FD,$F3,$FF ’9
LDATA $FF,$F3,$F3,$FF,$F3,$F3,$FF,$FF ‘:
LDATA $F3,$FB,$F3,$F3,$FF,$F3,$F3,$FF ‘;
LDATA $FD,$FB,$F7,$EF,$F7,$FB,$FD,$FF ‘ < ”’

LDATA $FF,$FF,$F1,$FF,$F1,$FF,$FF,$FF ‘ = 
LDATA $F7,$FB,$FD,$FE,$FD,$FB,$F7,$FF  ‘  >
LDATA $F1,$EE,$FE,$FD,$FB,$FF,$FB,$FF ‘?
LDATA $F1,$EE,$FE,$F2,$EA,$EA,$F1,$FF ‘@
LDATA $FB,$F5,$EE,$EE,$E0,$EE,$EE,$FF ‘A
LDATA $E1,$F6,$F6,$F1,$F6,$F6,$E1,$FF ‘B
LDATA $F1,$EE,$EF,$EF,$EF,$EE,$F1,$FF ‘C
LDATA $E1,$F6,$F6,$F6,$F6,$F6,$E1,$FF ‘D
LDATA $E0,$EF,$EF,$E3,$EF,$EF,$E0,$FF ‘E
LDATA $E0,$EF,$EF,$E3,$EF,$EF,$EF,$FF ‘F
LDATA $F1,$EE,$EF,$E8,$EE,$EE,$F1,$FF ‘G
LDATA $EE,$EE,$EE,$E0,$EE,$EE,$EE,$FF ‘H
LDATA $F1,$FB,$FB,$FB,$FB,$FB,$F1,$FF ‘I
LDATA $F8,$FD,$FD,$FD,$FD,$FD,$F3,$FF ‘J
LDATA $EE,$ED,$EB,$E7,$EB,$ED,$EE,$FF ‘K
LDATA $EF,$EF,$EF,$EF,$EF,$EF,$E0,$FF ‘L
LDATA $EE,$E4,$EA,$EA,$EE,$EE,$EE,$FF ‘M
LDATA $EE,$E6,$EA,$EC,$EE,$EE,$EE,$FF ‘N
LDATA $F1,$EE,$EE,$EE,$EE,$EE,$F1,$FF ‘O
LDATA $E1,$EE,$EE,$E1,$EF,$EF,$EF,$FF ‘P
LDATA $F1,$EE,$EE,$EE,$EA,$ED,$F2,$FF ‘Q
LDATA $E1,$EE,$EE,$E1,$EB,$ED,$EE,$FF ‘R
LDATA $F1,$EE,$EF,$F1,$FE,$EE,$F1,$FF ‘S
LDATA $E0,$FB,$FB,$FB,$FB,$FB,$FB,$FF ‘T
LDATA $EE,$EE,$EE,$EE,$EE,$EE,$F1,$FF ‘U
LDATA $EE,$EE,$EE,$F5,$F5,$FB,$FB,$FF ‘V
LDATA $EE,$EE,$EE,$EA,$EA,$E4,$EE,$FF ‘W
LDATA $EE,$EE,$F5,$FB,$F5,$EE,$EE,$FF ‘X
LDATA $EE,$EE,$F5,$FB,$FB,$FB,$FB,$FF ‘Y
LDATA $E0,$FE,$FD,$FB,$F7,$EF,$E0,$FF ‘Z
LDATA $F1,$F7,$F7,$F7,$F7,$F7,$F1,$FF ‘[
LDATA $FF,$EF,$F7,$FB,$FD,$FE,$FF,$FF ‘backslash
LDATA $F1,$FD,$FD,$FD,$FD,$FD,$F1,$FF ‘[
LDATA $FB,$F5,$EE,$FF,$FF,$FF,$FF,$FF ‘^
LDATA $FF,$FF,$FF,$FF,$FF,$FF,$E0,$FF ‘underline
LDATA $F3,$F3,$F7,$FB,$FF,$FF,$FF,$FF ”
LDATA $FF,$FF,$F1,$FE,$F0,$EE,$F1,$FF ‘a
LDATA $EF,$EF,$E9,$E6,$EE,$E6,$E9,$FF ‘b
LDATA $FF,$FF,$F8,$F7,$F7,$F7,$F8,$FF ‘c
LDATA $FE,$FE,$F2,$EC,$EE,$EC,$F2,$FF ‘d
LDATA $FF,$FF,$F1,$EE,$E0,$EF,$F1,$FF ‘e
LDATA $F9,$F6,$F7,$E1,$F7,$F7,$F7,$FF ‘f
LDATA $FF,$FF,$F0,$EE,$F0,$FE,$F1,$FF ‘g
LDATA $EF,$EF,$E9,$E6,$EE,$EE,$EE,$FF ‘h
LDATA $FB,$FF,$F3,$FB,$FB,$FB,$F1,$FF ‘i
LDATA $FD,$FF,$F9,$FD,$FD,$FD,$F3,$FF ‘j
LDATA $F7,$F7,$F6,$F5,$F3,$F5,$F6,$FF ‘k
LDATA $F3,$FB,$FB,$FB,$FB,$FB,$F1,$FF ‘l
LDATA $FF,$FF,$E5,$EA,$EA,$EA,$EA,$FF ‘m
LDATA $FF,$FF,$E9,$E6,$EE,$EE,$EE,$FF ‘n
LDATA $FF,$FF,$F1,$EE,$EE,$EE,$F1,$FF ‘o
LDATA $FF,$FF,$E1,$EE,$E1,$EF,$EF,$FF ‘p
LDATA $FF,$FF,$F0,$EE,$F0,$FE,$FE,$FF ‘q
LDATA $FF,$FF,$E9,$E6,$EF,$EF,$EF,$FF ‘r
LDATA $FF,$FF,$F0,$EF,$F1,$FE,$E1,$FF ‘s
LDATA $FB,$FB,$F0,$FB,$FB,$FB,$FC,$FF ‘t
LDATA $FF,$FF,$EE,$EE,$EE,$EC,$F2,$FF ‘u
LDATA $FF,$FF,$EE,$EE,$EE,$F5,$FB,$FF ‘v
LDATA $FF,$FF,$EE,$EE,$EA,$EA,$F4,$FF ‘w
LDATA $FF,$FF,$EE,$F5,$FB,$F5,$EE,$FF ‘x
LDATA $FF,$FF,$EE,$F5,$FB,$FB,$F3,$FF ‘y
LDATA $FF,$FF,$E0,$FD,$FB,$F7,$E0,$FF ‘z
LDATA $F9,$F7,$F7,$E7,$F7,$F7,$F9,$FF ‘{
LDATA $FB,$FB,$FB,$FF,$FB,$FB,$FB,$FF ‘|
LDATA $F3,$FD,$FD,$FC,$FD,$FD,$F3,$FF ‘}
LDATA $F5,$EA,$FF,$FF,$FF,$FF,$FF,$FF ‘~
LDATA $F5,$EA,$F5,$EA,$F5,$EA,$F5H ‘DEL

Moving Message Display MMD with LED matrix using PIC Microcontroller PIC16f628,74ls595,74ls138,fancy LED matrix display


10 Responses

05/13/2012

PLS, BE KIND ENOUGH TO SEND/ E-MAIL SOURCE CODES/HEX/ASM FILES FOR THE PROJECT CALLED, ‘LED MOVING MASSAGE DISPLAY USING PIC16F628 CD4017 AND 74LS595

MANY THANKS,

INDIKA..


06/07/2012

PLS, BE KIND ENOUGH TO SEND/ E-MAIL SOURCE CODES/HEX/ASM FILES FOR THE PROJECT CALLED, ‘LED MOVING MASSAGE DISPLAY USING PIC16F628 CD4017 AND 74LS595


07/10/2012
Sreekanth

plz send source and circuit


07/20/2012
sarathchandra

please send circuit diagram


07/31/2012
ene noah

I’m so much interested on design.can u send me the source codes,hex/ASM files.


10/04/2012
gopinath

BE KIND ENOUGH TO SEND/ E-MAIL SOURCE CODES/HEX/ASM FILES FOR THE PROJECT CALLED, ‘LED MOVING MASSAGE DISPLAY USING PIC16F628 CD4017 AND 74LS595


10/07/2012

please send circuit diagram


10/13/2012
akshay rane

BE KIND ENOUGH TO SEND/ E-MAIL SOURCE CODES/HEX/ASM FILES FOR THE PROJECT CALLED, ‘LED MOVING MASSAGE DISPLAY USING PIC16F628 CD4017 AND 74LS595 and please send circuit diagram


12/13/2012
david jose

I would like answer, how going the matrix led


12/26/2012
Ravi

Hi pls send me the Hardware circuit diagram with components list and also code both ASM file and hex code..Pls consider and send me as soon as possible