Implementation of sign board dot matrix display with 8051
-
Upload
aminu-bugaje -
Category
Education
-
view
3.918 -
download
11
Transcript of Implementation of sign board dot matrix display with 8051
LAB 2: Implementation of sign board DOT matrix display with 8051
Aim
- Implementation of dot-matrix led based system using MCS-51
Objectives
- To design the hardware to interface the display to MCS51 microcontroller.
- To develop the application software using C language
- To simulate the program and verify the result
Introduction
This laboratory experiment will provide a basic concept on how to drive and
control a dot matrix led using 8051 microcontroller. An 8x8 dot matrix is selected for this
assignment.
Dot matrix led display
Dot-matrix led display comprises of an array of LED’s that are intersected in such
a way that the negative terminal of each LED (cathode) in the same rows are connected
and the positive terminal (anode) of each LED in the same column are linked together.
Fig.1 internal structure an LED dot matrix
The figure above shows the basic schematic for a typical 8x8 led matrix
The dot-matrix led displays are widely a used to display information on machines,
clocks, train station departure, airport and sign boards etc.
Choosing a microcontroller
When embarking on a dot-matrix display project or assignment, the main
consideration should focus on the type of microcontroller to use. The specification must
to be considered in selecting the microcontrollers are the number of I/O pins available,
the amount of current that each pin can source and finally the speed at which the
microcontroller operates
The 89c51 microcontroller has made the issue of control signal speed and I/O pins
availability. The chip has a total number of 32 I/O pins and operates at a speed greater
than 10MHz.
Design the hardware to interface display to the MCS-51 microcontroller.
In the hardware design, six 8x8 dot-matrix LEDs were used and 74HC595 used
for serial to parallel shift registering in order to use less I/O pins of the microcontroller.
By using the 74HC595, only 3 I/O lines to drive 8 LEDs. The below figure shows the
hardware design in proteus software.
C language code using keil uvision
#include <reg52.h>
unsigned char cnter, i;
unsigned int n_counter;
#define array_number (array1)
unsigned char code array1[]= {
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x00,0xFE,0x11,0x11,0x11,0xFE, //A
0x00,0xff,0x02,0x02,0x04,0x02,0xfF, //M
0x00,0x81,0x81,0xFF,0x81,0x81,0x00,
0x00,0xff,0x02,0x04,0x08,0x10,0xff,
//0x00,0xFF,0x01,0x02,0x04,0x18,0x20,0x3F,
0x00,0x7F,0x80,0x80,0x80,0x80,0x7F,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0xFF,0x89,0x89,0x89,0x89,0x76,
0x00,0x7F,0x80,0x80,0x80,0x80,0x7F,
0x00,0x7E,0x81,0x81,0x91,0x91,0xF1,
0x00,0x00,0xFE,0x11,0x11,0x11,0xFE,
0x00,0x81,0x81,0x81,0x7F,0x01,0x01,
0x00,0x81,0x81,0x81,0x7F,0x01,0x01,
0x00,0xFF,0x89,0x89,0x89,0x89,0x89,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x7F,0x80,0x80,0x80,0x80,0x7F,
0x00,0x7E,0x81,0x81,0x81,0x81,0x7E,
0x00,0x8E,0x91,0x91,0x91,0x91,0x7E,
0x00,0x8F,0x89,0x89,0x89,0x89,0xF1,
//0x00,0x41,0x21,0x11,0x09,0x05,0x03,
0x0,0x81,0x41,0x21,0x11,0x9,0x5,0x3,
0x00,0x76,0x89,0x89,0x89,0x89,0x76,
0x00,0x7E,0x81,0x81,0x81,0x81,0x7E,
0x00,0xE1,0x91,0x91,0x91,0x91,0x8E,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x00,0x88,0x84,0x82,0xFF,0x80,0x80,
0x0,0x42,0x91,0x91,0x91,0x91,0x6E,
0x0,0x0,0x0,0x0,0x6C,0x0,0x0,0x0,
0x0,0xF2,0x91,0x91,0x91,0x91,0x8E,
0x0,0x4E,0x91,0x91,0x91,0x91,0x7E, //
0x0,0x4E,0x91,0x91,0x91,0x91,0x7E, //
0x0,0x0,0x0,0x0,0x66,0x0,0x0,0x0, //:
0x0,0x60,0x50,0x48,0x44,0xFF,0x40, //4
0x0,0x81,0x41,0x21,0x11,0x9,0x5,0x3, //7
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
0x0,0xF2,0x91,0x91,0x91,0x91,0x8E,0x0,
0x0,0x81,0x41,0x21,0x11,0x9,0x5,0x3,
0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1,
0x0,0x7E,0x81,0x81,0x81,0x81,0x7E,0x0,
0x0,0x81,0x41,0x21,0x11,0x9,0x5,0x3,
0x80,0x40,0x20,0x10,0x8,0x4,0x2,0x1,
0x0,0xF2,0x91,0x91,0x91,0x91,0x8E,0x0,
0x0,0x7E,0x81,0x81,0x81,0x81,0x7E,0x0,
0x0,0x80,0x84,0x82,0xFF,0x80,0x80,0x0,
0x0,0xF2,0x91,0x91,0x91,0x91,0x8E,0x0,
0x00,0x00,0x00,0x00,0x00,0x00,0x00,
};
sbit SD = P1^1;
sbit SH_CK = P1^0;
sbit ST_CK = P1^2;
sbit SD1 = P1^6;
sbit SH_CK1 = P1^5;
sbit ST_CK1 = P1^7;
sbit SD11 = P3^6;
sbit SH_CK11 = P3^5;
sbit ST_CK11 = P3^7;
sbit SD2 = P3^1;
sbit SH_CK2 = P3^0;
sbit ST_CK2 = P3^2;
sbit SD22 = P2^6;
sbit SH_CK22 = P2^5;
sbit ST_CK22 = P2^7;
sbit SD222 = P2^1;
sbit SH_CK222 = P2^0;
sbit SH_CK222 = P2^0;
sbit ST_CK222 = P2^2;
void Ser_IN(unsigned char Data);
void Ser_IN(unsigned char Data)
{ unsigned char i;
for(i = 0; i < 8; i++)
{ SH_CK = 0;
SD = Data & 0x80;
Data <<= 1;
SH_CK = 1;
}
}
void chip_OUT(void)
{
ST_CK = 0;
ST_CK = 1;
}
Simulation using proteus software
Clock code
Conclusion
The implementation of the microcontroller based sign board dot matrix led
display. There were many challenges face while doing this lab assignment. First
challenge was on how to display a single character on the dot-matrix, which was
achieved after a very long battle. The second challenge was scrolling the characters using
timer, it was also achieved over a very long battle where the second challenge was more
challenging than the first challenge. The finally challenge was how to display clock on
the dot-matrix led, and that was successful achieved.
Moreover, regarding the hardware implementation, a single dot matrix led was
used due to time and cost constrain.
Apparently, all the lab objectives were successfully achieved and all learned were
moderately applied.
Reference
a. Mazidi.M.A., Mazidi J.G., 2000,“8051 Microcontroller and Embedded Systems”,Upper
Saddle River, N.J. Pearson Edu. Inc.
Pictures
The hardware was implemented, a single dot matrix led was used due to time and
cost constrain.