You are on page 1of 29

Mini Project Report MICROCONTROLLER BASED MOVING

MESSAGE DISPLAY

1. INTRODUCTION

LED-based moving-message displays are becoming popular for transmitting


information to large groups of people quickly. These can be used indoors or outdoors.
We can find such displays in areas like railway platforms, banks, public offices,
hotels, training institutes, nightclubs and shops.

Compared to LEDs, liquid-crystal displays (LCDs) are easy to interface with a


microcontroller for displaying information as these have many built-in functions. But
these can’t be observed from a distance and large size LCDs are very costly.

We preferred to use 16 single digit alphanumeric displays over the LED dot-matrix
type since the former is much cost effective and has less programming burden
compared to other.

We have used Atmel’s AT89C51 microcontroller as the heart of the circuit along with
IC 74LS138 which is a 3to8 decoder, BC558 transistors, LED displays and power
supply unit in the circuit.

We have programmed to move the message from the rightmost display to the left and
the message stayed stationary for a few seconds when the first character reaches the
leftmost display, then it continues to move.

A 4 pin dip switch connected to the microcontroller through a port is used to select the
desired message stored in the memory of the microcontroller. The microcontroller
provides the data signal to the 16 display units through other two ports. Another port
is used to provide the address of the displays to the 3to8 decoders which are actually
controlling the turning on and off of the displays.

Rajagiri School of Engineering and Technology


1
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

The report provides a brief idea about the project through the block diagram
explanation given in the first part. It is followed by a circuit diagram and circuit
description given in a nice manner. Then come the software part of the project, it
includes a software description, algorithm and finally the software code. The PCB
designs are provided in the final part of the report. Some random screenshots of the
software used for the program debugging and circuit simulation in also provided.

Rajagiri School of Engineering and Technology


2
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

2. SYSTEM INFORMATION

2.1 BLOCK DIAGRAM

LED Display
4 PIN
AT89C51
DIP
Microcontroller
Switch
Decoder

2.2 BLOCK DIAGRAM EXPLANATION

 An at89c51 microcontroller is the heart of the circuit. It has two timers to


control the display timing and it also controls the entire data transfer in the
circuit.

 A 4 pin dip switch is connected to microcontroller which gives the input


information to the microcontroller. Each pin in the dip switch has two states 0
and 1, by using 4 pins we can actually give 16 different input signals to the
microcontroller.

 The output data is displayed through a set of 16 single segment alphanumeric


LED displays connected to the microcontroller.

 A decoder is connected to microcontroller which receives the address


information to control the turning on and off of the LED displays.

Rajagiri School of Engineering and Technology


3
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

3. HARDWARE IMPLEMENTATION

3.1 CIRCUIT DIAGRAM

Rajagiri School of Engineering and Technology


4
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

3.2 CIRCUIT DESCRIPTION

The diagram above shows the circuit of the microcontroller based moving message
display. It comprises microcontroller AT89C51, three-to-eight decoder 74LS138,
common anode alphanumeric displays, regulator 7805 and a few discrete components.

At the heart of the moving-message display is Atmel AT89C51 microcontroller (IC1).


It is a low-power, high-performance, 8-bit microcontroller with 4 kB of flash
programmable and erasable read-only memory (PEROM) used as on-chip program
memory, 128 bytes of RAM used as internal data memory, 32 individually
programmable input/output (I/O) lines divided into four 8-bit ports, two 16-bit
programmable timers/counters, a five-vector two-level interrupt architecture, on-chip
oscillator and clock circuitry.

Ports P0 and P2 of the microcontroller have been configured to act as a common data
bus for all the 16 alphanumeric displays whose corresponding data pins have been
tied together to make a common 16-bit data bus. Port-2 provides the higher byte of
data, while port-0 provides the lower one to light up a character on the display. Port
pins P1.2-P1.4 and P1.5-P1.7 of the microcontroller have been used as address inputs
for decoder IC3 and IC4 (74LS138) to enable one of the fourteen alphanumeric
displays (DIS3 through DIS16) at a time, respectively. However, displays DIS1 and
DIS2 are enabled or disabled directly by port pins P1.0 and P1.1. Pins 4 and 5 are
grounded and pin 6 is made high to enable decoder 74LS138.

