100% found this document useful (1 vote)
504 views5 pages

LED Moving Message Diaply Using PIC16f628 CD4017 and 74LS595

This document describes an LED moving message display project using a PIC16F628 microcontroller, CD4017 and 74LS595 chips. It scans rows with the CD4017 instead of a decoder. The PIC drives 8 shift registers to control an 8x8 LED matrix. The code is written in Proton BASIC and scrolls a message by shifting it through the matrix row by row.

Uploaded by

murugaraj19822
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
100% found this document useful (1 vote)
504 views5 pages

LED Moving Message Diaply Using PIC16f628 CD4017 and 74LS595

This document describes an LED moving message display project using a PIC16F628 microcontroller, CD4017 and 74LS595 chips. It scans rows with the CD4017 instead of a decoder. The PIC drives 8 shift registers to control an 8x8 LED matrix. The code is written in Proton BASIC and scrolls a message by shifting it through the matrix row by row.

Uploaded by

murugaraj19822
Copyright
© Attribution Non-Commercial (BY-NC)
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as DOC, PDF, TXT or read online on Scribd
You are on page 1/ 5

LED moving message diaply using

PIC16f628 CD4017 and 74LS595


by Ivan
SECOND MMD PROJECT
LED moving message diaply using PIC16f628 CD4017 and 74LS595
Introduction of MMD Project-2:The PIC microcontroller PIC16f628 is used the main processor in the MMD. The difference from the
previous moving message diaply and this is method for scaning the rows. In previous MMD a decoder
74LS138 was used to scan the rows. But in this project, i have used CD4017 for row scanning instead of
use of any decoder.
Components of the LED moving message display:LED matrix = 88 LED matrix 8 Nos,
MCU = PIC16f628
Shift registers = 74LS595 8Nos
crystal = 4MHz with 22 pF capacitors.
and other basic components like reset switches and regulated power suplly of 5V which have enough
current baring for this project like 1Amp max.
The circuit diagram of the 8 x 8 x 8 LED matrix moving message display using PIC microcontroller is as
under:-

Code of the Moving message diaply is written in proton basic compiler and is as under:Device=16F628A
XTAL=4
ALL_DIGITAL=true
Output PORTB
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
Symbol RowClk = PORTB.4 Row clock, to select new row
Symbol Rowrst = PORTB.5 Row reset, selects row 0
High SRClr Turn off the serial register clear
Dim serial_buffer[128] As Byte
STR serial_buffer = www.PICinf.blogspot.com , 0
Dim i As Byte
Dim n As Byte
Dim b As Byte
Dim c As Byte
dim m as byte
dim l as byte
dim ch_index as byte
dim start_ch_idx as byte
dim end_ch_idx as byte
for b =0 to 128
if serial_buffer[b]>0 then serial_buffer[b] =serial_buffer[b]-32
next b
setup for positive pulses:
lATCH = 0 : SRCLK = 0 : SER = 0
c=0
start_ch_idx =0
end_ch_idx = 30
Loop:
PulsOut Rowrst,2 give a pulse on row reset pin, to select row 0
For i=0 To 6
ch_index = start_ch_idx
for n = 0 to 10
GoSub GetPatternAndOut
inc ch_index
if ch_index = end_ch_idx then ch_index =0
next n
PulsOut Latch,4
DelayUS 250
PulsOut RowClk,2
for n = 0 to 7
SHOut SER,SRCLK,lsbfirst,[0]
next n
PulsOut Latch,4

Next i
inc l
if l = 10 then
l=0
Inc start_ch_idx
If start_ch_idx = end_ch_idx Then start_ch_idx = 0
endif
GoTo Loop
End
GetPatternAndOut:
m = LRead LABEL+((serial_buffer[ch_index]) * 8) +i
m = ~m
out a clock pulse and restore data pin to 0
out the low 5 bits of pattern
SRCLK = 1 : SRCLK = 0: SER = 0
If m.4 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If m.3 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If m.2 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If m.1 = 1 Then SER = 1
SRCLK = 1 : SRCLK = 0: SER = 0
If m.0 = 1 Then SER = 1
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

You might also like