









Study with the several resources on Docsity
Earn points by helping other students or get them with a premium plan
Prepare for your exams
Study with the several resources on Docsity
Earn points to download
Earn points by helping other students or get them with a premium plan
This is project report by a student to fulfil requirement of course Microcontroller and Assembly Language at Ankit Institute of Technology and Science. It contains Dot, Matrices, Display, Panels, Serial, Port, Microcontroller, PNP, Multiplexers, Dual, Color
Typology: Thesis
1 / 15
This page cannot be seen from the preview
Don't miss anything!










HARDWARE
1. AT89C55WD MICROCONTROLLER
**2. 74LS138 MULTIPLEXERS
MODULES AND DISCRIPTION
Although, it seems as a simple project but actually there are many technicalities involved. So, for the purpose of simplification and ease in troubleshooting, we divided the project into different modules.
The first module includes the microcontroller, serial communication utility and connections to the other modules. This main module may be considered as the brain of whole project which controls all the activities. That is why it is regarded as control module.
2. Multiplexers Module
The second module performs the function of multiplexing. The multiplexing scheme for 64 dot matrices is as follows (only for one color).
3. Latches Module
Each multiplexer is connected to the enable pins of 8 latches. Inputs of latches are connected to port number 3.
PROBLEMS AND RECOMENDATIONS
Due to limited time and resources, we have employed only 8 dot matrices. If you want to connect more dot matrices, the code size may become greater than the built in memory of microcontroller. So, you will have to use external memory.
If the cathodes are not shorted, we will have to use a large number of latches (each latch to control the set of eight cathodes). Since, only one dot matrix is used to display data at a time, it was a better idea to short the respective cathodes.
To save space and financial resources, the amplifier module is connected after the shorted cathodes. If we employ amplifiers before anodes, we shall have to use a large number of amplifiers. That is one of the reason we shorted the cathodes and then we employed only one amplifier module after these cathodes.
While making PCB design, do not keep power plane and lines of PCB very close to each other of you are not an expert in making PCB.
While making dual layer PCB, first print the PCB design on both sides of the PCB and then drill the holes. If you print on one side of PCB and then drill holes and then print second side on PCB, then PCB design will not print correctly on the second side.
APPENDIX – 1
The code for printing PIEAS on dot matrices.
#include <reg51.h> #define SIZE 5
void smalldelay(void) { unsigned char counter; for (counter = 0; counter < 15; counter++); }
main() { unsigned char i, counter, dotbits[8][2 * SIZE], display[SIZE] = "PIEAS"; P0 = 0; P1 = 0; P2 = 0; P3 = 0; for( i = 0; i < SIZE; i++) { switch(display[i]) { case 'A': dotbits[0][i] = 0 ; dotbits[1][i] = 126 ; dotbits[2][i] = 126 ; dotbits[3][i] = 0 ; dotbits[4][i] = 126 ; dotbits[5][i] = 126 ; dotbits[6][i] = 126 ; dotbits[7][i] = 126 ; break; case 'E': dotbits[0][i] = 0; dotbits[1][i] = 127 ; dotbits[2][i] = 127 ; dotbits[3][i] = 0; dotbits[4][i] = 127 ; dotbits[5][i] = 127 ; dotbits[6][i] = 127 ; dotbits[7][i] = 0; break; case 'I': dotbits[0][i] = 0; dotbits[1][i] = 231 ; dotbits[2][i] = 231 ; dotbits[3][i] = 231 ; dotbits[4][i] = 231 ; dotbits[5][i] = 231 ; dotbits[6][i] = 231 ; dotbits[7][i] = 0 ; break; case 'P': dotbits[0][i] = 0; dotbits[1][i] = 126; dotbits[2][i] = 126; dotbits[3][i] = 0; dotbits[4][i] = 127; dotbits[5][i] = 127; dotbits[6][i] = 127; dotbits[7][i] = 127; break; case 'S': dotbits[0][i] = 0 ; dotbits[1][i] = 127 ; dotbits[2][i] = 127 ; dotbits[3][i] = 0 ;
APPENDIX – 2
#include <AT89X55.h> void delay(){ unsigned int x; for (x = 0; x < 330; x++); } main() { int a; short int pin; P0 = 15; P1 = 0; P2 = 0; P3 = 0; pin = 0; while(1){ if (pin == 0){P0 = 15; pin = 1;} else { P0 = 11; pin = 0;} P1 = 0; P2 = 0; P3 = 255; for (a = 0; a < 20; a++){ P2 = 1; P1 = 227; delay(); P2 = 2; P1 = 219; delay();P2 = 4; P1 = 219; delay(); P2 = 8; P1 = 227; delay(); P2 = 16; P1 = 251; delay(); P2 = 32; P1 = 251; delay();P2 = 64; P1 = 251; delay();P2 = 128; P1 = 251; delay(); } P1 = 0; P2 = 0; P3 = 255; for (a = 0; a < 20; a++){ P2 = 1; P1 = 195; delay(); P2 = 2; P1 = 231; delay();P2 = 4; P1 = 231; delay(); P2 = 8; P1 = 231; delay(); P2 = 16; P1 = 231; delay(); P2 = 32; P1 = 231; delay();P2 = 64; P1 = 231; delay();P2 = 128; P1 = 195; delay(); } P1 = 0; P2 = 0; P3 = 255; for (a = 0; a < 20; a++){ P2 = 1; P1 = 129; delay(); P2 = 2; P1 = 253; delay();P2 = 4; P1 = 253; delay(); P2 = 8; P1 = 129; delay(); P2 = 16; P1 = 129; delay(); P2 = 32; P1 = 253; delay();P2 = 64; P1 = 253; delay();P2 = 128; P1 = 129; delay(); } P1 = 0; P2 = 0; P3 = 255; for (a = 0; a < 20; a++){ P2 = 1; P1 = 195; delay(); P2 = 2; P1 = 189; delay();P2 = 4; P1 = 189; delay(); P2 = 8; P1 = 195; delay(); P2 = 16; P1 = 189; delay(); P2 = 32; P1 = 189; delay();P2 = 64; P1 = 189; delay();P2 = 128; P1 = 189; delay();