All the corresponding data pins Dis 1 through DIS16 of alphanumeric


displays have been tied together, while the common anode of each display is
separately powered via a BC558 transistor which switches ‘on’ or ‘off’ as required,
through outputs of 74LS138 ICs and pins P1.0 and P1.1 of IC1. The higher nibble of
port P3 (P3.4 through P3.7) is used as a selection bus to select one of the 16

Rajagiri School of Engineering and Technology


5
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

previously stored messages using the 4-bit binary value present on these pins. This
value can be changed through a 4-pin DIP switch (S0 through S3).

Selection pins P3.4 through P3.7 are pulled high via resistors R36 through R33,
respectively. When the switch connected to a given pin is open the value is high (1),
and when it is closed the pin is held low and the value becomes ‘0.’ In this way, by
using a 4-bit number you can select any of the 16 messages stored in ROM

Capacitor C5 and resistor R37 form the power-‘on’ reset circuit, while a push-to-
connect switch has been used for manual reset. An 11.0592MHz crystal generates the
basic clock frequency for the microcontroller. To change the message being displayed
while the circuit is working, first change the number present at the selection bus, then
press ‘reset’ key.

The 220V AC mains is stepped down by transformer X1 to deliver the secondary


output of 9V, 500 mA. The output of the transformer is rectified by a full-wave bridge
rectifier comprising diodes D1 through D4, filtered by capacitor C3 and then
regulated by IC 7805 (IC4). Capacitor C4 bypasses any ripple present in the regulated
power supply. LED1 acts as the power-‘on’ indicator.

Rajagiri School of Engineering and Technology


6
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

3.3 CIRCUIT SIMULATION

We used software named Proteus 7 for simulating the working of our project,
especially the timer part. Some of the screenshots of the program is included here.

Rajagiri School of Engineering and Technology


7
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

4. SOFTWARE IMPLEMENTATION

4.1 SOFTWARE DESCRIPTION

The software is written in assembly language and its main concept is as follows.
Timer 1 has been used to generate a delay of around 1 ms for the switching gap
between two consecutive displays. Thus, each display is enabled for 1 ms while
displaying a message. The length of this cycle depends upon the length of the
message string. The cycle repeats
after a ‘0’ is encountered at the end of each message stored in the look-up
table at the end of the program. Each time, to display a character at a given display,
first two bytes (16 bits) of data are sent to Port-2 and Port-0, then the desired display
is enabled by sending its address to Port-1. Thereafter,
a delay of 1 ms (slightly more than that) is generated by timer 1. Upon
timer overflow, the entire display panel is refreshed by passing ‘FFFFH’ to the data
bus. Then the next character at the next display is passed in the similar manner. The
cycle frequency is variable (depending upon the length of the message) but always
high enough so that the message appears continuous to the human eye. Timer 0, with
its interrupt enabled, is used to change the starting address of the message in cyclic
manner so that the characters scroll from left to right with a proper gap between each
shift. Meanwhile, the interrupt service sub-routine also checks for the starting address
of DIS16 (right-most display). As soon as the first character reaches DIS16, the
message stays for a longer time so that the entire message
(message length not longer than 16 characters) can be easily read. Thereafter,
characters again start scrolling rightwards, so the entire message goes out and
disappears after a while to reappear from left side.

All the messages are stored in the form of a look-up table in the program memory
(ROM) itself. When the circuit is switched ‘on’ (or reset), the monitoring program

Rajagiri School of Engineering and Technology


8
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

first checks for the binary number present at the selection bus and according to that,
the ROM address of the starting character of the selected message is loaded into the
data-pointer. Thereafter, on-chip ROM reading is used to read the entire message over
there.
Each character is represented in the look-up table of the source code by two bytes. For
example, ‘S’ is represented by ‘Sh’ and ‘Sl’ separated by a comma. In addition to the
alphabets, Arabic numerals and a few special characters have been defined in the
program. For instance, a blank space is represented by ‘bsh, bsl.’ Thus, it is very easy
to modify the program.

Rajagiri School of Engineering and Technology


9
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

4.2 SOFTWARE DEVELOPMENT

We used software named Keil µVision 3 for building the target software and
debugging it. We could analyze each and every data bit in the ROM and RAM
throughout the program execution along with the states of all the 4 ports of the
microcontroller. We could also analyze the working of the timers according to the
written program. Some screen shots of the program is included here.

Rajagiri School of Engineering and Technology


10
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

4.3 ALGORITHM

Algorithm for at89c51 programming

 Port 1 is used as address bus


 Port 2 is used as higher order data bus
 Port 0 is used as lower order data bus
 Select inputs are given to the higher nibble of Port 3
 Since a 16 segment display is used, each character is represented by two 8 bit
values as DBH at port 2 and DBL at port 0

// Program execution starts from here.


 Main
 Set global interrupt bit
 Enable timer 0 interrupt
 Timer 0 is configured in mode 1
 Set initial count of timer 0 to 00H
 Initialize the RAM address locations starting from 30H to 60H as FFH
 Set the address for displays from 1st to 16th in memory locations starting from
41H to 50H ( data given to decoder to enable each display )
 Read the data from port 3 to accumulator ( select inputs )
 Mask lower nibble of accumulator
 According to data in accumulator load the data pointer with the base address
of the corresponding message stored in the look up table in the RAM
 Store the higher and lower bits of data pointer in register R3 and R2
 Initialize register R1 with 41H ( address of left most display )
 Start the timer 0
 Step A
 Copy values in R1 to R0

Rajagiri School of Engineering and Technology


11
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

 Move the data pointed by data pointer to port 2 and port 0 through
accumulator
 Move the data ( address of displays ) pointed by R0 to port 1
 Start timer 1 in mode 1 for generating a delay of 1ms ( delay between each
display )
 When timer 1 overflows ( interrupts ) turn the display off and continue
 Decrement R0
 Increment data pointer, so that next character of message is loaded
 Go back to Step A and repeat these steps until the accumulator = 0
 If accumulator = 0, reload the data pointer with the base address of selected
message using registers R3 and R2 and go back to Step A

// Interrupt Service Routine for Timer 0 ( executed when timer 0 overflows )


 Initialize R6 with 10 in Main at the beginning of program execution
 Initialize R7 with 46 in Main at the beginning of program execution so that
timer 0 need to overflow 46 times before R1 increments ( by one ) to changing
the starting display
 Start timer 0 again and return back
 Continue above steps till R1 reaches 50H i.e. the first letter in selected
message reaches the rightmost display
 When R1 = 50H, decrement R6 and restart timer 0 and return back, so that
display remains stationary till R6 =0
 When R6 = 0, increment R1 and restart timer 0 and return back.
 When R1 = 60H, reload R1 with 41H i.e. the address of the leftmost display
and R6 with 10

Rajagiri School of Engineering and Technology


12
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

4.4 SOFTWARE CODE

$mod51

DBH equ p2 ; Higher byte of Data Bus


DBL equ p0 ; Lower byte of Data Bus
ADB equ p1 ; Address Bus
input equ p3 ; message select input

;** codes for decimal digits are given below:


; ('h' refers to higher byte, 'l' to lower one)

zeroh equ 85h


zerol equ 0d0h

oneh equ 0d7h


onel equ 0ffh

twoh equ 0b2h


twol equ 8dh

threeh equ 92h


threel equ 0cdh

fourh equ 0c2h


fourl equ 0ffh

fiveh equ 8ah


fivel equ 0cdh

Rajagiri School of Engineering and Technology


13
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

sixh equ 8ah


sixl equ 8dh

sevenh equ 0d7h


sevenl equ 0ddh

eighth equ 82h


eightl equ 8dh

nineh equ 82h


ninel equ 0cdh

;** codes for alphabets are given below:

Ah equ 0c2h
Al equ 9dh

Bh equ 82h
Bl equ 8dh

Ch equ 0afh
Cl equ 8dh

Dh equ 87h
Dl equ 8dh

Eh equ 0aah
El equ 8dh

Fh equ 0eah
Fl equ 9dh

GH equ 8dh

Rajagiri School of Engineering and Technology


14
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

Gl equ 8dh

Hh equ 0c2h
Hl equ 0bfh

Ih equ 0bfh
Il equ 0c4h

Jh equ 0bfh
Jl equ 0b4h

Kh equ 6ch
Kl equ 0bfh

Lh equ 0afh
Ll equ 0afh

Mh equ 0c5h
Ml equ 0bbh

Nh equ 47h
Nl equ 0bbh

Oh equ 87h
Ol equ 8dh

Ph equ 0e2h
Pl equ 9dh

Qh equ 27h
Ql equ 9dh

Rh equ 62h

Rajagiri School of Engineering and Technology


15
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

Rlw equ 9dh

Sh equ 8ah
Sl equ 0cdh

Th equ 0ffh
Tl equ 0d4h

Uh equ 87h
Ul equ 0afh

Vh equ 57h
Vl equ 0fbh

Wh equ 87h
Wl equ 0aeh

Xh equ 7dh
Xl equ 7bh

Yh equ 0fbh
Yl equ 0fah

Zh equ 0bdh
Zl equ 4dh

;** codes for few special characters:

strh equ 78h ;for star sign (asterisk)


strl equ 72h

plsh equ 0fah ;for '+' sign


plsl equ 0f6h

Rajagiri School of Engineering and Technology


16
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

mnsh equ 0fah ;minus sign


mnsl equ 0ffh

_h equ 0bfh ; underscore sign


_l equ 0efh

bsh equ 0ffh ;blank space


bsl equ 0ffh

pieh equ 0d7h ;for pie


piel equ 0f4h

mueh equ 0dfh ;for micro (mu)


muel equ 0eeh

org 0000h
sjmp main

org 000bh ;timer0 interrupt vector address


clr tr0 ;clear timer0 run bit
mov tl0,#00h
mov th0,#00h ;reload timer0 with initial count
djnz r7,a1
mov r7,#46
cjne r1,#60h,a5 ;check to again start entering from left-side
sjmp a4
a5: cjne r1,#50h,a2 ;check for display to stay on reaching display-16
sjmp a3
a2: inc r1
sjmp a1
a3: djnz r6,a1
inc r1

Rajagiri School of Engineering and Technology


17
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

sjmp a1
a4: mov r6,#10
mov r1,#41h
a1: setb tr0 ; set timer0 run bit
reti ;return from timer0 ISR and clear tf0

main: mov ie,#00h


setb ea ;set global interrupt bit
setb et0 ;enable timer0 interrupt
mov tmod,#01h ;timer0 configured in mode 1
mov tcon,#00h
mov tl0,#00h
mov th0,#00h ;set initial count to 0000H
mov r7,#46 ;provides gap between each shift
mov r6,#10

mov r0,#60h
blank: mov @r0,#0ffh ;initialize the pointed location by null address
dec r0
cjne r0,#2fh,blank
mov r1,#41h ;load address-pointer with initial address

mov 50h,#0dfh ;address for 16th Display (rightmost)


mov 4fh,#0bfh ;address for 15th Display
mov 4eh,#9fh ;address for 14th Display
mov 4dh,#7fh ;address for 13th Display
mov 4ch,#5fh ;address for 12th Display
mov 4bh,#3fh ;address for 11th Display
mov 4ah,#1fh ;address for 10th Display
mov 49h,#0fbh ;address for 9th Display
mov 48h,#0f7h ;address for 8th Display
mov 47h,#0f3h ;address for 7th Display

Rajagiri School of Engineering and Technology


18
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

mov 46h,#0efh ;address for 6th Display


mov 45h,#0ebh ;address for 5th Display
mov 44h,#0e7h ;address for 4th Display
mov 43h,#0e3h ;address for 3rd Display
mov 42h,#0fdh ;address for 2nd Display
mov 41h,#0feh ;address for 1st Display (leftmost)

chk: mov a,input ;load accumulator with value at P3


orl a,#0fh ;mask lower nibble to get selection bus value
cjne a,#0ffh,chk0
mov dptr,#default ;load dptr with starting address of default message
sjmp read ; now start reading

chk0: cjne a,#0fh,chk1


mov dptr,#msg0 ;load dptr with starting address of msg0
sjmp read ; now start reading

chk1: cjne a,#1fh,chk2


mov dptr,#msg1
sjmp read

chk2: cjne a,#2fh,chk3


mov dptr,#msg2
sjmp read

chk3: cjne a,#3fh,chk4


mov dptr,#msg3
sjmp read

chk4: cjne a,#4fh,chk5


mov dptr,#msg4
sjmp read

Rajagiri School of Engineering and Technology


19
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

chk5: cjne a,#5fh,chk6


mov dptr,#msg5
sjmp read

chk6: cjne a,#6fh,chk7


mov dptr,#msg6
sjmp read

chk7: cjne a,#7fh,chk8


mov dptr,#msg7
sjmp read

chk8: cjne a,#8fh,chk9


mov dptr,#msg8
sjmp read

chk9: cjne a,#9fh,chk10


mov dptr,#msg9
sjmp read

chk10: cjne a,#0afh,chk11


mov dptr,#msg10
sjmp read

chk11: cjne a,#0bfh,chk12


mov dptr,#msg11
sjmp read

chk12: cjne a,#0cfh,chk13


mov dptr,#msg12
sjmp read

Rajagiri School of Engineering and Technology


20
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

chk13: cjne a,#0dfh,chk14


mov dptr,#msg13
sjmp read

chk14: mov dptr,#msg14


sjmp read

read: mov r3,dph


mov r2,dpl
setb tr0
rd1: mov r0,01h
rd2: clr a
movc a,@a+dptr
jz down
mov DBH,a
clr a
inc dptr
movc a,@a+dptr
mov DBL,a
mov ADB,@r0
acall timer
dec r0
inc dptr
sjmp rd2
down: mov dph,r3 ;reload dph
mov dpl,r2 ;reload dpl
sjmp rd1

timer: mov tmod,#10h ;set mode 1 for timer1


mov th1,#0fch ;FC66H will generate a delay of 1ms with 11.0592MHz
Xtal
mov tl1,#66h
setb tr1

Rajagiri School of Engineering and Technology


21
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

jnb tf1,$ ;wait until timer1 overflows


clr tr1
clr tf1
mov DBH,#0ffh
mov DBL,#0ffh
ret

;** look-up table starts from here:

msg0: db
Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Bh,Bl,Ih,Il,Rh,Rlw,Th,Tl,Hh,Hl,bsh,bsl,Dh,D
l,Ah,Al,Yh,Yl,0
msg1: db
Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Nh,Nl,Eh,El,Wh,Wl,bsh,bsl,Yh,Yl,Eh,El,Ah,
Al,Rh,Rlw,0
msg2: db
strh,strl,bsh,bsl,Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Dh,Dl,Ih,Il,Wh,Wl,Ah,Al,Lh,
Ll,Ih,Il,bsh,bsl,strh,strl,0
msg3: db
Mh,Ml,Eh,El,Rh,Rlw,Rh,Rlw,Yh,Yl,bsh,bsl,Ch,Cl,Hh,Hl,Rh,Rlw,Ih,Il,Sh,Sl,Th,Tl,M
h,Ml,Ah,Al,Sh,Sl,0
msg4: db
strh,strl,bsh,bsl,Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Hh,Hl,Oh,Ol,Lh,Ll,Ih,Il,bsh,b
sl,strh,strl,0
msg5: db
strh,strl,bsh,bsl,Eh,El,Ih,Il,Dh,Dl,bsh,bsl,Mh,Ml,Uh,Ul,Bh,Bl,Ah,Al,Rh,Rlw,Ah,Al,K
h,Kl,bsh,bsl,strh,strl,0
msg6: db
Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Dh,Dl,Ah,Al,Sh,Sl,Hh,Hl,Eh,El,Hh,Hl,Rh,Rl
w,Ah,Al,0
msg7: db
Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Wh,Wl,Eh,El,Dh,Dl,Dh,Dl,Ih,Il,Nh,Nl,Gh,Gl,
0

Rajagiri School of Engineering and Technology


22
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

msg8: db
Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Jh,Jl,Ah,Al,Nh,Nl,Mh,Ml,Ah,Al,Sh,Sl,Hh,Hl,
Th,Tl,Mh,Ml,Ih,Il,0
msg9: db
strh,strl,bsh,bsl,Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Rh,Rlw,Ah,Al,Kh,Kl,Hh,Hl,I
h,Il,bsh,bsl,strh,strl,0
msg10: db
strh,strl,bsh,bsl,Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Ph,Pl,Oh,Ol,Nh,Nl,Gh,Gl,Ah,
Al,Lh,Ll,bsh,bsl,strh,strl,0
msg11: db
Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Mh,Ml,Oh,Ol,Th,Tl,Hh,Hl,Eh,El,Rh,Rlw,Sh,
Sl,Dh,Dl,Ah,Al,Yh,Yl,0
msg12: db
strh,strl,bsh,bsl,Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Rh,Rlw,Ah,Al,Mh,Ml,Jh,Jl,A
h,Al,Nh,Nl,bsh,bsl,strh,strl,0
msg13: db
strh,strl,bsh,bsl,Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Lh,Ll,Oh,Ol,Hh,Hl,Rh,Rlw,Ih
,Il,bsh,bsl,strh,strl,0
msg14: db
strh,strl,bsh,bsl,Hh,Hl,Ah,Al,Ph,Pl,Ph,Pl,Yh,Yl,bsh,bsl,Eh,El,Ah,Al,Sh,Sl,Th,Tl,Eh,E
l,Rh,Rlw,bsh,bsl,strh,strl,0
default: db
Wh,Wl,Eh,El,Lh,Ll,Ch,Cl,Oh,Ol,Mh,Ml,Eh,El,bsh,bsl,Th,Tl,Oh,Ol,bsh,bsl,Ah,Al,Lh,
Ll,Lh,Ll,0
end

Rajagiri School of Engineering and Technology


23
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

5. PCB DESIGN

Acual-size, single side PCB for Microcontroller Based Moving Message Display except
LED Display part.

Single side PCB for LED Display part of Microcontroller Based Moving Message Display. Not Actual
Size.

Rajagiri School of Engineering and Technology


24
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

6. RESULT

The breadboard prototype of the circuit was made and tested for a single display. It
was verified by the guide. Then the circuit including the all display units was mounted
on PCB. The selected messages moved from the leftmost display to the right and it
stayed stationary for a few seconds, when the first character reached the leftmost
display. Thus the desired result was obtained.

Rajagiri School of Engineering and Technology


25
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

7. CONCLUSION

It may be concluded that the mini project has helped us to develop a deep practical
knowledge of the at89c51 microcontroller. We have dealt with the timer programming
and the interrupt programming of the microcontroller. The LED displays proved to
very cost effective and simple to program compared to others. We could also use the
software like Proteus 7 and Keil µVision 3 that are very indispensible in embedded
software development.

Rajagiri School of Engineering and Technology


26
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

8. FUTURE SCOPE

Many more messages would be possible if complete Port-3 is used for message
selection. Pins RxD, TxD, INT0 and INT1 have been kept free, so that these can be
used for interfacing with the serial port of the PC. Also, interrupt pins can be used to
display some message and sound an alarm in the case of an emergency. For example,
a fire sensor can be connected to ‘INT0’ and a vibration detector to ‘INT1.’ These
pins can also be used to send signals to synchronise a similar system that displays
another related message at the same time, so a 16-character, twoline display is made
possible.

A PC keyboard can be interfaced with microcontroller so that messages can display


on the fly.

Rajagiri School of Engineering and Technology


27
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

9. REFERENCES

The 8051 Microcontroller and Embedded Systems by Muhammad Ali Mazidi

Websites
 www.atmel.com
 www.alldatasheets.com

Rajagiri School of Engineering and Technology


28
Mini Project Report MICROCONTROLLER BASED MOVING
MESSAGE DISPLAY

APPENDIX

Rajagiri School of Engineering and Technology


29

You might also like